diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile index 6f5353121fc7..e7d3d81c6801 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-mcan.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-microtips-mf103hie-lcd2.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-lpm-wkup-sources.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-pwm.dtbo +dtb-$(CONFIG_ARCH_K3) += k3-am623-pfc-750-8400.dtb # Boards with AM64x SoC dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-750-8400.dts b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-8400.dts new file mode 100644 index 000000000000..8c18d1f9afa4 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-8400.dts @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * PFC400 - AM62x based WAGO device + * + * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ + * Copyright (C) 2025 WAGO GmbH & Co. KG - https://www.wago.com/ + */ + +#include "k3-am623-pfc-750-84xx-wosm.dtsi" +#include "k3-am623-pfc-750-84xx-baseboard.dtsi" +#include "k3-am623-pfc-750-84xx-kbus.dtsi" +#include "k3-am623-pfc-750-84xx-interaction.dtsi" + +/ { + compatible = "ti,am623-pfc-750-8400", "ti,am623-pfc", "ti,am625"; + model = "PFC400-750-8400"; +}; + +&wsysinit { + status = "okay"; + board,variant = "pfc400"; +}; + +&main_spi2 { + ti,spi-num-cs = <4>; + + spidev@3 { + compatible = "rohm,dh2228fv"; + reg = <3>; + spi-max-frequency = <50000000>; + }; +}; diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-baseboard.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-baseboard.dtsi new file mode 100644 index 000000000000..034bb4327f85 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-baseboard.dtsi @@ -0,0 +1,92 @@ +// SPDX-License-Identifier: GPL-2.0 +/* +* PFC400 baseboard dtsi for AM62x based WAGO devices +* +* Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ +* Copyright (C) 2025 WAGO GmbH & Co. KG - https://www.wago.com/ +*/ + +&main_pmx0 { + main_ksz9477_pins: main-ksz9477-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x01a0, PIN_OUTPUT, 7) /* (E18) MCASP0_AXR0.GPIO1_10 nRST-RGMII2 / nRST-ETHSW (BB) */ + AM62X_IOPAD(0x0034, PIN_INPUT, 7) /* (H21) OSPI0_CSn2.GPIO0_13 nINT-RGMII2 / nINT-ETHSW(BB) */ + >; + }; +}; + +&mcu_spi0 { + ksz9477@0 { + compatible = "microchip,ksz9477"; + pinctrl-names = "default"; + pinctrl-0 = <&main_ksz9477_pins>; + reg = <0>; + spi-max-frequency = <1000000>; + + reset-gpios = <&main_gpio1 10 GPIO_ACTIVE_LOW>; + + dsa,member = <0 0>; + + interrupt-parent = <&main_gpio0>; + interrupts = <13 IRQ_TYPE_EDGE_FALLING>; + + microchip,single-led-mode; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + label = "ethX3"; + phy-mode = "internal"; + }; + + port@1 { + reg = <1>; + label = "ethX2"; + phy-mode = "internal"; + }; + + port@2 { + reg = <2>; + label = "ethX1"; + phy-mode = "internal"; + }; + + port@3 { + reg = <3>; + label = "ethEM"; + phy-mode = "internal"; + }; + + port@4 { + reg = <4>; + label = "ethX4"; + phy-mode = "internal"; + }; + + port@5 { + reg = <5>; + label = "cpu"; + ethernet = <&cpsw3g>; /* ð0 */ + phy-mode = "rgmii-txid"; + tx-internal-delay-ps = <2000>; + + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + }; + }; +}; + +&main_i2c1 { + eeprom_hw_id_bb: at24c02@54 { + status = "disabled"; + compatible = "atmel,24c02"; + reg = <0x51>; + pagesize = <16>; + }; +}; diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-interaction.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-interaction.dtsi new file mode 100644 index 000000000000..b804688d9697 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-interaction.dtsi @@ -0,0 +1,227 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * PFC400 interaction board dtsi for AM62x based WAGO devices + * + * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ + * Copyright (C) 2025 WAGO GmbH & Co. KG - https://www.wago.com/ + */ + +#include "k3-am623-pfc-rs485.dtsi" +#include "k3-am623-pfc-rtc.dtsi" + +&mcu_pmx0 { + led_reset_pins_default: led-reset-pins-default { + pinctrl-single,pins = < + AM62X_MCU_IOPAD(0x050, PIN_OUTPUT | INPUT_EN, 7) /* (A9) WKUP_I2C0_SDA.GPIO0_20 nRST-LED-DISP */ + >; + }; +}; + +&main_i2c1 { + status = "okay"; + + eeprom_hw_id_ib: at24c02@54 { + status = "disabled"; + compatible = "atmel,24c02"; + reg = <0x54>; + pagesize = <16>; + }; + + /* + * NXP PCA9552BS + * 16-Bit I²C-Bus LED Driver + */ + led_bar60: pca9552@60 { + compatible = "nxp,pca9552"; + pinctrl-names = "default"; + pinctrl-0 = <&led_reset_pins_default>; + + #address-cells = <1>; + #size-cells = <0>; + reg = <0x60>; + + lb60_0: sys-red@0 { + label = "sys-red"; + reg = <0>; + linux,default-trigger = "timer"; + }; + + lb60_1: sys-green@1 { + label = "sys-green"; + reg = <1>; + linux,default-trigger = "timer"; + }; + + lb60_2: sys-blue@2 { + label = "sys-blue"; + reg = <2>; + }; + + lb60_3: run-red@3 { + label = "run-red"; + reg = <3>; + }; + + lb60_4: run-green@4 { + label = "run-green"; + reg = <4>; + }; + + lb60_5: run-blue@5 { + label = "run-blue"; + reg = <5>; + }; + + lb60_6: io-red@6 { + label = "io-red"; + reg = <6>; + }; + + lb60_7: io-green@7 { + label = "io-green"; + reg = <7>; + }; + + lb60_8: io-blue@8 { + label = "io-blue"; + reg = <8>; + }; + + lb60_9: eb-red@9 { + label = "eb-red"; + reg = <9>; + }; + + lb60_10: eb-green@10 { + label = "eb-green"; + reg = <10>; + }; + + lb60_11: eb-blue@11 { + label = "eb-blue"; + reg = <11>; + }; + + lb60_12: u1-red@12 { + label = "u1-red"; + reg = <12>; + }; + + lb60_13: u1-green@13 { + label = "u1-green"; + reg = <13>; + }; + + lb60_14: u1-blue@14 { + label = "u1-blue"; + reg = <14>; + }; + + lb60_15: sys-overwrite@15 { + label = "sys-overwrite"; + reg = <15>; + linux,default-trigger = "default-on"; + }; + }; + + /* + * NXP PCA9552BS + * 16-Bit I²C-Bus LED Driver + */ + led_bar61: pca9552@61 { + compatible = "nxp,pca9552"; + + #address-cells = <1>; + #size-cells = <0>; + reg = <0x61>; + + lb61_0: u2-red@0 { + label = "u2-red"; + reg = <0>; + }; + + lb61_1: u2-green@1 { + label = "u2-green"; + reg = <1>; + }; + + lb61_2: u2-blue@2 { + label = "u2-blue"; + reg = <2>; + }; + + lb61_3: u3-red@3 { + label = "u3-red"; + reg = <3>; + }; + + lb61_4: u3-green@4 { + label = "u3-green"; + reg = <4>; + }; + + lb61_5: u3-blue@5 { + label = "u3-blue"; + reg = <5>; + }; + + lb61_6: u4-red@6 { + label = "u4-red"; + reg = <6>; + }; + + lb61_7: u4-green@7 { + label = "u4-green"; + reg = <7>; + }; + + lb61_8: u4-blue@8 { + label = "u4-blue"; + reg = <8>; + }; + + lb61_9: u5-red@9 { + label = "u5-red"; + reg = <9>; + }; + + lb61_10: u5-green@10 { + label = "u5-green"; + reg = <10>; + }; + + lb61_11: u5-blue@11 { + label = "u5-blue"; + reg = <11>; + }; + + lb61_12: u6_r@12 { + label = "u6-red"; + reg = <12>; + }; + + lb61_13: u6_g@13 { + label = "u6-green"; + reg = <13>; + }; + + lb61_14: u6_b@14 { + label = "u6-blue"; + reg = <14>; + }; + }; + + /* + * Dynamic NFC/RFID tag IC with 4-Kbit EEPROM + * + * This driver is not yet upstream but there is a kernel driver available at: + * + * https://github.com/2pecshy/eeprom-ST25DV-linux-driver/tree/master + * + */ + st25dv04k: st25dv04k@53 { + status = "okay"; + compatible = "st25dv,st25dv04k"; + reg = <0x53>; + }; +}; diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-kbus.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-kbus.dtsi new file mode 100644 index 000000000000..3fd3109515cf --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-kbus.dtsi @@ -0,0 +1,80 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Common dtsi for AM62x WAGO based devices + * + * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ + * Copyright (C) 2025 WAGO GmbH & Co. KG - https://www.wago.com/ + */ + +#include "k3-am623-pfc-kbus.dtsi" + +/ { + /* this name of the gpio-keys device is a + * historical heritage from 3.6.11 kernel. + * the device-name is checked in omsd. So we + * need to adapt this configuration + */ + oms: PAC-Operating-Mode-Switch { + status = "okay"; + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&oms_pins_default>; + #address-cells = <1>; + #size-cells = <0>; + autorepeat; + + oms_stop_run: stop_run { + label = "RUN"; + gpios = <&main_gpio0 65 GPIO_ACTIVE_LOW>; + linux,code = <1>; + linux,input-type = <5>; + debounce-interval = <1>; + }; + + oms_reset_all: reset_all { + label = "RESET_ALL"; + gpios = <&main_gpio1 11 GPIO_ACTIVE_HIGH>; + linux,code = <4>; + linux,input-type = <1>; + debounce-interval = <1>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&sd_activity_led_pin>; + pinctrl-names = "default"; + + led-0 { + function = LED_FUNCTION_SD; + color = ; + gpios = <&main_gpio0 31 GPIO_ACTIVE_LOW>; + linux,default-trigger = "mmc0"; + default-state = "on"; + }; + }; +}; + +&main_pmx0 { + oms_pins_default: oms-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x0108, PIN_INPUT, 7) /* (D24) MMC2_DAT3.GPIO0_65 nSTOP-RUN */ + AM62X_IOPAD(0x01a4, PIN_INPUT, 7) /* (B20) MCASP0_ACLKX.GPIO1_11 IO-RAB */ + >; + }; + + sd_activity_led_pin: sd-activity-led-pin { + pinctrl-single,pins = < + AM62X_IOPAD(0x07c, PIN_OUTPUT, 7) /* (P25) GPMC0_CLK.GPIO0_31 (MMC1.PWR / SDC.LED) */ + >; + }; +}; + +&main_i2c1 { + eeprom_hw_id_lb: at24c02@50 { + status = "disabled"; + compatible = "atmel,24c02"; + reg = <0x50>; + pagesize = <16>; + }; +}; diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-wosm.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-wosm.dtsi new file mode 100644 index 000000000000..64ff391db8f3 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-wosm.dtsi @@ -0,0 +1,369 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * PFC400 WOSM dtsi for AM62x based WAGO devices + * + * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ + * Copyright (C) 2025 WAGO GmbH & Co. KG - https://www.wago.com/ + */ + +#include "k3-am623-pfc-750-8xxx-common.dtsi" +#include "k3-am623-pfc-tpm.dtsi" + +/ { + compatible = "ti,am623-pfc", "ti,am625"; + + aliases { + usb1 = &usb1; + ethernet0 = &cpsw_port2; + ethernet1 = &cpsw_port1; + }; + + cpus { + cpu@0 { + cpu-supply = <&buck1_30_reg>; + }; + + cpu@1 { + cpu-supply = <&buck1_30_reg>; + }; + + cpu@2 { + cpu-supply = <&buck1_30_reg>; + }; + + cpu@3 { + cpu-supply = <&buck1_30_reg>; + }; + }; + + memory@80000000 { + bootph-pre-ram; + device_type = "memory"; + + /* 4 GiB RAM */ + reg = <0x00000000 0x80000000 0x00000000 0x80000000>, + <0x00000008 0x80000000 0x00000000 0x80000000>; + }; + + vcc_1v8_sys: regulator-4 { + compatible = "regulator-fixed"; + regulator-name = "vcc_1v8_sys"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vmain_pd>; + regulator-always-on; + regulator-boot-on; + }; + + ldo1_sd_1v8_reg: ldo1-sd-1v8-reg { + /* Output VLDO1 of tps65219 */ + compatible = "regulator-gpio"; + regulator-name = "VDDSHV_SD_1V8_IO_PMIC_GPIO"; + pinctrl-names = "default"; + pinctrl-0 = <&mcu_sd_vsel_pin>; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + vin-supply = <&vcc_5v0>; + gpios = <&mcu_gpio0 10 GPIO_ACTIVE_HIGH>; + states = <1800000 0x0>, + <3300000 0x1>; + }; +}; + +&fss { + uio_mram: uio@500000000 { + compatible = "uio_pdrv_genirq"; + linux,uio-name = "UIO_OSPI_MRAM"; + + /* + * FSS Memory Region: External Memory Space (Region 3) + * OSPI EVERSPIN MRAM em008lxo (8Mb) + * + */ + reg = <0x05 0x00000000 0x00 0x00100000>; + }; +}; + +&mcu_pmx0 { + mcu_spi0_pins: mcu-spi0-pins { + pinctrl-single,pins = < + AM64X_MCU_IOPAD(0x008, PIN_OUTPUT, 0) /* (A7) MCU_SPI0_CLK SCLK */ + AM64X_MCU_IOPAD(0x000, PIN_OUTPUT, 0) /* (E8) MCU_SPI0_CS0 nCS0 */ + AM64X_MCU_IOPAD(0x00c, PIN_INPUT, 0) /* (D9) MCU_SPI0_D0 MISO */ + AM64X_MCU_IOPAD(0x010, PIN_OUTPUT, 0) /* (C9) MCU_SPI0_D1 MOSI */ + >; + }; + + mcu_sd_vsel_pin: mcu-sd-vsel-pins { + pinctrl-single,pins = < + AM64X_MCU_IOPAD(0x028, PIN_OUTPUT, 7) /* (C5) WKUP_UART0_TXD.MCU_GPIO0_10 */ + >; + }; +}; + +&main_pmx0 { + main_mdio1_pins_default: main-mdio1-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC not used, just for testing */ + AM62X_IOPAD(0x15c, PIN_INPUT_PULLUP, 0) /* (AB22) MDIO0_MDIO not used, just for testing */ + >; + }; + + main_rgmii2_pins_default: main-rgmii2-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */ + AM62X_IOPAD(0x188, PIN_INPUT, 0) /* (AB20) RGMII2_RD1 */ + AM62X_IOPAD(0x18c, PIN_INPUT, 0) /* (AC21) RGMII2_RD2 */ + AM62X_IOPAD(0x190, PIN_INPUT, 0) /* (AE22) RGMII2_RD3 */ + AM62X_IOPAD(0x180, PIN_INPUT, 0) /* (AD23) RGMII2_RXC */ + AM62X_IOPAD(0x17c, PIN_INPUT, 0) /* (AD22) RGMII2_RX_CTL */ + AM62X_IOPAD(0x16c, PIN_OUTPUT, 0) /* (Y18) RGMII2_TD0 */ + AM62X_IOPAD(0x170, PIN_OUTPUT, 0) /* (AA18) RGMII2_TD1 */ + AM62X_IOPAD(0x174, PIN_OUTPUT, 0) /* (AD21) RGMII2_TD2 */ + AM62X_IOPAD(0x178, PIN_OUTPUT, 0) /* (AC20) RGMII2_TD3 */ + AM62X_IOPAD(0x168, PIN_OUTPUT, 0) /* (AE21) RGMII2_TXC */ + AM62X_IOPAD(0x164, PIN_OUTPUT, 0) /* (AA19) RGMII2_TX_CTL */ + >; + }; + + usb1_pins_default: usb1-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x0258, PIN_INPUT, 0) /* (F18) USB1_DRVVBUS */ + >; + }; + + mram_irq_pins_default: mram-irq-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x0038, PIN_INPUT, 7) /* (E24) OSPI0_CSn3.GPIO0_14 (nINT-nVMEM) */ + >; + }; + + ospi0_pins_default: ospi0-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x000, PIN_OUTPUT, 0) /* (H24) OSPI0_CLK */ + AM62X_IOPAD(0x02c, PIN_OUTPUT, 0) /* (F23) OSPI0_CSn0 */ + AM62X_IOPAD(0x00c, PIN_INPUT, 0) /* (E25) OSPI0_D0 */ + AM62X_IOPAD(0x010, PIN_INPUT, 0) /* (G24) OSPI0_D1 */ + AM62X_IOPAD(0x014, PIN_INPUT, 0) /* (F25) OSPI0_D2 */ + AM62X_IOPAD(0x018, PIN_INPUT, 0) /* (F24) OSPI0_D3 */ + AM62X_IOPAD(0x01c, PIN_INPUT, 0) /* (J23) OSPI0_D4 */ + AM62X_IOPAD(0x020, PIN_INPUT, 0) /* (J25) OSPI0_D5 */ + AM62X_IOPAD(0x024, PIN_INPUT, 0) /* (H25) OSPI0_D6 */ + AM62X_IOPAD(0x028, PIN_INPUT, 0) /* (J22) OSPI0_D7 */ + AM62X_IOPAD(0x008, PIN_INPUT, 0) /* (J24) OSPI0_DQS */ + >; + }; +}; + +&watchdog_ext { + status = "okay"; +}; + +&gpmc0 { + status = "disabled"; +}; + +&mcu_spi0 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&mcu_spi0_pins>; +}; + +&main_spi0 { + status = "okay"; +}; + +&main_spi2 { + status = "okay"; +}; + +&ospi0 { + compatible = "ti,am654-ospi"; + pinctrl-names = "default"; + pinctrl-0 = <&ospi0_pins_default>; + status = "okay"; + + /* Everspin Tech. EM008LXO + * Order-No EM008LXOAB320IS1R + */ + mram: mram@0 { + pinctrl-names = "default"; + pinctrl-0 = <&mram_irq_pins_default>; + + interrupt-parent = <&main_gpio0>; + interrupts = <14 IRQ_TYPE_EDGE_FALLING>; + + compatible = "jedec,spi-nor"; + reg = <0x0>; + spi-tx-bus-width = <8>; + spi-rx-bus-width = <8>; + spi-max-frequency = <25000000>; + + cdns,tshsl-ns = <60>; + cdns,tsd2d-ns = <60>; + cdns,tchsh-ns = <60>; + cdns,tslch-ns = <60>; + cdns,read-delay = <4>; + cdns,phy-mode; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "ospi.mram.mem"; + reg = <0x0 0x800000>; + }; + }; + }; +}; + +&main_i2c0 { + status = "okay"; + + eeprom_hw_id_wosm: at24c02@50 { + status = "disabled"; + compatible = "atmel,24c02"; + reg = <0x50>; + pagesize = <16>; + }; + + tps65219_30: pmic@30 { + compatible = "ti,tps65219"; + reg = <0x30>; + system-power-controller; + + buck1-supply = <&vcc_5v0>; + buck2-supply = <&vcc_5v0>; + buck3-supply = <&vcc_5v0>; + ldo1-supply = <&vcc_3v3_sys>; + ldo2-supply = <&vcc_1v8_sys>; + ldo3-supply = <&vcc_3v3_sys>; + ldo4-supply = <&vcc_3v3_sys>; + + pinctrl-names = "default"; + pinctrl-0 = <&pmic_irq_pins_default>; + + interrupt-parent = <&main_gpio0>; + interrupts = <68 IRQ_TYPE_EDGE_FALLING>; + + /* NOTICE: + * + * We could use "tps65219-gpio" here with GPO1 (EN-DCDC-1V8) + * and GPO2 (CARRIER_PWR_EN for SD-Card and I2C1 devices) enabled, + * but will skip it for now and trust the bootloader or TPS-NVM for the + * correct settings correctly. + * + * For now we declare vcc_1v8_sys as being fixed. + * + */ + regulators { + buck1_30_reg: buck1 { + regulator-name = "VDD_CORE"; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + regulator-boot-on; + regulator-always-on; + }; + + buck2_30_reg: buck2 { + regulator-name = "VCC3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + buck3_30_reg: buck3 { + regulator-name = "VDD_LPDDR4"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo2_30_reg: ldo2 { + regulator-name = "VDDAR_CORE"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo3_30_reg: ldo3 { + regulator-name = "VDDA_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo4_30_reg: ldo4 { + regulator-name = "VDDA_2V5"; + regulator-min-microvolt = <2500000>; + regulator-max-microvolt = <2500000>; + regulator-boot-on; + regulator-always-on; + }; + }; + }; +}; + +&main_i2c1 { + status = "okay"; +}; + +&sdhci0 { /* eMMC */ + status = "okay"; +}; + +&sdhci1 { /* SD */ + status = "okay"; + + vmmc-supply = <&vcc_3v3_sys>; + vqmmc-supply = <&ldo1_sd_1v8_reg>; +}; + +&cpsw3g { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&main_mdio1_pins_default + &main_rgmii2_pins_default>; +}; + +&cpsw_port1 { + status = "disabled"; +}; + +/* + * Use a fixed phy for emac2. + * that's rgmii2 + */ +&cpsw_port2 { + status = "okay"; + phy-mode = "rgmii-rxid"; + + fixed-link { + speed = <1000>; + full-duplex; + }; +}; + +&cpsw3g_mdio { + status = "disabled"; +}; + +&usbss1 { + status = "okay"; + ti,vbus-divider; +}; + +&usb1 { + status = "okay"; + dr_mode = "host"; + pinctrl-names = "default"; + pinctrl-0 = <&usb1_pins_default>; +}; diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-750-8xxx-common.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-8xxx-common.dtsi new file mode 100644 index 000000000000..41aa9ae2b42b --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-8xxx-common.dtsi @@ -0,0 +1,383 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Common dtsi for AM62x based WAGO devices + * + * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ + * + * Copyright (C) 2025 WAGO GmbH & Co. KG + */ + +#include +#include +#include "k3-am625.dtsi" + +/ { + aliases { + serial2 = &main_uart0; + serial1 = &main_uart2; + serial4 = &main_uart4; + mmc0 = &sdhci1; + mmc1 = &sdhci0; + ethernet0 = &cpsw_port1; + ethernet1 = &cpsw_port2; + usb0 = &usb0; + watchdog0 = &main_rti0; + watchdog1 = &watchdog_ext; + watchdog2 = &main_rti1; + }; + + opp-table { + opp-200000000 { + opp-microvolt = <750000>; + }; + + opp-400000000 { + opp-microvolt = <750000>; + }; + + opp-600000000 { + opp-microvolt = <750000>; + }; + + opp-800000000 { + opp-microvolt = <750000>; + }; + + opp-1000000000 { + opp-microvolt = <750000>; + }; + + opp-1250000000 { + opp-microvolt = <750000>; + }; + + opp-1400000000 { + opp-hz = /bits/ 64 <1400000000>; + opp-microvolt = <850000>; + opp-supported-hw = <0x01 0x0004>; + clock-latency-ns = <6000000>; + }; + }; + + chosen { + stdout-path = "serial2:115200n8"; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + ramoops@9ca00000 { + compatible = "ramoops"; + reg = <0x00 0x9ca00000 0x00 0x00100000>; + record-size = <0x8000>; + console-size = <0x8000>; + ftrace-size = <0x00>; + pmsg-size = <0x8000>; + }; + + secure_tfa_ddr: tfa@9e780000 { + reg = <0x00 0x9e780000 0x00 0x80000>; + alignment = <0x1000>; + no-map; + }; + + secure_ddr: optee@9e800000 { + reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */ + alignment = <0x1000>; + no-map; + }; + + wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9db00000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x9db00000 0x00 0xc00000>; + no-map; + }; + + mcu_m4fss_dma_memory_region: m4f-dma-memory@9cb00000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x9cb00000 0x00 0x100000>; + no-map; + }; + + mcu_m4fss_memory_region: m4f-memory@9cc00000 { + compatible = "shared-dma-pool"; + reg = <0x00 0x9cc00000 0x00 0xe00000>; + no-map; + }; + }; + + vmain_pd: regulator-0 { + /* TPS6522005 Dual PMIC */ + compatible = "regulator-fixed"; + regulator-name = "vmain_pd"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + regulator-boot-on; + }; + + vcc_5v0: regulator-1 { + compatible = "regulator-fixed"; + regulator-name = "vcc_5v0"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vmain_pd>; + regulator-always-on; + regulator-boot-on; + }; + + vcc_3v3_sys: regulator-2 { + compatible = "regulator-fixed"; + regulator-name = "vcc_3v3_sys"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vmain_pd>; + regulator-always-on; + regulator-boot-on; + }; + + watchdog_ext: watchdog { + compatible = "linux,wdt-gpio"; + pinctrl-names = "default"; + pinctrl-0 = <&wdg_ext_pins_default>; + hw_algo = "toggle"; + hw_margin_ms = <1120>; /* STWD100xY: min. 1120, typ. 1600 */ + en-gpios = <&main_gpio0 42 GPIO_ACTIVE_LOW>; + gpios = <&main_gpio1 30 GPIO_ACTIVE_LOW>; + }; + + wsysinit: wsysinit_init { + compatible = "wago,sysinit"; + + tty,rs232-485 = "ttyS0"; + }; +}; + +&main_pmx0 { + main_uart0_pins_default: main-uart0-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14) UART0_RXD */ + AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */ + >; + }; + + main_uart2_pins_default: main-uart2-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x01d0, PIN_INPUT, 3) /* (A15) UART0_CTSn.UART2_RXD */ + AM62X_IOPAD(0x01d4, PIN_OUTPUT, 3) /* (B15) UART0_RTSn.UART2_TXD */ + >; + }; + + main_uart4_pins_default: main-uart4-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x0b0, PIN_INPUT, 3) /* (K22) UART4_RXD */ + AM62X_IOPAD(0x0b4, PIN_OUTPUT, 3) /* (K24) UART4_TXD */ + AM62X_IOPAD(0x09c, PIN_OUTPUT_PULLDOWN, 7) /* (V25) GPIO0_38 (RS-DE) */ + >; + }; + + main_i2c0_pins_default: main-i2c0-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x1e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */ + AM62X_IOPAD(0x1e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */ + >; + }; + + main_i2c1_pins_default: main-i2c1-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */ + AM62X_IOPAD(0x1ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */ + >; + }; + + main_mmc0_pins_default: main-mmc0-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */ + AM62X_IOPAD(0x218, PIN_OUTPUT, 0) /* (AB1) MMC0_CLK */ + AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */ + AM62X_IOPAD(0x210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */ + AM62X_IOPAD(0x20c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */ + AM62X_IOPAD(0x208, PIN_INPUT, 0) /* (Y4) MMC0_DAT3 */ + AM62X_IOPAD(0x204, PIN_INPUT, 0) /* (AB2) MMC0_DAT4 */ + AM62X_IOPAD(0x200, PIN_INPUT, 0) /* (AC1) MMC0_DAT5 */ + AM62X_IOPAD(0x1fc, PIN_INPUT, 0) /* (AD2) MMC0_DAT6 */ + AM62X_IOPAD(0x1f8, PIN_INPUT, 0) /* (AC2) MMC0_DAT7 */ + >; + }; + + main_mmc1_pins_default: main-mmc1-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x23c, PIN_INPUT, 0) /* (A21) MMC1_CMD */ + AM62X_IOPAD(0x234, PIN_OUTPUT, 0) /* (B22) MMC1_CLK */ + AM62X_IOPAD(0x230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */ + AM62X_IOPAD(0x22c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */ + AM62X_IOPAD(0x228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */ + AM62X_IOPAD(0x224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */ + AM62X_IOPAD(0x240, PIN_INPUT_PULLUP, 0) /* (D17) MMC1_SDCD */ + AM62X_IOPAD(0x244, PIN_INPUT_PULLUP, 0) /* (C17) MMC1_SDWP */ + >; + }; + + main_spi0_pins_default: main-spi0-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x01bc, PIN_OUTPUT, 0) /* (A14) SPI0_CLK */ + AM62X_IOPAD(0x01c0, PIN_INPUT, 0) /* (B13) SPI0_D0 */ + AM62X_IOPAD(0x01c4, PIN_OUTPUT, 0) /* (B14) SPI0_D1 */ + AM62X_IOPAD(0x01b4, PIN_OUTPUT, 0) /* (A13) SPI0_CS0 */ + >; + + }; + + main_spi2_pins_default: main-spi2-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x01b0, PIN_OUTPUT, 1) /* (A20) MCASP0_ACLKR.SPI2_CLK */ + AM62X_IOPAD(0x0194, PIN_INPUT, 1) /* (B19) MCASP0_AXR3.SPI2_D0 */ + AM62X_IOPAD(0x0198, PIN_OUTPUT, 1) /* (A19) MCASP0_AXR2.SPI2_D1 */ + AM62X_IOPAD(0x01ac, PIN_OUTPUT, 1) /* (E19) MCASP0_AFSR.SPI2_CS0 */ + AM62X_IOPAD(0x01a8, PIN_OUTPUT, 1) /* (D20) MCASP0_AFSX.SPI2_CS3 */ + >; + }; + + wdg_ext_pins_default: wdg-ext-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x00ac, PIN_OUTPUT_PULLUP | INPUT_EN, 7) /* (L21) GPMC0_CSn1.GPIO0_42 */ + AM62X_IOPAD(0x01f0, PIN_OUTPUT, 7) /* (A18) EXT_REFCLK1.GPIO1_30 */ + >; + }; + + pmic_irq_pins_default: pmic-irq-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x0114, PIN_INPUT, 7) /* (B24) MMC2_DAT0.GPIO0_68 */ + >; + }; +}; + +&main_uart0 { /* DGB UART */ + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&main_uart0_pins_default>; +}; + +&main_uart2 { /* KBUS Firmware download */ + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&main_uart2_pins_default>; +}; + +&main_uart4 { /* RS485 */ + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&main_uart4_pins_default>; +}; + +&main_i2c0 { /* type label */ + pinctrl-names = "default"; + pinctrl-0 = <&main_i2c0_pins_default>; + clock-frequency = <400000>; + + eeprom_type_label: at24c512@54 { + compatible = "atmel,24c512"; + reg = <0x54>; + pagesize = <128>; + }; +}; + +&main_spi0 { + pinctrl-names = "default"; + pinctrl-0 = <&main_spi0_pins_default>; + + dmas = <&main_pktdma 0xc300 0>, <&main_pktdma 0x4300 0>; + dma-names = "tx0", "rx0"; + + /* + * When this option is set, the McSPI EOW Interrupt will be used + * to signal when a DMA Transfer is done. This is needed for this + * platform to prevent unpredictable delays resulting from TX/RX + * completions within the UDMA driver. + */ + use-eow-interrupt; +}; + +&main_spi2 { + pinctrl-names = "default"; + pinctrl-0 = <&main_spi2_pins_default>; +}; + +&main_i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&main_i2c1_pins_default>; + clock-frequency = <400000>; + + rtc@52 { + compatible = "microcrystal,rv3028"; + reg = <0x52>; + // The backup goldcap is supplied with a higher voltage (+5V) + // then the RTC (+3,3) itself. It requires a special setup + // to avoid hardware failure. + use-goldcap-with-higher-voltage; + }; +}; + +&sdhci0 { /* eMMC */ + pinctrl-names = "default"; + pinctrl-0 = <&main_mmc0_pins_default>; + ti,driver-strength-ohm = <33>; + disable-wp; +}; + +&sdhci1 { /* SD */ + pinctrl-names = "default"; + pinctrl-0 = <&main_mmc1_pins_default>; + ti,driver-strength-ohm = <33>; + disable-wp; +}; + +&mailbox0_cluster0 { + mbox_m4_0: mbox-m4-0 { + ti,mbox-rx = <0 0 0>; + ti,mbox-tx = <1 0 0>; + }; +}; + +/* + * This system watchdog is reserved for internal use and is not user-configurable. + * It must not be modified or deleted to ensure consistent behavior! + */ +&main_rti1 { // watchdog@e010000 + timeout-sec = <120>; +}; + +/* + * AM6232 does not have main_rti2, main_rti3, and main_rti15 + * https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1218039/am623-stuck-in-sd-card-after-boot-up + */ +&main_rti2 { // watchdog@e020000 + status = "disabled"; +}; + +&main_rti3 { // watchdog@e030000 + status = "disabled"; +}; + +&main_rti15 { // watchdog@e0f0000 + status = "disabled"; +}; + +&usbss0 { + status = "okay"; + ti,vbus-divider; +}; + +&usb0 { + status = "okay"; + dr_mode = "peripheral"; +}; + +&mcu_m4fss { + mboxes = <&mailbox0_cluster0 &mbox_m4_0>; + memory-region = <&mcu_m4fss_dma_memory_region>, + <&mcu_m4fss_memory_region>; + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-kbus.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-kbus.dtsi new file mode 100644 index 000000000000..61cab828cc26 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-kbus.dtsi @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: GPL-2.0 +/* +* Common dtsi for AM62x WAGO based devices +* +* Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ +* Copyright (C) 2025 WAGO GmbH & Co. KG - https://www.wago.com/ +*/ + +&main_pmx0 { + kbus_pins_default: kbus-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x0100, PIN_INPUT_PULLUP, 7) /* (AC25) VOUT0_VSYNC.GPIO0_63 (kbus,nsync) */ + AM62X_IOPAD(0x0128, PIN_OUTPUT_PULLDOWN, 7) /* (B23) MMC2_SDWP.GPIO0_72 (kbus,nrst) */ + AM62X_IOPAD(0x0118, PIN_OUTPUT_PULLUP, 7) /* (D25) MMC2_CLK.GPIO0_69 (kbus,cmdsel) */ + AM62X_IOPAD(0x0104, PIN_OUTPUT_PULLUP, 7) /* (AC24) VOUT0_PCLK.GPIO0_64 (kbus,nirq) */ + AM62X_IOPAD(0x0120, PIN_INPUT_PULLUP, 7) /* (C24) MMC2_CMD.GPIO0_70 (kbus,nerr) */ + AM62X_IOPAD(0x0124, PIN_INPUT_PULLUP, 7) /* (A23) MMC2_SDCD.GPIO0_71 (kbus,nrdy) */ + >; + }; +}; + +&main_spi0 { + spi-rt; + spi-rt-prio = <81>; + + kbus@0 { + pinctrl-names = "default"; + pinctrl-0 = <&kbus_pins_default>; + compatible = "wago,spi-kbus"; + reg = <0>; + spi-max-frequency = <25000000>; + + kbus,reset-on-boot; + kbus,renesas; + + /* + * kbus,cmdsel-gpio is used to signal the need for an update + * while the KBUS slave cpu is being reset. Its low level + * forces an update. + */ + kbus,force-update-detection; + + /* + * announce used tty-device in /sys/class/wago/system. + * is needed to link this device to /dev/ttyKbus + */ + /* TODO: check serial device name in user-space */ + kbus,tty-device = "ttyS1"; /* corresponds to &uart2*/ + + /* some should be active low, keep all to high for compatibility reasons */ + kbus,nrst-gpio = <&main_gpio0 72 GPIO_ACTIVE_LOW>; + kbus,nsync-gpio = <&main_gpio0 63 GPIO_ACTIVE_HIGH>; + kbus,cmdsel-gpio = <&main_gpio0 69 GPIO_ACTIVE_HIGH>; + kbus,nirq-gpio = <&main_gpio0 64 GPIO_ACTIVE_HIGH>; + kbus,nerr-gpio = <&main_gpio0 70 GPIO_ACTIVE_HIGH>; + kbus,nrdy-gpio = <&main_gpio0 71 GPIO_ACTIVE_HIGH>; + }; +}; diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-rs485.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-rs485.dtsi new file mode 100644 index 000000000000..f6db62c560a5 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-rs485.dtsi @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Common dtsi for AM62x WAGO based devices + * + * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ + * Copyright (C) 2025 WAGO GmbH & Co. KG - https://www.wago.com/ + */ + +&main_i2c1 { + /* + * PCA9538, 8-Bit I/O Expander + */ + io_exp_8bit: io-exp-8bit@71 { + compatible = "nxp,pca9538"; + reg = <0x71>; + gpio-controller; + #gpio-cells = <2>; + gpio-line-names = "RS.TERM-EN", "RS.SLR", + "+5V0-FB-ENA", "IO3", + "BIAS.EN", "BIAS.HIR", + "IO6", "IO7"; + + rs485-5v { /* +5V0-FB-ENA */ + gpio-hog; + gpios = <2 GPIO_ACTIVE_HIGH>; + output-high; + }; + }; +}; + +&main_uart4 { /* RS485 Interface */ + rts-gpios = <&main_gpio0 38 GPIO_ACTIVE_HIGH>; + rs485-term-gpios = <&io_exp_8bit 0 GPIO_ACTIVE_HIGH>; + rs485-rts-active-high; + linux,rs485-enabled-at-boot-time; +}; diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-rtc.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-rtc.dtsi new file mode 100644 index 000000000000..959d243f151d --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-rtc.dtsi @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Common Real-Time-Clock dtsi for AM62x WAGO based devices + * + * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ + * Copyright (C) 2025 WAGO GmbH & Co. KG - https://www.wago.com/ + */ + +&main_i2c1 { + rtc@52 { + compatible = "microcrystal,rv3028"; + reg = <0x52>; + + /* + * The backup goldcap is supplied with a higher voltage (+5V) + * then the RTC (+3,3) itself. It requires a special setup + * to avoid hardware failure. + */ + use-goldcap-with-higher-voltage; + }; +}; diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-tpm.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-tpm.dtsi new file mode 100644 index 000000000000..f75b3cec3647 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-tpm.dtsi @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Common Trusted Platform Module dtsi for AM62x based WAGO devices + * + * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ + * Copyright (C) 2025 WAGO GmbH & Co. KG - https://www.wago.com/ + */ + +&main_pmx0 { + tpm_pins_default: tpm-pins-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x010c, PIN_INPUT, 7) /* (E23) MMC2_DAT2.GPIO0_66 */ + >; + }; +}; + +&main_spi2 { + slb9670: SLB9670@0 { + compatible = "infineon,slb9670", "tis,tpm2-spi", "tcg,tpm_tis-spi"; + reg = <0>; + #gpio-cells = <2>; + pinctrl-names = "default"; + pinctrl-0 = <&tpm_pins_default>; + + interrupt-parent = <&main_gpio0>; + interrupts = <66 IRQ_TYPE_EDGE_FALLING>; + #address-cells = <1>; + #size-cells = <0>; + spi-max-frequency = <43000000>; + }; +}; diff --git a/arch/arm64/configs/am6xxx_defconfig b/arch/arm64/configs/am6xxx_defconfig new file mode 100644 index 000000000000..3fab8b4957d2 --- /dev/null +++ b/arch/arm64/configs/am6xxx_defconfig @@ -0,0 +1,425 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_JIT=y +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_MEMCG=y +CONFIG_BLK_CGROUP=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y +CONFIG_NAMESPACES=y +CONFIG_USER_NS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PROFILING=y +CONFIG_KEXEC_FILE=y +CONFIG_ARCH_K3=y +CONFIG_ARM64_VA_BITS_48=y +CONFIG_NR_CPUS=4 +CONFIG_COMPAT=y +CONFIG_RANDOMIZE_BASE=y +# CONFIG_EFI is not set +# CONFIG_SUSPEND is not set +CONFIG_PM=y +CONFIG_CPU_IDLE=y +CONFIG_ARM_PSCI_CPUIDLE=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y +CONFIG_CPUFREQ_DT=y +CONFIG_ARM_SCMI_CPUFREQ=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_THROTTLING=y +# CONFIG_IOSCHED_BFQ is not set +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_SWAP is not set +# CONFIG_SLUB_CPU_PARTIAL is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_PAGE_REPORTING=y +CONFIG_KSM=y +CONFIG_MEMORY_FAILURE=y +CONFIG_CMA=y +CONFIG_CMA_AREAS=19 +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_INET_ESP=y +CONFIG_INET_ESPINTCP=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_IPV6_SIT=m +CONFIG_NETFILTER=y +CONFIG_BRIDGE_NETFILTER=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NETFILTER_XTABLES_COMPAT=y +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_IP_VS=m +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_NFCT=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP6_NF_IPTABLES=m +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_NET_DSA=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_CBS=m +CONFIG_NET_SCH_ETF=m +CONFIG_NET_SCH_TAPRIO=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_CGROUP=y +CONFIG_NET_CLS_FLOWER=m +CONFIG_NET_CLS_MATCHALL=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_GATE=m +CONFIG_CGROUP_NET_PRIO=y +# CONFIG_WIRELESS is not set +CONFIG_NFC=y +CONFIG_PAGE_POOL_STATS=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_FW_LOADER_USER_HELPER=y +CONFIG_VEXPRESS_CONFIG=y +CONFIG_MHI_BUS=m +CONFIG_ARM_SCMI_PROTOCOL=y +CONFIG_MTD=y +# CONFIG_MTD_OF_PARTS is not set +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_SPI_NOR=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_NBD=m +CONFIG_SRAM=y +CONFIG_EEPROM_AT24=y +CONFIG_SCSI=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_SCSI_SAS_LIBSAS=y +# CONFIG_SCSI_LOWLEVEL is not set +CONFIG_NETDEVICES=y +CONFIG_DUMMY=m +CONFIG_MACVLAN=m +CONFIG_IPVLAN=m +CONFIG_VXLAN=m +CONFIG_TUN=y +CONFIG_VETH=m +CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=y +CONFIG_NET_DSA_MICROCHIP_KSZ_SPI=y +# CONFIG_NET_VENDOR_ALACRITECH is not set +# CONFIG_NET_VENDOR_AMAZON is not set +# CONFIG_NET_VENDOR_AMD is not set +# CONFIG_NET_VENDOR_AQUANTIA is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_ASIX is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CADENCE is not set +# CONFIG_NET_VENDOR_CAVIUM is not set +# CONFIG_NET_VENDOR_CORTINA is not set +# CONFIG_NET_VENDOR_DAVICOM is not set +# CONFIG_NET_VENDOR_ENGLEDER is not set +# CONFIG_NET_VENDOR_EZCHIP is not set +# CONFIG_NET_VENDOR_FUNGIBLE is not set +# CONFIG_NET_VENDOR_GOOGLE is not set +# CONFIG_NET_VENDOR_HISILICON is not set +# CONFIG_NET_VENDOR_HUAWEI is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_ADI is not set +# CONFIG_NET_VENDOR_LITEX is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_MICROSEMI is not set +# CONFIG_NET_VENDOR_MICROSOFT is not set +# CONFIG_NET_VENDOR_NI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NETRONOME is not set +# CONFIG_NET_VENDOR_PENSANDO is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_RENESAS is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SOLARFLARE is not set +# CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_SOCIONEXT is not set +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_NET_VENDOR_SYNOPSYS is not set +CONFIG_TI_K3_AM65_CPSW_NUSS=y +CONFIG_TI_K3_AM65_CPSW_SWITCHDEV=y +# CONFIG_NET_VENDOR_VERTEXCOM is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WANGXUN is not set +# CONFIG_NET_VENDOR_WIZNET is not set +# CONFIG_NET_VENDOR_XILINX is not set +CONFIG_ADIN_PHY=y +CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y +CONFIG_MDIO_BUS_MUX_MMIOREG=y +# CONFIG_USB_NET_DRIVERS is not set +# CONFIG_WLAN is not set +CONFIG_NET_FAILOVER=y +CONFIG_INPUT_EVDEV=y +# CONFIG_KEYBOARD_ATKBD is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m +# CONFIG_SERIO is not set +CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_8250_OMAP=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_RPMSG_TTY=y +CONFIG_HW_RANDOM=y +CONFIG_TCG_TPM=y +CONFIG_TCG_TIS=y +CONFIG_TCG_TIS_SPI=y +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_MUX_PCA954x=y +CONFIG_I2C_OMAP=y +CONFIG_SPI=y +CONFIG_SPI_CADENCE_QUADSPI=y +CONFIG_SPI_DESIGNWARE=y +CONFIG_SPI_OMAP24XX=y +CONFIG_SPI_PL022=y +CONFIG_SPI_SPIDEV=y +# CONFIG_PTP_1588_CLOCK_KVM is not set +CONFIG_PINCTRL=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_GPIO_DAVINCI=y +CONFIG_GPIO_DWAPB=y +CONFIG_GPIO_GENERIC_PLATFORM=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_SYSCON_REBOOT_MODE=y +# CONFIG_HWMON is not set +CONFIG_THERMAL=y +CONFIG_K3_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_SYSFS=y +CONFIG_GPIO_WATCHDOG=y +CONFIG_K3_RTI_WATCHDOG=y +CONFIG_MFD_TPS65219=y +# CONFIG_MFD_VEXPRESS_SYSREG is not set +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_TPS65219=y +# CONFIG_HID_SUPPORT is not set +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +# CONFIG_USB_DEFAULT_PERSIST is not set +CONFIG_USB_OTG=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_DWC3=y +# CONFIG_USB_DWC3_KEYSTONE is not set +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_ULPI=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=32 +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_FUNCTIONFS=m +CONFIG_USB_MASS_STORAGE=y +CONFIG_MMC=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_ARMMMCI=y +# CONFIG_MMC_STM32_SDMMC is not set +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_AM654=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PCA955X=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_LEDS_TRIGGER_PANIC=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_RV3028=y +CONFIG_DMADEVICES=y +CONFIG_TI_K3_UDMA=y +CONFIG_TI_K3_UDMA_GLUE_LAYER=y +CONFIG_SYNC_FILE=y +CONFIG_UIO=y +CONFIG_UIO_PDRV_GENIRQ=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VHOST_MENU is not set +# CONFIG_SURFACE_PLATFORMS is not set +CONFIG_CLK_VEXPRESS_OSC=y +CONFIG_COMMON_CLK_SCMI=y +CONFIG_COMMON_CLK_CS2000_CP=y +CONFIG_TI_SCI_CLK=y +CONFIG_HWSPINLOCK=y +CONFIG_MAILBOX=y +CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y +CONFIG_IOMMU_IO_PGTABLE_DART=y +CONFIG_ARM_SMMU=y +CONFIG_ARM_SMMU_V3=y +CONFIG_REMOTEPROC=y +CONFIG_REMOTEPROC_CDEV=y +CONFIG_RPMSG_CHAR=y +CONFIG_RPMSG_CTRL=y +CONFIG_RPMSG_VIRTIO=y +CONFIG_TI_SCI_PM_DOMAINS=y +CONFIG_PM_DEVFREQ=y +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +CONFIG_DEVFREQ_GOV_USERSPACE=y +CONFIG_MEMORY=y +CONFIG_OMAP_GPMC=y +CONFIG_PWM=y +CONFIG_TI_SCI_INTR_IRQCHIP=y +CONFIG_TI_SCI_INTA_IRQCHIP=y +CONFIG_RESET_CONTROLLER=y +CONFIG_RESET_GPIO=y +CONFIG_RESET_SIMPLE=y +CONFIG_RESET_TI_SCI=y +CONFIG_TEE=y +CONFIG_OPTEE=y +CONFIG_MUX_MMIO=y +CONFIG_EXT2_FS=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_AUTOFS_FS=y +CONFIG_FUSE_FS=m +CONFIG_CUSE=m +CONFIG_OVERLAY_FS=m +CONFIG_VFAT_FS=y +CONFIG_EXFAT_FS=m +CONFIG_NTFS3_FS=m +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +CONFIG_SQUASHFS=y +CONFIG_PSTORE=y +CONFIG_PSTORE_CONSOLE=y +CONFIG_PSTORE_RAM=y +CONFIG_NFS_FS=y +CONFIG_NFS_V4=y +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_ROOT_NFS=y +# CONFIG_NFS_V4_2_READ_PLUS is not set +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_SECURITY=y +CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity,bpf" +CONFIG_INIT_STACK_NONE=y +CONFIG_CRYPTO_RSA=y +CONFIG_CRYPTO_DH=m +CONFIG_CRYPTO_ECDH=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_BLAKE2B=m +CONFIG_CRYPTO_CMAC=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_XXHASH=m +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_USER_API_RNG=m +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_SM3_ARM64_CE=m +CONFIG_CRYPTO_AES_ARM64_BS=m +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_DEV_CCREE=m +CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +CONFIG_PKCS7_MESSAGE_PARSER=y +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_PACKING=y +CONFIG_INDIRECT_PIO=y +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=32 +CONFIG_IRQ_POLL=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_FS=y +CONFIG_FUNCTION_TRACER=y +CONFIG_MEMTEST=y