Merge pull request #359 from BU-Automation/topic/ht/pfc400/dsa-ksz9477-rebase
Introduce PFC400 Plattform-Support incl. working KSZ DSA network switch
This commit is contained in:
@@ -24,7 +24,8 @@ dtb-$(CONFIG_ARCH_K3) += k3-am62-lp-sk.dtb
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-am625-sk-hdmi-audio.dtb
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-am62-lp-sk-hdmi-audio.dtb
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-am623-pfc-750-8302.dtb
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-am623-pfc-ems.dtb
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-am623-pfc-750-830x-ems.dtb
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-am623-pfc-750-8400.dtb
|
||||
|
||||
# Boards with AM62Ax SoC
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-am62a7-sk.dtb
|
||||
|
||||
@@ -6,12 +6,22 @@
|
||||
* Copyright (C) 2024 WAGO GmbH & Co. KG - https://www.wago.com/
|
||||
*/
|
||||
|
||||
#include "k3-am62x-pfc.dtsi"
|
||||
#include "k3-am623-pfc-750-8xxx-common.dtsi"
|
||||
#include "k3-am623-pfc-750-830x-common.dtsi"
|
||||
#include "k3-am623-pfc-kbus.dtsi"
|
||||
#include "k3-am623-pfc-rs485.dtsi"
|
||||
#include "k3-am623-pfc-tpm.dtsi"
|
||||
#include "k3-am623-pfc-rtc.dtsi"
|
||||
|
||||
/ {
|
||||
model = "WAGO PFC300 750-8302";
|
||||
compatible = "ti,am623-pfc", "ti,am625";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &cpsw_port1;
|
||||
ethernet1 = &cpsw_port2;
|
||||
};
|
||||
|
||||
cpus {
|
||||
cpu-map {
|
||||
cluster0 {
|
||||
@@ -31,10 +41,197 @@
|
||||
/delete-node/ cpu@2;
|
||||
/delete-node/ cpu@3;
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
device_type = "memory";
|
||||
/* 2G RAM */
|
||||
reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
|
||||
|
||||
};
|
||||
|
||||
/* 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 {
|
||||
compatible = "gpio-keys";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&oms_pins_default>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
autorepeat;
|
||||
|
||||
oms_run: run {
|
||||
label = "RUN";
|
||||
gpios = <&main_gpio0 65 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <1>;
|
||||
linux,input-type = <5>;
|
||||
debounce-interval = <1>;
|
||||
};
|
||||
|
||||
oms_stop: stop {
|
||||
label = "STOP";
|
||||
gpios = <&main_gpio1 10 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <2>;
|
||||
linux,input-type = <5>;
|
||||
debounce-interval = <1>;
|
||||
};
|
||||
|
||||
oms_reset: reset {
|
||||
label = "RESET";
|
||||
gpios = <&main_gpio1 12 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <3>;
|
||||
linux,input-type = <1>;
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
||||
uio_nvram: nvram@51000000 {
|
||||
compatible = "uio_pdrv_genirq";
|
||||
linux,uio-name = "UIO_NVRAM";
|
||||
reg = <0 0x51000000 0 0x00020000>; /* 128k 16bit NVRAM */
|
||||
};
|
||||
|
||||
vdd_mmc1: regulator-3 {
|
||||
compatible = "regulator-fixed";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&vdd_sd_dv_pins_default>;
|
||||
regulator-name = "vdd_mmc1";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vcc_3v3_sys>;
|
||||
gpio = <&main_gpio0 31 GPIO_ACTIVE_LOW>;
|
||||
enable-active-high;
|
||||
startup-delay-us = <5000>;
|
||||
};
|
||||
};
|
||||
|
||||
&main_pmx0 {
|
||||
gpmc_data_pins_default: gpmc-data-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x00bc, PIN_OUTPUT, 1) /* (V24) VOUT0_DATA1.GPMC0_A1 */
|
||||
AM62X_IOPAD(0x00c0, PIN_OUTPUT, 1) /* (W25) VOUT0_DATA2.GPMC0_A2 */
|
||||
AM62X_IOPAD(0x00c4, PIN_OUTPUT, 1) /* (W24) VOUT0_DATA3.GPMC0_A3 */
|
||||
AM62X_IOPAD(0x00c8, PIN_OUTPUT, 1) /* (Y25) VOUT0_DATA4.GPMC0_A4 */
|
||||
AM62X_IOPAD(0x00cc, PIN_OUTPUT, 1) /* (Y24) VOUT0_DATA5.GPMC0_A5 */
|
||||
AM62X_IOPAD(0x00d0, PIN_OUTPUT, 1) /* (Y23) VOUT0_DATA6.GPMC0_A6 */
|
||||
AM62X_IOPAD(0x00d4, PIN_OUTPUT, 1) /* (AA25) VOUT0_DATA7.GPMC0_A7 */
|
||||
AM62X_IOPAD(0x00d8, PIN_OUTPUT, 1) /* (V21) VOUT0_DATA8.GPMC0_A8 */
|
||||
AM62X_IOPAD(0x00dc, PIN_OUTPUT, 1) /* (W21) VOUT0_DATA9.GPMC0_A9 */
|
||||
AM62X_IOPAD(0x00e0, PIN_OUTPUT, 1) /* (V20) VOUT0_DATA10.GPMC0_A10 */
|
||||
AM62X_IOPAD(0x00e4, PIN_OUTPUT, 1) /* (AA23) VOUT0_DATA11.GPMC0_A11 */
|
||||
AM62X_IOPAD(0x00e8, PIN_OUTPUT, 1) /* (AB25) VOUT0_DATA12.GPMC0_A12 */
|
||||
AM62X_IOPAD(0x00ec, PIN_OUTPUT, 1) /* (AA24) VOUT0_DATA13.GPMC0_A13 */
|
||||
AM62X_IOPAD(0x00f0, PIN_OUTPUT, 1) /* (Y22) VOUT0_DATA14.GPMC0_A14 */
|
||||
AM62X_IOPAD(0x00f4, PIN_OUTPUT, 1) /* (AA21) VOUT0_DATA15.GPMC0_A15 */
|
||||
AM62X_IOPAD(0x00f8, PIN_OUTPUT, 1) /* (AB24) VOUT0_HSYNC.GPMC0_A16 */
|
||||
>;
|
||||
};
|
||||
|
||||
gpmc_addr_pins_default: gpmc-addr-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x003c, PIN_INPUT, 0) /* (M25) GPMC0_AD0 */
|
||||
AM62X_IOPAD(0x0040, PIN_INPUT, 0) /* (N23) GPMC0_AD1 */
|
||||
AM62X_IOPAD(0x0044, PIN_INPUT, 0) /* (N24) GPMC0_AD2 */
|
||||
AM62X_IOPAD(0x0048, PIN_INPUT, 0) /* (N25) GPMC0_AD3 */
|
||||
AM62X_IOPAD(0x004c, PIN_INPUT, 0) /* (P24) GPMC0_AD4 */
|
||||
AM62X_IOPAD(0x0050, PIN_INPUT, 0) /* (P22) GPMC0_AD5 */
|
||||
AM62X_IOPAD(0x0054, PIN_INPUT, 0) /* (P21) GPMC0_AD6 */
|
||||
AM62X_IOPAD(0x0058, PIN_INPUT, 0) /* (R23) GPMC0_AD7 */
|
||||
AM62X_IOPAD(0x005c, PIN_INPUT, 0) /* (R24) GPMC0_AD8 */
|
||||
AM62X_IOPAD(0x0060, PIN_INPUT, 0) /* (R25) GPMC0_AD9 */
|
||||
AM62X_IOPAD(0x0064, PIN_INPUT, 0) /* (T25) GPMC0_AD10 */
|
||||
AM62X_IOPAD(0x0068, PIN_INPUT, 0) /* (R21) GPMC0_AD11 */
|
||||
AM62X_IOPAD(0x006c, PIN_INPUT, 0) /* (T22) GPMC0_AD12 */
|
||||
AM62X_IOPAD(0x0070, PIN_INPUT, 0) /* (T24) GPMC0_AD13 */
|
||||
AM62X_IOPAD(0x0074, PIN_INPUT, 0) /* (U25) GPMC0_AD14 */
|
||||
AM62X_IOPAD(0x0078, PIN_INPUT, 0) /* (U24) GPMC0_AD15 */
|
||||
>;
|
||||
};
|
||||
|
||||
gpmc_ctrl_pins_default: gpmc-ctrl-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0094, PIN_OUTPUT, 0) /* (N20) GPMC0_BE1n */
|
||||
AM62X_IOPAD(0x00a8, PIN_OUTPUT, 0) /* (M21) GPMC0_CSn0 */
|
||||
AM62X_IOPAD(0x0088, PIN_OUTPUT, 0) /* (L24) GPMC0_OEn_REn */
|
||||
AM62X_IOPAD(0x008c, PIN_OUTPUT, 0) /* (L25) GPMC0_WEn */
|
||||
AM62X_IOPAD(0x0090, PIN_OUTPUT, 0) /* (M24) GPMC0_BE0n_CLE */
|
||||
>;
|
||||
};
|
||||
|
||||
main_mdio1_pins_default: main-mdio1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */
|
||||
AM62X_IOPAD(0x15c, PIN_INPUT_PULLUP, 0) /* (AB22) MDIO0_MDIO */
|
||||
AM62X_IOPAD(0x019c, PIN_OUTPUT, 7) /* (B18) MCASP0_AXR1.GPIO1_9 */
|
||||
>;
|
||||
};
|
||||
|
||||
main_rgmii1_pins_default: main-rgmii1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x14c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */
|
||||
AM62X_IOPAD(0x150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */
|
||||
AM62X_IOPAD(0x154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */
|
||||
AM62X_IOPAD(0x158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */
|
||||
AM62X_IOPAD(0x148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */
|
||||
AM62X_IOPAD(0x144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */
|
||||
AM62X_IOPAD(0x134, PIN_OUTPUT, 0) /* (AE20) RGMII1_TD0 */
|
||||
AM62X_IOPAD(0x138, PIN_OUTPUT, 0) /* (AD20) RGMII1_TD1 */
|
||||
AM62X_IOPAD(0x13c, PIN_OUTPUT, 0) /* (AE18) RGMII1_TD2 */
|
||||
AM62X_IOPAD(0x140, PIN_OUTPUT, 0) /* (AD18) RGMII1_TD3 */
|
||||
AM62X_IOPAD(0x130, PIN_OUTPUT, 0) /* (AE19) RGMII1_TXC */
|
||||
AM62X_IOPAD(0x12c, PIN_OUTPUT, 0) /* (AD19) RGMII1_TX_CTL */
|
||||
AM62X_IOPAD(0x0030, PIN_INPUT, 7) /* (G21) OSPI0_CSn1.GPIO0_12 nINT-RGMII1 */
|
||||
>;
|
||||
};
|
||||
|
||||
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 */
|
||||
AM62X_IOPAD(0x0034, PIN_INPUT, 7) /* (H21) OSPI0_CSn2.GPIO0_13 */
|
||||
>;
|
||||
};
|
||||
|
||||
vdd_sd_dv_pins_default: vdd-sd-dv-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x07c, PIN_OUTPUT, 7) /* (P25) GPMC0_CLK.GPIO0_31 */
|
||||
>;
|
||||
};
|
||||
|
||||
oms_pins_default: oms-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0108, PIN_INPUT, 7) /* (D24) MMC2_DAT3.GPIO0_65 */
|
||||
AM62X_IOPAD(0x01a0, PIN_INPUT, 7) /* (E18) MCASP0_AXR0.GPIO1_10 */
|
||||
AM62X_IOPAD(0x01a8, PIN_INPUT, 7) /* (D20) MCASP0_AFSX.GPIO1_12 */
|
||||
AM62X_IOPAD(0x01a4, PIN_INPUT, 7) /* (B20) MCASP0_ACLKX.GPIO1_11 */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&wsysinit {
|
||||
status = "okay";
|
||||
board,variant = "pfc300";
|
||||
};
|
||||
|
||||
&oms {
|
||||
@@ -51,6 +248,42 @@
|
||||
|
||||
&gpmc0 {
|
||||
status = "okay";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gpmc_data_pins_default>, <&gpmc_addr_pins_default>, <&gpmc_ctrl_pins_default>;
|
||||
|
||||
num-cs = <4>;
|
||||
num-waitpins = <4>;
|
||||
ranges = <
|
||||
0 0 0x00 0x51000000 0x01000000 /* CS0: NVRAM, 16M */
|
||||
>;
|
||||
|
||||
nvram: nor@0,0 { /* NVRAM Device 128k */
|
||||
reg = <0 0 0x01000000>;
|
||||
bank-width = <2>; /* 1: 8bit, 2: 16bit */
|
||||
gpmc,sync-clk-ps = <0>;
|
||||
gpmc,cs-on-ns = <0>;
|
||||
gpmc,cs-rd-off-ns = <50>;
|
||||
gpmc,cs-wr-off-ns = <30>;
|
||||
gpmc,adv-on-ns = <0>;
|
||||
gpmc,adv-rd-off-ns = <0>;
|
||||
gpmc,adv-wr-off-ns = <0>;
|
||||
gpmc,oe-on-ns = <0>;
|
||||
gpmc,oe-off-ns = <50>;
|
||||
gpmc,we-on-ns = <0>;
|
||||
gpmc,we-off-ns = <30>;
|
||||
gpmc,rd-cycle-ns = <50>;
|
||||
gpmc,wr-cycle-ns = <30>;
|
||||
gpmc,access-ns = <40>;
|
||||
gpmc,wr-access-ns = <10>;
|
||||
gpmc,wr-data-mux-bus-ns = <0>;
|
||||
gpmc,cycle2cycle-delay-ns = <10>;
|
||||
gpmc,cycle2cycle-samecsen;
|
||||
gpmc,cycle2cycle-diffcsen;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&main_uart0 {
|
||||
@@ -87,22 +320,56 @@
|
||||
|
||||
&sdhci1 { /* SD */
|
||||
status = "okay";
|
||||
|
||||
vmmc-supply = <&vdd_mmc1>;
|
||||
|
||||
cap-sd-highspeed;
|
||||
no-1-8-v;
|
||||
};
|
||||
|
||||
&cpsw3g {
|
||||
status = "okay";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_mdio1_pins_default
|
||||
&main_rgmii1_pins_default
|
||||
&main_rgmii2_pins_default>;
|
||||
};
|
||||
|
||||
&cpsw_port1 {
|
||||
status = "okay";
|
||||
phy-mode = "rgmii-rxid";
|
||||
phy-handle = <&cpsw3g_phy0>;
|
||||
};
|
||||
|
||||
&cpsw_port2 {
|
||||
status = "okay";
|
||||
phy-mode = "rgmii-rxid";
|
||||
phy-handle = <&cpsw3g_phy1>;
|
||||
};
|
||||
|
||||
&cpsw3g_mdio {
|
||||
status = "okay";
|
||||
|
||||
reset-gpios = <&main_gpio1 9 GPIO_ACTIVE_LOW>;
|
||||
reset-delay-us = <10>;
|
||||
reset-post-delay-us = <10000>;
|
||||
|
||||
cpsw3g_phy0: ethernet-phy@0 {
|
||||
// ADIN1300
|
||||
compatible = "ethernet-phy-id0283.bc30";
|
||||
|
||||
reg = <0>;
|
||||
adi,rx-internal-delay-ps = <2000>;
|
||||
};
|
||||
|
||||
cpsw3g_phy1: ethernet-phy@1 {
|
||||
// ADIN1300
|
||||
compatible = "ethernet-phy-id0283.bc30";
|
||||
|
||||
reg = <1>;
|
||||
adi,rx-internal-delay-ps = <2000>;
|
||||
};
|
||||
};
|
||||
|
||||
&usbss0 {
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
&main_i2c0 {
|
||||
|
||||
#include "k3-am623-pfc-750-830x-leds.dtsi"
|
||||
|
||||
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_3v3_sys>;
|
||||
ldo3-supply = <&vcc_5v0>;
|
||||
ldo4-supply = <&vcc_5v0>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_irq_pins_default>;
|
||||
|
||||
interrupt-parent = <&main_gpio0>;
|
||||
interrupts = <68 IRQ_TYPE_EDGE_FALLING>;
|
||||
|
||||
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 = "VCC1V8_SYS";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck3_30_reg: buck3 {
|
||||
regulator-name = "VCC3V3_SYS";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo1_30_reg: ldo1 {
|
||||
regulator-name = "VCC3V3_SDC";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
ldo2_30_reg: ldo2 {
|
||||
regulator-name = "VDDA_1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
+2
-12
@@ -6,7 +6,8 @@
|
||||
* Copyright (C) 2024 WAGO GmbH & Co. KG - https://www.wago.com/
|
||||
*/
|
||||
|
||||
#include "k3-am62x-pfc.dtsi"
|
||||
#include "k3-am623-pfc-750-8xxx-common.dtsi"
|
||||
#include "k3-am623-pfc-750-830x-common.dtsi"
|
||||
|
||||
/ {
|
||||
model = "WAGO AM623 PFC EMS";
|
||||
@@ -460,14 +461,6 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&oms {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&nvram {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&watchdog_ext {
|
||||
status = "okay";
|
||||
};
|
||||
@@ -509,9 +502,6 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/delete-node/ &vdd_mmc1;
|
||||
/delete-node/ &vdd_sd_dv_pins_default;
|
||||
|
||||
&cpsw3g {
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -0,0 +1,143 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
led_bar60: pca9552@60 {
|
||||
compatible = "nxp,pca9552";
|
||||
#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: run-red@2 {
|
||||
label = "run-red";
|
||||
reg = <2>;
|
||||
};
|
||||
|
||||
lb60_3: run-green@3 {
|
||||
label = "run-green";
|
||||
reg = <3>;
|
||||
};
|
||||
|
||||
lb60_4: io-red@4 {
|
||||
label = "io-red";
|
||||
reg = <4>;
|
||||
};
|
||||
|
||||
lb60_5: io-green@5 {
|
||||
label = "io-green";
|
||||
reg = <5>;
|
||||
};
|
||||
|
||||
lb60_6: ms-red@6 {
|
||||
label = "ms-red";
|
||||
reg = <6>;
|
||||
};
|
||||
|
||||
lb60_7: ms-green@7 {
|
||||
label = "ms-green";
|
||||
reg = <7>;
|
||||
};
|
||||
|
||||
lb60_8: ns-red@8 {
|
||||
label = "ns-red";
|
||||
reg = <8>;
|
||||
};
|
||||
|
||||
lb60_9: ns-green@9 {
|
||||
label = "ns-green";
|
||||
reg = <9>;
|
||||
};
|
||||
|
||||
lb60_10: usr_r@10 {
|
||||
label = "trm-red";
|
||||
reg = <10>;
|
||||
};
|
||||
|
||||
lb60_11: usr_g@11 {
|
||||
label = "trm-green";
|
||||
reg = <11>;
|
||||
};
|
||||
|
||||
lb60_15: sys-over-red@15 {
|
||||
label = "sys-over-red";
|
||||
reg = <15>;
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
};
|
||||
|
||||
led_bar61: pca9552@61 {
|
||||
compatible = "nxp,pca9552";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x61>;
|
||||
|
||||
lb61_0: u6-red@0 {
|
||||
label = "u6-red";
|
||||
reg = <0>;
|
||||
};
|
||||
|
||||
lb61_1: u6-green@1 {
|
||||
label = "u6-green";
|
||||
reg = <1>;
|
||||
};
|
||||
|
||||
lb61_2: u5-red@2 {
|
||||
label = "u5-red";
|
||||
reg = <2>;
|
||||
};
|
||||
|
||||
lb61_3: u5-green@3 {
|
||||
label = "u5-green";
|
||||
reg = <3>;
|
||||
};
|
||||
|
||||
lb61_4: u4-red@4 {
|
||||
label = "u4-red";
|
||||
reg = <4>;
|
||||
};
|
||||
|
||||
lb61_5: u4-green@5 {
|
||||
label = "u4-green";
|
||||
reg = <5>;
|
||||
};
|
||||
|
||||
lb61_6: u3-red@6 {
|
||||
label = "u3-red";
|
||||
reg = <6>;
|
||||
};
|
||||
|
||||
lb61_7: u3-green@7 {
|
||||
label = "u3-green";
|
||||
reg = <7>;
|
||||
};
|
||||
|
||||
lb61_8: u2-red@8 {
|
||||
label = "u2-red";
|
||||
reg = <8>;
|
||||
};
|
||||
|
||||
lb61_9: u2-green@9 {
|
||||
label = "u2-green";
|
||||
reg = <9>;
|
||||
};
|
||||
|
||||
lb61_10: u1-red@10 {
|
||||
label = "u1-red";
|
||||
reg = <10>;
|
||||
};
|
||||
|
||||
lb61_11: u1-green@11 {
|
||||
label = "u1-green";
|
||||
reg = <11>;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,17 @@
|
||||
// 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"
|
||||
|
||||
&wsysinit {
|
||||
status = "okay";
|
||||
board,variant = "pfc400";
|
||||
};
|
||||
@@ -0,0 +1,90 @@
|
||||
// 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>;
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,140 @@
|
||||
// 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: ms-red@9 {
|
||||
label = "ms-red";
|
||||
reg = <9>;
|
||||
};
|
||||
|
||||
lb60_10: ms-green@10 {
|
||||
label = "ms-green";
|
||||
reg = <10>;
|
||||
};
|
||||
|
||||
lb60_11: ms-blue@11 {
|
||||
label = "ms-blue";
|
||||
reg = <11>;
|
||||
};
|
||||
|
||||
lb60_12: usr_r@12 {
|
||||
label = "trm-red";
|
||||
reg = <12>;
|
||||
};
|
||||
|
||||
lb60_13: usr_g@13 {
|
||||
label = "trm-green";
|
||||
reg = <13>;
|
||||
};
|
||||
|
||||
lb60_14: usr_b@14 {
|
||||
label = "trm-blue";
|
||||
reg = <14>;
|
||||
};
|
||||
|
||||
lb60_15: sys-over-red@15 {
|
||||
label = "sys-over-red";
|
||||
reg = <15>;
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* 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>;
|
||||
};
|
||||
};
|
||||
@@ -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 = <LED_COLOR_ID_ORANGE>;
|
||||
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_kbus: at24c02@50 {
|
||||
status = "disabled";
|
||||
compatible = "atmel,24c02";
|
||||
reg = <0x50>;
|
||||
pagesize = <16>;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,327 @@
|
||||
// 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"
|
||||
|
||||
/ {
|
||||
model = "WAGO PFC400 750-8400";
|
||||
compatible = "ti,am623-pfc", "ti,am625";
|
||||
|
||||
aliases {
|
||||
usb1 = &usb1;
|
||||
ethernet0 = &cpsw_port2;
|
||||
};
|
||||
|
||||
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 {
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
&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 */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&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 {
|
||||
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 = <200000000>;
|
||||
m25p,fast-read;
|
||||
|
||||
cdns,tshsl-ns = <60>;
|
||||
cdns,tsd2d-ns = <60>;
|
||||
cdns,tchsh-ns = <60>;
|
||||
cdns,tslch-ns = <60>;
|
||||
cdns,read-delay = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&main_i2c0 {
|
||||
status = "okay";
|
||||
|
||||
eeprom_hw_id_wosm: at24c02@50 {
|
||||
status = "disabled";
|
||||
compatible = "atmel,24c02";
|
||||
reg = <0x50>;
|
||||
pagesize = <16>;
|
||||
};
|
||||
|
||||
tps65219: 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;
|
||||
};
|
||||
|
||||
ldo1_30_sd_1v8_reg: ldo1 {
|
||||
regulator-name = "VDDSHV_SD_1V8_IO_PMIC";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
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_30_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>;
|
||||
};
|
||||
@@ -0,0 +1,367 @@
|
||||
// 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 <http://global.wago.com>
|
||||
*/
|
||||
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/net/ti-dp83867.h>
|
||||
#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;
|
||||
eeprom_typelabel = &eeprom_type_label;
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
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_INPUT, 1) /* (A19) MCASP0_AXR2.SPI2_D1 */
|
||||
AM62X_IOPAD(0x01ac, PIN_OUTPUT, 1) /* (E19) MCASP0_AFSR.SPI2_CS0 */
|
||||
>;
|
||||
};
|
||||
|
||||
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";
|
||||
};
|
||||
@@ -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>;
|
||||
};
|
||||
};
|
||||
@@ -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;
|
||||
};
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,32 @@
|
||||
// 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>;
|
||||
#interrupt-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>;
|
||||
};
|
||||
};
|
||||
@@ -1,919 +0,0 @@
|
||||
// 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) 2024 WAGO GmbH & Co. KG <http://global.wago.com>
|
||||
* Oleg Karfich <oleg.karfich@wago.com>
|
||||
* Andrej Unrau <andrej.unrau@wago.com>
|
||||
*/
|
||||
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/net/ti-dp83867.h>
|
||||
#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";
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
device_type = "memory";
|
||||
/* 2G RAM */
|
||||
reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
|
||||
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
wsysinit: wsysinit_init {
|
||||
compatible = "wago,sysinit";
|
||||
|
||||
tty,rs232-485 = "ttyS0";
|
||||
board,variant = "pfc300";
|
||||
};
|
||||
|
||||
/* 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 {
|
||||
compatible = "gpio-keys";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&oms_pins_default>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
autorepeat;
|
||||
|
||||
oms_run: run {
|
||||
label = "RUN";
|
||||
gpios = <&main_gpio0 65 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <1>;
|
||||
linux,input-type = <5>;
|
||||
debounce-interval = <1>;
|
||||
};
|
||||
|
||||
oms_stop: stop {
|
||||
label = "STOP";
|
||||
gpios = <&main_gpio1 10 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <2>;
|
||||
linux,input-type = <5>;
|
||||
debounce-interval = <1>;
|
||||
};
|
||||
|
||||
oms_reset: reset {
|
||||
label = "RESET";
|
||||
gpios = <&main_gpio1 12 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <3>;
|
||||
linux,input-type = <1>;
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
||||
uio_nvram: nvram@51000000 {
|
||||
compatible = "uio_pdrv_genirq";
|
||||
linux,uio-name = "UIO_NVRAM";
|
||||
reg = <0 0x51000000 0 0x00020000>; /* 128k 16bit NVRAM */
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
vdd_mmc1: regulator-3 {
|
||||
compatible = "regulator-fixed";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&vdd_sd_dv_pins_default>;
|
||||
regulator-name = "vdd_mmc1";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vcc_3v3_sys>;
|
||||
gpio = <&main_gpio0 31 GPIO_ACTIVE_LOW>;
|
||||
enable-active-high;
|
||||
startup-delay-us = <5000>;
|
||||
};
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
||||
&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_mdio1_pins_default: main-mdio1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */
|
||||
AM62X_IOPAD(0x15c, PIN_INPUT_PULLUP, 0) /* (AB22) MDIO0_MDIO */
|
||||
AM62X_IOPAD(0x019c, PIN_OUTPUT, 7) /* (B18) MCASP0_AXR1.GPIO1_9 */
|
||||
>;
|
||||
};
|
||||
|
||||
main_rgmii1_pins_default: main-rgmii1-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x14c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */
|
||||
AM62X_IOPAD(0x150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */
|
||||
AM62X_IOPAD(0x154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */
|
||||
AM62X_IOPAD(0x158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */
|
||||
AM62X_IOPAD(0x148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */
|
||||
AM62X_IOPAD(0x144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */
|
||||
AM62X_IOPAD(0x134, PIN_OUTPUT, 0) /* (AE20) RGMII1_TD0 */
|
||||
AM62X_IOPAD(0x138, PIN_OUTPUT, 0) /* (AD20) RGMII1_TD1 */
|
||||
AM62X_IOPAD(0x13c, PIN_OUTPUT, 0) /* (AE18) RGMII1_TD2 */
|
||||
AM62X_IOPAD(0x140, PIN_OUTPUT, 0) /* (AD18) RGMII1_TD3 */
|
||||
AM62X_IOPAD(0x130, PIN_OUTPUT, 0) /* (AE19) RGMII1_TXC */
|
||||
AM62X_IOPAD(0x12c, PIN_OUTPUT, 0) /* (AD19) RGMII1_TX_CTL */
|
||||
AM62X_IOPAD(0x0030, PIN_INPUT, 7) /* (G21) OSPI0_CSn1.GPIO0_12 */
|
||||
>;
|
||||
};
|
||||
|
||||
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 */
|
||||
AM62X_IOPAD(0x0034, PIN_INPUT, 7) /* (H21) OSPI0_CSn2.GPIO0_13 */
|
||||
>;
|
||||
};
|
||||
|
||||
vdd_sd_dv_pins_default: vdd-sd-dv-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x07c, PIN_OUTPUT, 7) /* (P25) GPMC0_CLK.GPIO0_31 */
|
||||
>;
|
||||
};
|
||||
|
||||
gpmc_data_pins_default: gpmc-data-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x00bc, PIN_OUTPUT, 1) /* (V24) VOUT0_DATA1.GPMC0_A1 */
|
||||
AM62X_IOPAD(0x00c0, PIN_OUTPUT, 1) /* (W25) VOUT0_DATA2.GPMC0_A2 */
|
||||
AM62X_IOPAD(0x00c4, PIN_OUTPUT, 1) /* (W24) VOUT0_DATA3.GPMC0_A3 */
|
||||
AM62X_IOPAD(0x00c8, PIN_OUTPUT, 1) /* (Y25) VOUT0_DATA4.GPMC0_A4 */
|
||||
AM62X_IOPAD(0x00cc, PIN_OUTPUT, 1) /* (Y24) VOUT0_DATA5.GPMC0_A5 */
|
||||
AM62X_IOPAD(0x00d0, PIN_OUTPUT, 1) /* (Y23) VOUT0_DATA6.GPMC0_A6 */
|
||||
AM62X_IOPAD(0x00d4, PIN_OUTPUT, 1) /* (AA25) VOUT0_DATA7.GPMC0_A7 */
|
||||
AM62X_IOPAD(0x00d8, PIN_OUTPUT, 1) /* (V21) VOUT0_DATA8.GPMC0_A8 */
|
||||
AM62X_IOPAD(0x00dc, PIN_OUTPUT, 1) /* (W21) VOUT0_DATA9.GPMC0_A9 */
|
||||
AM62X_IOPAD(0x00e0, PIN_OUTPUT, 1) /* (V20) VOUT0_DATA10.GPMC0_A10 */
|
||||
AM62X_IOPAD(0x00e4, PIN_OUTPUT, 1) /* (AA23) VOUT0_DATA11.GPMC0_A11 */
|
||||
AM62X_IOPAD(0x00e8, PIN_OUTPUT, 1) /* (AB25) VOUT0_DATA12.GPMC0_A12 */
|
||||
AM62X_IOPAD(0x00ec, PIN_OUTPUT, 1) /* (AA24) VOUT0_DATA13.GPMC0_A13 */
|
||||
AM62X_IOPAD(0x00f0, PIN_OUTPUT, 1) /* (Y22) VOUT0_DATA14.GPMC0_A14 */
|
||||
AM62X_IOPAD(0x00f4, PIN_OUTPUT, 1) /* (AA21) VOUT0_DATA15.GPMC0_A15 */
|
||||
AM62X_IOPAD(0x00f8, PIN_OUTPUT, 1) /* (AB24) VOUT0_HSYNC.GPMC0_A16 */
|
||||
>;
|
||||
};
|
||||
|
||||
gpmc_addr_pins_default: gpmc-addr-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x003c, PIN_INPUT, 0) /* (M25) GPMC0_AD0 */
|
||||
AM62X_IOPAD(0x0040, PIN_INPUT, 0) /* (N23) GPMC0_AD1 */
|
||||
AM62X_IOPAD(0x0044, PIN_INPUT, 0) /* (N24) GPMC0_AD2 */
|
||||
AM62X_IOPAD(0x0048, PIN_INPUT, 0) /* (N25) GPMC0_AD3 */
|
||||
AM62X_IOPAD(0x004c, PIN_INPUT, 0) /* (P24) GPMC0_AD4 */
|
||||
AM62X_IOPAD(0x0050, PIN_INPUT, 0) /* (P22) GPMC0_AD5 */
|
||||
AM62X_IOPAD(0x0054, PIN_INPUT, 0) /* (P21) GPMC0_AD6 */
|
||||
AM62X_IOPAD(0x0058, PIN_INPUT, 0) /* (R23) GPMC0_AD7 */
|
||||
AM62X_IOPAD(0x005c, PIN_INPUT, 0) /* (R24) GPMC0_AD8 */
|
||||
AM62X_IOPAD(0x0060, PIN_INPUT, 0) /* (R25) GPMC0_AD9 */
|
||||
AM62X_IOPAD(0x0064, PIN_INPUT, 0) /* (T25) GPMC0_AD10 */
|
||||
AM62X_IOPAD(0x0068, PIN_INPUT, 0) /* (R21) GPMC0_AD11 */
|
||||
AM62X_IOPAD(0x006c, PIN_INPUT, 0) /* (T22) GPMC0_AD12 */
|
||||
AM62X_IOPAD(0x0070, PIN_INPUT, 0) /* (T24) GPMC0_AD13 */
|
||||
AM62X_IOPAD(0x0074, PIN_INPUT, 0) /* (U25) GPMC0_AD14 */
|
||||
AM62X_IOPAD(0x0078, PIN_INPUT, 0) /* (U24) GPMC0_AD15 */
|
||||
>;
|
||||
};
|
||||
|
||||
gpmc_ctrl_pins_default: gpmc-ctrl-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0094, PIN_OUTPUT, 0) /* (N20) GPMC0_BE1n */
|
||||
AM62X_IOPAD(0x00a8, PIN_OUTPUT, 0) /* (M21) GPMC0_CSn0 */
|
||||
AM62X_IOPAD(0x0088, PIN_OUTPUT, 0) /* (L24) GPMC0_OEn_REn */
|
||||
AM62X_IOPAD(0x008c, PIN_OUTPUT, 0) /* (L25) GPMC0_WEn */
|
||||
AM62X_IOPAD(0x0090, PIN_OUTPUT, 0) /* (M24) GPMC0_BE0n_CLE */
|
||||
>;
|
||||
};
|
||||
|
||||
oms_pins_default: oms-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x0108, PIN_INPUT, 7) /* (D24) MMC2_DAT3.GPIO0_65 */
|
||||
AM62X_IOPAD(0x01a0, PIN_INPUT, 7) /* (E18) MCASP0_AXR0.GPIO1_10 */
|
||||
AM62X_IOPAD(0x01a8, PIN_INPUT, 7) /* (D20) MCASP0_AFSX.GPIO1_12 */
|
||||
AM62X_IOPAD(0x01a4, PIN_INPUT, 7) /* (B20) MCASP0_ACLKX.GPIO1_11 */
|
||||
>;
|
||||
};
|
||||
|
||||
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_INPUT, 1) /* (A19) MCASP0_AXR2.SPI2_D1 */
|
||||
AM62X_IOPAD(0x01ac, PIN_OUTPUT, 1) /* (E19) MCASP0_AFSR.SPI2_CS0 */
|
||||
>;
|
||||
};
|
||||
|
||||
tpm_pins_default: tpm-pins-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
AM62X_IOPAD(0x010c, PIN_INPUT, 7) /* (E23) MMC2_DAT2.GPIO0_66 */
|
||||
>;
|
||||
};
|
||||
|
||||
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) */
|
||||
>;
|
||||
};
|
||||
|
||||
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 */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&gpmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gpmc_data_pins_default>, <&gpmc_addr_pins_default>, <&gpmc_ctrl_pins_default>;
|
||||
|
||||
num-cs = <4>;
|
||||
num-waitpins = <4>;
|
||||
ranges = <
|
||||
0 0 0x00 0x51000000 0x01000000 /* CS0: NVRAM, 16M */
|
||||
>;
|
||||
|
||||
nvram: nor@0,0 { /* NVRAM Device 128k */
|
||||
reg = <0 0 0x01000000>;
|
||||
bank-width = <2>; /* 1: 8bit, 2: 16bit */
|
||||
gpmc,sync-clk-ps = <0>;
|
||||
gpmc,cs-on-ns = <0>;
|
||||
gpmc,cs-rd-off-ns = <50>;
|
||||
gpmc,cs-wr-off-ns = <30>;
|
||||
gpmc,adv-on-ns = <0>;
|
||||
gpmc,adv-rd-off-ns = <0>;
|
||||
gpmc,adv-wr-off-ns = <0>;
|
||||
gpmc,oe-on-ns = <0>;
|
||||
gpmc,oe-off-ns = <50>;
|
||||
gpmc,we-on-ns = <0>;
|
||||
gpmc,we-off-ns = <30>;
|
||||
gpmc,rd-cycle-ns = <50>;
|
||||
gpmc,wr-cycle-ns = <30>;
|
||||
gpmc,access-ns = <40>;
|
||||
gpmc,wr-access-ns = <10>;
|
||||
gpmc,wr-data-mux-bus-ns = <0>;
|
||||
gpmc,cycle2cycle-delay-ns = <10>;
|
||||
gpmc,cycle2cycle-samecsen;
|
||||
gpmc,cycle2cycle-diffcsen;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&main_uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_uart0_pins_default>;
|
||||
};
|
||||
|
||||
&main_uart2 { /* KBUS Firmware download */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_uart2_pins_default>;
|
||||
};
|
||||
|
||||
&main_uart4 { /* RS485 Interface */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_uart4_pins_default>;
|
||||
|
||||
rts-gpios = <&main_gpio0 38 GPIO_ACTIVE_HIGH>;
|
||||
rs485-term-gpios = <&rs485 0 GPIO_ACTIVE_HIGH>;
|
||||
rs485-rts-active-high;
|
||||
linux,rs485-enabled-at-boot-time;
|
||||
};
|
||||
|
||||
&main_i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_i2c0_pins_default>;
|
||||
clock-frequency = <400000>;
|
||||
|
||||
eeprom: at24c512@54 {
|
||||
compatible = "atmel,24c512";
|
||||
reg = <0x54>;
|
||||
pagesize = <128>;
|
||||
};
|
||||
|
||||
led_bar60: pca9552@60 {
|
||||
compatible = "nxp,pca9552";
|
||||
#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: run-red@2 {
|
||||
label = "run-red";
|
||||
reg = <2>;
|
||||
};
|
||||
|
||||
lb60_3: run-green@3 {
|
||||
label = "run-green";
|
||||
reg = <3>;
|
||||
};
|
||||
|
||||
lb60_4: io-red@4 {
|
||||
label = "io-red";
|
||||
reg = <4>;
|
||||
};
|
||||
|
||||
lb60_5: io-green@5 {
|
||||
label = "io-green";
|
||||
reg = <5>;
|
||||
};
|
||||
|
||||
lb60_6: ms-red@6 {
|
||||
label = "ms-red";
|
||||
reg = <6>;
|
||||
};
|
||||
|
||||
lb60_7: ms-green@7 {
|
||||
label = "ms-green";
|
||||
reg = <7>;
|
||||
};
|
||||
|
||||
lb60_8: ns-red@8 {
|
||||
label = "ns-red";
|
||||
reg = <8>;
|
||||
};
|
||||
|
||||
lb60_9: ns-green@9 {
|
||||
label = "ns-green";
|
||||
reg = <9>;
|
||||
};
|
||||
|
||||
lb60_10: usr_r@10 {
|
||||
label = "trm-red";
|
||||
reg = <10>;
|
||||
};
|
||||
|
||||
lb60_11: usr_g@11 {
|
||||
label = "trm-green";
|
||||
reg = <11>;
|
||||
};
|
||||
|
||||
lb60_15: sys-over-red@15 {
|
||||
label = "sys-over-red";
|
||||
reg = <15>;
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
};
|
||||
|
||||
led_bar61: pca9552@61 {
|
||||
compatible = "nxp,pca9552";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x61>;
|
||||
|
||||
lb61_0: u6-red@0 {
|
||||
label = "u6-red";
|
||||
reg = <0>;
|
||||
};
|
||||
|
||||
lb61_1: u6-green@1 {
|
||||
label = "u6-green";
|
||||
reg = <1>;
|
||||
};
|
||||
|
||||
lb61_2: u5-red@2 {
|
||||
label = "u5-red";
|
||||
reg = <2>;
|
||||
};
|
||||
|
||||
lb61_3: u5-green@3 {
|
||||
label = "u5-green";
|
||||
reg = <3>;
|
||||
};
|
||||
|
||||
lb61_4: u4-red@4 {
|
||||
label = "u4-red";
|
||||
reg = <4>;
|
||||
};
|
||||
|
||||
lb61_5: u4-green@5 {
|
||||
label = "u4-green";
|
||||
reg = <5>;
|
||||
};
|
||||
|
||||
lb61_6: u3-red@6 {
|
||||
label = "u3-red";
|
||||
reg = <6>;
|
||||
};
|
||||
|
||||
lb61_7: u3-green@7 {
|
||||
label = "u3-green";
|
||||
reg = <7>;
|
||||
};
|
||||
|
||||
lb61_8: u2-red@8 {
|
||||
label = "u2-red";
|
||||
reg = <8>;
|
||||
};
|
||||
|
||||
lb61_9: u2-green@9 {
|
||||
label = "u2-green";
|
||||
reg = <9>;
|
||||
};
|
||||
|
||||
lb61_10: u1-red@10 {
|
||||
label = "u1-red";
|
||||
reg = <10>;
|
||||
};
|
||||
|
||||
lb61_11: u1-green@11 {
|
||||
label = "u1-green";
|
||||
reg = <11>;
|
||||
};
|
||||
};
|
||||
|
||||
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_3v3_sys>;
|
||||
ldo3-supply = <&vcc_5v0>;
|
||||
ldo4-supply = <&vcc_5v0>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pmic_irq_pins_default>;
|
||||
|
||||
interrupt-parent = <&main_gpio0>;
|
||||
interrupts = <68 IRQ_TYPE_EDGE_FALLING>;
|
||||
|
||||
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 = "VCC1V8_SYS";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck3_30_reg: buck3 {
|
||||
regulator-name = "VCC3V3_SYS";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo1_30_reg: ldo1 {
|
||||
regulator-name = "VCC3V3_SDC";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
ldo2_30_reg: ldo2 {
|
||||
regulator-name = "VDDA_1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&main_spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_spi0_pins_default>;
|
||||
|
||||
spi-rt;
|
||||
spi-rt-prio = <81>;
|
||||
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;
|
||||
|
||||
kbus@0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&kbus_pins_default>;
|
||||
compatible = "wago,spi-kbus";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <10000000>;
|
||||
|
||||
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>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&main_spi2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_spi2_pins_default>;
|
||||
|
||||
SLB9670: SLB9670@0 {
|
||||
compatible = "infineon,slb9670", "tis,tpm2-spi", "tcg,tpm_tis-spi";
|
||||
reg = <0>;
|
||||
#gpio-cells = <2>;
|
||||
#interrupt-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>;
|
||||
};
|
||||
};
|
||||
|
||||
&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;
|
||||
};
|
||||
|
||||
rs485: rs485@71 {
|
||||
compatible = "nxp,pca9538";
|
||||
reg = <0x71>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-line-names = "RS.TERM-EN", "RS.SLR",
|
||||
"+5V0-FB-ENA", "MP200",
|
||||
"BIAS.EN", "BIAS.HIR",
|
||||
"MP201", "MP202";
|
||||
|
||||
rs485-5v {
|
||||
gpio-hog;
|
||||
gpios = <2 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&sdhci0 {
|
||||
/* eMMC */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_mmc0_pins_default>;
|
||||
ti,driver-strength-ohm = <33>;
|
||||
disable-wp;
|
||||
};
|
||||
|
||||
&sdhci1 {
|
||||
/* SD */
|
||||
vmmc-supply = <&vdd_mmc1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_mmc1_pins_default>;
|
||||
ti,driver-strength-ohm = <33>;
|
||||
cap-sd-highspeed;
|
||||
no-1-8-v;
|
||||
};
|
||||
|
||||
&cpsw3g {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_mdio1_pins_default
|
||||
&main_rgmii1_pins_default
|
||||
&main_rgmii2_pins_default>;
|
||||
};
|
||||
|
||||
&cpsw_port1 {
|
||||
phy-mode = "rgmii-rxid";
|
||||
phy-handle = <&cpsw3g_phy0>;
|
||||
};
|
||||
|
||||
&cpsw_port2 {
|
||||
phy-mode = "rgmii-rxid";
|
||||
phy-handle = <&cpsw3g_phy1>;
|
||||
};
|
||||
|
||||
&cpsw3g_mdio {
|
||||
reset-gpios = <&main_gpio1 9 GPIO_ACTIVE_LOW>;
|
||||
reset-delay-us = <10>;
|
||||
reset-post-delay-us = <10000>;
|
||||
|
||||
cpsw3g_phy0: ethernet-phy@0 {
|
||||
// ADIN1300
|
||||
compatible = "ethernet-phy-id0283.bc30";
|
||||
|
||||
reg = <0>;
|
||||
adi,rx-internal-delay-ps = <2000>;
|
||||
};
|
||||
|
||||
cpsw3g_phy1: ethernet-phy@1 {
|
||||
// ADIN1300
|
||||
compatible = "ethernet-phy-id0283.bc30";
|
||||
|
||||
reg = <1>;
|
||||
adi,rx-internal-delay-ps = <2000>;
|
||||
};
|
||||
};
|
||||
|
||||
&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 {
|
||||
ti,vbus-divider;
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
dr_mode = "peripheral";
|
||||
};
|
||||
@@ -131,6 +131,7 @@ CONFIG_BRIDGE_EBT_T_FILTER=m
|
||||
CONFIG_BRIDGE_EBT_T_NAT=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
|
||||
@@ -172,6 +173,7 @@ 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
|
||||
@@ -182,6 +184,8 @@ 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
|
||||
@@ -297,14 +301,20 @@ CONFIG_REGULATOR_TPS65219=y
|
||||
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_ROOT_HUB_TT=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_GADGET=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
|
||||
@@ -317,6 +327,7 @@ 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
|
||||
@@ -326,6 +337,7 @@ 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
|
||||
|
||||
+20
-13
@@ -54,7 +54,7 @@ static struct cdev kbus_cdev;
|
||||
/* sysfs */
|
||||
extern struct class *wsysinit_sysfs_class;
|
||||
extern struct device *wsysinit_sysfs_device;
|
||||
static struct device *kbus_device;
|
||||
static struct device *kbus_device = NULL;
|
||||
|
||||
int kbus_wait_for_gpio(int gpio)
|
||||
{
|
||||
@@ -223,19 +223,26 @@ static struct task_struct *find_dma_task(void)
|
||||
|
||||
void kbus_boost_dma_task(u8 enable)
|
||||
{
|
||||
struct kbus_drv_data *kdrvdata = dev_get_drvdata(kbus_device);
|
||||
struct sched_param boost_param = {
|
||||
.sched_priority = enable ? kdrvdata->kbus_dma_boost_prio :
|
||||
kdrvdata->kbus_dma_normal_prio
|
||||
};
|
||||
struct kbus_drv_data *kdrvdata = NULL;
|
||||
struct sched_param boost_param;
|
||||
|
||||
if (kdrvdata->dma_task) {
|
||||
if ((enable && !kdrvdata->kbus_dma_boost_en) ||
|
||||
(!enable && kdrvdata->kbus_dma_boost_en)) {
|
||||
kdrvdata->kbus_dma_boost_en =
|
||||
!kdrvdata->kbus_dma_boost_en;
|
||||
sched_setscheduler(kdrvdata->dma_task, SCHED_FIFO,
|
||||
&boost_param);
|
||||
if (kbus_device) {
|
||||
kdrvdata = dev_get_drvdata(kbus_device);
|
||||
|
||||
if (kdrvdata) {
|
||||
boost_param.sched_priority = enable ?
|
||||
kdrvdata->kbus_dma_boost_prio :
|
||||
kdrvdata->kbus_dma_normal_prio;
|
||||
|
||||
if (kdrvdata->dma_task) {
|
||||
if ((enable && !kdrvdata->kbus_dma_boost_en) ||
|
||||
(!enable && kdrvdata->kbus_dma_boost_en)) {
|
||||
kdrvdata->kbus_dma_boost_en =
|
||||
!kdrvdata->kbus_dma_boost_en;
|
||||
sched_setscheduler(kdrvdata->dma_task, SCHED_FIFO,
|
||||
&boost_param);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -657,9 +657,11 @@ omap2_mcspi_txrx_dma(struct spi_device *spi, struct spi_transfer *xfer)
|
||||
int wait_res;
|
||||
|
||||
#ifdef CONFIG_SPI_KBUS_OMAP_EXTENSION
|
||||
trace_pxc_kbus(__func__, "enter");
|
||||
if (spi->dev.driver == &kbus_driver.driver) {
|
||||
trace_pxc_kbus(__func__, "enter");
|
||||
|
||||
kbus_boost_dma_task(1);
|
||||
kbus_boost_dma_task(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
mcspi = spi_controller_get_devdata(spi->controller);
|
||||
@@ -777,9 +779,11 @@ omap2_mcspi_txrx_dma_eow(struct spi_device *spi, struct spi_transfer *xfer)
|
||||
int ret;
|
||||
|
||||
#ifdef CONFIG_SPI_KBUS_OMAP_EXTENSION
|
||||
trace_pxc_kbus(__func__, "enter");
|
||||
if (spi->dev.driver == &kbus_driver.driver) {
|
||||
trace_pxc_kbus(__func__, "enter");
|
||||
|
||||
kbus_boost_dma_task(1);
|
||||
kbus_boost_dma_task(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
mcspi = spi_controller_get_devdata(spi->controller);
|
||||
@@ -866,10 +870,12 @@ omap2_mcspi_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
|
||||
word_len = cs->word_len;
|
||||
|
||||
#ifdef CONFIG_SPI_KBUS_OMAP_EXTENSION
|
||||
trace_pxc_kbus(__func__, "enter");
|
||||
kbus_dbg("%s[%d]: count: %d\n", __func__,__LINE__, count);
|
||||
if (spi->dev.driver == &kbus_driver.driver) {
|
||||
trace_pxc_kbus(__func__, "enter");
|
||||
kbus_dbg("%s[%d]: count: %d\n", __func__,__LINE__, count);
|
||||
|
||||
kbus_boost_dma_task(0);
|
||||
kbus_boost_dma_task(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
l = mcspi_cached_chconf0(spi);
|
||||
|
||||
+1
-1
Submodule labgrid.basesoftware updated: 32a1f8345b...bdfb3acb67
Reference in New Issue
Block a user