From 6373fa5baf0fbf7c099234630ae79e813fac37f0 Mon Sep 17 00:00:00 2001 From: Heinrich Toews Date: Thu, 18 Jun 2026 12:39:44 +0200 Subject: [PATCH] arm64: dts: ti: k3-am623-pfc-750-8400: add Rev.3 support via DT overlay-boot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The PFC400-750-8400 exists in two hardware revisions, each consisting of several sub-PCBs identified by a Leiterplattenkennung (LPK). Rev.2 (LPK p0003xxx) was supported by a monolithic DTS. Rev.3 (LPK p0004xxx) introduces new sub-PCB variants that cannot be described alongside Rev.2 in a single static DTS. Overlay-boot is introduced to support both revisions simultaneously. U-Boot reads the LPK from each sub-PCB's ID EEPROM at boot and applies the matching set of DTBOs to the shared base DTB. Base DTS restructured: - Strip k3-am623-pfc-750-8400.dts to the minimal shared base; remove direct includes of wosm, baseboard, kbus and interaction dtsis. - Extract TPS65219 PMIC, 4 GiB memory map, voltage regulators and SD card voltage-selector GPIO into new k3-am623-pfc-750-84xx-wosm-base.dtsi, shared across both revisions. - Correct buck1 VDD_CORE min-microvolt from 750 mV to 850 mV, per TI recommendation for stable CPU frequency scaling. The PMIC NVM was updated accordingly on Rev.3 hardware. - Enable DTC symbol export (-@) for the 750-8400 DTB so overlays can resolve labeled references at runtime. - Export a stable leds_m4 symbol on the M4 LED wrapper node and mark it status = disabled; defer LED child nodes and activation entirely to the interaction overlay, establishing a clean overlay interface. - Add fitImage.its packaging the base DTB and all nine DTBOs into a U-Boot FIT image for overlay-boot. DTS overlay compatibility fixes applied to shared dtsis: - Replace bare `/ {` with `&{/}` in kbus, interaction and wosm dtsis. - Add explicit #address-cells/#size-cells to &main_i2c1, &mcu_spi0, &main_spi0 and &ospi0 fragments to prevent DTC standalone warnings. - Move rts-gpios from k3-am623-pfc-rs485.dtsi to the board-level k3-am623-pfc-750-8xxx-common.dtsi. - Strip shared interaction dtsi to truly common i2c1 peripherals only (HW-ID EEPROM, ST25DV NFC tag); PCA9552 drivers, their reset-pin pinctrl and all leds-group-multicolor RGB groups were incorrectly shared and are moved exclusively into the p0003965 overlay. Nine hardware-variant overlays across four subsystems: WOSM: - p0004037 (Rev.2): baseline WOSM, no additions. - p0004263 (Rev.3): adds MRAM reset GPIO, dual EM-module reset GPIOs, second RS485 (UART3) pinctrl and CAN (MCAN0) pinctrl. Base board: - p0003964 (Rev.2): restores microchip,single-led-mode on KSZ9477. - p0004305 (Rev.3): corrects KSZ9477 Ethernet port labels to reflect changed port-to-PHY routing on Rev.3 PCB (ethX1<->ethX3, ethEM<->ethX4). baseboard.dtsi retains Rev.2 labels as default. - p0004224: overrides UART4 RS485 pinctrl and GPIO RTS for boards with a relocated RS485 transceiver. Local bus: - p0003978 (Rev.2): baseline K-Bus / OMS configuration. - p0004067 (Rev.3): routes RUN/STOP switches through dedicated MCU GPIOs; disables the legacy combined oms_stop_run node. Interaction board: - p0003965 (Rev.2): owns the full PCA9552 LED subsystem — reset-pin pinctrl, led_bar60/61 drivers and ten leds-group-multicolor RGB groups. - p0004065 (Rev.3): activates the M4 firmware LED wrapper (&leds_m4) and defines all eight LED child nodes. Signed-off-by: Heinrich Toews --- arch/arm64/boot/dts/ti/Makefile | 10 + .../dts/ti/k3-am623-pfc-750-8400-fitImage.its | 166 ++++++++ .../boot/dts/ti/k3-am623-pfc-750-8400.dts | 27 +- .../ti/k3-am623-pfc-750-84xx-baseboard.dtsi | 8 +- .../ti/k3-am623-pfc-750-84xx-interaction.dtsi | 363 +---------------- .../dts/ti/k3-am623-pfc-750-84xx-kbus.dtsi | 5 +- .../ti/k3-am623-pfc-750-84xx-wosm-base.dtsi | 144 +++++++ .../dts/ti/k3-am623-pfc-750-84xx-wosm.dtsi | 106 +---- .../dts/ti/k3-am623-pfc-750-8xxx-common.dtsi | 1 + arch/arm64/boot/dts/ti/k3-am623-pfc-kbus.dtsi | 3 + .../arm64/boot/dts/ti/k3-am623-pfc-rs485.dtsi | 4 +- arch/arm64/boot/dts/ti/k3-am623-pfc-rtc.dtsi | 5 +- .../ti/overlay-750-8400-base-p0003964.dtso | 16 + .../ti/overlay-750-8400-base-p0004224.dtso | 25 ++ .../ti/overlay-750-8400-base-p0004305.dtso | 36 ++ ...overlay-750-8400-interaction-p0003965.dtso | 375 ++++++++++++++++++ ...overlay-750-8400-interaction-p0004065.dtso | 58 +++ .../overlay-750-8400-localbus-p0003978.dtso | 10 + .../overlay-750-8400-localbus-p0004067.dtso | 50 +++ .../ti/overlay-750-8400-wosm-p0004037.dtso | 10 + .../ti/overlay-750-8400-wosm-p0004263.dtso | 45 +++ 21 files changed, 1003 insertions(+), 464 deletions(-) create mode 100644 arch/arm64/boot/dts/ti/k3-am623-pfc-750-8400-fitImage.its create mode 100644 arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-wosm-base.dtsi create mode 100644 arch/arm64/boot/dts/ti/overlay-750-8400-base-p0003964.dtso create mode 100644 arch/arm64/boot/dts/ti/overlay-750-8400-base-p0004224.dtso create mode 100644 arch/arm64/boot/dts/ti/overlay-750-8400-base-p0004305.dtso create mode 100644 arch/arm64/boot/dts/ti/overlay-750-8400-interaction-p0003965.dtso create mode 100644 arch/arm64/boot/dts/ti/overlay-750-8400-interaction-p0004065.dtso create mode 100644 arch/arm64/boot/dts/ti/overlay-750-8400-localbus-p0003978.dtso create mode 100644 arch/arm64/boot/dts/ti/overlay-750-8400-localbus-p0004067.dtso create mode 100644 arch/arm64/boot/dts/ti/overlay-750-8400-wosm-p0004037.dtso create mode 100644 arch/arm64/boot/dts/ti/overlay-750-8400-wosm-p0004263.dtso diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile index f2f6e2965119..c0b02aa73cbf 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -27,6 +27,15 @@ dtb-$(CONFIG_ARCH_K3) += k3-am623-pfc-750-8302.dtb dtb-$(CONFIG_ARCH_K3) += k3-am623-pfc-750-830x-ems.dtb dtb-$(CONFIG_ARCH_K3) += k3-am623-pfc-750-8400.dtb dtb-$(CONFIG_ARCH_K3) += k3-am623-spehvac.dtb +dtb-$(CONFIG_ARCH_K3) += overlay-750-8400-wosm-p0004037.dtbo \ + overlay-750-8400-wosm-p0004263.dtbo \ + overlay-750-8400-base-p0003964.dtbo \ + overlay-750-8400-base-p0004305.dtbo \ + overlay-750-8400-base-p0004224.dtbo \ + overlay-750-8400-localbus-p0003978.dtbo \ + overlay-750-8400-localbus-p0004067.dtbo \ + overlay-750-8400-interaction-p0003965.dtbo \ + overlay-750-8400-interaction-p0004065.dtbo # Boards with AM62Ax SoC dtb-$(CONFIG_ARCH_K3) += k3-am62a7-sk.dtb @@ -87,3 +96,4 @@ DTC_FLAGS_k3-am6548-iot2050-advanced-m2 += -@ DTC_FLAGS_k3-j721e-common-proc-board += -@ DTC_FLAGS_k3-j721s2-common-proc-board += -@ DTC_FLAGS_k3-am623-pfc-750-8302 += -@ +DTC_FLAGS_k3-am623-pfc-750-8400 += -@ diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-750-8400-fitImage.its b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-8400-fitImage.its new file mode 100644 index 000000000000..cdc908e6747d --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-8400-fitImage.its @@ -0,0 +1,166 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; + +/ { + description = "WAGO AM623 PFC FIT Image"; + #address-cells = <1>; + + images { + kernel { + description = "Linux Kernel"; + data = /incbin/("../../Image"); + type = "kernel"; + arch = "arm64"; + os = "linux"; + compression = "none"; + load = <0x80080000>; + entry = <0x80080000>; + hash-1 { + algo = "sha256"; + }; + }; + + fdt-PFC-750-840x { + description = "Flattened Device Tree blob"; + data = /incbin/("k3-am623-pfc-750-8400.dtb"); + type = "flat_dt"; + arch = "arm64"; + compression = "none"; + load = <0x88000000>; + + hash-1 { + algo = "sha256"; + }; + }; + + img-overlay-PFC-750-840x-wosm-p0004037 { + description = "WOSM Overlay"; + data = /incbin/("overlay-750-8400-wosm-p0004037.dtbo"); + type = "flat_dt"; + arch = "arm64"; + compression = "none"; + + }; + + img-overlay-PFC-750-840x-wosm-p0004263 { + description = "WOSM Overlay p0004263"; + data = /incbin/("overlay-750-8400-wosm-p0004263.dtbo"); + type = "flat_dt"; + arch = "arm64"; + compression = "none"; + }; + + img-overlay-PFC-750-840x-base-p0003964 { + description = "Base Overlay"; + data = /incbin/("overlay-750-8400-base-p0003964.dtbo"); + type = "flat_dt"; + arch = "arm64"; + compression = "none"; + + }; + + img-overlay-PFC-750-840x-base-p0004224 { + description = "Base Overlay p0004224"; + data = /incbin/("overlay-750-8400-base-p0004224.dtbo"); + type = "flat_dt"; + arch = "arm64"; + compression = "none"; + }; + + img-overlay-PFC-750-840x-base-p0004305 { + description = "Base Overlay p0004305"; + data = /incbin/("overlay-750-8400-base-p0004305.dtbo"); + type = "flat_dt"; + arch = "arm64"; + compression = "none"; + }; + + img-overlay-PFC-750-840x-localbus-p0003978 { + description = "Localbus Overlay"; + data = /incbin/("overlay-750-8400-localbus-p0003978.dtbo"); + type = "flat_dt"; + arch = "arm64"; + compression = "none"; + + }; + + img-overlay-PFC-750-840x-localbus-p0004067 { + description = "Localbus Overlay p0004067"; + data = /incbin/("overlay-750-8400-localbus-p0004067.dtbo"); + type = "flat_dt"; + arch = "arm64"; + compression = "none"; + }; + + img-overlay-PFC-750-840x-interaction-p0003965 { + description = "Interaction Overlay"; + data = /incbin/("overlay-750-8400-interaction-p0003965.dtbo"); + type = "flat_dt"; + arch = "arm64"; + compression = "none"; + + }; + + img-overlay-PFC-750-840x-interaction-p0004065 { + description = "Interaction Overlay p0004065"; + data = /incbin/("overlay-750-8400-interaction-p0004065.dtbo"); + type = "flat_dt"; + arch = "arm64"; + compression = "none"; + }; + }; + + configurations { + default = "conf-PFC-750-840x"; + conf-PFC-750-840x { + description = "Boot Linux kernel with base FDT and overlays"; + kernel = "kernel"; + fdt = "fdt-PFC-750-840x"; + }; + + ovl-750-840x-wosm-p0004037 { + description = "WOSM Overlay config"; + fdt = "img-overlay-PFC-750-840x-wosm-p0004037"; + }; + + ovl-750-840x-wosm-p0004263 { + description = "WOSM Overlay p0004263 config"; + fdt = "img-overlay-PFC-750-840x-wosm-p0004263"; + }; + + ovl-750-840x-base-p0003964 { + description = "Base Overlay config"; + fdt = "img-overlay-PFC-750-840x-base-p0003964"; + }; + + ovl-750-840x-base-p0004224 { + description = "Base Overlay p0004224 config"; + fdt = "img-overlay-PFC-750-840x-base-p0004224"; + }; + + ovl-750-840x-base-p0004305 { + description = "Base Overlay p0004305 config"; + fdt = "img-overlay-PFC-750-840x-base-p0004305"; + }; + + ovl-750-840x-localbus-p0003978 { + description = "Localbus Overlay config"; + fdt = "img-overlay-PFC-750-840x-localbus-p0003978"; + }; + + ovl-750-840x-localbus-p0004067 { + description = "Localbus Overlay p0004067 config"; + fdt = "img-overlay-PFC-750-840x-localbus-p0004067"; + }; + + ovl-750-840x-interaction-p0003965 { + description = "Interaction Overlay config"; + fdt = "img-overlay-PFC-750-840x-interaction-p0003965"; + }; + + ovl-750-840x-interaction-p0004065 { + description = "Interaction Overlay p0004065 config"; + fdt = "img-overlay-PFC-750-840x-interaction-p0004065"; + }; + }; +}; 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 index 8581fa398fb3..3747ff075237 100644 --- a/arch/arm64/boot/dts/ti/k3-am623-pfc-750-8400.dts +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-8400.dts @@ -6,14 +6,29 @@ * 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" +/dts-v1/; + +#include "k3-am623-pfc-750-8xxx-common.dtsi" +#include "k3-am623-pfc-750-84xx-wosm-base.dtsi" +#include "k3-am623-pfc-tpm.dtsi" / { compatible = "wago,am623-pfc-750_8400-100d", "wago,am623-pfc", "ti,am625"; model = "PFC400-750-8400"; + + aliases { + usb1 = &usb1; + ethernet0 = &cpsw_port2; + ethernet1 = &cpsw_port1; + }; + + leds_m4: leds-m4 { + compatible = "wago,m4-led-wrapper"; + remoteproc = <&mcu_m4fss>; + firmware-name = "wago-led-server-app.elf"; + wago,reset-on-init; + status = "disabled"; + }; }; &wsysinit { @@ -21,6 +36,10 @@ board,variant = "pfc400"; }; +&slb9670 { + status = "okay"; +}; + &main_spi2 { ti,spi-num-cs = <4>; 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 index b9f971a9b12b..0ea130e65a85 100644 --- 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 @@ -23,6 +23,9 @@ }; &mcu_spi0 { + #address-cells = <1>; + #size-cells = <0>; + ksz9477@0 { compatible = "microchip,ksz9477"; pinctrl-names = "default"; @@ -37,8 +40,6 @@ interrupt-parent = <&main_gpio0>; interrupts = <13 IRQ_TYPE_EDGE_FALLING>; - microchip,single-led-mode; - ports { #address-cells = <1>; #size-cells = <0>; @@ -90,6 +91,9 @@ }; &main_i2c1 { + #address-cells = <1>; + #size-cells = <0>; + eeprom_hw_id_bb: at24c02@54 { status = "disabled"; compatible = "atmel,24c02"; 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 index c69a237ce1f0..8b85868e39e1 100644 --- 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 @@ -9,15 +9,10 @@ #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 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; eeprom_hw_id_ib: at24c02@54 { @@ -27,250 +22,6 @@ 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>; - color = ; - default-state = "keep"; - linux,default-trigger = "timer"; - }; - - lb60_1: sys-green@1 { - label = "sys-green"; - reg = <1>; - color = ; - default-state = "keep"; - linux,default-trigger = "timer"; - }; - - lb60_2: sys-blue@2 { - label = "sys-blue"; - reg = <2>; - color = ; - default-state = "off"; - }; - - lb60_3: run-red@3 { - label = "run-red"; - reg = <3>; - color = ; - default-state = "off"; - }; - - lb60_4: run-green@4 { - label = "run-green"; - reg = <4>; - color = ; - default-state = "off"; - }; - - lb60_5: run-blue@5 { - label = "run-blue"; - reg = <5>; - color = ; - default-state = "off"; - }; - - lb60_6: io-red@6 { - label = "io-red"; - reg = <6>; - color = ; - default-state = "off"; - }; - - lb60_7: io-green@7 { - label = "io-green"; - reg = <7>; - color = ; - default-state = "off"; - }; - - lb60_8: io-blue@8 { - label = "io-blue"; - reg = <8>; - color = ; - default-state = "off"; - }; - - lb60_9: em-red@9 { - label = "em-red"; - reg = <9>; - color = ; - default-state = "off"; - }; - - lb60_10: em-green@10 { - label = "em-green"; - reg = <10>; - color = ; - default-state = "off"; - }; - - lb60_11: em-blue@11 { - label = "em-blue"; - reg = <11>; - color = ; - default-state = "off"; - }; - - lb60_12: u1-red@12 { - label = "u1-red"; - reg = <12>; - color = ; - default-state = "off"; - }; - - lb60_13: u1-green@13 { - label = "u1-green"; - reg = <13>; - color = ; - default-state = "off"; - }; - - lb60_14: u1-blue@14 { - label = "u1-blue"; - reg = <14>; - color = ; - default-state = "off"; - }; - - lb60_15: sys-overwrite@15 { - label = "sys-overwrite"; - reg = <15>; - default-state = "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>; - color = ; - default-state = "off"; - }; - - lb61_1: u2-green@1 { - label = "u2-green"; - reg = <1>; - color = ; - default-state = "off"; - }; - - lb61_2: u2-blue@2 { - label = "u2-blue"; - reg = <2>; - color = ; - default-state = "off"; - }; - - lb61_3: u3-red@3 { - label = "u3-red"; - reg = <3>; - color = ; - default-state = "off"; - }; - - lb61_4: u3-green@4 { - label = "u3-green"; - reg = <4>; - color = ; - default-state = "off"; - }; - - lb61_5: u3-blue@5 { - label = "u3-blue"; - reg = <5>; - color = ; - default-state = "off"; - }; - - lb61_6: u4-red@6 { - label = "u4-red"; - reg = <6>; - color = ; - default-state = "off"; - }; - - lb61_7: u4-green@7 { - label = "u4-green"; - reg = <7>; - color = ; - default-state = "off"; - }; - - lb61_8: u4-blue@8 { - label = "u4-blue"; - reg = <8>; - color = ; - default-state = "off"; - }; - - lb61_9: u5-red@9 { - label = "u5-red"; - reg = <9>; - color = ; - default-state = "off"; - }; - - lb61_10: u5-green@10 { - label = "u5-green"; - reg = <10>; - color = ; - default-state = "off"; - }; - - lb61_11: u5-blue@11 { - label = "u5-blue"; - reg = <11>; - color = ; - default-state = "off"; - }; - - lb61_12: u6_r@12 { - label = "u6-red"; - reg = <12>; - color = ; - default-state = "off"; - }; - - lb61_13: u6_g@13 { - label = "u6-green"; - reg = <13>; - color = ; - default-state = "off"; - }; - - lb61_14: u6_b@14 { - label = "u6-blue"; - reg = <14>; - color = ; - default-state = "off"; - }; - }; - /* * Dynamic NFC/RFID tag IC with 4-Kbit EEPROM * @@ -284,112 +35,4 @@ compatible = "st25dv,st25dv04k"; reg = <0x53>; }; -}; - -/* - * Multicolor LED groups for PFC400 (RGB) - * Group triplets from PCA9552 into multicolor LEDs to enable - * led-class-multicolor and pattern trigger RGB support. - */ -/ { - sys_led: sys-led { - compatible = "leds-group-multicolor"; - label = "sys"; - color = ; - function = LED_FUNCTION_INDICATOR; - default-state = "keep"; - mc-allow-subled-writes; - leds = <&lb60_0 &lb60_1 &lb60_2>; - max-brightness = <255>; - }; - - run_led: run-led { - compatible = "leds-group-multicolor"; - label = "run"; - color = ; - function = LED_FUNCTION_INDICATOR; - default-state = "off"; - leds = <&lb60_3 &lb60_4 &lb60_5>; - max-brightness = <255>; - }; - - io_led: io-led { - compatible = "leds-group-multicolor"; - label = "io"; - color = ; - function = LED_FUNCTION_INDICATOR; - default-state = "off"; - leds = <&lb60_6 &lb60_7 &lb60_8>; - max-brightness = <255>; - }; - - em_led: em-led { - compatible = "leds-group-multicolor"; - label = "em"; - color = ; - function = LED_FUNCTION_INDICATOR; - default-state = "off"; - leds = <&lb60_9 &lb60_10 &lb60_11>; - max-brightness = <255>; - }; - - u1_led: u1-led { - compatible = "leds-group-multicolor"; - label = "u1"; - color = ; - function = LED_FUNCTION_INDICATOR; - default-state = "off"; - leds = <&lb60_12 &lb60_13 &lb60_14>; - max-brightness = <255>; - }; - - u2_led: u2-led { - compatible = "leds-group-multicolor"; - label = "u2"; - color = ; - function = LED_FUNCTION_INDICATOR; - default-state = "off"; - leds = <&lb61_0 &lb61_1 &lb61_2>; - max-brightness = <255>; - }; - - u3_led: u3-led { - compatible = "leds-group-multicolor"; - label = "u3"; - color = ; - function = LED_FUNCTION_INDICATOR; - default-state = "off"; - leds = <&lb61_3 &lb61_4 &lb61_5>; - max-brightness = <255>; - }; - - u4_led: u4-led { - compatible = "leds-group-multicolor"; - label = "u4"; - color = ; - function = LED_FUNCTION_INDICATOR; - default-state = "off"; - leds = <&lb61_6 &lb61_7 &lb61_8>; - max-brightness = <255>; - }; - - u5_led: u5-led { - compatible = "leds-group-multicolor"; - label = "u5"; - color = ; - function = LED_FUNCTION_INDICATOR; - default-state = "off"; - leds = <&lb61_9 &lb61_10 &lb61_11>; - max-brightness = <255>; - }; - - u6_led: u6-led { - compatible = "leds-group-multicolor"; - label = "u6"; - color = ; - function = LED_FUNCTION_INDICATOR; - default-state = "off"; - leds = <&lb61_12 &lb61_13 &lb61_14>; - max-brightness = <255>; - }; }; \ No newline at end of file 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 index 3fd3109515cf..57fc0c554784 100644 --- 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 @@ -8,7 +8,7 @@ #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 @@ -71,6 +71,9 @@ }; &main_i2c1 { + #address-cells = <1>; + #size-cells = <0>; + eeprom_hw_id_lb: at24c02@50 { status = "disabled"; compatible = "atmel,24c02"; diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-wosm-base.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-wosm-base.dtsi new file mode 100644 index 000000000000..96f81e43b9f8 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-750-84xx-wosm-base.dtsi @@ -0,0 +1,144 @@ +// SPDX-License-Identifier: GPL-2.0 + +/ { + compatible = "ti,am623-pfc", "ti,am625"; + + memory@80000000 { + 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>; + }; +}; + +&mcu_pmx0 { + 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 */ + >; + }; +}; + +&cpu0 { + cpu-supply = <&buck1_30_reg>; +}; + +&cpu1 { + cpu-supply = <&buck1_30_reg>; +}; + +&cpu2 { + cpu-supply = <&buck1_30_reg>; +}; + +&cpu3 { + cpu-supply = <&buck1_30_reg>; +}; + +&main_i2c0 { + 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 = <850000>; + regulator-max-microvolt = <850000>; + 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; + }; + }; + }; +}; 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 index 513b6ec55e75..18558074398a 100644 --- 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 @@ -6,17 +6,12 @@ * 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; - }; + #address-cells = <2>; + #size-cells = <2>; cpus { cpu@0 { @@ -71,6 +66,9 @@ }; &fss { + #address-cells = <2>; + #size-cells = <2>; + uio_mram: uio@500000000 { compatible = "uio_pdrv_genirq"; linux,uio-name = "UIO_OSPI_MRAM"; @@ -93,12 +91,6 @@ 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 { @@ -190,6 +182,8 @@ }; &ospi0 { + #address-cells = <1>; + #size-cells = <0>; compatible = "ti,am654-ospi"; pinctrl-names = "default"; pinctrl-0 = <&ospi0_pins_default>; @@ -242,6 +236,8 @@ }; &main_i2c0 { + #address-cells = <1>; + #size-cells = <0>; status = "okay"; eeprom_hw_id_wosm: at24c02@50 { @@ -250,86 +246,6 @@ 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 = <850000>; - 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 { 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 index 2e807ffbf082..663e84e979c2 100644 --- 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 @@ -286,6 +286,7 @@ status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_uart4_pins_default>; + rts-gpios = <&main_gpio0 38 GPIO_ACTIVE_HIGH>; }; &main_i2c0 { /* type label */ diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-kbus.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-kbus.dtsi index 61cab828cc26..07358b15a728 100644 --- a/arch/arm64/boot/dts/ti/k3-am623-pfc-kbus.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-kbus.dtsi @@ -20,6 +20,9 @@ }; &main_spi0 { + #address-cells = <1>; + #size-cells = <0>; + spi-rt; spi-rt-prio = <81>; diff --git a/arch/arm64/boot/dts/ti/k3-am623-pfc-rs485.dtsi b/arch/arm64/boot/dts/ti/k3-am623-pfc-rs485.dtsi index cd35d0181ff6..adb71b808038 100644 --- a/arch/arm64/boot/dts/ti/k3-am623-pfc-rs485.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-rs485.dtsi @@ -7,6 +7,9 @@ */ &main_i2c1 { + #address-cells = <1>; + #size-cells = <0>; + /* * PCA9538, 8-Bit I/O Expander */ @@ -29,7 +32,6 @@ }; &main_uart4 { /* RS485 Interface */ - rts-gpios = <&main_gpio0 38 GPIO_ACTIVE_HIGH>; /* RS485 termination is controlled via GPIO userspace tools */ 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 index 959d243f151d..085718ece3e9 100644 --- a/arch/arm64/boot/dts/ti/k3-am623-pfc-rtc.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am623-pfc-rtc.dtsi @@ -7,11 +7,14 @@ */ &main_i2c1 { + #address-cells = <1>; + #size-cells = <0>; + 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. diff --git a/arch/arm64/boot/dts/ti/overlay-750-8400-base-p0003964.dtso b/arch/arm64/boot/dts/ti/overlay-750-8400-base-p0003964.dtso new file mode 100644 index 000000000000..a2f26e0d37e8 --- /dev/null +++ b/arch/arm64/boot/dts/ti/overlay-750-8400-base-p0003964.dtso @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +/plugin/; + +#include "k3-pinctrl.h" +#include +#include +#include + +#include "k3-am623-pfc-750-84xx-baseboard.dtsi" + +&mcu_spi0 { + ksz9477@0 { + microchip,single-led-mode; + }; +}; diff --git a/arch/arm64/boot/dts/ti/overlay-750-8400-base-p0004224.dtso b/arch/arm64/boot/dts/ti/overlay-750-8400-base-p0004224.dtso new file mode 100644 index 000000000000..b26b160e3b1f --- /dev/null +++ b/arch/arm64/boot/dts/ti/overlay-750-8400-base-p0004224.dtso @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +/plugin/; + +#include "k3-pinctrl.h" +#include +#include +#include + +#include "k3-am623-pfc-750-84xx-baseboard.dtsi" + +&main_pmx0 { + 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(0x0098, PIN_OUTPUT_PULLDOWN, 7) /* (U23) GPIO0_37 (RS-DE) */ + >; + }; +}; + +&main_uart4 { + pinctrl-0 = <&main_uart4_pins_default>; + rts-gpios = <&main_gpio0 37 GPIO_ACTIVE_HIGH>; +}; diff --git a/arch/arm64/boot/dts/ti/overlay-750-8400-base-p0004305.dtso b/arch/arm64/boot/dts/ti/overlay-750-8400-base-p0004305.dtso new file mode 100644 index 000000000000..96d9b9542ba8 --- /dev/null +++ b/arch/arm64/boot/dts/ti/overlay-750-8400-base-p0004305.dtso @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +/plugin/; + +#include "k3-pinctrl.h" +#include +#include +#include + +#include "k3-am623-pfc-750-84xx-baseboard.dtsi" + +/* + * Rev.3 hardware has a different KSZ9477 port-to-PHY routing compared + * to Rev.2. Override the port labels accordingly. + */ +&mcu_spi0 { + ksz9477@0 { + ports { + port@0 { + label = "ethX1"; + }; + + port@2 { + label = "ethX3"; + }; + + port@3 { + label = "ethX4"; + }; + + port@4 { + label = "ethEM"; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/ti/overlay-750-8400-interaction-p0003965.dtso b/arch/arm64/boot/dts/ti/overlay-750-8400-interaction-p0003965.dtso new file mode 100644 index 000000000000..04b3572d223a --- /dev/null +++ b/arch/arm64/boot/dts/ti/overlay-750-8400-interaction-p0003965.dtso @@ -0,0 +1,375 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +/plugin/; + +#include "k3-pinctrl.h" +#include +#include +#include + +#include "k3-am623-pfc-750-84xx-interaction.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 { + #address-cells = <1>; + #size-cells = <0>; + + /* + * NXP PCA9552BS + * 16-Bit I2C-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>; + color = ; + default-state = "keep"; + linux,default-trigger = "timer"; + }; + + lb60_1: sys-green@1 { + label = "sys-green"; + reg = <1>; + color = ; + default-state = "keep"; + linux,default-trigger = "timer"; + }; + + lb60_2: sys-blue@2 { + label = "sys-blue"; + reg = <2>; + color = ; + default-state = "off"; + }; + + lb60_3: run-red@3 { + label = "run-red"; + reg = <3>; + color = ; + default-state = "off"; + }; + + lb60_4: run-green@4 { + label = "run-green"; + reg = <4>; + color = ; + default-state = "off"; + }; + + lb60_5: run-blue@5 { + label = "run-blue"; + reg = <5>; + color = ; + default-state = "off"; + }; + + lb60_6: io-red@6 { + label = "io-red"; + reg = <6>; + color = ; + default-state = "off"; + }; + + lb60_7: io-green@7 { + label = "io-green"; + reg = <7>; + color = ; + default-state = "off"; + }; + + lb60_8: io-blue@8 { + label = "io-blue"; + reg = <8>; + color = ; + default-state = "off"; + }; + + lb60_9: em-red@9 { + label = "em-red"; + reg = <9>; + color = ; + default-state = "off"; + }; + + lb60_10: em-green@10 { + label = "em-green"; + reg = <10>; + color = ; + default-state = "off"; + }; + + lb60_11: em-blue@11 { + label = "em-blue"; + reg = <11>; + color = ; + default-state = "off"; + }; + + lb60_12: u1-red@12 { + label = "u1-red"; + reg = <12>; + color = ; + default-state = "off"; + }; + + lb60_13: u1-green@13 { + label = "u1-green"; + reg = <13>; + color = ; + default-state = "off"; + }; + + lb60_14: u1-blue@14 { + label = "u1-blue"; + reg = <14>; + color = ; + default-state = "off"; + }; + + lb60_15: sys-overwrite@15 { + label = "sys-overwrite"; + reg = <15>; + default-state = "on"; + }; + }; + + /* + * NXP PCA9552BS + * 16-Bit I2C-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>; + color = ; + default-state = "off"; + }; + + lb61_1: u2-green@1 { + label = "u2-green"; + reg = <1>; + color = ; + default-state = "off"; + }; + + lb61_2: u2-blue@2 { + label = "u2-blue"; + reg = <2>; + color = ; + default-state = "off"; + }; + + lb61_3: u3-red@3 { + label = "u3-red"; + reg = <3>; + color = ; + default-state = "off"; + }; + + lb61_4: u3-green@4 { + label = "u3-green"; + reg = <4>; + color = ; + default-state = "off"; + }; + + lb61_5: u3-blue@5 { + label = "u3-blue"; + reg = <5>; + color = ; + default-state = "off"; + }; + + lb61_6: u4-red@6 { + label = "u4-red"; + reg = <6>; + color = ; + default-state = "off"; + }; + + lb61_7: u4-green@7 { + label = "u4-green"; + reg = <7>; + color = ; + default-state = "off"; + }; + + lb61_8: u4-blue@8 { + label = "u4-blue"; + reg = <8>; + color = ; + default-state = "off"; + }; + + lb61_9: u5-red@9 { + label = "u5-red"; + reg = <9>; + color = ; + default-state = "off"; + }; + + lb61_10: u5-green@10 { + label = "u5-green"; + reg = <10>; + color = ; + default-state = "off"; + }; + + lb61_11: u5-blue@11 { + label = "u5-blue"; + reg = <11>; + color = ; + default-state = "off"; + }; + + lb61_12: u6_r@12 { + label = "u6-red"; + reg = <12>; + color = ; + default-state = "off"; + }; + + lb61_13: u6_g@13 { + label = "u6-green"; + reg = <13>; + color = ; + default-state = "off"; + }; + + lb61_14: u6_b@14 { + label = "u6-blue"; + reg = <14>; + color = ; + default-state = "off"; + }; + }; +}; + +/* + * Multicolor LED groups for PFC400 (RGB) + * Group triplets from PCA9552 into multicolor LEDs to enable + * led-class-multicolor and pattern trigger RGB support. + */ +&{/} { + sys_led: sys-led { + compatible = "leds-group-multicolor"; + label = "sys"; + color = ; + function = LED_FUNCTION_INDICATOR; + default-state = "keep"; + mc-allow-subled-writes; + leds = <&lb60_0 &lb60_1 &lb60_2>; + max-brightness = <255>; + }; + + run_led: run-led { + compatible = "leds-group-multicolor"; + label = "run"; + color = ; + function = LED_FUNCTION_INDICATOR; + default-state = "off"; + leds = <&lb60_3 &lb60_4 &lb60_5>; + max-brightness = <255>; + }; + + io_led: io-led { + compatible = "leds-group-multicolor"; + label = "io"; + color = ; + function = LED_FUNCTION_INDICATOR; + default-state = "off"; + leds = <&lb60_6 &lb60_7 &lb60_8>; + max-brightness = <255>; + }; + + em_led: em-led { + compatible = "leds-group-multicolor"; + label = "em"; + color = ; + function = LED_FUNCTION_INDICATOR; + default-state = "off"; + leds = <&lb60_9 &lb60_10 &lb60_11>; + max-brightness = <255>; + }; + + u1_led: u1-led { + compatible = "leds-group-multicolor"; + label = "u1"; + color = ; + function = LED_FUNCTION_INDICATOR; + default-state = "off"; + leds = <&lb60_12 &lb60_13 &lb60_14>; + max-brightness = <255>; + }; + + u2_led: u2-led { + compatible = "leds-group-multicolor"; + label = "u2"; + color = ; + function = LED_FUNCTION_INDICATOR; + default-state = "off"; + leds = <&lb61_0 &lb61_1 &lb61_2>; + max-brightness = <255>; + }; + + u3_led: u3-led { + compatible = "leds-group-multicolor"; + label = "u3"; + color = ; + function = LED_FUNCTION_INDICATOR; + default-state = "off"; + leds = <&lb61_3 &lb61_4 &lb61_5>; + max-brightness = <255>; + }; + + u4_led: u4-led { + compatible = "leds-group-multicolor"; + label = "u4"; + color = ; + function = LED_FUNCTION_INDICATOR; + default-state = "off"; + leds = <&lb61_6 &lb61_7 &lb61_8>; + max-brightness = <255>; + }; + + u5_led: u5-led { + compatible = "leds-group-multicolor"; + label = "u5"; + color = ; + function = LED_FUNCTION_INDICATOR; + default-state = "off"; + leds = <&lb61_9 &lb61_10 &lb61_11>; + max-brightness = <255>; + }; + + u6_led: u6-led { + compatible = "leds-group-multicolor"; + label = "u6"; + color = ; + function = LED_FUNCTION_INDICATOR; + default-state = "off"; + leds = <&lb61_12 &lb61_13 &lb61_14>; + max-brightness = <255>; + }; +}; diff --git a/arch/arm64/boot/dts/ti/overlay-750-8400-interaction-p0004065.dtso b/arch/arm64/boot/dts/ti/overlay-750-8400-interaction-p0004065.dtso new file mode 100644 index 000000000000..39bb53672d41 --- /dev/null +++ b/arch/arm64/boot/dts/ti/overlay-750-8400-interaction-p0004065.dtso @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +/plugin/; + +#include "k3-pinctrl.h" +#include +#include +#include + +#include "k3-am623-pfc-750-84xx-interaction.dtsi" + +&leds_m4 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + + led@0 { + reg = <0>; + label = "sys"; + linux,default-trigger = "timer"; + led-default-intensity = <255 80 0 64>; /* Orange, brightness 64/255 */ + }; + + led@1 { + reg = <1>; + label = "run"; + }; + + led@2 { + reg = <2>; + label = "io"; + }; + + led@3 { + reg = <3>; + label = "em"; + }; + + led@4 { + reg = <4>; + label = "u1"; + }; + + led@5 { + reg = <5>; + label = "u2"; + }; + + led@6 { + reg = <6>; + label = "u3"; + }; + + led@7 { + reg = <7>; + label = "u4"; + }; +}; diff --git a/arch/arm64/boot/dts/ti/overlay-750-8400-localbus-p0003978.dtso b/arch/arm64/boot/dts/ti/overlay-750-8400-localbus-p0003978.dtso new file mode 100644 index 000000000000..2371d230a7cc --- /dev/null +++ b/arch/arm64/boot/dts/ti/overlay-750-8400-localbus-p0003978.dtso @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +/plugin/; + +#include "k3-pinctrl.h" +#include +#include +#include + +#include "k3-am623-pfc-750-84xx-kbus.dtsi" diff --git a/arch/arm64/boot/dts/ti/overlay-750-8400-localbus-p0004067.dtso b/arch/arm64/boot/dts/ti/overlay-750-8400-localbus-p0004067.dtso new file mode 100644 index 000000000000..4c486c55bcb2 --- /dev/null +++ b/arch/arm64/boot/dts/ti/overlay-750-8400-localbus-p0004067.dtso @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +/plugin/; + +#include "k3-pinctrl.h" +#include +#include +#include + +#include "k3-am623-pfc-750-84xx-kbus.dtsi" + +&mcu_pmx0 { + oms_mcu_pins_default: oms-mcu-default-pins { + pinctrl-single,pins = < + AM62X_MCU_IOPAD(0x0044, PIN_INPUT, 7) /* (A8) MCU_I2C0_SCL.MCU_GPIO0_17 nRUN-BAS */ + AM62X_MCU_IOPAD(0x0048, PIN_INPUT, 7) /* (D10) MCU_I2C0_SDA.MCU_GPIO0_18 nSTOP-BAS */ + >; + }; +}; + +&oms_pins_default { + pinctrl-single,pins = < + AM62X_IOPAD(0x01a4, PIN_INPUT, 7) /* (B20) MCASP0_ACLKX.GPIO1_11 IO-RAB */ + >; +}; + +&oms { + pinctrl-0 = <&oms_pins_default &oms_mcu_pins_default>; + poll-interval = <100>; + + oms_run: run { + label = "RUN"; + gpios = <&mcu_gpio0 17 GPIO_ACTIVE_LOW>; + linux,code = <1>; + linux,input-type = <5>; + debounce-interval = <1>; + }; + + oms_stop: stop { + label = "STOP"; + gpios = <&mcu_gpio0 18 GPIO_ACTIVE_LOW>; + linux,code = <2>; + linux,input-type = <5>; + debounce-interval = <1>; + }; +}; + +&oms_stop_run { + status = "disabled"; +}; diff --git a/arch/arm64/boot/dts/ti/overlay-750-8400-wosm-p0004037.dtso b/arch/arm64/boot/dts/ti/overlay-750-8400-wosm-p0004037.dtso new file mode 100644 index 000000000000..70154ed99385 --- /dev/null +++ b/arch/arm64/boot/dts/ti/overlay-750-8400-wosm-p0004037.dtso @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +/plugin/; + +#include "k3-pinctrl.h" +#include +#include +#include + +#include "k3-am623-pfc-750-84xx-wosm.dtsi" diff --git a/arch/arm64/boot/dts/ti/overlay-750-8400-wosm-p0004263.dtso b/arch/arm64/boot/dts/ti/overlay-750-8400-wosm-p0004263.dtso new file mode 100644 index 000000000000..63784c5d09de --- /dev/null +++ b/arch/arm64/boot/dts/ti/overlay-750-8400-wosm-p0004263.dtso @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +/plugin/; + +#include "k3-pinctrl.h" +#include +#include +#include + +#include "k3-am623-pfc-750-84xx-wosm.dtsi" + +&main_pmx0 { + mram_reset_pins_default: mram-reset-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x0004, PIN_OUTPUT, 7) /* (G25) OSPI0_LBCLKO.GPIO0_1 (nRST) */ + >; + }; + + em_reset_pins_default: em-reset-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x01a0, PIN_OUTPUT, 7) /* (E18) MCASP0_AXR0.GPIO1_10 (nRST-EM2) */ + AM62X_IOPAD(0x019c, PIN_OUTPUT, 7) /* (B18) MCASP0_AXR1.GPIO1_9 (nRST-EM3) */ + >; + }; + + rs485_2_pins_default: rs485-2-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x0098, PIN_OUTPUT, 7) /* (U23) GPMC0_WAIT0.GPIO0_38 (RS-2.DE) */ + AM62X_IOPAD(0x00c0, PIN_INPUT, 4) /* (W25) VOUT0_DATA2.UART3_RXD (RS-2.RXD) */ + AM62X_IOPAD(0x00c4, PIN_OUTPUT, 4) /* (W24) VOUT0_DATA3.UART3_TXD (RS-2.TXD) */ + >; + }; + + can_interface_pins_default: can-interface-default-pins { + pinctrl-single,pins = < + AM62X_IOPAD(0x01dc, PIN_INPUT, 0) /* (E15) MCAN0_RX (CAN.RXD) */ + AM62X_IOPAD(0x01d8, PIN_OUTPUT, 0) /* (C15) MCAN0_TX (CAN.TXD) */ + >; + }; +}; + +&mram { + pinctrl-0 = <&mram_irq_pins_default &mram_reset_pins_default>; + reset-gpios = <&main_gpio0 1 GPIO_ACTIVE_LOW>; +};