Commit b805cc89 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'imx-dt64-6.1' of...

Merge tag 'imx-dt64-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dt

i.MX arm64 device tree change for 6.1:

- New board support: i.MX8DXL EVK, Kontron SL/BL i.MX8MM OSM-S, i.MX8MM
  Gateworks GW7904, MSC SM2S-IMX8PLUS SoM and carrier board, NXP
  LS2081ARDB.
- Update i.MX8MQ device tree to use generic name 'dma-controller' for
  SDMA.
- A number of i.MX8ULP device tree improvements and updates: correct
  parent clock of LPI2C & LPSPI, increase the clock speed of LPSPI, add
  PMU and mailbox device, drop undocumented CGC property, enable FEC, etc.
- Add interconnect property for various i.MX8MP blk-ctrl devices.
- Enable VPU PGC, blk-ctrl and PCIe support for i.MX8MP SoC.
- A set of changes from Peng Fan to add various devices for i.MX93 SoC,
  including MU, blk-ctrl, PMU, LPI2C, LPSPI, SRC, etc.
- Two set of changes to update LS1043A and LS1046A device trees on
  various aspects, including USB3, PCIe, DMA, mdio-mux, QSPI Flash, etc.
- Board imx8mq-librem5 update: add USB role switching, add RGB PWM
  notification LEDs, add voice coil motor for focus control, fix MIPI_CSI
  description.
- A series from Frieder Schrempf to improve imx8mm-kontron device trees
  for VSELECT switch, DDRC operating point, SPI NOR partition layout etc.
- A set of display and PMIC related additions and improvements on
  imx8mm-verdin board.
- A number of i.MX8M Plus DHCOM PDK2 device tree improvments from Marek
  Vasut.
- A few imx8mp-venice device tree updates on USB, cpufreq and WiFi/BT.
- A series from Vladimir Oltean to enable multiple switch CPU ports
  support.
- Other small and random board specific updates.

* tag 'imx-dt64-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (90 commits)
  arm64: dts: ls1046a-qds: Modify the qspi flash frequency
  arm64: dts: ls1046a-qds: add mmio based mdio-mux nodes for FPGA
  arm64: dts: ls1046a: add gpios based i2c recovery information
  arm64: dts: ls1046a: use a pseudo-bus to constrain usb and sata dma size
  arm64: dts: ls1046a: make dma-coherent global to the SoC
  arm64: dts: ls1046a: add missing dma ranges property
  arm64: dts: ls1046a: Add big-endian property for PCIe nodes
  arm64: dts: ls1046a: Add the PME interrupt and big-endian to PCIe EP nodes
  arm64: dts: ls1046a: Enable usb3-lpm-capable for usb3 node
  arm64: dts: ls1043a-rdb: add pcf85263 rtc node
  arm64: dts: ls1043a-qds: add mmio based mdio-mux support
  arm64: dts: ls1043a: use a pseudo-bus to constrain usb and sata dma size
  arm64: dts: ls1043a: add gpio based i2c recovery information
  arm64: dts: ls1043a: make dma-coherent global to the SoC
  arm64: dts: ls1043a: add missing dma ranges property
  arm64: dts: ls1043a: Add big-endian property for PCIe nodes
  arm64: dts: ls1043a: Add SCFG phandle for PCIe nodes
  arm64: dts: ls1043a: use pcie aer/pme interrupts
  arm64: dts: ls1043a: Enable usb3-lpm-capable for usb3 node
  arm64: dts: ls1043a: fix the wrong size of dcfg space
  ...

