arm64: dts: ti: k3-am623-pfc-750-8400: add Rev.3 support via DT overlay-boot
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 <ht@twx-software.de>
This commit is contained in:
@@ -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 += -@
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -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>;
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 = <LED_COLOR_ID_RED>;
|
||||
default-state = "keep";
|
||||
linux,default-trigger = "timer";
|
||||
};
|
||||
|
||||
lb60_1: sys-green@1 {
|
||||
label = "sys-green";
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "keep";
|
||||
linux,default-trigger = "timer";
|
||||
};
|
||||
|
||||
lb60_2: sys-blue@2 {
|
||||
label = "sys-blue";
|
||||
reg = <2>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_3: run-red@3 {
|
||||
label = "run-red";
|
||||
reg = <3>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_4: run-green@4 {
|
||||
label = "run-green";
|
||||
reg = <4>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_5: run-blue@5 {
|
||||
label = "run-blue";
|
||||
reg = <5>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_6: io-red@6 {
|
||||
label = "io-red";
|
||||
reg = <6>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_7: io-green@7 {
|
||||
label = "io-green";
|
||||
reg = <7>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_8: io-blue@8 {
|
||||
label = "io-blue";
|
||||
reg = <8>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_9: em-red@9 {
|
||||
label = "em-red";
|
||||
reg = <9>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_10: em-green@10 {
|
||||
label = "em-green";
|
||||
reg = <10>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_11: em-blue@11 {
|
||||
label = "em-blue";
|
||||
reg = <11>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_12: u1-red@12 {
|
||||
label = "u1-red";
|
||||
reg = <12>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_13: u1-green@13 {
|
||||
label = "u1-green";
|
||||
reg = <13>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_14: u1-blue@14 {
|
||||
label = "u1-blue";
|
||||
reg = <14>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
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 = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_1: u2-green@1 {
|
||||
label = "u2-green";
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_2: u2-blue@2 {
|
||||
label = "u2-blue";
|
||||
reg = <2>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_3: u3-red@3 {
|
||||
label = "u3-red";
|
||||
reg = <3>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_4: u3-green@4 {
|
||||
label = "u3-green";
|
||||
reg = <4>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_5: u3-blue@5 {
|
||||
label = "u3-blue";
|
||||
reg = <5>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_6: u4-red@6 {
|
||||
label = "u4-red";
|
||||
reg = <6>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_7: u4-green@7 {
|
||||
label = "u4-green";
|
||||
reg = <7>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_8: u4-blue@8 {
|
||||
label = "u4-blue";
|
||||
reg = <8>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_9: u5-red@9 {
|
||||
label = "u5-red";
|
||||
reg = <9>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_10: u5-green@10 {
|
||||
label = "u5-green";
|
||||
reg = <10>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_11: u5-blue@11 {
|
||||
label = "u5-blue";
|
||||
reg = <11>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_12: u6_r@12 {
|
||||
label = "u6-red";
|
||||
reg = <12>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_13: u6_g@13 {
|
||||
label = "u6-green";
|
||||
reg = <13>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_14: u6_b@14 {
|
||||
label = "u6-blue";
|
||||
reg = <14>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
default-state = "off";
|
||||
leds = <&lb61_12 &lb61_13 &lb61_14>;
|
||||
max-brightness = <255>;
|
||||
};
|
||||
};
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
};
|
||||
|
||||
&main_spi0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
spi-rt;
|
||||
spi-rt-prio = <81>;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include "k3-pinctrl.h"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
#include "k3-am623-pfc-750-84xx-baseboard.dtsi"
|
||||
|
||||
&mcu_spi0 {
|
||||
ksz9477@0 {
|
||||
microchip,single-led-mode;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,25 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include "k3-pinctrl.h"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
#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>;
|
||||
};
|
||||
@@ -0,0 +1,36 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include "k3-pinctrl.h"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
#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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,375 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include "k3-pinctrl.h"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
#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 = <LED_COLOR_ID_RED>;
|
||||
default-state = "keep";
|
||||
linux,default-trigger = "timer";
|
||||
};
|
||||
|
||||
lb60_1: sys-green@1 {
|
||||
label = "sys-green";
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "keep";
|
||||
linux,default-trigger = "timer";
|
||||
};
|
||||
|
||||
lb60_2: sys-blue@2 {
|
||||
label = "sys-blue";
|
||||
reg = <2>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_3: run-red@3 {
|
||||
label = "run-red";
|
||||
reg = <3>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_4: run-green@4 {
|
||||
label = "run-green";
|
||||
reg = <4>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_5: run-blue@5 {
|
||||
label = "run-blue";
|
||||
reg = <5>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_6: io-red@6 {
|
||||
label = "io-red";
|
||||
reg = <6>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_7: io-green@7 {
|
||||
label = "io-green";
|
||||
reg = <7>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_8: io-blue@8 {
|
||||
label = "io-blue";
|
||||
reg = <8>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_9: em-red@9 {
|
||||
label = "em-red";
|
||||
reg = <9>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_10: em-green@10 {
|
||||
label = "em-green";
|
||||
reg = <10>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_11: em-blue@11 {
|
||||
label = "em-blue";
|
||||
reg = <11>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_12: u1-red@12 {
|
||||
label = "u1-red";
|
||||
reg = <12>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_13: u1-green@13 {
|
||||
label = "u1-green";
|
||||
reg = <13>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb60_14: u1-blue@14 {
|
||||
label = "u1-blue";
|
||||
reg = <14>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
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 = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_1: u2-green@1 {
|
||||
label = "u2-green";
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_2: u2-blue@2 {
|
||||
label = "u2-blue";
|
||||
reg = <2>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_3: u3-red@3 {
|
||||
label = "u3-red";
|
||||
reg = <3>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_4: u3-green@4 {
|
||||
label = "u3-green";
|
||||
reg = <4>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_5: u3-blue@5 {
|
||||
label = "u3-blue";
|
||||
reg = <5>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_6: u4-red@6 {
|
||||
label = "u4-red";
|
||||
reg = <6>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_7: u4-green@7 {
|
||||
label = "u4-green";
|
||||
reg = <7>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_8: u4-blue@8 {
|
||||
label = "u4-blue";
|
||||
reg = <8>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_9: u5-red@9 {
|
||||
label = "u5-red";
|
||||
reg = <9>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_10: u5-green@10 {
|
||||
label = "u5-green";
|
||||
reg = <10>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_11: u5-blue@11 {
|
||||
label = "u5-blue";
|
||||
reg = <11>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_12: u6_r@12 {
|
||||
label = "u6-red";
|
||||
reg = <12>;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_13: u6_g@13 {
|
||||
label = "u6-green";
|
||||
reg = <13>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
lb61_14: u6_b@14 {
|
||||
label = "u6-blue";
|
||||
reg = <14>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
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 = <LED_COLOR_ID_RGB>;
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
default-state = "off";
|
||||
leds = <&lb61_12 &lb61_13 &lb61_14>;
|
||||
max-brightness = <255>;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,58 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include "k3-pinctrl.h"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
#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";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include "k3-pinctrl.h"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
#include "k3-am623-pfc-750-84xx-kbus.dtsi"
|
||||
@@ -0,0 +1,50 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include "k3-pinctrl.h"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
#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";
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include "k3-pinctrl.h"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
#include "k3-am623-pfc-750-84xx-wosm.dtsi"
|
||||
@@ -0,0 +1,45 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include "k3-pinctrl.h"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
#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>;
|
||||
};
|
||||
Reference in New Issue
Block a user