Link: https://lore.kernel.org/r/20220918092806.2152700-4-shawnguo@kernel.orgSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 07d0db46 d4e87e4e
...@@ -23,6 +23,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb ...@@ -23,6 +23,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-ten64.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2081a-rdb.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-qds.dtb dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-qds.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-rdb.dtb dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-rdb.dtb
...@@ -48,6 +49,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-85bb.dtb ...@@ -48,6 +49,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-85bb.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-899b.dtb dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-899b.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-9999.dtb dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-9999.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8dxl-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-beacon-kit.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-beacon-kit.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-data-modul-edm-sbc.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-data-modul-edm-sbc.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb
...@@ -55,7 +57,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-emcon-avari.dtb ...@@ -55,7 +57,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-emcon-avari.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-ctouch2.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-ctouch2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-edimm2.2.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-edimm2.2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-kontron-n801x-s.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-kontron-bl.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-kontron-bl-osm-s.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-mx8menlo.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-mx8menlo.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-nitrogen-r2.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-nitrogen-r2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-phyboard-polis-rdk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-phyboard-polis-rdk.dtb
...@@ -67,6 +70,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x.dtb ...@@ -67,6 +70,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7901.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7901.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7902.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7902.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7903.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7903.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7904.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-nonwifi-dahlia.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-nonwifi-dahlia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-nonwifi-dev.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-nonwifi-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dahlia.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dahlia.dtb
...@@ -83,6 +87,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mn-venice-gw7902.dtb ...@@ -83,6 +87,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mn-venice-gw7902.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx.dtb
......
...@@ -59,6 +59,10 @@ &enetc_port2 { ...@@ -59,6 +59,10 @@ &enetc_port2 {
status = "okay"; status = "okay";
}; };
&enetc_port3 {
status = "okay";
};
&i2c3 { &i2c3 {
eeprom@57 { eeprom@57 {
compatible = "atmel,24c32"; compatible = "atmel,24c32";
...@@ -104,7 +108,10 @@ &mscc_felix_port3 { ...@@ -104,7 +108,10 @@ &mscc_felix_port3 {
}; };
&mscc_felix_port4 { &mscc_felix_port4 {
ethernet = <&enetc_port2>; status = "okay";
};
&mscc_felix_port5 {
status = "okay"; status = "okay";
}; };
......
...@@ -39,6 +39,10 @@ &enetc_port2 { ...@@ -39,6 +39,10 @@ &enetc_port2 {
status = "okay"; status = "okay";
}; };
&enetc_port3 {
status = "okay";
};
&mscc_felix { &mscc_felix {
status = "okay"; status = "okay";
}; };
...@@ -60,6 +64,9 @@ &mscc_felix_port1 { ...@@ -60,6 +64,9 @@ &mscc_felix_port1 {
}; };
&mscc_felix_port4 { &mscc_felix_port4 {
ethernet = <&enetc_port2>; status = "okay";
};
&mscc_felix_port5 {
status = "okay"; status = "okay";
}; };
...@@ -29,6 +29,9 @@ aliases { ...@@ -29,6 +29,9 @@ aliases {
ethernet3 = &mscc_felix_port1; ethernet3 = &mscc_felix_port1;
ethernet4 = &mscc_felix_port2; ethernet4 = &mscc_felix_port2;
ethernet5 = &mscc_felix_port3; ethernet5 = &mscc_felix_port3;
ethernet6 = &mscc_felix_port4;
ethernet7 = &mscc_felix_port5;
ethernet8 = &enetc_port3;
}; };
chosen { chosen {
...@@ -151,6 +154,10 @@ &enetc_port2 { ...@@ -151,6 +154,10 @@ &enetc_port2 {
status = "okay"; status = "okay";
}; };
&enetc_port3 {
status = "okay";
};
&esdhc { &esdhc {
sd-uhs-sdr104; sd-uhs-sdr104;
sd-uhs-sdr50; sd-uhs-sdr50;
...@@ -278,7 +285,10 @@ &mscc_felix_port3 { ...@@ -278,7 +285,10 @@ &mscc_felix_port3 {
}; };
&mscc_felix_port4 { &mscc_felix_port4 {
ethernet = <&enetc_port2>; status = "okay";
};
&mscc_felix_port5 {
status = "okay"; status = "okay";
}; };
......
...@@ -1156,6 +1156,7 @@ mscc_felix_port3: port@3 { ...@@ -1156,6 +1156,7 @@ mscc_felix_port3: port@3 {
mscc_felix_port4: port@4 { mscc_felix_port4: port@4 {
reg = <4>; reg = <4>;
phy-mode = "internal"; phy-mode = "internal";
ethernet = <&enetc_port2>;
status = "disabled"; status = "disabled";
fixed-link { fixed-link {
...@@ -1168,6 +1169,7 @@ fixed-link { ...@@ -1168,6 +1169,7 @@ fixed-link {
mscc_felix_port5: port@5 { mscc_felix_port5: port@5 {
reg = <5>; reg = <5>;
phy-mode = "internal"; phy-mode = "internal";
ethernet = <&enetc_port3>;
status = "disabled"; status = "disabled";
fixed-link { fixed-link {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* Device Tree Include file for Freescale Layerscape-1043A family SoC. * Device Tree Include file for Freescale Layerscape-1043A family SoC.
* *
* Copyright 2014-2015 Freescale Semiconductor, Inc. * Copyright 2014-2015 Freescale Semiconductor, Inc.
* Copyright 2018 NXP * Copyright 2018-2021 NXP
* *
* Mingkai Hu <Mingkai.hu@freescale.com> * Mingkai Hu <Mingkai.hu@freescale.com>
*/ */
...@@ -24,6 +24,22 @@ aliases { ...@@ -24,6 +24,22 @@ aliases {
serial1 = &duart1; serial1 = &duart1;
serial2 = &duart2; serial2 = &duart2;
serial3 = &duart3; serial3 = &duart3;
sgmii-riser-s1-p1 = &sgmii_phy_s1_p1;
sgmii-riser-s2-p1 = &sgmii_phy_s2_p1;
sgmii-riser-s3-p1 = &sgmii_phy_s3_p1;
sgmii-riser-s4-p1 = &sgmii_phy_s4_p1;
qsgmii-s1-p1 = &qsgmii_phy_s1_p1;
qsgmii-s1-p2 = &qsgmii_phy_s1_p2;
qsgmii-s1-p3 = &qsgmii_phy_s1_p3;
qsgmii-s1-p4 = &qsgmii_phy_s1_p4;
qsgmii-s2-p1 = &qsgmii_phy_s2_p1;
qsgmii-s2-p2 = &qsgmii_phy_s2_p2;
qsgmii-s2-p3 = &qsgmii_phy_s2_p3;
qsgmii-s2-p4 = &qsgmii_phy_s2_p4;
emi1-slot1 = &ls1043mdio_s1;
emi1-slot2 = &ls1043mdio_s2;
emi1-slot3 = &ls1043mdio_s3;
emi1-slot4 = &ls1043mdio_s4;
}; };
chosen { chosen {
...@@ -62,8 +78,11 @@ nand@1,0 { ...@@ -62,8 +78,11 @@ nand@1,0 {
}; };
fpga: board-control@2,0 { fpga: board-control@2,0 {
compatible = "fsl,ls1043aqds-fpga", "fsl,fpga-qixis"; compatible = "fsl,ls1043aqds-fpga", "fsl,fpga-qixis", "simple-mfd";
reg = <0x2 0x0 0x0000100>; reg = <0x2 0x0 0x0000100>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 2 0 0x100>;
}; };
}; };
...@@ -153,3 +172,153 @@ &usb0 { ...@@ -153,3 +172,153 @@ &usb0 {
}; };
#include "fsl-ls1043-post.dtsi" #include "fsl-ls1043-post.dtsi"
&fman0 {
ethernet@e0000 {
phy-handle = <&qsgmii_phy_s2_p1>;
phy-connection-type = "sgmii";
};
ethernet@e2000 {
phy-handle = <&qsgmii_phy_s2_p2>;
phy-connection-type = "sgmii";
};
ethernet@e4000 {
phy-handle = <&rgmii_phy1>;
phy-connection-type = "rgmii";
};
ethernet@e6000 {
phy-handle = <&rgmii_phy2>;
phy-connection-type = "rgmii";
};
ethernet@e8000 {
phy-handle = <&qsgmii_phy_s2_p3>;
phy-connection-type = "sgmii";
};
ethernet@ea000 {
phy-handle = <&qsgmii_phy_s2_p4>;
phy-connection-type = "sgmii";
};
ethernet@f0000 { /* DTSEC9/10GEC1 */
fixed-link = <1 1 10000 0 0>;
phy-connection-type = "xgmii";
};
};
&fpga {
mdio-mux-emi1@54 {
compatible = "mdio-mux-mmioreg", "mdio-mux";
mdio-parent-bus = <&mdio0>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x54 1>; /* BRDCFG4 */
mux-mask = <0xe0>; /* EMI1 */
/* On-board RGMII1 PHY */
ls1043mdio0: mdio@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
rgmii_phy1: ethernet-phy@1 { /* MAC3 */
reg = <0x1>;
};
};
/* On-board RGMII2 PHY */
ls1043mdio1: mdio@20 {
reg = <0x20>;
#address-cells = <1>;
#size-cells = <0>;
rgmii_phy2: ethernet-phy@2 { /* MAC4 */
reg = <0x2>;
};
};
/* Slot 1 */
ls1043mdio_s1: mdio@40 {
reg = <0x40>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
qsgmii_phy_s1_p1: ethernet-phy@4 {
reg = <0x4>;
};
qsgmii_phy_s1_p2: ethernet-phy@5 {
reg = <0x5>;
};
qsgmii_phy_s1_p3: ethernet-phy@6 {
reg = <0x6>;
};
qsgmii_phy_s1_p4: ethernet-phy@7 {
reg = <0x7>;
};
sgmii_phy_s1_p1: ethernet-phy@1c {
reg = <0x1c>;
};
};
/* Slot 2 */
ls1043mdio_s2: mdio@60 {
reg = <0x60>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
qsgmii_phy_s2_p1: ethernet-phy@8 {
reg = <0x8>;
};
qsgmii_phy_s2_p2: ethernet-phy@9 {
reg = <0x9>;
};
qsgmii_phy_s2_p3: ethernet-phy@a {
reg = <0xa>;
};
qsgmii_phy_s2_p4: ethernet-phy@b {
reg = <0xb>;
};
sgmii_phy_s2_p1: ethernet-phy@1c {
reg = <0x1c>;
};
};
/* Slot 3 */
ls1043mdio_s3: mdio@80 {
reg = <0x80>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
sgmii_phy_s3_p1: ethernet-phy@1c {
reg = <0x1c>;
};
};
/* Slot 4 */
ls1043mdio_s4: mdio@a0 {
reg = <0xa0>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
sgmii_phy_s4_p1: ethernet-phy@1c {
reg = <0x1c>;
};
};
};
};
...@@ -29,23 +29,33 @@ chosen { ...@@ -29,23 +29,33 @@ chosen {
&i2c0 { &i2c0 {
status = "okay"; status = "okay";
ina220@40 { ina220@40 {
compatible = "ti,ina220"; compatible = "ti,ina220";
reg = <0x40>; reg = <0x40>;
shunt-resistor = <1000>; shunt-resistor = <1000>;
}; };
adt7461a@4c { adt7461a@4c {
compatible = "adi,adt7461"; compatible = "adi,adt7461";
reg = <0x4c>; reg = <0x4c>;
}; };
rtc@51 {
compatible = "nxp,pcf85263";
reg = <0x51>;
};
eeprom@52 { eeprom@52 {
compatible = "atmel,24c512"; compatible = "atmel,24c512";
reg = <0x52>; reg = <0x52>;
}; };
eeprom@53 { eeprom@53 {
compatible = "atmel,24c512"; compatible = "atmel,24c512";
reg = <0x53>; reg = <0x53>;
}; };
rtc@68 { rtc@68 {
compatible = "pericom,pt7c4338"; compatible = "pericom,pt7c4338";
reg = <0x68>; reg = <0x68>;
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <dt-bindings/clock/fsl,qoriq-clockgen.h> #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
#include <dt-bindings/thermal/thermal.h> #include <dt-bindings/thermal/thermal.h>
#include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/gpio/gpio.h>
/ { / {
compatible = "fsl,ls1043a"; compatible = "fsl,ls1043a";
...@@ -300,6 +301,8 @@ soc: soc { ...@@ -300,6 +301,8 @@ soc: soc {
#address-cells = <2>; #address-cells = <2>;
#size-cells = <2>; #size-cells = <2>;
ranges; ranges;
dma-ranges = <0x0 0x0 0x0 0x0 0x10000 0x00000000>;
dma-coherent;
clockgen: clocking@1ee1000 { clockgen: clocking@1ee1000 {
compatible = "fsl,ls1043a-clockgen"; compatible = "fsl,ls1043a-clockgen";
...@@ -393,7 +396,7 @@ sfp: efuse@1e80000 { ...@@ -393,7 +396,7 @@ sfp: efuse@1e80000 {
dcfg: dcfg@1ee0000 { dcfg: dcfg@1ee0000 {
compatible = "fsl,ls1043a-dcfg", "syscon"; compatible = "fsl,ls1043a-dcfg", "syscon";
reg = <0x0 0x1ee0000 0x0 0x10000>; reg = <0x0 0x1ee0000 0x0 0x1000>;
big-endian; big-endian;
}; };
...@@ -536,7 +539,7 @@ dspi1: spi@2110000 { ...@@ -536,7 +539,7 @@ dspi1: spi@2110000 {
}; };
i2c0: i2c@2180000 { i2c0: i2c@2180000 {
compatible = "fsl,vf610-i2c"; compatible = "fsl,ls1043a-i2c", "fsl,vf610-i2c";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
reg = <0x0 0x2180000 0x0 0x10000>; reg = <0x0 0x2180000 0x0 0x10000>;
...@@ -551,7 +554,7 @@ i2c0: i2c@2180000 { ...@@ -551,7 +554,7 @@ i2c0: i2c@2180000 {
}; };
i2c1: i2c@2190000 { i2c1: i2c@2190000 {
compatible = "fsl,vf610-i2c"; compatible = "fsl,ls1043a-i2c", "fsl,vf610-i2c";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
reg = <0x0 0x2190000 0x0 0x10000>; reg = <0x0 0x2190000 0x0 0x10000>;
...@@ -559,11 +562,12 @@ i2c1: i2c@2190000 { ...@@ -559,11 +562,12 @@ i2c1: i2c@2190000 {
clock-names = "i2c"; clock-names = "i2c";
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(1)>; QORIQ_CLK_PLL_DIV(1)>;
scl-gpios = <&gpio4 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "disabled"; status = "disabled";
}; };
i2c2: i2c@21a0000 { i2c2: i2c@21a0000 {
compatible = "fsl,vf610-i2c"; compatible = "fsl,ls1043a-i2c", "fsl,vf610-i2c";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
reg = <0x0 0x21a0000 0x0 0x10000>; reg = <0x0 0x21a0000 0x0 0x10000>;
...@@ -571,11 +575,12 @@ i2c2: i2c@21a0000 { ...@@ -571,11 +575,12 @@ i2c2: i2c@21a0000 {
clock-names = "i2c"; clock-names = "i2c";
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(1)>; QORIQ_CLK_PLL_DIV(1)>;
scl-gpios = <&gpio4 10 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "disabled"; status = "disabled";
}; };
i2c3: i2c@21b0000 { i2c3: i2c@21b0000 {
compatible = "fsl,vf610-i2c"; compatible = "fsl,ls1043a-i2c", "fsl,vf610-i2c";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
reg = <0x0 0x21b0000 0x0 0x10000>; reg = <0x0 0x21b0000 0x0 0x10000>;
...@@ -583,6 +588,7 @@ i2c3: i2c@21b0000 { ...@@ -583,6 +588,7 @@ i2c3: i2c@21b0000 {
clock-names = "i2c"; clock-names = "i2c";
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(1)>; QORIQ_CLK_PLL_DIV(1)>;
scl-gpios = <&gpio4 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "disabled"; status = "disabled";
}; };
...@@ -810,48 +816,59 @@ QORIQ_CLK_PLL_DIV(1)>, ...@@ -810,48 +816,59 @@ QORIQ_CLK_PLL_DIV(1)>,
QORIQ_CLK_PLL_DIV(1)>; QORIQ_CLK_PLL_DIV(1)>;
}; };
usb0: usb@2f00000 { aux_bus: aux_bus {
compatible = "snps,dwc3"; #address-cells = <2>;
reg = <0x0 0x2f00000 0x0 0x10000>; #size-cells = <2>;
interrupts = <0 60 0x4>; compatible = "simple-bus";
dr_mode = "host"; ranges;
snps,quirk-frame-length-adjustment = <0x20>; dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x00000000>;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; usb0: usb@2f00000 {
status = "disabled"; compatible = "snps,dwc3";
}; reg = <0x0 0x2f00000 0x0 0x10000>;
interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
usb3-lpm-capable;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
status = "disabled";
};
usb1: usb@3000000 { usb1: usb@3000000 {
compatible = "snps,dwc3"; compatible = "snps,dwc3";
reg = <0x0 0x3000000 0x0 0x10000>; reg = <0x0 0x3000000 0x0 0x10000>;
interrupts = <0 61 0x4>; interrupts = <0 61 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host"; dr_mode = "host";
snps,quirk-frame-length-adjustment = <0x20>; snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk; snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; usb3-lpm-capable;
status = "disabled"; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
}; status = "disabled";
};
usb2: usb@3100000 { usb2: usb@3100000 {
compatible = "snps,dwc3"; compatible = "snps,dwc3";
reg = <0x0 0x3100000 0x0 0x10000>; reg = <0x0 0x3100000 0x0 0x10000>;
interrupts = <0 63 0x4>; interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host"; dr_mode = "host";
snps,quirk-frame-length-adjustment = <0x20>; snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk; snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; usb3-lpm-capable;
status = "disabled"; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
}; status = "disabled";
};
sata: sata@3200000 { sata: sata@3200000 {
compatible = "fsl,ls1043a-ahci"; compatible = "fsl,ls1043a-ahci";
reg = <0x0 0x3200000 0x0 0x10000>, reg = <0x0 0x3200000 0x0 0x10000>,
<0x0 0x20140520 0x0 0x4>; <0x0 0x20140520 0x0 0x4>;
reg-names = "ahci", "sata-ecc"; reg-names = "ahci", "sata-ecc";
interrupts = <0 69 0x4>; interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(1)>; QORIQ_CLK_PLL_DIV(1)>;
dma-coherent; dma-coherent;
};
}; };
msi1: msi-controller1@1571000 { msi1: msi-controller1@1571000 {
...@@ -880,13 +897,12 @@ pcie1: pcie@3400000 { ...@@ -880,13 +897,12 @@ pcie1: pcie@3400000 {
reg = <0x00 0x03400000 0x0 0x00100000>, /* controller registers */ reg = <0x00 0x03400000 0x0 0x00100000>, /* controller registers */
<0x40 0x00000000 0x0 0x00002000>; /* configuration space */ <0x40 0x00000000 0x0 0x00002000>; /* configuration space */
reg-names = "regs", "config"; reg-names = "regs", "config";
interrupts = <0 118 0x4>, /* controller interrupt */ interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH>,
<0 117 0x4>; /* PME interrupt */ <0 118 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "intr", "pme"; interrupt-names = "pme", "aer";
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
device_type = "pci"; device_type = "pci";
dma-coherent;
num-viewport = <6>; num-viewport = <6>;
bus-range = <0x0 0xff>; bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */ ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */
...@@ -898,6 +914,8 @@ pcie1: pcie@3400000 { ...@@ -898,6 +914,8 @@ pcie1: pcie@3400000 {
<0000 0 0 2 &gic 0 111 0x4>, <0000 0 0 2 &gic 0 111 0x4>,
<0000 0 0 3 &gic 0 112 0x4>, <0000 0 0 3 &gic 0 112 0x4>,
<0000 0 0 4 &gic 0 113 0x4>; <0000 0 0 4 &gic 0 113 0x4>;
fsl,pcie-scfg = <&scfg 0>;
big-endian;
status = "disabled"; status = "disabled";
}; };
...@@ -906,13 +924,12 @@ pcie2: pcie@3500000 { ...@@ -906,13 +924,12 @@ pcie2: pcie@3500000 {
reg = <0x00 0x03500000 0x0 0x00100000>, /* controller registers */ reg = <0x00 0x03500000 0x0 0x00100000>, /* controller registers */
<0x48 0x00000000 0x0 0x00002000>; /* configuration space */ <0x48 0x00000000 0x0 0x00002000>; /* configuration space */
reg-names = "regs", "config"; reg-names = "regs", "config";
interrupts = <0 128 0x4>, interrupts = <0 127 IRQ_TYPE_LEVEL_HIGH>,
<0 127 0x4>; <0 128 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "intr", "pme"; interrupt-names = "pme", "aer";
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
device_type = "pci"; device_type = "pci";
dma-coherent;
num-viewport = <6>; num-viewport = <6>;
bus-range = <0x0 0xff>; bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* downstream I/O */ ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* downstream I/O */
...@@ -924,6 +941,8 @@ pcie2: pcie@3500000 { ...@@ -924,6 +941,8 @@ pcie2: pcie@3500000 {
<0000 0 0 2 &gic 0 121 0x4>, <0000 0 0 2 &gic 0 121 0x4>,
<0000 0 0 3 &gic 0 122 0x4>, <0000 0 0 3 &gic 0 122 0x4>,
<0000 0 0 4 &gic 0 123 0x4>; <0000 0 0 4 &gic 0 123 0x4>;
fsl,pcie-scfg = <&scfg 1>;
big-endian;
status = "disabled"; status = "disabled";
}; };
...@@ -932,13 +951,12 @@ pcie3: pcie@3600000 { ...@@ -932,13 +951,12 @@ pcie3: pcie@3600000 {
reg = <0x00 0x03600000 0x0 0x00100000>, /* controller registers */ reg = <0x00 0x03600000 0x0 0x00100000>, /* controller registers */
<0x50 0x00000000 0x0 0x00002000>; /* configuration space */ <0x50 0x00000000 0x0 0x00002000>; /* configuration space */
reg-names = "regs", "config"; reg-names = "regs", "config";
interrupts = <0 162 0x4>, interrupts = <0 161 IRQ_TYPE_LEVEL_HIGH>,
<0 161 0x4>; <0 162 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "intr", "pme"; interrupt-names = "pme", "aer";
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
device_type = "pci"; device_type = "pci";
dma-coherent;
num-viewport = <6>; num-viewport = <6>;
bus-range = <0x0 0xff>; bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x00000000 0x50 0x00010000 0x0 0x00010000 /* downstream I/O */ ranges = <0x81000000 0x0 0x00000000 0x50 0x00010000 0x0 0x00010000 /* downstream I/O */
...@@ -950,6 +968,8 @@ pcie3: pcie@3600000 { ...@@ -950,6 +968,8 @@ pcie3: pcie@3600000 {
<0000 0 0 2 &gic 0 155 0x4>, <0000 0 0 2 &gic 0 155 0x4>,
<0000 0 0 3 &gic 0 156 0x4>, <0000 0 0 3 &gic 0 156 0x4>,
<0000 0 0 4 &gic 0 157 0x4>; <0000 0 0 4 &gic 0 157 0x4>;
fsl,pcie-scfg = <&scfg 2>;
big-endian;
status = "disabled"; status = "disabled";
}; };
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* Device Tree Include file for Freescale Layerscape-1046A family SoC. * Device Tree Include file for Freescale Layerscape-1046A family SoC.
* *
* Copyright 2016 Freescale Semiconductor, Inc. * Copyright 2016 Freescale Semiconductor, Inc.
* Copyright 2018 NXP * Copyright 2018-2019 NXP
* *
* Shaohui Xie <Shaohui.Xie@nxp.com> * Shaohui Xie <Shaohui.Xie@nxp.com>
*/ */
...@@ -17,14 +17,26 @@ / { ...@@ -17,14 +17,26 @@ / {
compatible = "fsl,ls1046a-qds", "fsl,ls1046a"; compatible = "fsl,ls1046a-qds", "fsl,ls1046a";
aliases { aliases {
emi1-slot1 = &ls1046mdio_s1;
emi1-slot2 = &ls1046mdio_s2;
emi1-slot4 = &ls1046mdio_s4;
gpio0 = &gpio0; gpio0 = &gpio0;
gpio1 = &gpio1; gpio1 = &gpio1;
gpio2 = &gpio2; gpio2 = &gpio2;
gpio3 = &gpio3; gpio3 = &gpio3;
qsgmii-s2-p1 = &qsgmii_phy_s2_p1;
qsgmii-s2-p2 = &qsgmii_phy_s2_p2;
qsgmii-s2-p3 = &qsgmii_phy_s2_p3;
qsgmii-s2-p4 = &qsgmii_phy_s2_p4;
serial0 = &duart0; serial0 = &duart0;
serial1 = &duart1; serial1 = &duart1;
serial2 = &duart2; serial2 = &duart2;
serial3 = &duart3; serial3 = &duart3;
sgmii-s1-p1 = &sgmii_phy_s1_p1;
sgmii-s1-p2 = &sgmii_phy_s1_p2;
sgmii-s1-p3 = &sgmii_phy_s1_p3;
sgmii-s1-p4 = &sgmii_phy_s1_p4;
sgmii-s4-p1 = &sgmii_phy_s4_p1;
}; };
chosen { chosen {
...@@ -153,8 +165,9 @@ nand@1,0 { ...@@ -153,8 +165,9 @@ nand@1,0 {
}; };
fpga: board-control@2,0 { fpga: board-control@2,0 {
compatible = "fsl,ls1046aqds-fpga", "fsl,fpga-qixis"; compatible = "fsl,ls1046aqds-fpga", "fsl,fpga-qixis", "simple-mfd";
reg = <0x2 0x0 0x0000100>; reg = <0x2 0x0 0x0000100>;
ranges = <0 2 0 0x100>;
}; };
}; };
...@@ -169,7 +182,7 @@ qflash0: flash@0 { ...@@ -169,7 +182,7 @@ qflash0: flash@0 {
compatible = "spansion,m25p80"; compatible = "spansion,m25p80";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
spi-max-frequency = <20000000>; spi-max-frequency = <50000000>;
spi-rx-bus-width = <4>; spi-rx-bus-width = <4>;
spi-tx-bus-width = <4>; spi-tx-bus-width = <4>;
reg = <0>; reg = <0>;
...@@ -177,3 +190,141 @@ qflash0: flash@0 { ...@@ -177,3 +190,141 @@ qflash0: flash@0 {
}; };
#include "fsl-ls1046-post.dtsi" #include "fsl-ls1046-post.dtsi"
&fman0 {
ethernet@e0000 {
phy-handle = <&qsgmii_phy_s2_p1>;
phy-connection-type = "sgmii";
};
ethernet@e2000 {
phy-handle = <&sgmii_phy_s4_p1>;
phy-connection-type = "sgmii";
};
ethernet@e4000 {
phy-handle = <&rgmii_phy1>;
phy-connection-type = "rgmii";
};
ethernet@e6000 {
phy-handle = <&rgmii_phy2>;
phy-connection-type = "rgmii";
};
ethernet@e8000 {
phy-handle = <&sgmii_phy_s1_p3>;
phy-connection-type = "sgmii";
};
ethernet@ea000 {
phy-handle = <&sgmii_phy_s1_p4>;
phy-connection-type = "sgmii";
};
ethernet@f0000 { /* DTSEC9/10GEC1 */
phy-handle = <&sgmii_phy_s1_p1>;
phy-connection-type = "xgmii";
};
ethernet@f2000 { /* DTSEC10/10GEC2 */
phy-handle = <&sgmii_phy_s1_p2>;
phy-connection-type = "xgmii";
};
};
&fpga {
#address-cells = <1>;
#size-cells = <1>;
mdio-mux-emi1 {
compatible = "mdio-mux-mmioreg", "mdio-mux";
mdio-parent-bus = <&mdio0>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x54 1>; /* BRDCFG4 */
mux-mask = <0xe0>; /* EMI1 */
/* On-board RGMII1 PHY */
ls1046mdio0: mdio@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
rgmii_phy1: ethernet-phy@1 { /* MAC3 */
reg = <0x1>;
};
};
/* On-board RGMII2 PHY */
ls1046mdio1: mdio@1 {
reg = <0x20>;
#address-cells = <1>;
#size-cells = <0>;
rgmii_phy2: ethernet-phy@2 { /* MAC4 */
reg = <0x2>;
};
};
/* Slot 1 */
ls1046mdio_s1: mdio@2 {
reg = <0x40>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
sgmii_phy_s1_p1: ethernet-phy@1c {
reg = <0x1c>;
};
sgmii_phy_s1_p2: ethernet-phy@1d {
reg = <0x1d>;
};
sgmii_phy_s1_p3: ethernet-phy@1e {
reg = <0x1e>;
};
sgmii_phy_s1_p4: ethernet-phy@1f {
reg = <0x1f>;
};
};
/* Slot 2 */
ls1046mdio_s2: mdio@3 {
reg = <0x60>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
qsgmii_phy_s2_p1: ethernet-phy@8 {
reg = <0x8>;
};
qsgmii_phy_s2_p2: ethernet-phy@9 {
reg = <0x9>;
};
qsgmii_phy_s2_p3: ethernet-phy@a {
reg = <0xa>;
};
qsgmii_phy_s2_p4: ethernet-phy@b {
reg = <0xb>;
};
};
/* Slot 4 */
ls1046mdio_s4: mdio@5 {
reg = <0x80>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
sgmii_phy_s4_p1: ethernet-phy@1c {
reg = <0x1c>;
};
};
};
};
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <dt-bindings/clock/fsl,qoriq-clockgen.h> #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
#include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/thermal/thermal.h> #include <dt-bindings/thermal/thermal.h>
#include <dt-bindings/gpio/gpio.h>
/ { / {
compatible = "fsl,ls1046a"; compatible = "fsl,ls1046a";
...@@ -272,6 +273,8 @@ soc: soc { ...@@ -272,6 +273,8 @@ soc: soc {
#address-cells = <2>; #address-cells = <2>;
#size-cells = <2>; #size-cells = <2>;
ranges; ranges;
dma-ranges = <0x0 0x0 0x0 0x0 0x10000 0x00000000>;
dma-coherent;
ddr: memory-controller@1080000 { ddr: memory-controller@1080000 {
compatible = "fsl,qoriq-memory-controller"; compatible = "fsl,qoriq-memory-controller";
...@@ -354,7 +357,6 @@ crypto: crypto@1700000 { ...@@ -354,7 +357,6 @@ crypto: crypto@1700000 {
ranges = <0x0 0x00 0x1700000 0x100000>; ranges = <0x0 0x00 0x1700000 0x100000>;
reg = <0x00 0x1700000 0x0 0x100000>; reg = <0x00 0x1700000 0x0 0x100000>;
interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
dma-coherent;
sec_jr0: jr@10000 { sec_jr0: jr@10000 {
compatible = "fsl,sec-v5.4-job-ring", compatible = "fsl,sec-v5.4-job-ring",
...@@ -500,7 +502,7 @@ dspi: spi@2100000 { ...@@ -500,7 +502,7 @@ dspi: spi@2100000 {
}; };
i2c0: i2c@2180000 { i2c0: i2c@2180000 {
compatible = "fsl,vf610-i2c"; compatible = "fsl,ls1046a-i2c", "fsl,vf610-i2c";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
reg = <0x0 0x2180000 0x0 0x10000>; reg = <0x0 0x2180000 0x0 0x10000>;
...@@ -514,35 +516,38 @@ i2c0: i2c@2180000 { ...@@ -514,35 +516,38 @@ i2c0: i2c@2180000 {
}; };
i2c1: i2c@2190000 { i2c1: i2c@2190000 {
compatible = "fsl,vf610-i2c"; compatible = "fsl,ls1046a-i2c", "fsl,vf610-i2c";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
reg = <0x0 0x2190000 0x0 0x10000>; reg = <0x0 0x2190000 0x0 0x10000>;
interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(2)>; QORIQ_CLK_PLL_DIV(2)>;
scl-gpios = <&gpio3 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "disabled"; status = "disabled";
}; };
i2c2: i2c@21a0000 { i2c2: i2c@21a0000 {
compatible = "fsl,vf610-i2c"; compatible = "fsl,ls1046a-i2c", "fsl,vf610-i2c";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
reg = <0x0 0x21a0000 0x0 0x10000>; reg = <0x0 0x21a0000 0x0 0x10000>;
interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(2)>; QORIQ_CLK_PLL_DIV(2)>;
scl-gpios = <&gpio3 10 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "disabled"; status = "disabled";
}; };
i2c3: i2c@21b0000 { i2c3: i2c@21b0000 {
compatible = "fsl,vf610-i2c"; compatible = "fsl,ls1046a-i2c", "fsl,vf610-i2c";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
reg = <0x0 0x21b0000 0x0 0x10000>; reg = <0x0 0x21b0000 0x0 0x10000>;
interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(2)>; QORIQ_CLK_PLL_DIV(2)>;
scl-gpios = <&gpio3 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "disabled"; status = "disabled";
}; };
...@@ -709,44 +714,55 @@ QORIQ_CLK_PLL_DIV(2)>, ...@@ -709,44 +714,55 @@ QORIQ_CLK_PLL_DIV(2)>,
QORIQ_CLK_PLL_DIV(2)>; QORIQ_CLK_PLL_DIV(2)>;
}; };
usb0: usb@2f00000 { aux_bus: aux_bus {
compatible = "snps,dwc3"; #address-cells = <2>;
reg = <0x0 0x2f00000 0x0 0x10000>; #size-cells = <2>;
interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; compatible = "simple-bus";
dr_mode = "host"; ranges;
snps,quirk-frame-length-adjustment = <0x20>; dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x00000000>;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; usb0: usb@2f00000 {
}; compatible = "snps,dwc3";
reg = <0x0 0x2f00000 0x0 0x10000>;
usb1: usb@3000000 { interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
compatible = "snps,dwc3"; dr_mode = "host";
reg = <0x0 0x3000000 0x0 0x10000>; snps,quirk-frame-length-adjustment = <0x20>;
interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; snps,dis_rxdet_inp3_quirk;
dr_mode = "host"; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
snps,quirk-frame-length-adjustment = <0x20>; usb3-lpm-capable;
snps,dis_rxdet_inp3_quirk; };
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
}; usb1: usb@3000000 {
compatible = "snps,dwc3";
usb2: usb@3100000 { reg = <0x0 0x3000000 0x0 0x10000>;
compatible = "snps,dwc3"; interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x0 0x3100000 0x0 0x10000>; dr_mode = "host";
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; snps,quirk-frame-length-adjustment = <0x20>;
dr_mode = "host"; snps,dis_rxdet_inp3_quirk;
snps,quirk-frame-length-adjustment = <0x20>; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
snps,dis_rxdet_inp3_quirk; usb3-lpm-capable;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; };
};
usb2: usb@3100000 {
sata: sata@3200000 { compatible = "snps,dwc3";
compatible = "fsl,ls1046a-ahci"; reg = <0x0 0x3100000 0x0 0x10000>;
reg = <0x0 0x3200000 0x0 0x10000>, interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
<0x0 0x20140520 0x0 0x4>; dr_mode = "host";
reg-names = "ahci", "sata-ecc"; snps,quirk-frame-length-adjustment = <0x20>;
interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; snps,dis_rxdet_inp3_quirk;
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
QORIQ_CLK_PLL_DIV(2)>; usb3-lpm-capable;
};
sata: sata@3200000 {
compatible = "fsl,ls1046a-ahci";
reg = <0x0 0x3200000 0x0 0x10000>,
<0x0 0x20140520 0x0 0x4>;
reg-names = "ahci", "sata-ecc";
interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(2)>;
};
}; };
msi1: msi-controller@1580000 { msi1: msi-controller@1580000 {
...@@ -790,7 +806,6 @@ pcie1: pcie@3400000 { ...@@ -790,7 +806,6 @@ pcie1: pcie@3400000 {
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
device_type = "pci"; device_type = "pci";
dma-coherent;
num-viewport = <8>; num-viewport = <8>;
bus-range = <0x0 0xff>; bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */ ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */
...@@ -802,6 +817,7 @@ pcie1: pcie@3400000 { ...@@ -802,6 +817,7 @@ pcie1: pcie@3400000 {
<0000 0 0 2 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 2 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 3 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 3 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 4 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; <0000 0 0 4 &gic GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
big-endian;
status = "disabled"; status = "disabled";
}; };
...@@ -810,8 +826,11 @@ pcie_ep1: pcie_ep@3400000 { ...@@ -810,8 +826,11 @@ pcie_ep1: pcie_ep@3400000 {
reg = <0x00 0x03400000 0x0 0x00100000>, reg = <0x00 0x03400000 0x0 0x00100000>,
<0x40 0x00000000 0x8 0x00000000>; <0x40 0x00000000 0x8 0x00000000>;
reg-names = "regs", "addr_space"; reg-names = "regs", "addr_space";
interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "pme";
num-ib-windows = <6>; num-ib-windows = <6>;
num-ob-windows = <8>; num-ob-windows = <8>;
big-endian;
status = "disabled"; status = "disabled";
}; };
...@@ -826,7 +845,6 @@ pcie2: pcie@3500000 { ...@@ -826,7 +845,6 @@ pcie2: pcie@3500000 {
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
device_type = "pci"; device_type = "pci";
dma-coherent;
num-viewport = <8>; num-viewport = <8>;
bus-range = <0x0 0xff>; bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* downstream I/O */ ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* downstream I/O */
...@@ -838,6 +856,7 @@ pcie2: pcie@3500000 { ...@@ -838,6 +856,7 @@ pcie2: pcie@3500000 {
<0000 0 0 2 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 2 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 3 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 3 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 4 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; <0000 0 0 4 &gic GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
big-endian;
status = "disabled"; status = "disabled";
}; };
...@@ -846,8 +865,11 @@ pcie_ep2: pcie_ep@3500000 { ...@@ -846,8 +865,11 @@ pcie_ep2: pcie_ep@3500000 {
reg = <0x00 0x03500000 0x0 0x00100000>, reg = <0x00 0x03500000 0x0 0x00100000>,
<0x48 0x00000000 0x8 0x00000000>; <0x48 0x00000000 0x8 0x00000000>;
reg-names = "regs", "addr_space"; reg-names = "regs", "addr_space";
interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "pme";
num-ib-windows = <6>; num-ib-windows = <6>;
num-ob-windows = <8>; num-ob-windows = <8>;
big-endian;
status = "disabled"; status = "disabled";
}; };
...@@ -862,7 +884,6 @@ pcie3: pcie@3600000 { ...@@ -862,7 +884,6 @@ pcie3: pcie@3600000 {
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
device_type = "pci"; device_type = "pci";
dma-coherent;
num-viewport = <8>; num-viewport = <8>;
bus-range = <0x0 0xff>; bus-range = <0x0 0xff>;
ranges = <0x81000000 0x0 0x00000000 0x50 0x00010000 0x0 0x00010000 /* downstream I/O */ ranges = <0x81000000 0x0 0x00000000 0x50 0x00010000 0x0 0x00010000 /* downstream I/O */
...@@ -874,6 +895,7 @@ pcie3: pcie@3600000 { ...@@ -874,6 +895,7 @@ pcie3: pcie@3600000 {
<0000 0 0 2 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 2 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 3 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 3 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
<0000 0 0 4 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; <0000 0 0 4 &gic GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
big-endian;
status = "disabled"; status = "disabled";
}; };
...@@ -882,8 +904,11 @@ pcie_ep3: pcie_ep@3600000 { ...@@ -882,8 +904,11 @@ pcie_ep3: pcie_ep@3600000 {
reg = <0x00 0x03600000 0x0 0x00100000>, reg = <0x00 0x03600000 0x0 0x00100000>,
<0x50 0x00000000 0x8 0x00000000>; <0x50 0x00000000 0x8 0x00000000>;
reg-names = "regs", "addr_space"; reg-names = "regs", "addr_space";
interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "pme";
num-ib-windows = <6>; num-ib-windows = <6>;
num-ob-windows = <8>; num-ob-windows = <8>;
big-endian;
status = "disabled"; status = "disabled";
}; };
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "fsl-ls2080a.dtsi" #include "fsl-ls2080a.dtsi"
#include "fsl-ls208xa-rdb.dtsi" #include "fsl-ls208xa-rdb.dtsi"
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ { / {
model = "Freescale Layerscape 2080a RDB Board"; model = "Freescale Layerscape 2080a RDB Board";
...@@ -23,3 +24,71 @@ chosen { ...@@ -23,3 +24,71 @@ chosen {
stdout-path = "serial1:115200n8"; stdout-path = "serial1:115200n8";
}; };
}; };
&dpmac5 {
phy-handle = <&mdio2_phy1>;
phy-connection-type = "10gbase-r";
};
&dpmac6 {
phy-handle = <&mdio2_phy2>;
phy-connection-type = "10gbase-r";
};
&dpmac7 {
phy-handle = <&mdio2_phy3>;
phy-connection-type = "10gbase-r";
};
&dpmac8 {
phy-handle = <&mdio2_phy4>;
phy-connection-type = "10gbase-r";
};
&emdio1 {
status = "disabled";
/* CS4340 PHYs */
mdio1_phy1: emdio1-phy@10 {
reg = <0x10>;
};
mdio1_phy2: emdio1-phy@11 {
reg = <0x11>;
};
mdio1_phy3: emdio1-phy@12 {
reg = <0x12>;
};
mdio1_phy4: emdio1-phy@13 {
reg = <0x13>;
};
};
&emdio2 {
/* AQR405 PHYs */
mdio2_phy1: emdio2-phy@0 {
compatible = "ethernet-phy-ieee802.3-c45";
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x0>;
};
mdio2_phy2: emdio2-phy@1 {
compatible = "ethernet-phy-ieee802.3-c45";
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x1>;
};
mdio2_phy3: emdio2-phy@2 {
compatible = "ethernet-phy-ieee802.3-c45";
interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x2>;
};
mdio2_phy4: emdio2-phy@3 {
compatible = "ethernet-phy-ieee802.3-c45";
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
reg = <0x3>;
};
};
...@@ -150,3 +150,7 @@ &pcie4 { ...@@ -150,3 +150,7 @@ &pcie4 {
ranges = <0x81000000 0x0 0x00000000 0x16 0x00010000 0x0 0x00010000 /* downstream I/O */ ranges = <0x81000000 0x0 0x00000000 0x16 0x00010000 0x0 0x00010000 /* downstream I/O */
0x82000000 0x0 0x40000000 0x16 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ 0x82000000 0x0 0x40000000 0x16 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
}; };
&timer {
fsl,erratum-a008585;
};
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Device Tree file for NXP LS2081A RDB Board.
*
* Copyright 2017 NXP
*
* Priyanka Jain <priyanka.jain@nxp.com>
*
*/
/dts-v1/;
#include "fsl-ls2088a.dtsi"
/ {
model = "NXP Layerscape 2081A RDB Board";
compatible = "fsl,ls2081a-rdb", "fsl,ls2081a";
aliases {
serial0 = &serial0;
serial1 = &serial1;
};
chosen {
stdout-path = "serial1:115200n8";
};
};
&dspi {
status = "okay";
n25q512a: flash@0 {
compatible = "jedec,spi-nor";
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <3000000>;
reg = <0>;
};
};
&esdhc {
status = "okay";
};
&i2c0 {
status = "okay";
pca9547: mux@75 {
compatible = "nxp,pca9547";
reg = <0x75>;
#address-cells = <1>;
#size-cells = <0>;
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x1>;
rtc@51 {
compatible = "nxp,pcf2129";
reg = <0x51>;
};
};
i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x2>;
ina220@40 {
compatible = "ti,ina220";
reg = <0x40>;
shunt-resistor = <500>;
};
};
i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x3>;
adt7481@4c {
compatible = "adi,adt7461";
reg = <0x4c>;
};
};
};
};
&ifc {
status = "disabled";
};
&qspi {
status = "okay";
s25fs512s0: flash@0 {
compatible = "jedec,spi-nor";
#address-cells = <1>;
#size-cells = <1>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <4>;
spi-max-frequency = <20000000>;
reg = <0>;
};
s25fs512s1: flash@1 {
compatible = "jedec,spi-nor";
#address-cells = <1>;
#size-cells = <1>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <4>;
spi-max-frequency = <20000000>;
reg = <1>;
};
};
&sata0 {
status = "okay";
};
&sata1 {
status = "okay";
};
&usb0 {
status = "okay";
};
&usb1 {
status = "okay";
};
...@@ -9,6 +9,27 @@ ...@@ -9,6 +9,27 @@
* *
*/ */
/* Update DPMAC connections to external PHYs, under SerDes 0x2a_0x49. */
&dpmac9 {
phy-handle = <&mdio0_phy12>;
phy-connection-type = "sgmii";
};
&dpmac10 {
phy-handle = <&mdio0_phy13>;
phy-connection-type = "sgmii";
};
&dpmac11 {
phy-handle = <&mdio0_phy14>;
phy-connection-type = "sgmii";
};
&dpmac12 {
phy-handle = <&mdio0_phy15>;
phy-connection-type = "sgmii";
};
&esdhc { &esdhc {
mmc-hs200-1_8v; mmc-hs200-1_8v;
status = "okay"; status = "okay";
...@@ -36,9 +57,47 @@ nand@2,0 { ...@@ -36,9 +57,47 @@ nand@2,0 {
reg = <0x2 0x0 0x10000>; reg = <0x2 0x0 0x10000>;
}; };
cpld@3,0 { boardctrl: board-control@3,0 {
reg = <0x3 0x0 0x10000>; #address-cells = <1>;
compatible = "fsl,ls2080aqds-fpga", "fsl,fpga-qixis"; #size-cells = <1>;
compatible = "fsl,ls208xaqds-fpga", "fsl,fpga-qixis", "simple-mfd";
reg = <3 0 0x1000>;
ranges = <0 3 0 0x1000>;
mdio-mux-emi1@54 {
compatible = "mdio-mux-mmioreg", "mdio-mux";
mdio-parent-bus = <&emdio1>;
reg = <0x54 1>; /* BRDCFG4 */
mux-mask = <0xe0>; /* EMI1_MDIO */
#address-cells=<1>;
#size-cells = <0>;
/* Child MDIO buses, one for each riser card:
* reg = 0x0, 0x20, 0x40, 0x60, 0x80, 0xa0.
* VSC8234 PHYs on the riser cards.
*/
mdio_mux3: mdio@60 {
reg = <0x60>;
#address-cells = <1>;
#size-cells = <0>;
mdio0_phy12: mdio-phy0@1c {
reg = <0x1c>;
};
mdio0_phy13: mdio-phy1@1d {
reg = <0x1d>;
};
mdio0_phy14: mdio-phy2@1e {
reg = <0x1e>;
};
mdio0_phy15: mdio-phy3@1f {
reg = <0x1f>;
};
};
};
}; };
}; };
......
...@@ -49,6 +49,8 @@ pca9547@75 { ...@@ -49,6 +49,8 @@ pca9547@75 {
reg = <0x75>; reg = <0x75>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
idle-state = <0>;
i2c@1 { i2c@1 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -239,13 +239,12 @@ map0 { ...@@ -239,13 +239,12 @@ map0 {
}; };
}; };
timer { timer: timer {
compatible = "arm,armv8-timer"; compatible = "arm,armv8-timer";
interrupts = <1 13 4>, /* Physical Secure PPI, active-low */ interrupts = <1 13 4>, /* Physical Secure PPI, active-low */
<1 14 4>, /* Physical Non-Secure PPI, active-low */ <1 14 4>, /* Physical Non-Secure PPI, active-low */
<1 11 4>, /* Virtual PPI, active-low */ <1 11 4>, /* Virtual PPI, active-low */
<1 10 4>; /* Hypervisor PPI, active-low */ <1 10 4>; /* Hypervisor PPI, active-low */
fsl,erratum-a008585;
}; };
pmu { pmu {
......
...@@ -10,7 +10,7 @@ ddr_subsys: bus@5c000000 { ...@@ -10,7 +10,7 @@ ddr_subsys: bus@5c000000 {
#size-cells = <1>; #size-cells = <1>;
ranges = <0x5c000000 0x0 0x5c000000 0x1000000>; ranges = <0x5c000000 0x0 0x5c000000 0x1000000>;
ddr-pmu@5c020000 { ddr_pmu0: ddr-pmu@5c020000 {
compatible = "fsl,imx8-ddr-pmu"; compatible = "fsl,imx8-ddr-pmu";
reg = <0x5c020000 0x10000>; reg = <0x5c020000 0x10000>;
interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
......
...@@ -111,8 +111,9 @@ uart3_lpcg: clock-controller@5a490000 { ...@@ -111,8 +111,9 @@ uart3_lpcg: clock-controller@5a490000 {
i2c0: i2c@5a800000 { i2c0: i2c@5a800000 {
reg = <0x5a800000 0x4000>; reg = <0x5a800000 0x4000>;
interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&i2c0_lpcg IMX_LPCG_CLK_0>; clocks = <&i2c0_lpcg IMX_LPCG_CLK_0>,
clock-names = "per"; <&i2c0_lpcg IMX_LPCG_CLK_4>;
clock-names = "per", "ipg";
assigned-clocks = <&clk IMX_SC_R_I2C_0 IMX_SC_PM_CLK_PER>; assigned-clocks = <&clk IMX_SC_R_I2C_0 IMX_SC_PM_CLK_PER>;
assigned-clock-rates = <24000000>; assigned-clock-rates = <24000000>;
power-domains = <&pd IMX_SC_R_I2C_0>; power-domains = <&pd IMX_SC_R_I2C_0>;
...@@ -122,8 +123,9 @@ i2c0: i2c@5a800000 { ...@@ -122,8 +123,9 @@ i2c0: i2c@5a800000 {
i2c1: i2c@5a810000 { i2c1: i2c@5a810000 {
reg = <0x5a810000 0x4000>; reg = <0x5a810000 0x4000>;
interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&i2c1_lpcg IMX_LPCG_CLK_0>; clocks = <&i2c1_lpcg IMX_LPCG_CLK_0>,
clock-names = "per"; <&i2c1_lpcg IMX_LPCG_CLK_4>;
clock-names = "per", "ipg";
assigned-clocks = <&clk IMX_SC_R_I2C_1 IMX_SC_PM_CLK_PER>; assigned-clocks = <&clk IMX_SC_R_I2C_1 IMX_SC_PM_CLK_PER>;
assigned-clock-rates = <24000000>; assigned-clock-rates = <24000000>;
power-domains = <&pd IMX_SC_R_I2C_1>; power-domains = <&pd IMX_SC_R_I2C_1>;
...@@ -133,8 +135,9 @@ i2c1: i2c@5a810000 { ...@@ -133,8 +135,9 @@ i2c1: i2c@5a810000 {
i2c2: i2c@5a820000 { i2c2: i2c@5a820000 {
reg = <0x5a820000 0x4000>; reg = <0x5a820000 0x4000>;
interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&i2c2_lpcg IMX_LPCG_CLK_0>; clocks = <&i2c2_lpcg IMX_LPCG_CLK_0>,
clock-names = "per"; <&i2c2_lpcg IMX_LPCG_CLK_4>;
clock-names = "per", "ipg";
assigned-clocks = <&clk IMX_SC_R_I2C_2 IMX_SC_PM_CLK_PER>; assigned-clocks = <&clk IMX_SC_R_I2C_2 IMX_SC_PM_CLK_PER>;
assigned-clock-rates = <24000000>; assigned-clock-rates = <24000000>;
power-domains = <&pd IMX_SC_R_I2C_2>; power-domains = <&pd IMX_SC_R_I2C_2>;
...@@ -144,8 +147,9 @@ i2c2: i2c@5a820000 { ...@@ -144,8 +147,9 @@ i2c2: i2c@5a820000 {
i2c3: i2c@5a830000 { i2c3: i2c@5a830000 {
reg = <0x5a830000 0x4000>; reg = <0x5a830000 0x4000>;
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&i2c3_lpcg IMX_LPCG_CLK_0>; clocks = <&i2c3_lpcg IMX_LPCG_CLK_0>,
clock-names = "per"; <&i2c3_lpcg IMX_LPCG_CLK_4>;
clock-names = "per", "ipg";
assigned-clocks = <&clk IMX_SC_R_I2C_3 IMX_SC_PM_CLK_PER>; assigned-clocks = <&clk IMX_SC_R_I2C_3 IMX_SC_PM_CLK_PER>;
assigned-clock-rates = <24000000>; assigned-clock-rates = <24000000>;
power-domains = <&pd IMX_SC_R_I2C_3>; power-domains = <&pd IMX_SC_R_I2C_3>;
......
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright 2019~2020, 2022 NXP
*/
/dts-v1/;
#include "imx8dxl.dtsi"
/ {
model = "Freescale i.MX8DXL EVK";
compatible = "fsl,imx8dxl-evk", "fsl,imx8dxl";
aliases {
i2c2 = &i2c2;
mmc0 = &usdhc1;
mmc1 = &usdhc2;
serial0 = &lpuart0;
};
chosen {
stdout-path = &lpuart0;
};
memory@80000000 {
device_type = "memory";
reg = <0x00000000 0x80000000 0 0x40000000>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/*
* Memory reserved for optee usage. Please do not use.
* This will be automatically added to dtb if OP-TEE is installed.
* optee@96000000 {
* reg = <0 0x96000000 0 0x2000000>;
* no-map;
* };
*/
/* global autoconfigured region for contiguous allocations */
linux,cma {
compatible = "shared-dma-pool";
reusable;
size = <0 0x14000000>;
alloc-ranges = <0 0x98000000 0 0x14000000>;
linux,cma-default;
};
};
mux3_en: regulator-0 {
compatible = "regulator-fixed";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "mux3_en";
gpio = <&pca6416_2 8 GPIO_ACTIVE_LOW>;
regulator-always-on;
};
reg_fec1_sel: regulator-1 {
compatible = "regulator-fixed";
regulator-name = "fec1_supply";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&pca6416_1 11 GPIO_ACTIVE_LOW>;
regulator-always-on;
status = "disabled";
};
reg_fec1_io: regulator-2 {
compatible = "regulator-fixed";
regulator-name = "fec1_io_supply";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&max7322 0 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
status = "disabled";
};
reg_usdhc2_vmmc: regulator-3 {
compatible = "regulator-fixed";
regulator-name = "SD1_SPWR";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
gpio = <&lsio_gpio4 30 GPIO_ACTIVE_HIGH>;
enable-active-high;
off-on-delay-us = <3480>;
};
};
&eqos {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_eqos>;
phy-mode = "rgmii-id";
phy-handle = <&ethphy0>;
nvmem-cells = <&fec_mac1>;
nvmem-cell-names = "mac-address";
snps,reset-gpios = <&pca6416_1 2 GPIO_ACTIVE_LOW>;
snps,reset-delays-us = <10 20 200000>;
status = "okay";
mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
#size-cells = <0>;
ethphy0: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0>;
eee-broken-1000t;
qca,disable-smarteee;
vddio-supply = <&vddio0>;
vddio0: vddio-regulator {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
};
};
};
/*
* fec1 shares the some PINs with usdhc2.
* by default usdhc2 is enabled in this dts.
* Please disable usdhc2 to enable fec1
*/
&fec1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_fec1>;
phy-mode = "rgmii-txid";
phy-handle = <&ethphy1>;
fsl,magic-packet;
rx-internal-delay-ps = <2000>;
nvmem-cells = <&fec_mac0>;
nvmem-cell-names = "mac-address";
status = "disabled";
mdio {
#address-cells = <1>;
#size-cells = <0>;
ethphy1: ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;
reset-gpios = <&pca6416_1 0 GPIO_ACTIVE_LOW>;
reset-assert-us = <10000>;
qca,disable-smarteee;
vddio-supply = <&vddio1>;
vddio1: vddio-regulator {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
};
};
};
&i2c2 {
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
status = "okay";
pca6416_1: gpio@20 {
compatible = "ti,tca6416";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
};
pca6416_2: gpio@21 {
compatible = "ti,tca6416";
reg = <0x21>;
gpio-controller;
#gpio-cells = <2>;
};
pca9548_1: i2c-mux@70 {
compatible = "nxp,pca9548";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x70>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x0>;
max7322: gpio@68 {
compatible = "maxim,max7322";
reg = <0x68>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
};
i2c@4 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x4>;
};
i2c@5 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x5>;
};
i2c@6 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x6>;
};
};
};
&lpuart0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lpuart0>;
status = "okay";
};
&lsio_gpio4 {
status = "okay";
};
&lsio_gpio5 {
status = "okay";
};
&thermal_zones {
pmic-thermal0 {
polling-delay-passive = <250>;
polling-delay = <2000>;
thermal-sensors = <&tsens IMX_SC_R_PMIC_0>;
trips {
pmic_alert0: trip0 {
temperature = <110000>;
hysteresis = <2000>;
type = "passive";
};
pmic_crit0: trip1 {
temperature = <125000>;
hysteresis = <2000>;
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&pmic_alert0>;
cooling-device =
<&A35_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&A35_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
};
&usdhc1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc1>;
bus-width = <8>;
no-sd;
no-sdio;
non-removable;
status = "okay";
};
&usdhc2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
bus-width = <4>;
vmmc-supply = <&reg_usdhc2_vmmc>;
cd-gpios = <&lsio_gpio5 1 GPIO_ACTIVE_LOW>;
wp-gpios = <&lsio_gpio5 0 GPIO_ACTIVE_HIGH>;
status = "okay";
};
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog>;
pinctrl_hog: hoggrp {
fsl,pins = <
IMX8DXL_COMP_CTL_GPIO_1V8_3V3_GPIORHB_PAD 0x000514a0
IMX8DXL_COMP_CTL_GPIO_1V8_3V3_GPIORHK_PAD 0x000014a0
IMX8DXL_SPI3_CS0_ADMA_ACM_MCLK_OUT1 0x0600004c
IMX8DXL_SNVS_TAMPER_OUT1_LSIO_GPIO2_IO05_IN 0x0600004c
>;
};
pinctrl_usbotg1: usbotg1grp {
fsl,pins = <
IMX8DXL_USB_SS3_TC0_CONN_USB_OTG1_PWR 0x00000021
>;
};
pinctrl_usbotg2: usbotg2grp {
fsl,pins = <
IMX8DXL_USB_SS3_TC1_CONN_USB_OTG2_PWR 0x00000021
>;
};
pinctrl_eqos: eqosgrp {
fsl,pins = <
IMX8DXL_ENET0_MDC_CONN_EQOS_MDC 0x06000020
IMX8DXL_ENET0_MDIO_CONN_EQOS_MDIO 0x06000020
IMX8DXL_ENET1_RGMII_RXC_CONN_EQOS_RGMII_RXC 0x06000020
IMX8DXL_ENET1_RGMII_RXD0_CONN_EQOS_RGMII_RXD0 0x06000020
IMX8DXL_ENET1_RGMII_RXD1_CONN_EQOS_RGMII_RXD1 0x06000020
IMX8DXL_ENET1_RGMII_RXD2_CONN_EQOS_RGMII_RXD2 0x06000020
IMX8DXL_ENET1_RGMII_RXD3_CONN_EQOS_RGMII_RXD3 0x06000020
IMX8DXL_ENET1_RGMII_RX_CTL_CONN_EQOS_RGMII_RX_CTL 0x06000020
IMX8DXL_ENET1_RGMII_TXC_CONN_EQOS_RGMII_TXC 0x06000020
IMX8DXL_ENET1_RGMII_TXD0_CONN_EQOS_RGMII_TXD0 0x06000020
IMX8DXL_ENET1_RGMII_TXD1_CONN_EQOS_RGMII_TXD1 0x06000020
IMX8DXL_ENET1_RGMII_TXD2_CONN_EQOS_RGMII_TXD2 0x06000020
IMX8DXL_ENET1_RGMII_TXD3_CONN_EQOS_RGMII_TXD3 0x06000020
IMX8DXL_ENET1_RGMII_TX_CTL_CONN_EQOS_RGMII_TX_CTL 0x06000020
>;
};
pinctrl_fec1: fec1grp {
fsl,pins = <
IMX8DXL_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB0_PAD 0x000014a0
IMX8DXL_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB1_PAD 0x000014a0
IMX8DXL_ENET0_MDC_CONN_ENET0_MDC 0x06000020
IMX8DXL_ENET0_MDIO_CONN_ENET0_MDIO 0x06000020
IMX8DXL_ENET0_RGMII_RXC_CONN_ENET0_RGMII_RXC 0x00000060
IMX8DXL_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0 0x00000060
IMX8DXL_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1 0x00000060
IMX8DXL_ENET0_RGMII_RXD2_CONN_ENET0_RGMII_RXD2 0x00000060
IMX8DXL_ENET0_RGMII_RXD3_CONN_ENET0_RGMII_RXD3 0x00000060
IMX8DXL_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL 0x00000060
IMX8DXL_ENET0_RGMII_TXC_CONN_ENET0_RGMII_TXC 0x00000060
IMX8DXL_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0 0x00000060
IMX8DXL_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1 0x00000060
IMX8DXL_ENET0_RGMII_TXD2_CONN_ENET0_RGMII_TXD2 0x00000060
IMX8DXL_ENET0_RGMII_TXD3_CONN_ENET0_RGMII_TXD3 0x00000060
IMX8DXL_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL 0x00000060
>;
};
pinctrl_lpspi3: lpspi3grp {
fsl,pins = <
IMX8DXL_SPI3_SCK_ADMA_SPI3_SCK 0x6000040
IMX8DXL_SPI3_SDO_ADMA_SPI3_SDO 0x6000040
IMX8DXL_SPI3_SDI_ADMA_SPI3_SDI 0x6000040
IMX8DXL_SPI3_CS1_ADMA_SPI3_CS1 0x6000040
>;
};
pinctrl_i2c2: i2c2grp {
fsl,pins = <
IMX8DXL_SPI1_SCK_ADMA_I2C2_SDA 0x06000021
IMX8DXL_SPI1_SDO_ADMA_I2C2_SCL 0x06000021
>;
};
pinctrl_cm40_lpuart: cm40lpuartgrp {
fsl,pins = <
IMX8DXL_ADC_IN2_M40_UART0_RX 0x06000020
IMX8DXL_ADC_IN3_M40_UART0_TX 0x06000020
>;
};
pinctrl_i2c3: i2c3grp {
fsl,pins = <
IMX8DXL_SPI1_CS0_ADMA_I2C3_SDA 0x06000021
IMX8DXL_SPI1_SDI_ADMA_I2C3_SCL 0x06000021
>;
};
pinctrl_lpuart0: lpuart0grp {
fsl,pins = <
IMX8DXL_UART0_RX_ADMA_UART0_RX 0x06000020
IMX8DXL_UART0_TX_ADMA_UART0_TX 0x06000020
>;
};
pinctrl_usdhc1: usdhc1grp {
fsl,pins = <
IMX8DXL_EMMC0_CLK_CONN_EMMC0_CLK 0x06000041
IMX8DXL_EMMC0_CMD_CONN_EMMC0_CMD 0x00000021
IMX8DXL_EMMC0_DATA0_CONN_EMMC0_DATA0 0x00000021
IMX8DXL_EMMC0_DATA1_CONN_EMMC0_DATA1 0x00000021
IMX8DXL_EMMC0_DATA2_CONN_EMMC0_DATA2 0x00000021
IMX8DXL_EMMC0_DATA3_CONN_EMMC0_DATA3 0x00000021
IMX8DXL_EMMC0_DATA4_CONN_EMMC0_DATA4 0x00000021
IMX8DXL_EMMC0_DATA5_CONN_EMMC0_DATA5 0x00000021
IMX8DXL_EMMC0_DATA6_CONN_EMMC0_DATA6 0x00000021
IMX8DXL_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000021
IMX8DXL_EMMC0_STROBE_CONN_EMMC0_STROBE 0x00000041
>;
};
pinctrl_usdhc2_gpio: usdhc2gpiogrp {
fsl,pins = <
IMX8DXL_ENET0_RGMII_TX_CTL_LSIO_GPIO4_IO30 0x00000040 /* RESET_B */
IMX8DXL_ENET0_RGMII_TXD1_LSIO_GPIO5_IO00 0x00000021 /* WP */
IMX8DXL_ENET0_RGMII_TXD2_LSIO_GPIO5_IO01 0x00000021 /* CD */
>;
};
pinctrl_usdhc2: usdhc2grp {
fsl,pins = <
IMX8DXL_ENET0_RGMII_RXC_CONN_USDHC1_CLK 0x06000041
IMX8DXL_ENET0_RGMII_RX_CTL_CONN_USDHC1_CMD 0x00000021
IMX8DXL_ENET0_RGMII_RXD0_CONN_USDHC1_DATA0 0x00000021
IMX8DXL_ENET0_RGMII_RXD1_CONN_USDHC1_DATA1 0x00000021
IMX8DXL_ENET0_RGMII_RXD2_CONN_USDHC1_DATA2 0x00000021
IMX8DXL_ENET0_RGMII_RXD3_CONN_USDHC1_DATA3 0x00000021
IMX8DXL_ENET0_RGMII_TXD0_CONN_USDHC1_VSELECT 0x00000021
>;
};
};
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright 2019~2020, 2022 NXP
*/
&audio_ipg_clk {
clock-frequency = <160000000>;
};
&dma_ipg_clk {
clock-frequency = <160000000>;
};
&i2c0 {
compatible = "fsl,imx8dxl-lpi2c", "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c";
interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
};
&i2c1 {
compatible = "fsl,imx8dxl-lpi2c", "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c";
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
};
&i2c2 {
compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c";
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
};
&i2c3 {
compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c";
interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
};
&lpuart0 {
compatible = "fsl,imx8qxp-lpuart", "fsl,imx7ulp-lpuart";
interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>;
};
&lpuart1 {
compatible = "fsl,imx8qxp-lpuart", "fsl,imx7ulp-lpuart";
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
};
&lpuart2 {
compatible = "fsl,imx8qxp-lpuart", "fsl,imx7ulp-lpuart";
interrupts = <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>;
};
&lpuart3 {
compatible = "fsl,imx8qxp-lpuart", "fsl,imx7ulp-lpuart";
interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
};
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright 2019~2020, 2022 NXP
*/
/delete-node/ &enet1_lpcg;
/delete-node/ &fec2;
&conn_subsys {
conn_enet0_root_clk: clock-conn-enet0-root {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <250000000>;
clock-output-names = "conn_enet0_root_clk";
};
eqos: ethernet@5b050000 {
compatible = "nxp,imx8dxl-dwmac-eqos", "snps,dwmac-5.10a";
reg = <0x5b050000 0x10000>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "eth_wake_irq", "macirq";
clocks = <&eqos_lpcg IMX_LPCG_CLK_4>,
<&eqos_lpcg IMX_LPCG_CLK_6>,
<&eqos_lpcg IMX_LPCG_CLK_0>,
<&eqos_lpcg IMX_LPCG_CLK_5>,
<&eqos_lpcg IMX_LPCG_CLK_2>;
clock-names = "stmmaceth", "pclk", "ptp_ref", "tx", "mem";
assigned-clocks = <&clk IMX_SC_R_ENET_1 IMX_SC_PM_CLK_PER>;
assigned-clock-rates = <125000000>;
power-domains = <&pd IMX_SC_R_ENET_1>;
status = "disabled";
};
usbotg2: usb@5b0e0000 {
compatible = "fsl,imx8dxl-usb", "fsl,imx7ulp-usb";
reg = <0x5b0e0000 0x200>;
interrupt-parent = <&gic>;
interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
fsl,usbphy = <&usbphy2>;
fsl,usbmisc = <&usbmisc2 0>;
/*
* usbotg1 and usbotg2 share one clcok.
* scu firmware disables the access to the clock and keeps
* it always on in case other core (M4) uses one of these.
*/
clocks = <&clk_dummy>;
ahb-burst-config = <0x0>;
tx-burst-size-dword = <0x10>;
rx-burst-size-dword = <0x10>;
#stream-id-cells = <1>;
power-domains = <&pd IMX_SC_R_USB_1>;
status = "disabled";
clk_dummy: clock-dummy {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <0>;
clock-output-names = "clk_dummy";
};
};
usbmisc2: usbmisc@5b0e0200 {
#index-cells = <1>;
compatible = "fsl,imx7ulp-usbmisc";
reg = <0x5b0e0200 0x200>;
};
usbphy2: usbphy@0x5b110000 {
compatible = "fsl,imx8dxl-usbphy", "fsl,imx7ulp-usbphy";
reg = <0x5b110000 0x1000>;
clocks = <&usb2_2_lpcg IMX_LPCG_CLK_7>;
power-domains = <&pd IMX_SC_R_USB_1_PHY>;
status = "disabled";
};
eqos_lpcg: clock-controller@5b240000 {
compatible = "fsl,imx8qxp-lpcg";
reg = <0x5b240000 0x10000>;
#clock-cells = <1>;
clocks = <&conn_enet0_root_clk>,
<&conn_axi_clk>,
<&conn_axi_clk>,
<&clk IMX_SC_R_ENET_1 IMX_SC_PM_CLK_PER>,
<&conn_ipg_clk>;
clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_2>,
<IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
<IMX_LPCG_CLK_6>;
clock-output-names = "eqos_ptp",
"eqos_mem_clk",
"eqos_aclk",
"eqos_clk",
"eqos_csr_clk";
power-domains = <&pd IMX_SC_R_ENET_1>;
};
usb2_2_lpcg: clock-controller@5b280000 {
compatible = "fsl,imx8qxp-lpcg";
reg = <0x5b280000 0x10000>;
#clock-cells = <1>;
clock-indices = <IMX_LPCG_CLK_7>;
clocks = <&conn_ipg_clk>;
clock-output-names = "usboh3_2_phy_ipg_clk";
power-domains = <&pd IMX_SC_R_USB_1_PHY>;
};
};
&enet0_lpcg {
clocks = <&conn_enet0_root_clk>,
<&conn_enet0_root_clk>,
<&conn_axi_clk>,
<&clk IMX_SC_R_ENET_0 IMX_SC_C_TXCLK>,
<&conn_ipg_clk>,
<&conn_ipg_clk>;
};
&fec1 {
compatible = "fsl,imx8qm-fec";
interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
assigned-clocks = <&clk IMX_SC_R_ENET_0 IMX_SC_C_CLKDIV>;
assigned-clock-rates = <125000000>;
};
&usdhc1 {
compatible = "fsl,imx8dxl-usdhc", "fsl,imx8qxp-usdhc";
interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
};
&usdhc2 {
compatible = "fsl,imx8dxl-usdhc", "fsl,imx8qxp-usdhc";
interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
};
&usdhc3 {
compatible = "fsl,imx8dxl-usdhc", "fsl,imx8qxp-usdhc";
interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
};
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright 2020 NXP
*/
&ddr_pmu0 {
compatible = "fsl,imx8-ddr-pmu";
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
};
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright 2019~2020, 2022 NXP
*/
&lsio_gpio0 {
compatible = "fsl,imx8dxl-gpio", "fsl,imx35-gpio";
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_gpio1 {
compatible = "fsl,imx8dxl-gpio", "fsl,imx35-gpio";
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_gpio2 {
compatible = "fsl,imx8dxl-gpio", "fsl,imx35-gpio";
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_gpio3 {
compatible = "fsl,imx8dxl-gpio", "fsl,imx35-gpio";
interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_gpio4 {
compatible = "fsl,imx8dxl-gpio", "fsl,imx35-gpio";
interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_gpio5 {
compatible = "fsl,imx8dxl-gpio", "fsl,imx35-gpio";
interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_gpio6 {
compatible = "fsl,imx8dxl-gpio", "fsl,imx35-gpio";
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_gpio7 {
compatible = "fsl,imx8dxl-gpio", "fsl,imx35-gpio";
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_mu0 {
compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu";
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_mu1 {
compatible = "fsl,imx8-mu-scu", "fsl,imx8qxp-mu", "fsl,imx6sx-mu";
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_mu2 {
compatible = "fsl,imx8-mu-scu", "fsl,imx8qxp-mu", "fsl,imx6sx-mu";
interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_mu3 {
compatible = "fsl,imx8-mu-scu", "fsl,imx8qxp-mu", "fsl,imx6sx-mu";
interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_mu4 {
compatible = "fsl,imx8-mu-scu", "fsl,imx8qxp-mu", "fsl,imx6sx-mu";
interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
};
&lsio_mu5 {
compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu";
interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
};
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright 2019~2020, 2022 NXP
*/
#include <dt-bindings/clock/imx8-clock.h>
#include <dt-bindings/firmware/imx/rsrc.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/pads-imx8dxl.h>
#include <dt-bindings/thermal/thermal.h>
/ {
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <2>;
aliases {
ethernet0 = &fec1;
ethernet1 = &eqos;
gpio0 = &lsio_gpio0;
gpio1 = &lsio_gpio1;
gpio2 = &lsio_gpio2;
gpio3 = &lsio_gpio3;
gpio4 = &lsio_gpio4;
gpio5 = &lsio_gpio5;
gpio6 = &lsio_gpio6;
gpio7 = &lsio_gpio7;
mu1 = &lsio_mu1;
};
cpus: cpus {
#address-cells = <2>;
#size-cells = <0>;
/* We have 1 clusters with 2 Cortex-A35 cores */
A35_0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a35";
reg = <0x0 0x0>;
enable-method = "psci";
next-level-cache = <&A35_L2>;
clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
#cooling-cells = <2>;
operating-points-v2 = <&a35_opp_table>;
};
A35_1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a35";
reg = <0x0 0x1>;
enable-method = "psci";
next-level-cache = <&A35_L2>;
clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
#cooling-cells = <2>;
operating-points-v2 = <&a35_opp_table>;
};
A35_L2: l2-cache0 {
compatible = "cache";
};
};
a35_opp_table: opp-table {
compatible = "operating-points-v2";
opp-shared;
opp-900000000 {
opp-hz = /bits/ 64 <900000000>;
opp-microvolt = <1000000>;
clock-latency-ns = <150000>;
};
opp-1200000000 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <1100000>;
clock-latency-ns = <150000>;
opp-suspend;
};
};
gic: interrupt-controller@51a00000 {
compatible = "arm,gic-v3";
reg = <0x0 0x51a00000 0 0x10000>, /* GIC Dist */
<0x0 0x51b00000 0 0xc0000>; /* GICR (RD_base + SGI_base) */
#interrupt-cells = <3>;
interrupt-controller;
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
dsp_reserved: dsp@92400000 {
reg = <0 0x92400000 0 0x2000000>;
no-map;
};
};
pmu {
compatible = "arm,armv8-pmuv3";
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
};
psci {
compatible = "arm,psci-1.0";
method = "smc";
};
system-controller {
compatible = "fsl,imx-scu";
mbox-names = "tx0",
"rx0",
"gip3";
mboxes = <&lsio_mu1 0 0
&lsio_mu1 1 0
&lsio_mu1 3 3>;
pd: power-controller {
compatible = "fsl,scu-pd";
#power-domain-cells = <1>;
wakeup-irq = <160 163 235 236 237 228 229 230 231 238
239 240 166 169>;
};
clk: clock-controller {
compatible = "fsl,imx8dxl-clk", "fsl,scu-clk";
#clock-cells = <2>;
clocks = <&xtal32k &xtal24m>;
clock-names = "xtal_32KHz", "xtal_24Mhz";
};
iomuxc: pinctrl {
compatible = "fsl,imx8dxl-iomuxc";
};
ocotp: ocotp {
compatible = "fsl,imx8qxp-scu-ocotp";
#address-cells = <1>;
#size-cells = <1>;
fec_mac0: mac@2c4 {
reg = <0x2c4 6>;
};
fec_mac1: mac@2c6 {
reg = <0x2c6 6>;
};
};
rtc: rtc {
compatible = "fsl,imx8qxp-sc-rtc";
};
sc_pwrkey: keys {
compatible = "fsl,imx8qxp-sc-key", "fsl,imx-sc-key";
linux,keycode = <KEY_POWER>;
wakeup-source;
};
watchdog {
compatible = "fsl,imx-sc-wdt";
timeout-sec = <60>;
};
tsens: thermal-sensor {
compatible = "fsl,imx-sc-thermal";
#thermal-sensor-cells = <1>;
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */
<GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */
<GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */
<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */
};
thermal_zones: thermal-zones {
cpu-thermal0 {
polling-delay-passive = <250>;
polling-delay = <2000>;
thermal-sensors = <&tsens IMX_SC_R_SYSTEM>;
trips {
cpu_alert0: trip0 {
temperature = <107000>;
hysteresis = <2000>;
type = "passive";
};
cpu_crit0: trip1 {
temperature = <127000>;
hysteresis = <2000>;
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&cpu_alert0>;
cooling-device =
<&A35_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&A35_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
};
/* The two values below cannot be changed by the board */
xtal32k: clock-xtal32k {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <32768>;
clock-output-names = "xtal_32KHz";
};
xtal24m: clock-xtal24m {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24000000>;
clock-output-names = "xtal_24MHz";
};
/* sorted in register address */
#include "imx8-ss-adma.dtsi"
#include "imx8-ss-conn.dtsi"
#include "imx8-ss-ddr.dtsi"
#include "imx8-ss-lsio.dtsi"
};
#include "imx8dxl-ss-adma.dtsi"
#include "imx8dxl-ss-conn.dtsi"
#include "imx8dxl-ss-lsio.dtsi"
#include "imx8dxl-ss-ddr.dtsi"
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* /*
* Copyright (c) 2018 NXP * Copyright (c) 2018 NXP
* Copyright (c) 2019 Engicam srl * Copyright (c) 2019 Engicam srl
* Copyright (c) 2020 Amarula Solutons(India) * Copyright (c) 2020 Amarula Solutions(India)
*/ */
/ { / {
......
// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
* Copyright (C) 2022 Kontron Electronics GmbH
*/
/dts-v1/;
#include "imx8mm-kontron-osm-s.dtsi"
/ {
model = "Kontron BL i.MX8MM OSM-S (N802X S)";
compatible = "kontron,imx8mm-bl-osm-s", "kontron,imx8mm-osm-s", "fsl,imx8mm";
aliases {
ethernet1 = &usbnet;
};
/* fixed crystal dedicated to mcp2542fd */
osc_can: clock-osc-can {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
clock-output-names = "osc-can";
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_led>;
led1 {
label = "led1";
gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
linux,default-trigger = "heartbeat";
};
led2 {
label = "led2";
gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
};
led3 {
label = "led3";
gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
};
};
pwm-beeper {
compatible = "pwm-beeper";
pwms = <&pwm2 0 5000 0>;
};
reg_rst_eth2: regulator-rst-eth2 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb_eth2>;
gpio = <&gpio3 2 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
regulator-name = "rst-usb-eth2";
};
reg_usb1_vbus: regulator-usb1-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_reg_usb1_vbus>;
gpio = <&gpio3 25 GPIO_ACTIVE_LOW>;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-name = "usb1-vbus";
};
reg_vdd_5v: regulator-5v {
compatible = "regulator-fixed";
regulator-always-on;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-name = "vdd-5v";
};
};
&ecspi2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi2>;
cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
status = "okay";
can@0 {
compatible = "microchip,mcp251xfd";
reg = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_can>;
clocks = <&osc_can>;
interrupts-extended = <&gpio4 28 IRQ_TYPE_LEVEL_LOW>;
/*
* Limit the SPI clock to 15 MHz to prevent issues
* with corrupted data due to chip errata.
*/
spi-max-frequency = <15000000>;
vdd-supply = <&reg_vdd_3v3>;
xceiver-supply = <&reg_vdd_5v>;
};
};
&ecspi3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi3>;
cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>;
status = "okay";
eeram@0 {
compatible = "microchip,48l640";
reg = <0>;
spi-max-frequency = <20000000>;
};
};
&fec1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet>;
phy-connection-type = "rgmii-rxid";
phy-handle = <&ethphy>;
status = "okay";
mdio {
#address-cells = <1>;
#size-cells = <0>;
ethphy: ethernet-phy@0 {
reg = <0>;
reset-assert-us = <1>;
reset-deassert-us = <15000>;
reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
};
};
};
&gpio1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio1>;
gpio-line-names = "", "", "", "dio1-out", "", "", "dio1-in", "dio2-out",
"dio2-in", "dio3-out", "dio3-in", "dio4-out", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
};
&gpio5 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio5>;
gpio-line-names = "", "", "dio4-in", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
};
&i2c4 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c4>;
status = "okay";
};
&pwm2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm2>;
status = "okay";
};
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
uart-has-rtscts;
status = "okay";
};
&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2>;
linux,rs485-enabled-at-boot-time;
uart-has-rtscts;
status = "okay";
};
&usbotg1 {
dr_mode = "otg";
disable-over-current;
vbus-supply = <&reg_usb1_vbus>;
status = "okay";
};
&usbotg2 {
dr_mode = "host";
disable-over-current;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
usb1@1 {
compatible = "usb424,9514";
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
usbnet: ethernet@1 {
compatible = "usb424,ec00";
reg = <1>;
local-mac-address = [ 00 00 00 00 00 00 ];
};
};
};
&usdhc2 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc2>;
pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
vmmc-supply = <&reg_vdd_3v3>;
vqmmc-supply = <&reg_nvcc_sd>;
cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
status = "okay";
};
&iomuxc {
pinctrl_can: cangrp {
fsl,pins = <
MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28 0x19
>;
};
pinctrl_ecspi2: ecspi2grp {
fsl,pins = <
MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x82
MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x82
MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x82
MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0x19
>;
};
pinctrl_ecspi3: ecspi3grp {
fsl,pins = <
MX8MM_IOMUXC_UART2_RXD_ECSPI3_MISO 0x82
MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI 0x82
MX8MM_IOMUXC_UART1_RXD_ECSPI3_SCLK 0x82
MX8MM_IOMUXC_UART2_TXD_GPIO5_IO25 0x19
>;
};
pinctrl_enet: enetgrp {
fsl,pins = <
MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x3
MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x3
MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f
MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f
MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f
MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f
MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91
MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91
MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91
MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91
MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f
MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91
MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91
MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f
MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1 0x19 /* PHY RST */
MX8MM_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x19 /* ETH IRQ */
>;
};
pinctrl_gpio_led: gpioledgrp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x19
MX8MM_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x19
MX8MM_IOMUXC_GPIO1_IO14_GPIO1_IO14 0x19
>;
};
pinctrl_gpio1: gpio1grp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x19
MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x19
MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x19
MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x19
MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x19
MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8 0x19
MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x19
>;
};
pinctrl_gpio5: gpio5grp {
fsl,pins = <
MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2 0x19
>;
};
pinctrl_i2c4: i2c4grp {
fsl,pins = <
MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL 0x400001c3
MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA 0x400001c3
>;
};
pinctrl_pwm2: pwm2grp {
fsl,pins = <
MX8MM_IOMUXC_SPDIF_RX_PWM2_OUT 0x19
>;
};
pinctrl_reg_usb1_vbus: regusb1vbusgrp {
fsl,pins = <
MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x19
>;
};
pinctrl_uart1: uart1grp {
fsl,pins = <
MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX 0x140
MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX 0x140
MX8MM_IOMUXC_SAI2_RXD0_UART1_DCE_RTS_B 0x140
MX8MM_IOMUXC_SAI2_TXFS_UART1_DCE_CTS_B 0x140
>;
};
pinctrl_uart2: uart2grp {
fsl,pins = <
MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX 0x140
MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX 0x140
MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B 0x140
MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B 0x140
>;
};
pinctrl_usb_eth2: usbeth2grp {
fsl,pins = <
MX8MM_IOMUXC_NAND_CE1_B_GPIO3_IO2 0x19
>;
};
pinctrl_usdhc2: usdhc2grp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0
MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0
MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0
MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
>;
};
pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4
MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4
MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4
MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
>;
};
pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6
MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6
MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6
MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
>;
};
};
...@@ -5,11 +5,11 @@ ...@@ -5,11 +5,11 @@
/dts-v1/; /dts-v1/;
#include "imx8mm-kontron-n801x-som.dtsi" #include "imx8mm-kontron-sl.dtsi"
/ { / {
model = "Kontron i.MX8MM N801X S"; model = "Kontron BL i.MX8MM (N801X S)";
compatible = "kontron,imx8mm-n801x-s", "kontron,imx8mm-n801x-som", "fsl,imx8mm"; compatible = "kontron,imx8mm-bl", "kontron,imx8mm-sl", "fsl,imx8mm";
aliases { aliases {
ethernet1 = &usbnet; ethernet1 = &usbnet;
...@@ -321,6 +321,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0 ...@@ -321,6 +321,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0
MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
>; >;
}; };
...@@ -333,6 +334,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4 ...@@ -333,6 +334,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4
MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
>; >;
}; };
...@@ -345,6 +347,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6 ...@@ -345,6 +347,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6
MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019
MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
>; >;
}; };
}; };
// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
* Copyright (C) 2022 Kontron Electronics GmbH
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include "imx8mm.dtsi"
/ {
model = "Kontron OSM-S i.MX8MM (N802X SOM)";
compatible = "kontron,imx8mm-osm-s", "fsl,imx8mm";
memory@40000000 {
device_type = "memory";
/*
* There are multiple SoM flavors with different DDR sizes.
* The smallest is 1GB. For larger sizes the bootloader will
* update the reg property.
*/
reg = <0x0 0x40000000 0 0x80000000>;
};
chosen {
stdout-path = &uart3;
};
};
&A53_0 {
cpu-supply = <&reg_vdd_arm>;
};
&A53_1 {
cpu-supply = <&reg_vdd_arm>;
};
&A53_2 {
cpu-supply = <&reg_vdd_arm>;
};
&A53_3 {
cpu-supply = <&reg_vdd_arm>;
};
&ddrc {
operating-points-v2 = <&ddrc_opp_table>;
ddrc_opp_table: opp-table {
compatible = "operating-points-v2";
opp-100M {
opp-hz = /bits/ 64 <100000000>;
};
opp-750M {
opp-hz = /bits/ 64 <750000000>;
};
};
};
&ecspi1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi1>;
cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
status = "okay";
flash@0 {
compatible = "mxicy,mx25r1635f", "jedec,spi-nor";
spi-max-frequency = <80000000>;
reg = <0>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x1e0000>;
};
partition@1e0000 {
label = "env";
reg = <0x1e0000 0x10000>;
};
partition@1f0000 {
label = "env_redundant";
reg = <0x1f0000 0x10000>;
};
};
};
};
&i2c1 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>;
status = "okay";
pca9450: pmic@25 {
compatible = "nxp,pca9450a";
reg = <0x25>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pmic>;
interrupt-parent = <&gpio1>;
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
regulators {
reg_vdd_soc: BUCK1 {
regulator-name = "+0V8_VDD_SOC (BUCK1)";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <850000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <3125>;
nxp,dvs-run-voltage = <850000>;
nxp,dvs-standby-voltage = <800000>;
};
reg_vdd_arm: BUCK2 {
regulator-name = "+0V9_VDD_ARM (BUCK2)";
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <950000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <3125>;
nxp,dvs-run-voltage = <950000>;
nxp,dvs-standby-voltage = <850000>;
};
reg_vdd_dram: BUCK3 {
regulator-name = "+0V9_VDD_DRAM&PU (BUCK3)";
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <950000>;
regulator-boot-on;
regulator-always-on;
};
reg_vdd_3v3: BUCK4 {
regulator-name = "+3V3 (BUCK4)";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
reg_vdd_1v8: BUCK5 {
regulator-name = "+1V8 (BUCK5)";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
reg_nvcc_dram: BUCK6 {
regulator-name = "+1V1_NVCC_DRAM (BUCK6)";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-boot-on;
regulator-always-on;
};
reg_nvcc_snvs: LDO1 {
regulator-name = "+1V8_NVCC_SNVS (LDO1)";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
reg_vdd_snvs: LDO2 {
regulator-name = "+0V8_VDD_SNVS (LDO2)";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <900000>;
regulator-boot-on;
regulator-always-on;
};
reg_vdda: LDO3 {
regulator-name = "+1V8_VDDA (LDO3)";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
reg_vdd_phy: LDO4 {
regulator-name = "+0V9_VDD_PHY (LDO4)";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <900000>;
regulator-boot-on;
regulator-always-on;
};
reg_nvcc_sd: LDO5 {
regulator-name = "NVCC_SD (LDO5)";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
};
};
};
rtc@52 {
compatible = "microcrystal,rv3028";
reg = <0x52>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rtc>;
interrupts-extended = <&gpio4 1 IRQ_TYPE_LEVEL_HIGH>;
trickle-diode-disable;
};
};
&uart3 { /* console */
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart3>;
status = "okay";
};
&usdhc1 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc1>;
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
vmmc-supply = <&reg_vdd_3v3>;
vqmmc-supply = <&reg_vdd_1v8>;
bus-width = <8>;
non-removable;
status = "okay";
};
&wdog1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wdog>;
fsl,ext-reset-output;
status = "okay";
};
&iomuxc {
pinctrl_ecspi1: ecspi1grp {
fsl,pins = <
MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x82
MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x82
MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x82
MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19
>;
};
pinctrl_i2c1: i2c1grp {
fsl,pins = <
MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c3
MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3
>;
};
pinctrl_pmic: pmicgrp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x141
>;
};
pinctrl_rtc: rtcgrp {
fsl,pins = <
MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1 0x19
>;
};
pinctrl_uart3: uart3grp {
fsl,pins = <
MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX 0x140
MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX 0x140
>;
};
pinctrl_usdhc1: usdhc1grp {
fsl,pins = <
MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x190
MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d0
MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d0
MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d0
MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d0
MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d0
MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4 0x1d0
MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5 0x1d0
MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6 0x1d0
MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7 0x1d0
MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0x019
MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x190
>;
};
pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x194
MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d4
MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d4
MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d4
MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d4
MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d4
MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4 0x1d4
MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5 0x1d4
MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6 0x1d4
MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7 0x1d4
MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0x019
MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x194
>;
};
pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x196
MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d6
MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d6
MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d6
MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d6
MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d6
MX8MM_IOMUXC_SD1_DATA4_USDHC1_DATA4 0x1d6
MX8MM_IOMUXC_SD1_DATA5_USDHC1_DATA5 0x1d6
MX8MM_IOMUXC_SD1_DATA6_USDHC1_DATA6 0x1d6
MX8MM_IOMUXC_SD1_DATA7_USDHC1_DATA7 0x1d6
MX8MM_IOMUXC_SD1_RESET_B_USDHC1_RESET_B 0x019
MX8MM_IOMUXC_SD1_STROBE_USDHC1_STROBE 0x196
>;
};
pinctrl_wdog: wdoggrp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6
>;
};
};
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
#include "imx8mm.dtsi" #include "imx8mm.dtsi"
/ { / {
model = "Kontron i.MX8MM N801X SoM"; model = "Kontron SL i.MX8MM (N801X SOM)";
compatible = "kontron,imx8mm-n801x-som", "fsl,imx8mm"; compatible = "kontron,imx8mm-sl", "fsl,imx8mm";
memory@40000000 { memory@40000000 {
device_type = "memory"; device_type = "memory";
...@@ -46,10 +46,6 @@ &ddrc { ...@@ -46,10 +46,6 @@ &ddrc {
ddrc_opp_table: opp-table { ddrc_opp_table: opp-table {
compatible = "operating-points-v2"; compatible = "operating-points-v2";
opp-25M {
opp-hz = /bits/ 64 <25000000>;
};
opp-100M { opp-100M {
opp-hz = /bits/ 64 <100000000>; opp-hz = /bits/ 64 <100000000>;
}; };
...@@ -70,6 +66,27 @@ flash@0 { ...@@ -70,6 +66,27 @@ flash@0 {
compatible = "mxicy,mx25r1635f", "jedec,spi-nor"; compatible = "mxicy,mx25r1635f", "jedec,spi-nor";
spi-max-frequency = <80000000>; spi-max-frequency = <80000000>;
reg = <0>; reg = <0>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x1e0000>;
};
partition@1e0000 {
label = "env";
reg = <0x1e0000 0x10000>;
};
partition@1f0000 {
label = "env_redundant";
reg = <0x1f0000 0x10000>;
};
};
}; };
}; };
...@@ -86,11 +103,10 @@ pca9450: pmic@25 { ...@@ -86,11 +103,10 @@ pca9450: pmic@25 {
pinctrl-0 = <&pinctrl_pmic>; pinctrl-0 = <&pinctrl_pmic>;
interrupt-parent = <&gpio1>; interrupt-parent = <&gpio1>;
interrupts = <0 IRQ_TYPE_LEVEL_LOW>; interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
sd-vsel-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
regulators { regulators {
reg_vdd_soc: BUCK1 { reg_vdd_soc: BUCK1 {
regulator-name = "buck1"; regulator-name = "+0V8_VDD_SOC (BUCK1)";
regulator-min-microvolt = <800000>; regulator-min-microvolt = <800000>;
regulator-max-microvolt = <850000>; regulator-max-microvolt = <850000>;
regulator-boot-on; regulator-boot-on;
...@@ -101,7 +117,7 @@ reg_vdd_soc: BUCK1 { ...@@ -101,7 +117,7 @@ reg_vdd_soc: BUCK1 {
}; };
reg_vdd_arm: BUCK2 { reg_vdd_arm: BUCK2 {
regulator-name = "buck2"; regulator-name = "+0V9_VDD_ARM (BUCK2)";
regulator-min-microvolt = <850000>; regulator-min-microvolt = <850000>;
regulator-max-microvolt = <950000>; regulator-max-microvolt = <950000>;
regulator-boot-on; regulator-boot-on;
...@@ -112,7 +128,7 @@ reg_vdd_arm: BUCK2 { ...@@ -112,7 +128,7 @@ reg_vdd_arm: BUCK2 {
}; };
reg_vdd_dram: BUCK3 { reg_vdd_dram: BUCK3 {
regulator-name = "buck3"; regulator-name = "+0V9_VDD_DRAM&PU (BUCK3)";
regulator-min-microvolt = <850000>; regulator-min-microvolt = <850000>;
regulator-max-microvolt = <950000>; regulator-max-microvolt = <950000>;
regulator-boot-on; regulator-boot-on;
...@@ -120,7 +136,7 @@ reg_vdd_dram: BUCK3 { ...@@ -120,7 +136,7 @@ reg_vdd_dram: BUCK3 {
}; };
reg_vdd_3v3: BUCK4 { reg_vdd_3v3: BUCK4 {
regulator-name = "buck4"; regulator-name = "+3V3 (BUCK4)";
regulator-min-microvolt = <3300000>; regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3300000>;
regulator-boot-on; regulator-boot-on;
...@@ -128,7 +144,7 @@ reg_vdd_3v3: BUCK4 { ...@@ -128,7 +144,7 @@ reg_vdd_3v3: BUCK4 {
}; };
reg_vdd_1v8: BUCK5 { reg_vdd_1v8: BUCK5 {
regulator-name = "buck5"; regulator-name = "+1V8 (BUCK5)";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
regulator-boot-on; regulator-boot-on;
...@@ -136,7 +152,7 @@ reg_vdd_1v8: BUCK5 { ...@@ -136,7 +152,7 @@ reg_vdd_1v8: BUCK5 {
}; };
reg_nvcc_dram: BUCK6 { reg_nvcc_dram: BUCK6 {
regulator-name = "buck6"; regulator-name = "+1V1_NVCC_DRAM (BUCK6)";
regulator-min-microvolt = <1100000>; regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>; regulator-max-microvolt = <1100000>;
regulator-boot-on; regulator-boot-on;
...@@ -144,7 +160,7 @@ reg_nvcc_dram: BUCK6 { ...@@ -144,7 +160,7 @@ reg_nvcc_dram: BUCK6 {
}; };
reg_nvcc_snvs: LDO1 { reg_nvcc_snvs: LDO1 {
regulator-name = "ldo1"; regulator-name = "+1V8_NVCC_SNVS (LDO1)";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
regulator-boot-on; regulator-boot-on;
...@@ -152,7 +168,7 @@ reg_nvcc_snvs: LDO1 { ...@@ -152,7 +168,7 @@ reg_nvcc_snvs: LDO1 {
}; };
reg_vdd_snvs: LDO2 { reg_vdd_snvs: LDO2 {
regulator-name = "ldo2"; regulator-name = "+0V8_VDD_SNVS (LDO2)";
regulator-min-microvolt = <800000>; regulator-min-microvolt = <800000>;
regulator-max-microvolt = <900000>; regulator-max-microvolt = <900000>;
regulator-boot-on; regulator-boot-on;
...@@ -160,7 +176,7 @@ reg_vdd_snvs: LDO2 { ...@@ -160,7 +176,7 @@ reg_vdd_snvs: LDO2 {
}; };
reg_vdda: LDO3 { reg_vdda: LDO3 {
regulator-name = "ldo3"; regulator-name = "+1V8_VDDA (LDO3)";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
regulator-boot-on; regulator-boot-on;
...@@ -168,7 +184,7 @@ reg_vdda: LDO3 { ...@@ -168,7 +184,7 @@ reg_vdda: LDO3 {
}; };
reg_vdd_phy: LDO4 { reg_vdd_phy: LDO4 {
regulator-name = "ldo4"; regulator-name = "+0V9_VDD_PHY (LDO4)";
regulator-min-microvolt = <900000>; regulator-min-microvolt = <900000>;
regulator-max-microvolt = <900000>; regulator-max-microvolt = <900000>;
regulator-boot-on; regulator-boot-on;
...@@ -176,7 +192,7 @@ reg_vdd_phy: LDO4 { ...@@ -176,7 +192,7 @@ reg_vdd_phy: LDO4 {
}; };
reg_nvcc_sd: LDO5 { reg_nvcc_sd: LDO5 {
regulator-name = "ldo5"; regulator-name = "NVCC_SD (LDO5)";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3300000>;
}; };
...@@ -229,7 +245,6 @@ MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3 ...@@ -229,7 +245,6 @@ MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3
pinctrl_pmic: pmicgrp { pinctrl_pmic: pmicgrp {
fsl,pins = < fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x141 MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x141
MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x141
>; >;
}; };
......
...@@ -17,4 +17,3 @@ chosen { ...@@ -17,4 +17,3 @@ chosen {
stdout-path = &uart2; stdout-path = &uart2;
}; };
}; };
...@@ -222,7 +222,6 @@ can@0 { ...@@ -222,7 +222,6 @@ can@0 {
compatible = "microchip,mcp2515"; compatible = "microchip,mcp2515";
reg = <0>; reg = <0>;
clocks = <&can20m>; clocks = <&can20m>;
oscillator-frequency = <20000000>;
interrupt-parent = <&gpio2>; interrupt-parent = <&gpio2>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>; interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
spi-max-frequency = <10000000>; spi-max-frequency = <10000000>;
......
...@@ -250,7 +250,7 @@ &gpio1 { ...@@ -250,7 +250,7 @@ &gpio1 {
}; };
&gpio2 { &gpio2 {
gpio-line-names = "dig2_in", "dig2_out#", "", "", "", "", "", "", gpio-line-names = "dig2_in", "dig2_out#", "dig2_ctl", "", "", "", "dig1_ctl", "",
"dig1_out#", "dig1_in", "", "", "", "", "", "", "dig1_out#", "dig1_in", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", ""; "", "", "", "", "", "", "", "";
...@@ -630,6 +630,8 @@ MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x40000041 /* RS485# */ ...@@ -630,6 +630,8 @@ MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x40000041 /* RS485# */
MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x40000041 /* RS232# */ MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x40000041 /* RS232# */
MX8MM_IOMUXC_SD1_DATA7_GPIO2_IO9 0x40000041 /* DIG1_IN */ MX8MM_IOMUXC_SD1_DATA7_GPIO2_IO9 0x40000041 /* DIG1_IN */
MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8 0x40000041 /* DIG1_OUT */ MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8 0x40000041 /* DIG1_OUT */
MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6 0x40000041 /* DIG1_CTL */
MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2 0x40000041 /* DIG2_CTL */
MX8MM_IOMUXC_SD1_CLK_GPIO2_IO0 0x40000041 /* DIG2_IN */ MX8MM_IOMUXC_SD1_CLK_GPIO2_IO0 0x40000041 /* DIG2_IN */
MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1 0x40000041 /* DIG2_OUT */ MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1 0x40000041 /* DIG2_OUT */
MX8MM_IOMUXC_ECSPI1_MOSI_GPIO5_IO7 0x40000041 /* SIM1DET# */ MX8MM_IOMUXC_ECSPI1_MOSI_GPIO5_IO7 0x40000041 /* SIM1DET# */
......
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Gateworks Corporation
*/
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/phy/phy-imx8-pcie.h>
#include "imx8mm.dtsi"
/ {
model = "Gateworks Venice GW7904 i.MX8MM board";
compatible = "gateworks,imx8mm-gw7904", "fsl,imx8mm";
chosen {
stdout-path = &uart2;
};
memory@40000000 {
device_type = "memory";
reg = <0x0 0x40000000 0 0x80000000>;
};
gpio-keys {
compatible = "gpio-keys";
key-0 {
label = "user_pb";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
linux,code = <BTN_0>;
};
key-1 {
label = "user_pb1x";
linux,code = <BTN_1>;
interrupt-parent = <&gsc>;
interrupts = <0>;
};
key-2 {
label = "key_erased";
linux,code = <BTN_2>;
interrupt-parent = <&gsc>;
interrupts = <1>;
};
key-3 {
label = "eeprom_wp";
linux,code = <BTN_3>;
interrupt-parent = <&gsc>;
interrupts = <2>;
};
key-4 {
label = "switch_hold";
linux,code = <BTN_5>;
interrupt-parent = <&gsc>;
interrupts = <7>;
};
};
led-controller {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_leds>;
led-0 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
label = "led01_grn";
gpios = <&gpioled 0 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-1 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_YELLOW>;
label = "led01_yel";
gpios = <&gpioled 1 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-2 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
label = "led02_grn";
gpios = <&gpioled 2 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-3 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_YELLOW>;
label = "led02_yel";
gpios = <&gpioled 3 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-4 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
label = "led03_grn";
gpios = <&gpioled 4 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-5 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_YELLOW>;
label = "led03_yel";
gpios = <&gpioled 5 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-6 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
label = "led04_grn";
gpios = <&gpioled 6 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-7 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_YELLOW>;
label = "led04_yel";
gpios = <&gpioled 7 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-8 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
label = "led05_grn";
gpios = <&gpioled 8 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-9 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_YELLOW>;
label = "led05_yel";
gpios = <&gpioled 9 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-10 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
label = "led06_grn";
gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-11 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_RED>;
label = "led06_red";
gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-12 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
label = "led07_grn";
gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-13 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_RED>;
label = "led07_red";
gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-14 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
label = "led08_grn";
gpios = <&gpioled 10 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-15 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_YELLOW>;
label = "led08_yel";
gpios = <&gpioled 11 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-16 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
label = "led09_grn";
gpios = <&gpioled 12 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-17 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_YELLOW>;
label = "led09_yel";
gpios = <&gpioled 13 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-18 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
label = "led10_grn";
gpios = <&gpioled 14 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led-19 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_YELLOW>;
label = "led10_yel";
gpios = <&gpioled 15 GPIO_ACTIVE_LOW>;
default-state = "off";
};
};
pcie0_refclk: pcie0-refclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <100000000>;
};
reg_3p3v: regulator-3p3v {
compatible = "regulator-fixed";
regulator-name = "3P3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
&A53_0 {
cpu-supply = <&buck2>;
};
&A53_1 {
cpu-supply = <&buck2>;
};
&A53_2 {
cpu-supply = <&buck2>;
};
&A53_3 {
cpu-supply = <&buck2>;
};
&ddrc {
operating-points-v2 = <&ddrc_opp_table>;
ddrc_opp_table: opp-table {
compatible = "operating-points-v2";
opp-25M {
opp-hz = /bits/ 64 <25000000>;
};
opp-100M {
opp-hz = /bits/ 64 <100000000>;
};
opp-750M {
opp-hz = /bits/ 64 <750000000>;
};
};
};
&fec1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_fec1>;
phy-mode = "rgmii-id";
phy-handle = <&ethphy0>;
local-mac-address = [00 00 00 00 00 00];
status = "okay";
mdio {
#address-cells = <1>;
#size-cells = <0>;
ethphy0: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0>;
};
};
};
&gpio1 {
gpio-line-names = "", "", "", "", "", "", "", "",
"", "", "", "", "rs232_en#", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
};
&gpio5 {
gpio-line-names = "", "", "", "", "", "", "", "",
"", "", "", "", "pci_wdis#", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
};
&i2c1 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>;
status = "okay";
gsc: gsc@20 {
compatible = "gw,gsc";
reg = <0x20>;
pinctrl-0 = <&pinctrl_gsc>;
interrupt-parent = <&gpio4>;
interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
interrupt-controller;
#interrupt-cells = <1>;
adc {
compatible = "gw,gsc-adc";
#address-cells = <1>;
#size-cells = <0>;
channel@6 {
gw,mode = <0>;
reg = <0x06>;
label = "temp";
};
channel@82 {
gw,mode = <2>;
reg = <0x82>;
label = "vin";
gw,voltage-divider-ohms = <22100 1000>;
gw,voltage-offset-microvolt = <700000>;
};
channel@84 {
gw,mode = <2>;
reg = <0x84>;
label = "vdd_5p0";
gw,voltage-divider-ohms = <10000 10000>;
};
channel@86 {
gw,mode = <2>;
reg = <0x86>;
label = "vdd_3p3";
gw,voltage-divider-ohms = <10000 10000>;
};
channel@88 {
gw,mode = <2>;
reg = <0x88>;
label = "vdd_0p9";
};
channel@8c {
gw,mode = <2>;
reg = <0x8c>;
label = "vdd_soc";
};
channel@8e {
gw,mode = <2>;
reg = <0x8e>;
label = "vdd_arm";
};
channel@90 {
gw,mode = <2>;
reg = <0x90>;
label = "vdd_1p8";
};
channel@92 {
gw,mode = <2>;
reg = <0x92>;
label = "vdd_dram";
};
channel@a2 {
gw,mode = <2>;
reg = <0xa2>;
label = "vdd_gsc";
gw,voltage-divider-ohms = <10000 10000>;
};
};
};
gpio: gpio@23 {
compatible = "nxp,pca9555";
reg = <0x23>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gsc>;
interrupts = <4>;
};
eeprom@50 {
compatible = "atmel,24c02";
reg = <0x50>;
pagesize = <16>;
};
eeprom@51 {
compatible = "atmel,24c02";
reg = <0x51>;
pagesize = <16>;
};
eeprom@52 {
compatible = "atmel,24c02";
reg = <0x52>;
pagesize = <16>;
};
eeprom@53 {
compatible = "atmel,24c02";
reg = <0x53>;
pagesize = <16>;
};
rtc@68 {
compatible = "dallas,ds1672";
reg = <0x68>;
};
};
&i2c2 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
status = "okay";
pmic@4b {
compatible = "rohm,bd71847";
reg = <0x4b>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pmic>;
interrupt-parent = <&gpio3>;
interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
rohm,reset-snvs-powered;
#clock-cells = <0>;
clocks = <&osc_32k 0>;
clock-output-names = "clk-32k-out";
regulators {
/* vdd_soc: 0.805-0.900V (typ=0.8V) */
BUCK1 {
regulator-name = "buck1";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <1250>;
};
/* vdd_arm: 0.805-1.0V (typ=0.9V) */
buck2: BUCK2 {
regulator-name = "buck2";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <1250>;
rohm,dvs-run-voltage = <1000000>;
rohm,dvs-idle-voltage = <900000>;
};
/* vdd_0p9: 0.805-1.0V (typ=0.9V) */
BUCK3 {
regulator-name = "buck3";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1350000>;
regulator-boot-on;
regulator-always-on;
};
/* vdd_3p3 */
BUCK4 {
regulator-name = "buck4";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
/* vdd_1p8 */
BUCK5 {
regulator-name = "buck5";
regulator-min-microvolt = <1605000>;
regulator-max-microvolt = <1995000>;
regulator-boot-on;
regulator-always-on;
};
/* vdd_dram */
BUCK6 {
regulator-name = "buck6";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1400000>;
regulator-boot-on;
regulator-always-on;
};
/* nvcc_snvs_1p8 */
LDO1 {
regulator-name = "ldo1";
regulator-min-microvolt = <1600000>;
regulator-max-microvolt = <1900000>;
regulator-boot-on;
regulator-always-on;
};
/* vdd_snvs_0p8 */
LDO2 {
regulator-name = "ldo2";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <900000>;
regulator-boot-on;
regulator-always-on;
};
/* vdda_1p8 */
LDO3 {
regulator-name = "ldo3";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
LDO4 {
regulator-name = "ldo4";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
LDO6 {
regulator-name = "ldo6";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
};
};
};
&i2c3 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;
status = "okay";
accelerometer@19 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_accel>;
compatible = "st,lis2de12";
reg = <0x19>;
st,drdy-int-pin = <1>;
interrupt-parent = <&gpio1>;
interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "INT1";
};
};
&i2c4 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c4>;
status = "okay";
gpioled: gpio@27 {
compatible = "nxp,pca9555";
reg = <0x27>;
gpio-controller;
#gpio-cells = <2>;
};
};
&pcie_phy {
fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
fsl,clkreq-unsupported;
clocks = <&pcie0_refclk>;
clock-names = "ref";
status = "okay";
};
&pcie0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pcie0>;
reset-gpio = <&gpio5 11 GPIO_ACTIVE_LOW>;
clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>, <&clk IMX8MM_CLK_PCIE1_AUX>,
<&pcie0_refclk>;
clock-names = "pcie", "pcie_aux", "pcie_bus";
assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
<&clk IMX8MM_CLK_PCIE1_CTRL>;
assigned-clock-rates = <10000000>, <250000000>;
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
<&clk IMX8MM_SYS_PLL2_250M>;
status = "okay";
};
&pgc_mipi {
status = "disabled";
};
/* off-board RS232 */
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
status = "okay";
};
/* console */
&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2>;
status = "okay";
};
/* off-board RS232 */
&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart3>;
status = "okay";
};
&usbotg1 {
dr_mode = "host";
disable-over-current;
status = "okay";
};
/* microSD */
&usdhc2 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
bus-width = <4>;
vmmc-supply = <&reg_3p3v>;
status = "okay";
};
/* eMMC */
&usdhc3 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc3>;
pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
bus-width = <8>;
non-removable;
status = "okay";
};
&wdog1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wdog>;
fsl,ext-reset-output;
status = "okay";
};
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog>;
pinctrl_hog: hoggrp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x40000041 /* RS232# */
MX8MM_IOMUXC_ECSPI2_MISO_GPIO5_IO12 0x40000041 /* PCI_WDIS# */
>;
};
pinctrl_accel: accelgrp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x159
>;
};
pinctrl_fec1: fec1grp {
fsl,pins = <
MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x3
MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x3
MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f
MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f
MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f
MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f
MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91
MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91
MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91
MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91
MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f
MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91
MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91
MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f
MX8MM_IOMUXC_SAI2_TXFS_GPIO4_IO24 0x19 /* IRQ# */
MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25 0x19 /* RST# */
>;
};
pinctrl_gpio_leds: gpioledsgrp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8 0x40000019
MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x40000019
MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x40000019
MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x40000019
>;
};
pinctrl_gsc: gscgrp {
fsl,pins = <
MX8MM_IOMUXC_SAI2_TXD0_GPIO4_IO26 0x159
>;
};
pinctrl_i2c1: i2c1grp {
fsl,pins = <
MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c3
MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c3
>;
};
pinctrl_i2c2: i2c2grp {
fsl,pins = <
MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL 0x400001c3
MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA 0x400001c3
>;
};
pinctrl_i2c3: i2c3grp {
fsl,pins = <
MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL 0x400001c3
MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA 0x400001c3
>;
};
pinctrl_i2c4: i2c4grp {
fsl,pins = <
MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL 0x400001c3
MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA 0x400001c3
>;
};
pinctrl_pcie0: pciegrp {
fsl,pins = <
MX8MM_IOMUXC_ECSPI2_MOSI_GPIO5_IO11 0x41
>;
};
pinctrl_pmic: pmicgrp {
fsl,pins = <
MX8MM_IOMUXC_NAND_DATA02_GPIO3_IO8 0x41
>;
};
pinctrl_uart1: uart1grp {
fsl,pins = <
MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX 0x140
MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX 0x140
>;
};
pinctrl_uart2: uart2grp {
fsl,pins = <
MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140
MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140
>;
};
pinctrl_uart3: uart3grp {
fsl,pins = <
MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX 0x140
MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX 0x140
>;
};
pinctrl_usdhc2: usdhc2grp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0
MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0
MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0
>;
};
pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4
MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4
MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4
>;
};
pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6
MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6
MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6
MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6
MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6
>;
};
pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x1c4
MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0
>;
};
pinctrl_usdhc3: usdhc3grp {
fsl,pins = <
MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x190
MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d0
MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d0
MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d0
MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d0
MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d0
MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d0
MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d0
MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d0
MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d0
MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x190
>;
};
pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x194
MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4
MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4
MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4
MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4
MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4
MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4
MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4
MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4
MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4
MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x194
>;
};
pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x196
MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6
MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d6
MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d6
MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d6
MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d6
MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d6
MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d6
MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d6
MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d6
MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x196
>;
};
pinctrl_wdog: wdoggrp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6
>;
};
};
...@@ -53,6 +53,21 @@ key-wakeup { ...@@ -53,6 +53,21 @@ key-wakeup {
}; };
}; };
hdmi_connector: hdmi-connector {
compatible = "hdmi-connector";
ddc-i2c-bus = <&i2c2>;
label = "hdmi";
type = "a";
status = "disabled";
};
panel_lvds: panel-lvds {
compatible = "panel-lvds";
backlight = <&backlight>;
data-mapping = "vesa-24";
status = "disabled";
};
/* Carrier Board Supplies */ /* Carrier Board Supplies */
reg_1p8v: regulator-1p8v { reg_1p8v: regulator-1p8v {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
...@@ -561,8 +576,8 @@ gpio_expander_21: gpio-expander@21 { ...@@ -561,8 +576,8 @@ gpio_expander_21: gpio-expander@21 {
status = "disabled"; status = "disabled";
}; };
lvds_ti_sn65dsi83: bridge@2c { lvds_ti_sn65dsi84: bridge@2c {
compatible = "ti,sn65dsi83"; compatible = "ti,sn65dsi84";
/* Verdin GPIO_9_DSI (SN65DSI84 IRQ, SODIMM 17, unused) */ /* Verdin GPIO_9_DSI (SN65DSI84 IRQ, SODIMM 17, unused) */
/* Verdin GPIO_10_DSI (SODIMM 21) */ /* Verdin GPIO_10_DSI (SODIMM 21) */
enable-gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>; enable-gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>;
......
...@@ -213,7 +213,6 @@ can@0 { ...@@ -213,7 +213,6 @@ can@0 {
compatible = "microchip,mcp2515"; compatible = "microchip,mcp2515";
reg = <0>; reg = <0>;
clocks = <&can20m>; clocks = <&can20m>;
oscillator-frequency = <20000000>;
interrupt-parent = <&gpio2>; interrupt-parent = <&gpio2>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>; interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
spi-max-frequency = <10000000>; spi-max-frequency = <10000000>;
......
// SPDX-License-Identifier: (GPL-2.0+ OR MIT) // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/* /*
* Copyright (C) 2022 Marek Vasut <marex@denx.de> * Copyright (C) 2022 Marek Vasut <marex@denx.de>
*
* DHCOM iMX8MP variant:
* DHCM-iMX8ML8-C160-R409-F1638-SPI16-GE-CAN2-SD-RTC-WBTA-ADC-T-RGB-CSI2-HS-I-01D2
* DHCOM PCB number: 660-100 or newer
* PDK2 PCB number: 516-400 or newer
*/ */
/dts-v1/; /dts-v1/;
#include <dt-bindings/leds/common.h> #include <dt-bindings/leds/common.h>
#include <dt-bindings/net/qca-ar803x.h>
#include <dt-bindings/phy/phy-imx8-pcie.h> #include <dt-bindings/phy/phy-imx8-pcie.h>
#include "imx8mp-dhcom-som.dtsi" #include "imx8mp-dhcom-som.dtsi"
/ { / {
model = "DH electronics i.MX8M Plus DHCOM Premium Developer Kit (2)"; model = "DH electronics i.MX8M Plus DHCOM Premium Developer Kit (2)";
compatible = "dh,imx8mp-dhcom-pdk2", "fsl,imx8mp"; compatible = "dh,imx8mp-dhcom-pdk2", "dh,imx8mp-dhcom-som",
"fsl,imx8mp";
chosen { chosen {
stdout-path = &uart1; stdout-path = &uart1;
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
/dts-v1/; /dts-v1/;
#include <dt-bindings/phy/phy-imx8-pcie.h>
#include "imx8mp.dtsi" #include "imx8mp.dtsi"
/ { / {
...@@ -33,6 +34,12 @@ memory@40000000 { ...@@ -33,6 +34,12 @@ memory@40000000 {
<0x1 0x00000000 0 0xc0000000>; <0x1 0x00000000 0 0xc0000000>;
}; };
pcie0_refclk: pcie0-refclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <100000000>;
};
reg_can1_stby: regulator-can1-stby { reg_can1_stby: regulator-can1-stby {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "can1-stby"; regulator-name = "can1-stby";
...@@ -55,6 +62,17 @@ reg_can2_stby: regulator-can2-stby { ...@@ -55,6 +62,17 @@ reg_can2_stby: regulator-can2-stby {
enable-active-high; enable-active-high;
}; };
reg_pcie0: regulator-pcie {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pcie0_reg>;
regulator-name = "MPCIE_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio2 6 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
reg_usdhc2_vmmc: regulator-usdhc2 { reg_usdhc2_vmmc: regulator-usdhc2 {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -350,6 +368,28 @@ &i2c5 { ...@@ -350,6 +368,28 @@ &i2c5 {
*/ */
}; };
&pcie_phy {
fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
clocks = <&pcie0_refclk>;
clock-names = "ref";
status = "okay";
};
&pcie {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pcie0>;
reset-gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
<&clk IMX8MP_CLK_PCIE_ROOT>,
<&clk IMX8MP_CLK_HSIO_AXI>;
clock-names = "pcie", "pcie_aux", "pcie_bus";
assigned-clocks = <&clk IMX8MP_CLK_PCIE_AUX>;
assigned-clock-rates = <10000000>;
assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_50M>;
vpcie-supply = <&reg_pcie0>;
status = "okay";
};
&snvs_pwrkey { &snvs_pwrkey {
status = "okay"; status = "okay";
}; };
...@@ -502,6 +542,19 @@ MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL 0x400001c2 ...@@ -502,6 +542,19 @@ MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL 0x400001c2
>; >;
}; };
pinctrl_pcie0: pcie0grp {
fsl,pins = <
MX8MP_IOMUXC_I2C4_SCL__PCIE_CLKREQ_B 0x61 /* open drain, pull up */
MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07 0x41
>;
};
pinctrl_pcie0_reg: pcie0reggrp {
fsl,pins = <
MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06 0x41
>;
};
pinctrl_pmic: pmicgrp { pinctrl_pmic: pmicgrp {
fsl,pins = < fsl,pins = <
MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x000001c0 MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x000001c0
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* /*
* Copyright (c) 2018 NXP * Copyright (c) 2018 NXP
* Copyright (c) 2019 Engicam srl * Copyright (c) 2019 Engicam srl
* Copyright (c) 2020 Amarula Solutons(India) * Copyright (c) 2020 Amarula Solutions(India)
*/ */
/dts-v1/; /dts-v1/;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* /*
* Copyright (c) 2018 NXP * Copyright (c) 2018 NXP
* Copyright (c) 2019 Engicam srl * Copyright (c) 2019 Engicam srl
* Copyright (c) 2020 Amarula Solutons(India) * Copyright (c) 2020 Amarula Solutions(India)
*/ */
/ { / {
......
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2022 Avnet Embedded GmbH
*/
/dts-v1/;
#include "imx8mp-msc-sm2s.dtsi"
/ {
memory@40000000 {
device_type = "memory";
reg = <0x0 0x40000000 0 0x80000000>; /* bank0, 2GiB */
};
};
&cpu_alert0 {
temperature = <95000>;
};
&cpu_crit0 {
temperature = <105000>;
};
&soc_alert0 {
temperature = <95000>;
};
&soc_crit0 {
temperature = <105000>;
};
&tca6424 {
gbe0-int-hog {
gpio-hog;
input;
gpios = <3 GPIO_ACTIVE_LOW>;
};
gbe1-int-hog {
gpio-hog;
input;
gpios = <4 GPIO_ACTIVE_LOW>;
};
cam2-rst-hog {
gpio-hog;
output-high;
gpios = <9 GPIO_ACTIVE_LOW>;
};
cam2-pwr-hog {
gpio-hog;
output-high;
gpios = <10 GPIO_ACTIVE_LOW>;
};
tpm-int-hog {
gpio-hog;
input;
gpios = <13 GPIO_ACTIVE_LOW>;
};
wifi-int-hog {
gpio-hog;
input;
gpios = <14 GPIO_ACTIVE_LOW>;
};
};
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2022 Avnet Embedded GmbH
*/
/dts-v1/;
#include "imx8mp-msc-sm2s-14N0600E.dtsi"
#include <dt-bindings/clock/imx8mp-clock.h>
#include <dt-bindings/gpio/gpio.h>
/ {
model = "MSC SM2-MB-EP1 Carrier Board with SM2S-IMX8PLUS-QC6-14N0600E SoM";
compatible = "avnet,sm2s-imx8mp-14N0600E-ep1",
"avnet,sm2s-imx8mp-14N0600E", "avnet,sm2s-imx8mp",
"fsl,imx8mp";
};
&flexcan1 {
status = "okay";
};
&flexcan2 {
status = "okay";
};
&usdhc2 {
no-1-8-v;
};
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_smarc_gpio>;
pinctrl_smarc_gpio: smarcgpiosgrp {
fsl,pins =
<MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11 0x19>, /* GPIO0 */
<MX8MP_IOMUXC_SAI1_RXC__GPIO4_IO01 0x19>, /* GPIO1 */
<MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02 0x19>, /* GPIO2 */
<MX8MP_IOMUXC_SAI1_RXD1__GPIO4_IO03 0x19>, /* GPIO3 */
<MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29 0x19>, /* GPIO4 */
<MX8MP_IOMUXC_SAI3_MCLK__GPIO5_IO02 0x19>, /* GPIO5 */
<MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18 0x19>, /* GPIO6 */
<MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10 0x19>, /* GPIO7 */
<MX8MP_IOMUXC_SAI1_MCLK__GPIO4_IO20 0x19>, /* GPIO8 */
<MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21 0x19>, /* GPIO9 */
<MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22 0x19>, /* GPIO10 */
<MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28 0x19>, /* GPIO11 */
<MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19 0x19>, /* GPIO12 */
<MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00 0x19>; /* GPIO13 */
};
};
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2022 Avnet Embedded GmbH
*/
/dts-v1/;
#include "imx8mp.dtsi"
#include <dt-bindings/net/ti-dp83867.h>
/ {
aliases {
rtc0 = &sys_rtc;
rtc1 = &snvs_rtc;
};
chosen {
stdout-path = &uart2;
};
reg_usb0_host_vbus: regulator-usb0-vbus {
compatible = "regulator-fixed";
regulator-name = "usb0_host_vbus";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb0_vbus>;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
reg_usb1_host_vbus: regulator-usb1-vbus {
compatible = "regulator-fixed";
regulator-name = "usb1_host_vbus";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb1_vbus>;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
reg_usdhc2_vmmc: regulator-usdhc2 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc2_vmmc>;
regulator-name = "VSD_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
enable-active-high;
startup-delay-us = <100>;
off-on-delay-us = <12000>;
};
reg_flexcan1_xceiver: regulator-flexcan1 {
compatible = "regulator-fixed";
regulator-name = "flexcan1-xceiver";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
reg_flexcan2_xceiver: regulator-flexcan2 {
compatible = "regulator-fixed";
regulator-name = "flexcan2-xceiver";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
lcd0_backlight: backlight-0 {
compatible = "pwm-backlight";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcd0_backlight>;
pwms = <&pwm1 0 100000 0>;
brightness-levels = <0 255>;
num-interpolated-steps = <255>;
default-brightness-level = <255>;
enable-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
status = "disabled";
};
lcd1_backlight: backlight-1 {
compatible = "pwm-backlight";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcd1_backlight>;
pwms = <&pwm2 0 100000 0>;
brightness-levels = <0 255>;
num-interpolated-steps = <255>;
default-brightness-level = <255>;
enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
status = "disabled";
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_leds>;
status = "okay";
led-sw {
label = "sw-led";
gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
default-state = "off";
linux,default-trigger = "heartbeat";
};
};
extcon_usb0: extcon-usb0 {
compatible = "linux,extcon-usb-gpio";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb0_extcon>;
id-gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>;
};
};
&A53_0 {
cpu-supply = <&vcc_arm>;
};
&A53_1 {
cpu-supply = <&vcc_arm>;
};
&A53_2 {
cpu-supply = <&vcc_arm>;
};
&A53_3 {
cpu-supply = <&vcc_arm>;
};
&ecspi1 {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi1>;
cs-gpios = <0>, <&gpio2 8 GPIO_ACTIVE_LOW>;
};
&ecspi2 {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi2>;
cs-gpios = <0>, <&gpio2 9 GPIO_ACTIVE_LOW>;
};
&eqos {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_eqos>;
phy-mode = "rgmii-id";
phy-handle = <&ethphy0>;
status = "okay";
mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
#size-cells = <0>;
ethphy0: ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;
eee-broken-1000t;
reset-gpios = <&tca6424 16 GPIO_ACTIVE_LOW>;
reset-assert-us = <1000>;
reset-deassert-us = <1000>;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
};
};
};
&fec {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_fec>;
phy-mode = "rgmii-id";
phy-handle = <&ethphy1>;
fsl,magic-packet;
status = "okay";
mdio {
#address-cells = <1>;
#size-cells = <0>;
ethphy1: ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;
eee-broken-1000t;
reset-gpios = <&tca6424 17 GPIO_ACTIVE_LOW>;
reset-assert-us = <1000>;
reset-deassert-us = <1000>;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
};
};
};
&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>;
clock-frequency = <400000>;
status = "okay";
id_eeprom: eeprom@50 {
compatible = "atmel,24c64";
reg = <0x50>;
pagesize = <32>;
};
};
&i2c2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
clock-frequency = <400000>;
status = "disabled";
};
&i2c3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;
clock-frequency = <400000>;
status = "disabled";
};
&i2c4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c4>;
clock-frequency = <400000>;
status = "disabled";
};
&i2c5 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c5>;
clock-frequency = <400000>;
status = "disabled";
};
&i2c6 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c6>;
clock-frequency = <400000>;
status = "okay";
tca6424: gpio@22 {
compatible = "ti,tca6424";
reg = <0x22>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_tca6424>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "BOOT_SEL0#", "BOOT_SEL1#", "BOOT_SEL2#",
"gbe0_int", "gbe1_int", "pmic_int", "rtc_int", "lvds_int",
"PCIE_WAKE#", "cam2_rst", "cam2_pwr", "SLEEP#",
"wifi_pd", "tpm_int", "wifi_int", "PCIE_A_RST#",
"gbe0_rst", "gbe1_rst", "LID#", "BATLOW#", "CHARGING#",
"CHARGER_PRSNT#";
interrupt-parent = <&gpio1>;
interrupts = <9 IRQ_TYPE_EDGE_RISING>;
interrupt-controller;
#interrupt-cells = <2>;
};
dsi_lvds_bridge: bridge@2d {
compatible = "ti,sn65dsi83";
reg = <0x2d>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lvds_bridge>;
enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
status = "disabled";
};
pmic: pmic@30 {
compatible = "ricoh,rn5t567";
reg = <0x30>;
interrupt-parent = <&tca6424>;
interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
regulators {
DCDC1 {
regulator-name = "VCC_SOC";
regulator-always-on;
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <950000>;
};
DCDC2 {
regulator-name = "VCC_DRAM";
regulator-always-on;
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
};
vcc_arm: DCDC3 {
regulator-name = "VCC_ARM";
regulator-always-on;
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <950000>;
};
DCDC4 {
regulator-name = "VCC_1V8";
regulator-always-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
LDO1 {
regulator-name = "VCC_LDO1_2V5";
regulator-always-on;
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
};
LDO2 {
regulator-name = "VCC_LDO2_1V8";
regulator-always-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
LDO3 {
regulator-name = "VCC_ETH_2V5";
regulator-always-on;
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
};
LDO4 {
regulator-name = "VCC_DDR4_2V5";
regulator-always-on;
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
};
LDO5 {
regulator-name = "VCC_LDO5_1V8";
regulator-always-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
LDORTC1 {
regulator-name = "VCC_SNVS_1V8";
regulator-always-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
LDORTC2 {
regulator-name = "VCC_SNVS_3V3";
regulator-always-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
};
sys_rtc: rtc@32 {
compatible = "ricoh,r2221tl";
reg = <0x32>;
interrupt-parent = <&tca6424>;
interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
};
tmp_sensor: temperature-sensor@71 {
compatible = "ti,tmp103";
reg = <0x71>;
};
};
&flexcan1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan1>;
xceiver-supply = <&reg_flexcan1_xceiver>;
status = "disabled";
};
&flexcan2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan2>;
xceiver-supply = <&reg_flexcan2_xceiver>;
status = "disabled";
};
&flexspi {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexspi0>;
status = "okay";
qspi_flash: flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <80000000>;
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;
};
};
&pwm1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm1>;
status = "disabled";
};
&pwm2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm2>;
status = "disabled";
};
&pwm3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm3>;
status = "disabled";
};
&pwm4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm4>;
status = "disabled";
};
&snvs_pwrkey {
status = "okay";
};
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
status = "okay";
};
&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2>;
uart-has-rtscts;
status = "okay";
};
&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart3>;
uart-has-rtscts;
status = "okay";
};
&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart4>;
status = "disabled";
};
&usb3_phy0 {
vbus-supply = <&reg_usb0_host_vbus>;
status = "okay";
};
&usb3_phy1 {
vbus-supply = <&reg_usb1_host_vbus>;
status = "okay";
};
&usb3_0 {
status = "okay";
};
&usb3_1 {
status = "okay";
};
&usb_dwc3_0 {
dr_mode = "otg";
hnp-disable;
srp-disable;
adp-disable;
extcon = <&extcon_usb0>;
status = "okay";
};
&usb_dwc3_1 {
dr_mode = "host";
status = "okay";
};
&usdhc2 {
assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
assigned-clock-rates = <400000000>;
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
wp-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
bus-width = <4>;
vmmc-supply = <&reg_usdhc2_vmmc>;
status = "okay";
};
&usdhc3 {
assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
assigned-clock-rates = <400000000>;
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc3>;
pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
bus-width = <8>;
non-removable;
status = "okay";
};
&wdog1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wdog>;
fsl,ext-reset-output;
status = "okay";
};
&iomuxc {
pinctrl_ecspi1: ecspi1grp {
fsl,pins =
<MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO 0x82>,
<MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI 0x82>,
<MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK 0x82>,
<MX8MP_IOMUXC_ECSPI1_SS0__ECSPI1_SS0 0x40000>,
<MX8MP_IOMUXC_SD1_DATA6__GPIO2_IO08 0x40000>;
};
pinctrl_ecspi2: ecspi2grp {
fsl,pins =
<MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO 0x82>,
<MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI 0x82>,
<MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK 0x82>,
<MX8MP_IOMUXC_ECSPI2_SS0__ECSPI2_SS0 0x40000>,
<MX8MP_IOMUXC_SD1_DATA7__GPIO2_IO09 0x40000>;
};
pinctrl_eqos: eqosgrp {
fsl,pins =
<MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC 0x3>,
<MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO 0x3>,
<MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0 0x91>,
<MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1 0x91>,
<MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2 0x91>,
<MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3 0x91>,
<MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x91>,
<MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x91>,
<MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0 0x1f>,
<MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1 0x1f>,
<MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2 0x1f>,
<MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3 0x1f>,
<MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x1f>,
<MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x1f>;
};
pinctrl_fec: fecgrp {
fsl,pins =
<MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC 0x3>,
<MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO 0x3>,
<MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0 0x91>,
<MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1 0x91>,
<MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2 0x91>,
<MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3 0x91>,
<MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC 0x91>,
<MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL 0x91>,
<MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0 0x1f>,
<MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1 0x1f>,
<MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2 0x1f>,
<MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3 0x1f>,
<MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL 0x1f>,
<MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC 0x1f>;
};
pinctrl_flexcan1: flexcan1grp {
fsl,pins =
<MX8MP_IOMUXC_SAI5_RXD1__CAN1_TX 0x154>,
<MX8MP_IOMUXC_SAI5_RXD2__CAN1_RX 0x154>;
};
pinctrl_flexcan2: flexcan2grp {
fsl,pins =
<MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX 0x154>,
<MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX 0x154>;
};
pinctrl_flexspi0: flexspi0grp {
fsl,pins =
<MX8MP_IOMUXC_NAND_ALE__FLEXSPI_A_SCLK 0x1c2>,
<MX8MP_IOMUXC_NAND_CE0_B__FLEXSPI_A_SS0_B 0x82>,
<MX8MP_IOMUXC_NAND_DATA00__FLEXSPI_A_DATA00 0x82>,
<MX8MP_IOMUXC_NAND_DATA01__FLEXSPI_A_DATA01 0x82>,
<MX8MP_IOMUXC_NAND_DATA02__FLEXSPI_A_DATA02 0x82>,
<MX8MP_IOMUXC_NAND_DATA03__FLEXSPI_A_DATA03 0x82>,
<MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14 0x19>;
};
pinctrl_i2c1: i2c1grp {
fsl,pins =
<MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL 0x400001c3>,
<MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA 0x400001c3>;
};
pinctrl_i2c2: i2c2grp {
fsl,pins =
<MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL 0x400001c3>,
<MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA 0x400001c3>;
};
pinctrl_i2c3: i2c3grp {
fsl,pins =
<MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL 0x400001c3>,
<MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA 0x400001c3>;
};
pinctrl_i2c4: i2c4grp {
fsl,pins =
<MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL 0x400001c3>,
<MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA 0x400001c3>;
};
pinctrl_i2c5: i2c5grp {
fsl,pins =
<MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL 0x400001c3>,
<MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA 0x400001c3>;
};
pinctrl_i2c6: i2c6grp {
fsl,pins =
<MX8MP_IOMUXC_SAI5_RXFS__I2C6_SCL 0x400001c3>,
<MX8MP_IOMUXC_SAI5_RXC__I2C6_SDA 0x400001c3>;
};
pinctrl_lcd0_backlight: lcd0-backlightgrp {
fsl,pins =
<MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05 0x41>;
};
pinctrl_lcd1_backlight: lcd1-backlightgrp {
fsl,pins =
<MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06 0x41>;
};
pinctrl_leds: ledsgrp {
fsl,pins =
<MX8MP_IOMUXC_GPIO1_IO08__GPIO1_IO08 0x19>;
};
pinctrl_lvds_bridge: lvds-bridgegrp {
fsl,pins =
<MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 0x41>;
};
pinctrl_pwm1: pwm1grp {
fsl,pins =
<MX8MP_IOMUXC_SPDIF_EXT_CLK__PWM1_OUT 0x116>;
};
pinctrl_pwm2: pwm2grp {
fsl,pins =
<MX8MP_IOMUXC_SAI5_RXD0__PWM2_OUT 0x116>;
};
pinctrl_pwm3: pwm3grp {
fsl,pins =
<MX8MP_IOMUXC_GPIO1_IO10__PWM3_OUT 0x116>;
};
pinctrl_pwm4: pwm4grp {
fsl,pins =
<MX8MP_IOMUXC_SAI3_MCLK__PWM4_OUT 0x116>;
};
pinctrl_tca6424: tca6424grp {
fsl,pins =
<MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 0x41>;
};
pinctrl_uart1: uart1grp {
fsl,pins =
<MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX 0x49>,
<MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX 0x49>;
};
pinctrl_uart2: uart2grp {
fsl,pins =
<MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06 0x1c4>,
<MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07 0x1c4>,
<MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x49>,
<MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x49>;
};
pinctrl_uart3: uart3grp {
fsl,pins =
<MX8MP_IOMUXC_SD1_RESET_B__GPIO2_IO10 0x1c4>,
<MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11 0x1c4>,
<MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX 0x49>,
<MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX 0x49>;
};
pinctrl_uart4: uart4grp {
fsl,pins =
<MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX 0x49>,
<MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX 0x49>;
};
pinctrl_usb0_extcon: usb0-extcongrp {
fsl,pins =
<MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x19>;
};
pinctrl_usb0_vbus: usb0-vbusgrp {
fsl,pins =
<MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12 0x19>;
};
pinctrl_usb1_vbus: usb1-vbusgrp {
fsl,pins =
<MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14 0x19>;
};
pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
fsl,pins =
<MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12 0x1c4>,
<MX8MP_IOMUXC_SD2_WP__GPIO2_IO20 0x1c4>;
};
pinctrl_usdhc2: usdhc2grp {
fsl,pins =
<MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x190>,
<MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d0>,
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d0>,
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d0>,
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d0>,
<MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d0>,
<MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc1>;
};
pinctrl_usdhc2_vmmc: usdhc2-vmmcgrp {
fsl,pins =
<MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19 0x41>;
};
pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins =
<MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x194>,
<MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4>,
<MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4>,
<MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc1>;
};
pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins =
<MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x196>,
<MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d6>,
<MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d6>,
<MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d6>,
<MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d6>,
<MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d6>,
<MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc1>;
};
pinctrl_usdhc3: usdhc3grp {
fsl,pins =
<MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x190>,
<MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d0>,
<MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d0>,
<MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d0>,
<MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d0>,
<MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d0>,
<MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d0>,
<MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d0>,
<MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d0>,
<MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d0>,
<MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x190>;
};
pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
fsl,pins =
<MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x194>,
<MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d4>,
<MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d4>,
<MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d4>,
<MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d4>,
<MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d4>,
<MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d4>,
<MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d4>,
<MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d4>,
<MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d4>,
<MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x194>;
};
pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
fsl,pins =
<MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x196>,
<MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d6>,
<MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d6>,
<MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d6>,
<MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d6>,
<MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d6>,
<MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d6>,
<MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d6>,
<MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d6>,
<MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d6>,
<MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x196>;
};
pinctrl_wdog: wdoggrp {
fsl,pins =
<MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B 0xc6>;
};
};
...@@ -139,6 +139,13 @@ reg_vcc_3v3: regulator-3v3 { ...@@ -139,6 +139,13 @@ reg_vcc_3v3: regulator-3v3 {
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3300000>;
}; };
reg_vcc_5v0: regulator-5v0 {
compatible = "regulator-fixed";
regulator-name = "VCC_5V0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
reserved-memory { reserved-memory {
#address-cells = <2>; #address-cells = <2>;
#size-cells = <2>; #size-cells = <2>;
...@@ -445,6 +452,38 @@ &uart4 { ...@@ -445,6 +452,38 @@ &uart4 {
status = "okay"; status = "okay";
}; };
&usb3_0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb0>;
fsl,over-current-active-low;
status = "okay";
};
&usb3_phy0 {
vbus-supply = <&reg_vcc_5v0>;
status = "okay";
};
&usb_dwc3_0 {
/* dual role is implemented, but not a full featured OTG */
hnp-disable;
srp-disable;
adp-disable;
dr_mode = "otg";
usb-role-switch;
role-switch-default-mode = "peripheral";
status = "okay";
connector {
compatible = "gpio-usb-b-connector", "usb-b-connector";
type = "micro";
label = "X29";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usbcon0>;
id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
};
};
&usdhc2 { &usdhc2 {
pinctrl-names = "default", "state_100mhz", "state_200mhz"; pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
...@@ -666,6 +705,15 @@ pinctrl_uart4: uart4grp { ...@@ -666,6 +705,15 @@ pinctrl_uart4: uart4grp {
<MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX 0x140>; <MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX 0x140>;
}; };
pinctrl_usb0: usb0grp {
fsl,pins = <MX8MP_IOMUXC_GPIO1_IO13__USB1_OTG_OC 0x1c0>,
<MX8MP_IOMUXC_GPIO1_IO12__USB1_OTG_PWR 0x1c0>;
};
pinctrl_usbcon0: usb0congrp {
fsl,pins = <MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10 0x1c0>;
};
pinctrl_usdhc2: usdhc2grp { pinctrl_usdhc2: usdhc2grp {
fsl,pins = <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x192>, fsl,pins = <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x192>,
<MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d2>, <MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d2>,
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/linux-event-codes.h> #include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/leds/common.h> #include <dt-bindings/leds/common.h>
#include <dt-bindings/phy/phy-imx8-pcie.h>
#include "imx8mp.dtsi" #include "imx8mp.dtsi"
...@@ -100,6 +101,12 @@ led-1 { ...@@ -100,6 +101,12 @@ led-1 {
}; };
}; };
pcie0_refclk: pcie0-refclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <100000000>;
};
pps { pps {
compatible = "pps-gpio"; compatible = "pps-gpio";
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -135,13 +142,29 @@ reg_wifi_en: regulator-wifi-en { ...@@ -135,13 +142,29 @@ reg_wifi_en: regulator-wifi-en {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "wl"; regulator-name = "wl";
gpio = <&gpio3 9 GPIO_ACTIVE_HIGH>; gpio = <&gpio3 9 GPIO_ACTIVE_HIGH>;
startup-delay-us = <100>; startup-delay-us = <70000>;
enable-active-high; enable-active-high;
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <3300000>;
}; };
}; };
&A53_0 {
cpu-supply = <&reg_arm>;
};
&A53_1 {
cpu-supply = <&reg_arm>;
};
&A53_2 {
cpu-supply = <&reg_arm>;
};
&A53_3 {
cpu-supply = <&reg_arm>;
};
/* off-board header */ /* off-board header */
&ecspi2 { &ecspi2 {
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -200,8 +223,8 @@ &gpio1 { ...@@ -200,8 +223,8 @@ &gpio1 {
&gpio2 { &gpio2 {
gpio-line-names = gpio-line-names =
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "pcie3_wdis#", "",
"pcie3_wdis#", "", "", "pcie1_wdis@", "pcie2_wdis#", "", "", "", "", "", "pcie2_wdis#", "", "", "", "", "",
"", "", "", "", "", "", "", ""; "", "", "", "", "", "", "", "";
}; };
...@@ -362,7 +385,7 @@ BUCK1 { ...@@ -362,7 +385,7 @@ BUCK1 {
regulator-ramp-delay = <3125>; regulator-ramp-delay = <3125>;
}; };
BUCK2 { reg_arm: BUCK2 {
regulator-name = "BUCK2"; regulator-name = "BUCK2";
regulator-min-microvolt = <720000>; regulator-min-microvolt = <720000>;
regulator-max-microvolt = <1025000>; regulator-max-microvolt = <1025000>;
...@@ -542,6 +565,28 @@ &i2c4 { ...@@ -542,6 +565,28 @@ &i2c4 {
status = "okay"; status = "okay";
}; };
&pcie_phy {
fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
fsl,clkreq-unsupported;
clocks = <&pcie0_refclk>;
clock-names = "ref";
status = "okay";
};
&pcie {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pcie0>;
reset-gpio = <&gpio2 17 GPIO_ACTIVE_LOW>;
clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
<&clk IMX8MP_CLK_PCIE_ROOT>,
<&clk IMX8MP_CLK_HSIO_AXI>;
clock-names = "pcie", "pcie_aux", "pcie_bus";
assigned-clocks = <&clk IMX8MP_CLK_PCIE_AUX>;
assigned-clock-rates = <10000000>;
assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_50M>;
status = "okay";
};
/* GPS / off-board header */ /* GPS / off-board header */
&uart1 { &uart1 {
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -556,6 +601,21 @@ &uart2 { ...@@ -556,6 +601,21 @@ &uart2 {
status = "okay"; status = "okay";
}; };
/* bluetooth HCI */
&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_gpio>;
cts-gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
rts-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
uart-has-rtscts;
status = "okay";
bluetooth {
compatible = "brcm,bcm4330-bt";
shutdown-gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
};
};
&uart4 { &uart4 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart4>; pinctrl-0 = <&pinctrl_uart4>;
...@@ -563,20 +623,35 @@ &uart4 { ...@@ -563,20 +623,35 @@ &uart4 {
}; };
/* USB1 - Type C front panel */ /* USB1 - Type C front panel */
&usb3_phy0 { &usb3_0 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb1>; pinctrl-0 = <&pinctrl_usb1>;
fsl,over-current-active-low;
status = "okay"; status = "okay";
}; };
&usb3_0 { &usb3_phy0 {
fsl,over-current-active-low;
status = "okay"; status = "okay";
}; };
&usb_dwc3_0 { &usb_dwc3_0 {
dr_mode = "host"; /* dual role is implemented but not a full featured OTG */
adp-disable;
hnp-disable;
srp-disable;
dr_mode = "otg";
usb-role-switch;
role-switch-default-mode = "peripheral";
status = "okay"; status = "okay";
connector {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usbcon1>;
compatible = "gpio-usb-b-connector", "usb-b-connector";
type = "micro";
label = "Type-C";
id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
};
}; };
/* USB2 - USB3.0 Hub */ /* USB2 - USB3.0 Hub */
...@@ -596,6 +671,25 @@ &usb_dwc3_1 { ...@@ -596,6 +671,25 @@ &usb_dwc3_1 {
status = "okay"; status = "okay";
}; };
/* SDIO WiFi */
&usdhc1 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc1>;
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
bus-width = <4>;
non-removable;
vmmc-supply = <&reg_wifi_en>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
wifi@0 {
compatible = "cypress,cyw4373-fmac";
reg = <0>;
};
};
/* eMMC */ /* eMMC */
&usdhc3 { &usdhc3 {
assigned-clocks = <&clk IMX8MP_CLK_USDHC3>; assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
...@@ -625,7 +719,6 @@ pinctrl_hog: hoggrp { ...@@ -625,7 +719,6 @@ pinctrl_hog: hoggrp {
MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 0x40000040 /* DIO0 */ MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 0x40000040 /* DIO0 */
MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11 0x40000040 /* DIO1 */ MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11 0x40000040 /* DIO1 */
MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14 0x40000040 /* M2SKT_OFF# */ MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14 0x40000040 /* M2SKT_OFF# */
MX8MP_IOMUXC_SD2_DATA2__GPIO2_IO17 0x40000150 /* PCIE1_WDIS# */
MX8MP_IOMUXC_SD2_DATA3__GPIO2_IO18 0x40000150 /* PCIE2_WDIS# */ MX8MP_IOMUXC_SD2_DATA3__GPIO2_IO18 0x40000150 /* PCIE2_WDIS# */
MX8MP_IOMUXC_SD2_CMD__GPIO2_IO14 0x40000150 /* PCIE3_WDIS# */ MX8MP_IOMUXC_SD2_CMD__GPIO2_IO14 0x40000150 /* PCIE3_WDIS# */
MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06 0x40000040 /* M2SKT_RST# */ MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06 0x40000040 /* M2SKT_RST# */
...@@ -738,6 +831,12 @@ MX8MP_IOMUXC_SD2_DATA1__GPIO2_IO16 0x10 ...@@ -738,6 +831,12 @@ MX8MP_IOMUXC_SD2_DATA1__GPIO2_IO16 0x10
>; >;
}; };
pinctrl_pcie0: pciegrp {
fsl,pins = <
MX8MP_IOMUXC_SD2_DATA2__GPIO2_IO17 0x110
>;
};
pinctrl_pmic: pmicgrp { pinctrl_pmic: pmicgrp {
fsl,pins = < fsl,pins = <
MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07 0x140 MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07 0x140
...@@ -825,7 +924,12 @@ MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX 0x140 ...@@ -825,7 +924,12 @@ MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX 0x140
pinctrl_usb1: usb1grp { pinctrl_usb1: usb1grp {
fsl,pins = < fsl,pins = <
MX8MP_IOMUXC_GPIO1_IO13__USB1_OTG_OC 0x140 MX8MP_IOMUXC_GPIO1_IO13__USB1_OTG_OC 0x140
MX8MP_IOMUXC_GPIO1_IO10__USB1_OTG_ID 0x140 >;
};
pinctrl_usbcon1: usb1congrp {
fsl,pins = <
MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10 0x140
>; >;
}; };
...@@ -840,6 +944,28 @@ MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3 0x1d0 ...@@ -840,6 +944,28 @@ MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3 0x1d0
>; >;
}; };
pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
fsl,pins = <
MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK 0x194
MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD 0x1d4
MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0 0x1d4
MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1 0x1d4
MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2 0x1d4
MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3 0x1d4
>;
};
pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
fsl,pins = <
MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK 0x196
MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD 0x1d6
MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0 0x1d6
MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1 0x1d6
MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2 0x1d6
MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3 0x1d6
>;
};
pinctrl_usdhc3: usdhc3grp { pinctrl_usdhc3: usdhc3grp {
fsl,pins = < fsl,pins = <
MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x190 MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x190
......
...@@ -146,6 +146,22 @@ reserved-memory { ...@@ -146,6 +146,22 @@ reserved-memory {
}; };
}; };
&A53_0 {
cpu-supply = <&reg_vdd_arm>;
};
&A53_1 {
cpu-supply = <&reg_vdd_arm>;
};
&A53_2 {
cpu-supply = <&reg_vdd_arm>;
};
&A53_3 {
cpu-supply = <&reg_vdd_arm>;
};
&cpu_alert0 { &cpu_alert0 {
temperature = <95000>; temperature = <95000>;
}; };
...@@ -286,7 +302,6 @@ &flexcan1 { ...@@ -286,7 +302,6 @@ &flexcan1 {
status = "disabled"; status = "disabled";
}; };
/* Verdin CAN_2 */ /* Verdin CAN_2 */
&flexcan2 { &flexcan2 {
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -454,7 +469,7 @@ BUCK1 { ...@@ -454,7 +469,7 @@ BUCK1 {
regulator-ramp-delay = <3125>; regulator-ramp-delay = <3125>;
}; };
BUCK2 { reg_vdd_arm: BUCK2 {
nxp,dvs-run-voltage = <950000>; nxp,dvs-run-voltage = <950000>;
nxp,dvs-standby-voltage = <850000>; nxp,dvs-standby-voltage = <850000>;
regulator-always-on; regulator-always-on;
......
...@@ -5,8 +5,10 @@ ...@@ -5,8 +5,10 @@
#include <dt-bindings/clock/imx8mp-clock.h> #include <dt-bindings/clock/imx8mp-clock.h>
#include <dt-bindings/power/imx8mp-power.h> #include <dt-bindings/power/imx8mp-power.h>
#include <dt-bindings/reset/imx8mp-reset.h>
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include <dt-bindings/interconnect/fsl,imx8mp.h>
#include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/thermal/thermal.h> #include <dt-bindings/thermal/thermal.h>
...@@ -469,6 +471,11 @@ snvs_pwrkey: snvs-powerkey { ...@@ -469,6 +471,11 @@ snvs_pwrkey: snvs-powerkey {
wakeup-source; wakeup-source;
status = "disabled"; status = "disabled";
}; };
snvs_lpgpr: snvs-lpgpr {
compatible = "fsl,imx8mp-snvs-lpgpr",
"fsl,imx7d-snvs-lpgpr";
};
}; };
clk: clock-controller@30380000 { clk: clock-controller@30380000 {
...@@ -597,6 +604,33 @@ pgc_ispdwp: power-domain@18 { ...@@ -597,6 +604,33 @@ pgc_ispdwp: power-domain@18 {
reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX_ISPDWP>; reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX_ISPDWP>;
clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>; clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>;
}; };
pgc_vpumix: power-domain@19 {
#power-domain-cells = <0>;
reg = <IMX8MP_POWER_DOMAIN_VPUMIX>;
clocks =<&clk IMX8MP_CLK_VPU_ROOT>;
};
pgc_vpu_g1: power-domain@20 {
#power-domain-cells = <0>;
power-domains = <&pgc_vpumix>;
reg = <IMX8MP_POWER_DOMAIN_VPU_G1>;
clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>;
};
pgc_vpu_g2: power-domain@21 {
#power-domain-cells = <0>;
power-domains = <&pgc_vpumix>;
reg = <IMX8MP_POWER_DOMAIN_VPU_G2>;
clocks = <&clk IMX8MP_CLK_VPU_G2_ROOT>;
};
pgc_vpu_vc8000e: power-domain@22 {
#power-domain-cells = <0>;
power-domains = <&pgc_vpumix>;
reg = <IMX8MP_POWER_DOMAIN_VPU_VC8000E>;
clocks = <&clk IMX8MP_CLK_VPU_VC8KE_ROOT>;
};
}; };
}; };
}; };
...@@ -1064,6 +1098,18 @@ media_blk_ctrl: blk-ctrl@32ec0000 { ...@@ -1064,6 +1098,18 @@ media_blk_ctrl: blk-ctrl@32ec0000 {
"lcdif1", "isi", "mipi-csi2", "lcdif1", "isi", "mipi-csi2",
"lcdif2", "isp", "dwe", "lcdif2", "isp", "dwe",
"mipi-dsi2"; "mipi-dsi2";
interconnects =
<&noc IMX8MP_ICM_LCDIF_RD &noc IMX8MP_ICN_MEDIA>,
<&noc IMX8MP_ICM_LCDIF_WR &noc IMX8MP_ICN_MEDIA>,
<&noc IMX8MP_ICM_ISI0 &noc IMX8MP_ICN_MEDIA>,
<&noc IMX8MP_ICM_ISI1 &noc IMX8MP_ICN_MEDIA>,
<&noc IMX8MP_ICM_ISI2 &noc IMX8MP_ICN_MEDIA>,
<&noc IMX8MP_ICM_ISP0 &noc IMX8MP_ICN_MEDIA>,
<&noc IMX8MP_ICM_ISP1 &noc IMX8MP_ICN_MEDIA>,
<&noc IMX8MP_ICM_DWE &noc IMX8MP_ICN_MEDIA>;
interconnect-names = "lcdif-rd", "lcdif-wr", "isi0",
"isi1", "isi2", "isp0", "isp1",
"dwe";
clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>, clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
<&clk IMX8MP_CLK_MEDIA_AXI_ROOT>, <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
<&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>, <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>,
...@@ -1084,6 +1130,17 @@ media_blk_ctrl: blk-ctrl@32ec0000 { ...@@ -1084,6 +1130,17 @@ media_blk_ctrl: blk-ctrl@32ec0000 {
#power-domain-cells = <1>; #power-domain-cells = <1>;
}; };
pcie_phy: pcie-phy@32f00000 {
compatible = "fsl,imx8mp-pcie-phy";
reg = <0x32f00000 0x10000>;
resets = <&src IMX8MP_RESET_PCIEPHY>,
<&src IMX8MP_RESET_PCIEPHY_PERST>;
reset-names = "pciephy", "perst";
power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_PCIE_PHY>;
#phy-cells = <0>;
status = "disabled";
};
hsio_blk_ctrl: blk-ctrl@32f10000 { hsio_blk_ctrl: blk-ctrl@32f10000 {
compatible = "fsl,imx8mp-hsio-blk-ctrl", "syscon"; compatible = "fsl,imx8mp-hsio-blk-ctrl", "syscon";
reg = <0x32f10000 0x24>; reg = <0x32f10000 0x24>;
...@@ -1095,10 +1152,46 @@ hsio_blk_ctrl: blk-ctrl@32f10000 { ...@@ -1095,10 +1152,46 @@ hsio_blk_ctrl: blk-ctrl@32f10000 {
<&pgc_hsiomix>, <&pgc_pcie_phy>; <&pgc_hsiomix>, <&pgc_pcie_phy>;
power-domain-names = "bus", "usb", "usb-phy1", power-domain-names = "bus", "usb", "usb-phy1",
"usb-phy2", "pcie", "pcie-phy"; "usb-phy2", "pcie", "pcie-phy";
interconnects = <&noc IMX8MP_ICM_NOC_PCIE &noc IMX8MP_ICN_HSIO>,
<&noc IMX8MP_ICM_USB1 &noc IMX8MP_ICN_HSIO>,
<&noc IMX8MP_ICM_USB2 &noc IMX8MP_ICN_HSIO>,
<&noc IMX8MP_ICM_PCIE &noc IMX8MP_ICN_HSIO>;
interconnect-names = "noc-pcie", "usb1", "usb2", "pcie";
#power-domain-cells = <1>; #power-domain-cells = <1>;
}; };
}; };
pcie: pcie@33800000 {
compatible = "fsl,imx8mp-pcie";
reg = <0x33800000 0x400000>, <0x1ff00000 0x80000>;
reg-names = "dbi", "config";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
bus-range = <0x00 0xff>;
ranges = <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000>, /* downstream I/O 64KB */
<0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */
num-lanes = <1>;
num-viewport = <4>;
interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "msi";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0x7>;
interrupt-map = <0 0 0 1 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 2 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 3 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 4 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
fsl,max-link-speed = <3>;
linux,pci-domain = <0>;
power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_PCIE>;
resets = <&src IMX8MP_RESET_PCIE_CTRL_APPS_EN>,
<&src IMX8MP_RESET_PCIE_CTRL_APPS_TURNOFF>;
reset-names = "apps", "turnoff";
phys = <&pcie_phy>;
phy-names = "pcie-phy";
status = "disabled";
};
gpu3d: gpu@38000000 { gpu3d: gpu@38000000 {
compatible = "vivante,gc"; compatible = "vivante,gc";
reg = <0x38000000 0x8000>; reg = <0x38000000 0x8000>;
...@@ -1130,6 +1223,23 @@ gpu2d: gpu@38008000 { ...@@ -1130,6 +1223,23 @@ gpu2d: gpu@38008000 {
power-domains = <&pgc_gpu2d>; power-domains = <&pgc_gpu2d>;
}; };
vpumix_blk_ctrl: blk-ctrl@38330000 {
compatible = "fsl,imx8mp-vpu-blk-ctrl", "syscon";
reg = <0x38330000 0x100>;
#power-domain-cells = <1>;
power-domains = <&pgc_vpumix>, <&pgc_vpu_g1>,
<&pgc_vpu_g2>, <&pgc_vpu_vc8000e>;
power-domain-names = "bus", "g1", "g2", "vc8000e";
clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>,
<&clk IMX8MP_CLK_VPU_G2_ROOT>,
<&clk IMX8MP_CLK_VPU_VC8KE_ROOT>;
clock-names = "g1", "g2", "vc8000e";
interconnects = <&noc IMX8MP_ICM_VPU_G1 &noc IMX8MP_ICN_VIDEO>,
<&noc IMX8MP_ICM_VPU_G2 &noc IMX8MP_ICN_VIDEO>,
<&noc IMX8MP_ICM_VPU_H1 &noc IMX8MP_ICN_VIDEO>;
interconnect-names = "g1", "g2", "vc8000e";
};
gic: interrupt-controller@38800000 { gic: interrupt-controller@38800000 {
compatible = "arm,gic-v3"; compatible = "arm,gic-v3";
reg = <0x38800000 0x10000>, reg = <0x38800000 0x10000>,
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "dt-bindings/input/input.h" #include "dt-bindings/input/input.h"
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>
#include "dt-bindings/pwm/pwm.h" #include "dt-bindings/pwm/pwm.h"
#include "dt-bindings/usb/pd.h" #include "dt-bindings/usb/pd.h"
#include "imx8mq.dtsi" #include "imx8mq.dtsi"
...@@ -54,6 +55,31 @@ key-vol-up { ...@@ -54,6 +55,31 @@ key-vol-up {
}; };
}; };
led-controller {
compatible = "pwm-leds";
led-0 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_BLUE>;
max-brightness = <248>;
pwms = <&pwm2 0 50000 0>;
};
led-1 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
max-brightness = <248>;
pwms = <&pwm4 0 50000 0>;
};
led-2 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_RED>;
max-brightness = <248>;
pwms = <&pwm3 0 50000 0>;
};
};
reg_aud_1v8: regulator-audio-1v8 { reg_aud_1v8: regulator-audio-1v8 {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -747,6 +773,10 @@ typec_pd: usb-pd@3f { ...@@ -747,6 +773,10 @@ typec_pd: usb-pd@3f {
interrupt-names = "irq"; interrupt-names = "irq";
connector { connector {
compatible = "usb-c-connector";
label = "USB-C";
data-role = "dual";
ports { ports {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -1070,6 +1100,12 @@ &i2c4 { ...@@ -1070,6 +1100,12 @@ &i2c4 {
pinctrl-0 = <&pinctrl_i2c4>; pinctrl-0 = <&pinctrl_i2c4>;
status = "okay"; status = "okay";
vcm@c {
compatible = "dongwoon,dw9714";
reg = <0x0c>;
vcc-supply = <&reg_csi_1v8>;
};
bat: fuel-gauge@36 { bat: fuel-gauge@36 {
compatible = "maxim,max17055"; compatible = "maxim,max17055";
reg = <0x36>; reg = <0x36>;
...@@ -1077,6 +1113,7 @@ bat: fuel-gauge@36 { ...@@ -1077,6 +1113,7 @@ bat: fuel-gauge@36 {
interrupts = <20 IRQ_TYPE_LEVEL_LOW>; interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gauge>; pinctrl-0 = <&pinctrl_gauge>;
power-supplies = <&bq25895>;
maxim,over-heat-temp = <700>; maxim,over-heat-temp = <700>;
maxim,over-volt = <4500>; maxim,over-volt = <4500>;
maxim,rsns-microohm = <5000>; maxim,rsns-microohm = <5000>;
...@@ -1106,8 +1143,6 @@ &lcdif { ...@@ -1106,8 +1143,6 @@ &lcdif {
}; };
&mipi_csi1 { &mipi_csi1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay"; status = "okay";
ports { ports {
...@@ -1265,6 +1300,7 @@ &usb_dwc3_0 { ...@@ -1265,6 +1300,7 @@ &usb_dwc3_0 {
#size-cells = <0>; #size-cells = <0>;
dr_mode = "otg"; dr_mode = "otg";
snps,dis_u3_susphy_quirk; snps,dis_u3_susphy_quirk;
usb-role-switch;
status = "okay"; status = "okay";
port@0 { port@0 {
......
...@@ -210,7 +210,6 @@ &pwm2 { ...@@ -210,7 +210,6 @@ &pwm2 {
status = "okay"; status = "okay";
}; };
&reg_1p8v { &reg_1p8v {
vin-supply = <&reg_main_5v>; vin-supply = <&reg_main_5v>;
}; };
......
...@@ -534,7 +534,7 @@ wdog3: watchdog@302a0000 { ...@@ -534,7 +534,7 @@ wdog3: watchdog@302a0000 {
status = "disabled"; status = "disabled";
}; };
sdma2: sdma@302c0000 { sdma2: dma-controller@302c0000 {
compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma"; compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma";
reg = <0x302c0000 0x10000>; reg = <0x302c0000 0x10000>;
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
...@@ -1302,7 +1302,7 @@ qspi0: spi@30bb0000 { ...@@ -1302,7 +1302,7 @@ qspi0: spi@30bb0000 {
status = "disabled"; status = "disabled";
}; };
sdma1: sdma@30bd0000 { sdma1: dma-controller@30bd0000 {
compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma"; compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma";
reg = <0x30bd0000 0x10000>; reg = <0x30bd0000 0x10000>;
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
......
...@@ -19,6 +19,21 @@ memory@80000000 { ...@@ -19,6 +19,21 @@ memory@80000000 {
device_type = "memory"; device_type = "memory";
reg = <0x0 0x80000000 0 0x80000000>; reg = <0x0 0x80000000 0 0x80000000>;
}; };
clock_ext_rmii: clock-ext-rmii {
compatible = "fixed-clock";
clock-frequency = <50000000>;
clock-output-names = "ext_rmii_clk";
#clock-cells = <0>;
};
clock_ext_ts: clock-ext-ts {
compatible = "fixed-clock";
/* External ts clock is 50MHZ from PHY on EVK board. */
clock-frequency = <50000000>;
clock-output-names = "ext_ts_clk";
#clock-cells = <0>;
};
}; };
&lpuart5 { &lpuart5 {
...@@ -38,7 +53,49 @@ &usdhc0 { ...@@ -38,7 +53,49 @@ &usdhc0 {
status = "okay"; status = "okay";
}; };
&fec {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&pinctrl_enet>;
pinctrl-1 = <&pinctrl_enet>;
clocks = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>,
<&pcc4 IMX8ULP_CLK_ENET>,
<&cgc1 IMX8ULP_CLK_ENET_TS_SEL>,
<&clock_ext_rmii>;
clock-names = "ipg", "ahb", "ptp", "enet_clk_ref";
assigned-clocks = <&cgc1 IMX8ULP_CLK_ENET_TS_SEL>;
assigned-clock-parents = <&clock_ext_ts>;
phy-mode = "rmii";
phy-handle = <&ethphy>;
status = "okay";
mdio {
#address-cells = <1>;
#size-cells = <0>;
ethphy: ethernet-phy@1 {
reg = <1>;
micrel,led-mode = <1>;
};
};
};
&iomuxc1 { &iomuxc1 {
pinctrl_enet: enetgrp {
fsl,pins = <
MX8ULP_PAD_PTE15__ENET0_MDC 0x43
MX8ULP_PAD_PTE14__ENET0_MDIO 0x43
MX8ULP_PAD_PTE17__ENET0_RXER 0x43
MX8ULP_PAD_PTE18__ENET0_CRS_DV 0x43
MX8ULP_PAD_PTF1__ENET0_RXD0 0x43
MX8ULP_PAD_PTE20__ENET0_RXD1 0x43
MX8ULP_PAD_PTE16__ENET0_TXEN 0x43
MX8ULP_PAD_PTE23__ENET0_TXD0 0x43
MX8ULP_PAD_PTE22__ENET0_TXD1 0x43
MX8ULP_PAD_PTE19__ENET0_REFCLK 0x43
MX8ULP_PAD_PTF10__ENET0_1588_CLKIN 0x43
>;
};
pinctrl_lpuart5: lpuart5grp { pinctrl_lpuart5: lpuart5grp {
fsl,pins = < fsl,pins = <
MX8ULP_PAD_PTF14__LPUART5_TX 0x3 MX8ULP_PAD_PTF14__LPUART5_TX 0x3
......
File mode changed from 100755 to 100644
...@@ -16,6 +16,7 @@ / { ...@@ -16,6 +16,7 @@ / {
#size-cells = <2>; #size-cells = <2>;
aliases { aliases {
ethernet0 = &fec;
gpio0 = &gpiod; gpio0 = &gpiod;
gpio1 = &gpioe; gpio1 = &gpioe;
gpio2 = &gpiof; gpio2 = &gpiof;
...@@ -62,6 +63,14 @@ gic: interrupt-controller@2d400000 { ...@@ -62,6 +63,14 @@ gic: interrupt-controller@2d400000 {
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
}; };
pmu {
compatible = "arm,cortex-a35-pmu";
interrupt-parent = <&gic>;
interrupts = <GIC_PPI 7
(GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
interrupt-affinity = <&A35_0>, <&A35_1>;
};
psci { psci {
compatible = "arm,psci-1.0"; compatible = "arm,psci-1.0";
method = "smc"; method = "smc";
...@@ -111,7 +120,7 @@ sram@2201f000 { ...@@ -111,7 +120,7 @@ sram@2201f000 {
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0x0 0x2201f000 0x1000>; ranges = <0 0x0 0x2201f000 0x1000>;
scmi_buf: scmi-buf@0 { scmi_buf: scmi-sram-section@0 {
compatible = "arm,scmi-shmem"; compatible = "arm,scmi-shmem";
reg = <0x0 0x400>; reg = <0x0 0x400>;
}; };
...@@ -143,6 +152,13 @@ soc: soc@0 { ...@@ -143,6 +152,13 @@ soc: soc@0 {
#size-cells = <1>; #size-cells = <1>;
ranges = <0x0 0x0 0x0 0x40000000>; ranges = <0x0 0x0 0x0 0x40000000>;
s4muap: mailbox@27020000 {
compatible = "fsl,imx8ulp-mu-s4";
reg = <0x27020000 0x10000>;
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
#mbox-cells = <2>;
};
per_bridge3: bus@29000000 { per_bridge3: bus@29000000 {
compatible = "simple-bus"; compatible = "simple-bus";
reg = <0x29000000 0x800000>; reg = <0x29000000 0x800000>;
...@@ -150,6 +166,23 @@ per_bridge3: bus@29000000 { ...@@ -150,6 +166,23 @@ per_bridge3: bus@29000000 {
#size-cells = <1>; #size-cells = <1>;
ranges; ranges;
mu: mailbox@29220000 {
compatible = "fsl,imx8ulp-mu";
reg = <0x29220000 0x10000>;
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
#mbox-cells = <2>;
status = "disabled";
};
mu3: mailbox@29230000 {
compatible = "fsl,imx8ulp-mu";
reg = <0x29230000 0x10000>;
interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&pcc3 IMX8ULP_CLK_MU3_A>;
#mbox-cells = <2>;
status = "disabled";
};
wdog3: watchdog@292a0000 { wdog3: watchdog@292a0000 {
compatible = "fsl,imx8ulp-wdt", "fsl,imx7ulp-wdt"; compatible = "fsl,imx8ulp-wdt", "fsl,imx7ulp-wdt";
reg = <0x292a0000 0x10000>; reg = <0x292a0000 0x10000>;
...@@ -163,8 +196,6 @@ wdog3: watchdog@292a0000 { ...@@ -163,8 +196,6 @@ wdog3: watchdog@292a0000 {
cgc1: clock-controller@292c0000 { cgc1: clock-controller@292c0000 {
compatible = "fsl,imx8ulp-cgc1"; compatible = "fsl,imx8ulp-cgc1";
reg = <0x292c0000 0x10000>; reg = <0x292c0000 0x10000>;
clocks = <&rosc>, <&sosc>, <&frosc>, <&lposc>;
clock-names = "rosc", "sosc", "frosc", "lposc";
#clock-cells = <1>; #clock-cells = <1>;
}; };
...@@ -192,7 +223,7 @@ lpi2c4: i2c@29370000 { ...@@ -192,7 +223,7 @@ lpi2c4: i2c@29370000 {
<&pcc3 IMX8ULP_CLK_LPI2C4>; <&pcc3 IMX8ULP_CLK_LPI2C4>;
clock-names = "per", "ipg"; clock-names = "per", "ipg";
assigned-clocks = <&pcc3 IMX8ULP_CLK_LPI2C4>; assigned-clocks = <&pcc3 IMX8ULP_CLK_LPI2C4>;
assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>; assigned-clock-parents = <&cgc1 IMX8ULP_CLK_FROSC_DIV2>;
assigned-clock-rates = <48000000>; assigned-clock-rates = <48000000>;
status = "disabled"; status = "disabled";
}; };
...@@ -205,7 +236,7 @@ lpi2c5: i2c@29380000 { ...@@ -205,7 +236,7 @@ lpi2c5: i2c@29380000 {
<&pcc3 IMX8ULP_CLK_LPI2C5>; <&pcc3 IMX8ULP_CLK_LPI2C5>;
clock-names = "per", "ipg"; clock-names = "per", "ipg";
assigned-clocks = <&pcc3 IMX8ULP_CLK_LPI2C5>; assigned-clocks = <&pcc3 IMX8ULP_CLK_LPI2C5>;
assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>; assigned-clock-parents = <&cgc1 IMX8ULP_CLK_FROSC_DIV2>;
assigned-clock-rates = <48000000>; assigned-clock-rates = <48000000>;
status = "disabled"; status = "disabled";
}; };
...@@ -238,8 +269,8 @@ lpspi4: spi@293b0000 { ...@@ -238,8 +269,8 @@ lpspi4: spi@293b0000 {
<&pcc3 IMX8ULP_CLK_LPSPI4>; <&pcc3 IMX8ULP_CLK_LPSPI4>;
clock-names = "per", "ipg"; clock-names = "per", "ipg";
assigned-clocks = <&pcc3 IMX8ULP_CLK_LPSPI4>; assigned-clocks = <&pcc3 IMX8ULP_CLK_LPSPI4>;
assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>; assigned-clock-parents = <&cgc1 IMX8ULP_CLK_FROSC_DIV2>;
assigned-clock-rates = <16000000>; assigned-clock-rates = <48000000>;
status = "disabled"; status = "disabled";
}; };
...@@ -253,8 +284,8 @@ lpspi5: spi@293c0000 { ...@@ -253,8 +284,8 @@ lpspi5: spi@293c0000 {
<&pcc3 IMX8ULP_CLK_LPSPI5>; <&pcc3 IMX8ULP_CLK_LPSPI5>;
clock-names = "per", "ipg"; clock-names = "per", "ipg";
assigned-clocks = <&pcc3 IMX8ULP_CLK_LPSPI5>; assigned-clocks = <&pcc3 IMX8ULP_CLK_LPSPI5>;
assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>; assigned-clock-parents = <&cgc1 IMX8ULP_CLK_FROSC_DIV2>;
assigned-clock-rates = <16000000>; assigned-clock-rates = <48000000>;
status = "disabled"; status = "disabled";
}; };
}; };
...@@ -280,7 +311,7 @@ lpi2c6: i2c@29840000 { ...@@ -280,7 +311,7 @@ lpi2c6: i2c@29840000 {
<&pcc4 IMX8ULP_CLK_LPI2C6>; <&pcc4 IMX8ULP_CLK_LPI2C6>;
clock-names = "per", "ipg"; clock-names = "per", "ipg";
assigned-clocks = <&pcc4 IMX8ULP_CLK_LPI2C6>; assigned-clocks = <&pcc4 IMX8ULP_CLK_LPI2C6>;
assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>; assigned-clock-parents = <&cgc1 IMX8ULP_CLK_FROSC_DIV2>;
assigned-clock-rates = <48000000>; assigned-clock-rates = <48000000>;
status = "disabled"; status = "disabled";
}; };
...@@ -293,7 +324,7 @@ lpi2c7: i2c@29850000 { ...@@ -293,7 +324,7 @@ lpi2c7: i2c@29850000 {
<&pcc4 IMX8ULP_CLK_LPI2C7>; <&pcc4 IMX8ULP_CLK_LPI2C7>;
clock-names = "per", "ipg"; clock-names = "per", "ipg";
assigned-clocks = <&pcc4 IMX8ULP_CLK_LPI2C7>; assigned-clocks = <&pcc4 IMX8ULP_CLK_LPI2C7>;
assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>; assigned-clock-parents = <&cgc1 IMX8ULP_CLK_FROSC_DIV2>;
assigned-clock-rates = <48000000>; assigned-clock-rates = <48000000>;
status = "disabled"; status = "disabled";
}; };
...@@ -365,6 +396,16 @@ usdhc2: mmc@298f0000 { ...@@ -365,6 +396,16 @@ usdhc2: mmc@298f0000 {
bus-width = <4>; bus-width = <4>;
status = "disabled"; status = "disabled";
}; };
fec: ethernet@29950000 {
compatible = "fsl,imx8ulp-fec", "fsl,imx6ul-fec", "fsl,imx6q-fec";
reg = <0x29950000 0x10000>;
interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "int0";
fsl,num-tx-queues = <1>;
fsl,num-rx-queues = <1>;
status = "disabled";
};
}; };
gpioe: gpio@2d000080 { gpioe: gpio@2d000080 {
...@@ -405,8 +446,6 @@ per_bridge5: bus@2d800000 { ...@@ -405,8 +446,6 @@ per_bridge5: bus@2d800000 {
cgc2: clock-controller@2da60000 { cgc2: clock-controller@2da60000 {
compatible = "fsl,imx8ulp-cgc2"; compatible = "fsl,imx8ulp-cgc2";
reg = <0x2da60000 0x10000>; reg = <0x2da60000 0x10000>;
clocks = <&sosc>, <&frosc>;
clock-names = "sosc", "frosc";
#clock-cells = <1>; #clock-cells = <1>;
}; };
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/power/fsl,imx93-power.h>
#include "imx93-pinfunc.h" #include "imx93-pinfunc.h"
...@@ -16,6 +17,14 @@ / { ...@@ -16,6 +17,14 @@ / {
#size-cells = <2>; #size-cells = <2>;
aliases { aliases {
i2c0 = &lpi2c1;
i2c1 = &lpi2c2;
i2c2 = &lpi2c3;
i2c3 = &lpi2c4;
i2c4 = &lpi2c5;
i2c5 = &lpi2c6;
i2c6 = &lpi2c7;
i2c7 = &lpi2c8;
mmc0 = &usdhc1; mmc0 = &usdhc1;
mmc1 = &usdhc2; mmc1 = &usdhc2;
mmc2 = &usdhc3; mmc2 = &usdhc3;
...@@ -72,6 +81,11 @@ clk_ext1: clock-ext1 { ...@@ -72,6 +81,11 @@ clk_ext1: clock-ext1 {
clock-output-names = "clk_ext1"; clock-output-names = "clk_ext1";
}; };
pmu {
compatible = "arm,cortex-a55-pmu";
interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
};
psci { psci {
compatible = "arm,psci-1.0"; compatible = "arm,psci-1.0";
method = "smc"; method = "smc";
...@@ -112,6 +126,11 @@ aips1: bus@44000000 { ...@@ -112,6 +126,11 @@ aips1: bus@44000000 {
#size-cells = <1>; #size-cells = <1>;
ranges; ranges;
anomix_ns_gpr: syscon@44210000 {
compatible = "fsl,imx93-aonmix-ns-syscfg", "syscon";
reg = <0x44210000 0x1000>;
};
mu1: mailbox@44230000 { mu1: mailbox@44230000 {
compatible = "fsl,imx93-mu", "fsl,imx8ulp-mu"; compatible = "fsl,imx93-mu", "fsl,imx8ulp-mu";
reg = <0x44230000 0x10000>; reg = <0x44230000 0x10000>;
...@@ -128,6 +147,50 @@ system_counter: timer@44290000 { ...@@ -128,6 +147,50 @@ system_counter: timer@44290000 {
clock-names = "per"; clock-names = "per";
}; };
lpi2c1: i2c@44340000 {
compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
reg = <0x44340000 0x10000>;
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_LPI2C1_GATE>,
<&clk IMX93_CLK_BUS_AON>;
clock-names = "per", "ipg";
status = "disabled";
};
lpi2c2: i2c@44350000 {
compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
reg = <0x44350000 0x10000>;
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_LPI2C2_GATE>,
<&clk IMX93_CLK_BUS_AON>;
clock-names = "per", "ipg";
status = "disabled";
};
lpspi1: spi@44360000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi";
reg = <0x44360000 0x10000>;
interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_LPSPI1_GATE>,
<&clk IMX93_CLK_BUS_AON>;
clock-names = "per", "ipg";
status = "disabled";
};
lpspi2: spi@44370000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi";
reg = <0x44370000 0x10000>;
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_LPSPI2_GATE>,
<&clk IMX93_CLK_BUS_AON>;
clock-names = "per", "ipg";
status = "disabled";
};
lpuart1: serial@44380000 { lpuart1: serial@44380000 {
compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart"; compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart";
reg = <0x44380000 0x1000>; reg = <0x44380000 0x1000>;
...@@ -161,6 +224,30 @@ clk: clock-controller@44450000 { ...@@ -161,6 +224,30 @@ clk: clock-controller@44450000 {
status = "okay"; status = "okay";
}; };
src: system-controller@44460000 {
compatible = "fsl,imx93-src", "syscon";
reg = <0x44460000 0x10000>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
mediamix: power-domain@44462400 {
compatible = "fsl,imx93-src-slice";
reg = <0x44462400 0x400>, <0x44465800 0x400>;
#power-domain-cells = <0>;
clocks = <&clk IMX93_CLK_MEDIA_AXI>,
<&clk IMX93_CLK_MEDIA_APB>;
};
mlmix: power-domain@44461800 {
compatible = "fsl,imx93-src-slice";
reg = <0x44461800 0x400>, <0x44464800 0x400>;
#power-domain-cells = <0>;
clocks = <&clk IMX93_CLK_ML_APB>,
<&clk IMX93_CLK_ML>;
};
};
anatop: anatop@44480000 { anatop: anatop@44480000 {
compatible = "fsl,imx93-anatop", "syscon"; compatible = "fsl,imx93-anatop", "syscon";
reg = <0x44480000 0x10000>; reg = <0x44480000 0x10000>;
...@@ -174,6 +261,11 @@ aips2: bus@42000000 { ...@@ -174,6 +261,11 @@ aips2: bus@42000000 {
#size-cells = <1>; #size-cells = <1>;
ranges; ranges;
wakeupmix_gpr: syscon@42420000 {
compatible = "fsl,imx93-wakeupmix-syscfg", "syscon";
reg = <0x42420000 0x1000>;
};
mu2: mailbox@42440000 { mu2: mailbox@42440000 {
compatible = "fsl,imx93-mu", "fsl,imx8ulp-mu"; compatible = "fsl,imx93-mu", "fsl,imx8ulp-mu";
reg = <0x42440000 0x10000>; reg = <0x42440000 0x10000>;
...@@ -182,6 +274,26 @@ mu2: mailbox@42440000 { ...@@ -182,6 +274,26 @@ mu2: mailbox@42440000 {
status = "disabled"; status = "disabled";
}; };
lpi2c3: i2c@42530000 {
compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
reg = <0x42530000 0x10000>;
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_LPI2C3_GATE>,
<&clk IMX93_CLK_BUS_WAKEUP>;
clock-names = "per", "ipg";
status = "disabled";
};
lpi2c4: i2c@42540000 {
compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
reg = <0x42540000 0x10000>;
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_LPI2C4_GATE>,
<&clk IMX93_CLK_BUS_WAKEUP>;
clock-names = "per", "ipg";
status = "disabled";
};
lpuart3: serial@42570000 { lpuart3: serial@42570000 {
compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart"; compatible = "fsl,imx93-lpuart", "fsl,imx7ulp-lpuart";
reg = <0x42570000 0x1000>; reg = <0x42570000 0x1000>;
...@@ -235,6 +347,47 @@ lpuart8: serial@426a0000 { ...@@ -235,6 +347,47 @@ lpuart8: serial@426a0000 {
clock-names = "ipg"; clock-names = "ipg";
status = "disabled"; status = "disabled";
}; };
lpi2c5: i2c@426b0000 {
compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
reg = <0x426b0000 0x10000>;
interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_LPI2C5_GATE>,
<&clk IMX93_CLK_BUS_WAKEUP>;
clock-names = "per", "ipg";
status = "disabled";
};
lpi2c6: i2c@426c0000 {
compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
reg = <0x426c0000 0x10000>;
interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_LPI2C6_GATE>,
<&clk IMX93_CLK_BUS_WAKEUP>;
clock-names = "per", "ipg";
status = "disabled";
};
lpi2c7: i2c@426d0000 {
compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
reg = <0x426d0000 0x10000>;
interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_LPI2C7_GATE>,
<&clk IMX93_CLK_BUS_WAKEUP>;
clock-names = "per", "ipg";
status = "disabled";
};
lpi2c8: i2c@426e0000 {
compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c";
reg = <0x426e0000 0x10000>;
interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_LPI2C8_GATE>,
<&clk IMX93_CLK_BUS_WAKEUP>;
clock-names = "per", "ipg";
status = "disabled";
};
}; };
aips3: bus@42800000 { aips3: bus@42800000 {
...@@ -248,8 +401,8 @@ usdhc1: mmc@42850000 { ...@@ -248,8 +401,8 @@ usdhc1: mmc@42850000 {
compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc"; compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc";
reg = <0x42850000 0x10000>; reg = <0x42850000 0x10000>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_DUMMY>, clocks = <&clk IMX93_CLK_BUS_WAKEUP>,
<&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_WAKEUP_AXI>,
<&clk IMX93_CLK_USDHC1_GATE>; <&clk IMX93_CLK_USDHC1_GATE>;
clock-names = "ipg", "ahb", "per"; clock-names = "ipg", "ahb", "per";
bus-width = <8>; bus-width = <8>;
...@@ -262,8 +415,8 @@ usdhc2: mmc@42860000 { ...@@ -262,8 +415,8 @@ usdhc2: mmc@42860000 {
compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc"; compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc";
reg = <0x42860000 0x10000>; reg = <0x42860000 0x10000>;
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_DUMMY>, clocks = <&clk IMX93_CLK_BUS_WAKEUP>,
<&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_WAKEUP_AXI>,
<&clk IMX93_CLK_USDHC2_GATE>; <&clk IMX93_CLK_USDHC2_GATE>;
clock-names = "ipg", "ahb", "per"; clock-names = "ipg", "ahb", "per";
bus-width = <4>; bus-width = <4>;
...@@ -276,8 +429,8 @@ usdhc3: mmc@428b0000 { ...@@ -276,8 +429,8 @@ usdhc3: mmc@428b0000 {
compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc"; compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc";
reg = <0x428b0000 0x10000>; reg = <0x428b0000 0x10000>;
interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_DUMMY>, clocks = <&clk IMX93_CLK_BUS_WAKEUP>,
<&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_WAKEUP_AXI>,
<&clk IMX93_CLK_USDHC3_GATE>; <&clk IMX93_CLK_USDHC3_GATE>;
clock-names = "ipg", "ahb", "per"; clock-names = "ipg", "ahb", "per";
bus-width = <4>; bus-width = <4>;
...@@ -295,6 +448,9 @@ gpio2: gpio@43810080 { ...@@ -295,6 +448,9 @@ gpio2: gpio@43810080 {
interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <2>;
clocks = <&clk IMX93_CLK_GPIO2_GATE>,
<&clk IMX93_CLK_GPIO2_GATE>;
clock-names = "gpio", "port";
gpio-ranges = <&iomuxc 0 32 32>; gpio-ranges = <&iomuxc 0 32 32>;
}; };
...@@ -306,6 +462,9 @@ gpio3: gpio@43820080 { ...@@ -306,6 +462,9 @@ gpio3: gpio@43820080 {
interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <2>;
clocks = <&clk IMX93_CLK_GPIO3_GATE>,
<&clk IMX93_CLK_GPIO3_GATE>;
clock-names = "gpio", "port";
gpio-ranges = <&iomuxc 0 64 32>; gpio-ranges = <&iomuxc 0 64 32>;
}; };
...@@ -317,6 +476,9 @@ gpio4: gpio@43830080 { ...@@ -317,6 +476,9 @@ gpio4: gpio@43830080 {
interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <2>;
clocks = <&clk IMX93_CLK_GPIO4_GATE>,
<&clk IMX93_CLK_GPIO4_GATE>;
clock-names = "gpio", "port";
gpio-ranges = <&iomuxc 0 96 32>; gpio-ranges = <&iomuxc 0 96 32>;
}; };
...@@ -328,7 +490,39 @@ gpio1: gpio@47400080 { ...@@ -328,7 +490,39 @@ gpio1: gpio@47400080 {
interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <2>; #interrupt-cells = <2>;
clocks = <&clk IMX93_CLK_GPIO1_GATE>,
<&clk IMX93_CLK_GPIO1_GATE>;
clock-names = "gpio", "port";
gpio-ranges = <&iomuxc 0 0 32>; gpio-ranges = <&iomuxc 0 0 32>;
}; };
s4muap: mailbox@47520000 {
compatible = "fsl,imx93-mu-s4";
reg = <0x47520000 0x10000>;
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "txirq", "rxirq";
#mbox-cells = <2>;
};
media_blk_ctrl: system-controller@4ac10000 {
compatible = "fsl,imx93-media-blk-ctrl", "syscon";
reg = <0x4ac10000 0x10000>;
power-domains = <&mediamix>;
clocks = <&clk IMX93_CLK_MEDIA_APB>,
<&clk IMX93_CLK_MEDIA_AXI>,
<&clk IMX93_CLK_NIC_MEDIA_GATE>,
<&clk IMX93_CLK_MEDIA_DISP_PIX>,
<&clk IMX93_CLK_CAM_PIX>,
<&clk IMX93_CLK_PXP_GATE>,
<&clk IMX93_CLK_LCDIF_GATE>,
<&clk IMX93_CLK_ISI_GATE>,
<&clk IMX93_CLK_MIPI_CSI_GATE>,
<&clk IMX93_CLK_MIPI_DSI_GATE>;
clock-names = "apb", "axi", "nic", "disp", "cam",
"pxp", "lcdif", "isi", "csi", "dsi";
#power-domain-cells = <1>;
status = "disabled";
};
}; };
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment