> -----Original Message----- > From: Shawn Guo [mailto:shawnguo@xxxxxxxxxx] > Sent: Sunday, August 30, 2020 9:45 PM > To: Jacky Bai <ping.bai@xxxxxxx> > Cc: robh+dt@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx; festevam@xxxxxxxxx; > kernel@xxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>; > devicetree@xxxxxxxxxxxxxxx > Subject: Re: [PATCH v2 2/3] arm64: dts: imx8mm: Split the imx8mm evk board > dts to a common dtsi > > On Mon, Aug 24, 2020 at 03:20:26PM +0800, Jacky Bai wrote: > > There are two type of i.MX8MM EVK board, one is populated with > > LPDDR4(default dts), and one is populated with DDR4. these two boards > > share most of the board design, but still have some difference. > > imx8mm-evk has emmc support, imx8mm-ddr4-evk has gpmi nand support. > > And also, the BT/WIFI module is different. So move the common dts part > > into imx8mm-evk.dtsi for reuse. > > > > Signed-off-by: Jacky Bai <ping.bai@xxxxxxx> > > It doesn't apply to my branch. Can you please rebase it to my for-next or > imx/dt64 branch? > ok, thanks BR Jacky Bai > Shawn > > > --- > > Change for v2: no changes. > > --- > > arch/arm64/boot/dts/freescale/imx8mm-evk.dts | 528 > > ++---------------- arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | > > 470 ++++++++++++++++ > > 2 files changed, 506 insertions(+), 492 deletions(-) create mode > > 100644 arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts > > b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts > > index 0f1d7f8aeac4..09abdef8c166 100644 > > --- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts > > +++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts > > @@ -1,97 +1,16 @@ > > // SPDX-License-Identifier: (GPL-2.0+ OR MIT) > > /* > > - * Copyright 2019 NXP > > + * Copyright 2019-2020 NXP > > */ > > > > /dts-v1/; > > > > #include <dt-bindings/usb/pd.h> > > -#include "imx8mm.dtsi" > > +#include "imx8mm-evk.dtsi" > > > > / { > > model = "FSL i.MX8MM EVK board"; > > compatible = "fsl,imx8mm-evk", "fsl,imx8mm"; > > - > > - chosen { > > - stdout-path = &uart2; > > - }; > > - > > - memory@40000000 { > > - device_type = "memory"; > > - reg = <0x0 0x40000000 0 0x80000000>; > > - }; > > - > > - leds { > > - compatible = "gpio-leds"; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_gpio_led>; > > - > > - status { > > - label = "status"; > > - gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>; > > - default-state = "on"; > > - }; > > - }; > > - > > - reg_usdhc2_vmmc: regulator-usdhc2 { > > - compatible = "regulator-fixed"; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>; > > - regulator-name = "VSD_3V3"; > > - regulator-min-microvolt = <3300000>; > > - regulator-max-microvolt = <3300000>; > > - gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; > > - enable-active-high; > > - }; > > - > > - wm8524: audio-codec { > > - #sound-dai-cells = <0>; > > - compatible = "wlf,wm8524"; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_gpio_wlf>; > > - wlf,mute-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>; > > - }; > > - > > - sound-wm8524 { > > - compatible = "simple-audio-card"; > > - simple-audio-card,name = "wm8524-audio"; > > - simple-audio-card,format = "i2s"; > > - simple-audio-card,frame-master = <&cpudai>; > > - simple-audio-card,bitclock-master = <&cpudai>; > > - simple-audio-card,widgets = > > - "Line", "Left Line Out Jack", > > - "Line", "Right Line Out Jack"; > > - simple-audio-card,routing = > > - "Left Line Out Jack", "LINEVOUTL", > > - "Right Line Out Jack", "LINEVOUTR"; > > - > > - cpudai: simple-audio-card,cpu { > > - sound-dai = <&sai3>; > > - dai-tdm-slot-num = <2>; > > - dai-tdm-slot-width = <32>; > > - }; > > - > > - simple-audio-card,codec { > > - sound-dai = <&wm8524>; > > - clocks = <&clk IMX8MM_CLK_SAI3_ROOT>; > > - }; > > - }; > > -}; > > - > > -&A53_0 { > > - cpu-supply = <&buck2_reg>; > > -}; > > - > > -&A53_1 { > > - cpu-supply = <&buck2_reg>; > > -}; > > - > > -&A53_2 { > > - cpu-supply = <&buck2_reg>; > > -}; > > - > > -&A53_3 { > > - cpu-supply = <&buck2_reg>; > > }; > > > > &ddrc { > > @@ -114,238 +33,6 @@ opp-750M { > > }; > > }; > > > > -&fec1 { > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_fec1>; > > - phy-mode = "rgmii-id"; > > - phy-handle = <ðphy0>; > > - phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; > > - phy-reset-duration = <10>; > > - fsl,magic-packet; > > - status = "okay"; > > - > > - mdio { > > - #address-cells = <1>; > > - #size-cells = <0>; > > - > > - ethphy0: ethernet-phy@0 { > > - compatible = "ethernet-phy-ieee802.3-c22"; > > - reg = <0>; > > - }; > > - }; > > -}; > > - > > -&i2c1 { > > - clock-frequency = <400000>; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_i2c1>; > > - status = "okay"; > > - > > - pmic@4b { > > - compatible = "rohm,bd71847"; > > - reg = <0x4b>; > > - pinctrl-0 = <&pinctrl_pmic>; > > - interrupt-parent = <&gpio1>; > > - interrupts = <3 GPIO_ACTIVE_LOW>; > > - rohm,reset-snvs-powered; > > - > > - regulators { > > - buck1_reg: BUCK1 { > > - regulator-name = "BUCK1"; > > - regulator-min-microvolt = <700000>; > > - regulator-max-microvolt = <1300000>; > > - regulator-boot-on; > > - regulator-always-on; > > - regulator-ramp-delay = <1250>; > > - }; > > - > > - buck2_reg: 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>; > > - }; > > - > > - buck3_reg: BUCK3 { > > - // BUCK5 in datasheet > > - regulator-name = "BUCK3"; > > - regulator-min-microvolt = <700000>; > > - regulator-max-microvolt = <1350000>; > > - regulator-boot-on; > > - regulator-always-on; > > - }; > > - > > - buck4_reg: BUCK4 { > > - // BUCK6 in datasheet > > - regulator-name = "BUCK4"; > > - regulator-min-microvolt = <3000000>; > > - regulator-max-microvolt = <3300000>; > > - regulator-boot-on; > > - regulator-always-on; > > - }; > > - > > - buck5_reg: BUCK5 { > > - // BUCK7 in datasheet > > - regulator-name = "BUCK5"; > > - regulator-min-microvolt = <1605000>; > > - regulator-max-microvolt = <1995000>; > > - regulator-boot-on; > > - regulator-always-on; > > - }; > > - > > - buck6_reg: BUCK6 { > > - // BUCK8 in datasheet > > - regulator-name = "BUCK6"; > > - regulator-min-microvolt = <800000>; > > - regulator-max-microvolt = <1400000>; > > - regulator-boot-on; > > - regulator-always-on; > > - }; > > - > > - ldo1_reg: LDO1 { > > - regulator-name = "LDO1"; > > - regulator-min-microvolt = <1600000>; > > - regulator-max-microvolt = <3300000>; > > - regulator-boot-on; > > - regulator-always-on; > > - }; > > - > > - ldo2_reg: LDO2 { > > - regulator-name = "LDO2"; > > - regulator-min-microvolt = <800000>; > > - regulator-max-microvolt = <900000>; > > - regulator-boot-on; > > - regulator-always-on; > > - }; > > - > > - ldo3_reg: LDO3 { > > - regulator-name = "LDO3"; > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <3300000>; > > - regulator-boot-on; > > - regulator-always-on; > > - }; > > - > > - ldo4_reg: LDO4 { > > - regulator-name = "LDO4"; > > - regulator-min-microvolt = <900000>; > > - regulator-max-microvolt = <1800000>; > > - regulator-boot-on; > > - regulator-always-on; > > - }; > > - > > - ldo6_reg: LDO6 { > > - regulator-name = "LDO6"; > > - regulator-min-microvolt = <900000>; > > - regulator-max-microvolt = <1800000>; > > - regulator-boot-on; > > - regulator-always-on; > > - }; > > - }; > > - }; > > -}; > > - > > -&i2c2 { > > - clock-frequency = <400000>; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_i2c2>; > > - status = "okay"; > > - > > - ptn5110: tcpc@50 { > > - compatible = "nxp,ptn5110"; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_typec1>; > > - reg = <0x50>; > > - interrupt-parent = <&gpio2>; > > - interrupts = <11 8>; > > - status = "okay"; > > - > > - port { > > - typec1_dr_sw: endpoint { > > - remote-endpoint = <&usb1_drd_sw>; > > - }; > > - }; > > - > > - typec1_con: connector { > > - compatible = "usb-c-connector"; > > - label = "USB-C"; > > - power-role = "dual"; > > - data-role = "dual"; > > - try-power-role = "sink"; > > - source-pdos = <PDO_FIXED(5000, 3000, > PDO_FIXED_USB_COMM)>; > > - sink-pdos = <PDO_FIXED(5000, 3000, > PDO_FIXED_USB_COMM) > > - PDO_VAR(5000, 20000, 3000)>; > > - op-sink-microwatt = <15000000>; > > - self-powered; > > - }; > > - }; > > -}; > > - > > -&i2c3 { > > - clock-frequency = <400000>; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_i2c3>; > > - status = "okay"; > > - > > - pca6416: gpio@20 { > > - compatible = "ti,tca6416"; > > - reg = <0x20>; > > - gpio-controller; > > - #gpio-cells = <2>; > > - }; > > -}; > > - > > -&sai3 { > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_sai3>; > > - assigned-clocks = <&clk IMX8MM_CLK_SAI3>; > > - assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>; > > - assigned-clock-rates = <24576000>; > > - status = "okay"; > > -}; > > - > > -&snvs_pwrkey { > > - status = "okay"; > > -}; > > - > > -&uart2 { /* console */ > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_uart2>; > > - status = "okay"; > > -}; > > - > > -&usbotg1 { > > - dr_mode = "otg"; > > - hnp-disable; > > - srp-disable; > > - adp-disable; > > - usb-role-switch; > > - status = "okay"; > > - > > - port { > > - usb1_drd_sw: endpoint { > > - remote-endpoint = <&typec1_dr_sw>; > > - }; > > - }; > > -}; > > - > > -&usdhc2 { > > - assigned-clocks = <&clk IMX8MM_CLK_USDHC2>; > > - assigned-clock-rates = <200000000>; > > - 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 = <&gpio1 15 GPIO_ACTIVE_LOW>; > > - bus-width = <4>; > > - vmmc-supply = <®_usdhc2_vmmc>; > > - status = "okay"; > > -}; > > - > > &usdhc3 { > > assigned-clocks = <&clk IMX8MM_CLK_USDHC3_ROOT>; > > assigned-clock-rates = <400000000>; > > @@ -358,196 +45,53 @@ &usdhc3 { > > status = "okay"; > > }; > > > > -&wdog1 { > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_wdog>; > > - fsl,ext-reset-output; > > - status = "okay"; > > -}; > > - > > &iomuxc { > > - pinctrl-names = "default"; > > - > > - 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_RXC_GPIO4_IO22 0x19 > > - >; > > - }; > > - > > - pinctrl_gpio_led: gpioledgrp { > > - fsl,pins = < > > - MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16 0x19 > > - >; > > - }; > > - > > - pinctrl_gpio_wlf: gpiowlfgrp { > > - fsl,pins = < > > - MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21 0xd6 > > - >; > > - }; > > - > > - 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_pmic: pmicirq { > > - fsl,pins = < > > - MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x41 > > - >; > > - }; > > - > > - pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc { > > - fsl,pins = < > > - MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41 > > - >; > > - }; > > - > > - pinctrl_sai3: sai3grp { > > - fsl,pins = < > > - MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6 > > - MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK 0xd6 > > - MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK 0xd6 > > - MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0xd6 > > - >; > > - }; > > - > > - pinctrl_typec1: typec1grp { > > - fsl,pins = < > > - MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11 0x159 > > - >; > > - }; > > - > > - pinctrl_uart2: uart2grp { > > - fsl,pins = < > > - MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140 > > - MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140 > > - >; > > - }; > > - > > - pinctrl_usdhc2_gpio: usdhc2grpgpio { > > - fsl,pins = < > > - MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x1c4 > > - >; > > - }; > > - > > - 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_GPIO1_IO04_USDHC2_VSELECT 0x1d0 > > - >; > > - }; > > - > > - pinctrl_usdhc2_100mhz: usdhc2grp100mhz { > > - 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_GPIO1_IO04_USDHC2_VSELECT 0x1d0 > > - >; > > - }; > > - > > - pinctrl_usdhc2_200mhz: usdhc2grp200mhz { > > - 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_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 > > + 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_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: usdhc3grp100mhz { > > 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 > > + 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: usdhc3grp200mhz { > > 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 > > + 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 > > >; > > }; > > }; > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi > > b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi > > new file mode 100644 > > index 000000000000..ddb3e8715733 > > --- /dev/null > > +++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi > > @@ -0,0 +1,470 @@ > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > > +/* > > + * Copyright 2020 NXP > > + */ > > + > > +/dts-v1/; > > + > > +#include <dt-bindings/usb/pd.h> > > +#include "imx8mm.dtsi" > > + > > +/ { > > + chosen { > > + stdout-path = &uart2; > > + }; > > + > > + memory@40000000 { > > + device_type = "memory"; > > + reg = <0x0 0x40000000 0 0x80000000>; > > + }; > > + > > + leds { > > + compatible = "gpio-leds"; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_gpio_led>; > > + > > + status { > > + label = "status"; > > + gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>; > > + default-state = "on"; > > + }; > > + }; > > + > > + reg_usdhc2_vmmc: regulator-usdhc2 { > > + compatible = "regulator-fixed"; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>; > > + regulator-name = "VSD_3V3"; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; > > + enable-active-high; > > + }; > > + > > + wm8524: audio-codec { > > + #sound-dai-cells = <0>; > > + compatible = "wlf,wm8524"; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_gpio_wlf>; > > + wlf,mute-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>; > > + }; > > + > > + sound-wm8524 { > > + compatible = "simple-audio-card"; > > + simple-audio-card,name = "wm8524-audio"; > > + simple-audio-card,format = "i2s"; > > + simple-audio-card,frame-master = <&cpudai>; > > + simple-audio-card,bitclock-master = <&cpudai>; > > + simple-audio-card,widgets = > > + "Line", "Left Line Out Jack", > > + "Line", "Right Line Out Jack"; > > + simple-audio-card,routing = > > + "Left Line Out Jack", "LINEVOUTL", > > + "Right Line Out Jack", "LINEVOUTR"; > > + > > + cpudai: simple-audio-card,cpu { > > + sound-dai = <&sai3>; > > + dai-tdm-slot-num = <2>; > > + dai-tdm-slot-width = <32>; > > + }; > > + > > + simple-audio-card,codec { > > + sound-dai = <&wm8524>; > > + clocks = <&clk IMX8MM_CLK_SAI3_ROOT>; > > + }; > > + }; > > +}; > > + > > +&A53_0 { > > + cpu-supply = <&buck2_reg>; > > +}; > > + > > +&A53_1 { > > + cpu-supply = <&buck2_reg>; > > +}; > > + > > +&A53_2 { > > + cpu-supply = <&buck2_reg>; > > +}; > > + > > +&A53_3 { > > + cpu-supply = <&buck2_reg>; > > +}; > > + > > +&fec1 { > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_fec1>; > > + phy-mode = "rgmii-id"; > > + phy-handle = <ðphy0>; > > + phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; > > + phy-reset-duration = <10>; > > + fsl,magic-packet; > > + status = "okay"; > > + > > + mdio { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + ethphy0: ethernet-phy@0 { > > + compatible = "ethernet-phy-ieee802.3-c22"; > > + reg = <0>; > > + }; > > + }; > > +}; > > + > > +&i2c1 { > > + clock-frequency = <400000>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_i2c1>; > > + status = "okay"; > > + > > + pmic@4b { > > + compatible = "rohm,bd71847"; > > + reg = <0x4b>; > > + pinctrl-0 = <&pinctrl_pmic>; > > + interrupt-parent = <&gpio1>; > > + interrupts = <3 GPIO_ACTIVE_LOW>; > > + rohm,reset-snvs-powered; > > + > > + regulators { > > + buck1_reg: BUCK1 { > > + regulator-name = "BUCK1"; > > + regulator-min-microvolt = <700000>; > > + regulator-max-microvolt = <1300000>; > > + regulator-boot-on; > > + regulator-always-on; > > + regulator-ramp-delay = <1250>; > > + }; > > + > > + buck2_reg: 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>; > > + }; > > + > > + buck3_reg: BUCK3 { > > + // BUCK5 in datasheet > > + regulator-name = "BUCK3"; > > + regulator-min-microvolt = <700000>; > > + regulator-max-microvolt = <1350000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + buck4_reg: BUCK4 { > > + // BUCK6 in datasheet > > + regulator-name = "BUCK4"; > > + regulator-min-microvolt = <3000000>; > > + regulator-max-microvolt = <3300000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + buck5_reg: BUCK5 { > > + // BUCK7 in datasheet > > + regulator-name = "BUCK5"; > > + regulator-min-microvolt = <1605000>; > > + regulator-max-microvolt = <1995000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + buck6_reg: BUCK6 { > > + // BUCK8 in datasheet > > + regulator-name = "BUCK6"; > > + regulator-min-microvolt = <800000>; > > + regulator-max-microvolt = <1400000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + ldo1_reg: LDO1 { > > + regulator-name = "LDO1"; > > + regulator-min-microvolt = <1600000>; > > + regulator-max-microvolt = <3300000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + ldo2_reg: LDO2 { > > + regulator-name = "LDO2"; > > + regulator-min-microvolt = <800000>; > > + regulator-max-microvolt = <900000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + ldo3_reg: LDO3 { > > + regulator-name = "LDO3"; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <3300000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + ldo4_reg: LDO4 { > > + regulator-name = "LDO4"; > > + regulator-min-microvolt = <900000>; > > + regulator-max-microvolt = <1800000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + > > + ldo6_reg: LDO6 { > > + regulator-name = "LDO6"; > > + regulator-min-microvolt = <900000>; > > + regulator-max-microvolt = <1800000>; > > + regulator-boot-on; > > + regulator-always-on; > > + }; > > + }; > > + }; > > +}; > > + > > +&i2c2 { > > + clock-frequency = <400000>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_i2c2>; > > + status = "okay"; > > + > > + ptn5110: tcpc@50 { > > + compatible = "nxp,ptn5110"; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_typec1>; > > + reg = <0x50>; > > + interrupt-parent = <&gpio2>; > > + interrupts = <11 8>; > > + status = "okay"; > > + > > + port { > > + typec1_dr_sw: endpoint { > > + remote-endpoint = <&usb1_drd_sw>; > > + }; > > + }; > > + > > + typec1_con: connector { > > + compatible = "usb-c-connector"; > > + label = "USB-C"; > > + power-role = "dual"; > > + data-role = "dual"; > > + try-power-role = "sink"; > > + source-pdos = <PDO_FIXED(5000, 3000, > PDO_FIXED_USB_COMM)>; > > + sink-pdos = <PDO_FIXED(5000, 3000, > PDO_FIXED_USB_COMM) > > + PDO_VAR(5000, 20000, 3000)>; > > + op-sink-microwatt = <15000000>; > > + self-powered; > > + }; > > + }; > > +}; > > + > > +&i2c3 { > > + clock-frequency = <400000>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_i2c3>; > > + status = "okay"; > > + > > + pca6416: gpio@20 { > > + compatible = "ti,tca6416"; > > + reg = <0x20>; > > + gpio-controller; > > + #gpio-cells = <2>; > > + }; > > +}; > > + > > +&sai3 { > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_sai3>; > > + assigned-clocks = <&clk IMX8MM_CLK_SAI3>; > > + assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>; > > + assigned-clock-rates = <24576000>; > > + status = "okay"; > > +}; > > + > > +&snvs_pwrkey { > > + status = "okay"; > > +}; > > + > > +&uart2 { /* console */ > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_uart2>; > > + status = "okay"; > > +}; > > + > > +&usbotg1 { > > + dr_mode = "otg"; > > + hnp-disable; > > + srp-disable; > > + adp-disable; > > + usb-role-switch; > > + status = "okay"; > > + > > + port { > > + usb1_drd_sw: endpoint { > > + remote-endpoint = <&typec1_dr_sw>; > > + }; > > + }; > > +}; > > + > > +&usdhc2 { > > + assigned-clocks = <&clk IMX8MM_CLK_USDHC2>; > > + assigned-clock-rates = <200000000>; > > + 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 = <&gpio1 15 GPIO_ACTIVE_LOW>; > > + bus-width = <4>; > > + vmmc-supply = <®_usdhc2_vmmc>; > > + status = "okay"; > > +}; > > + > > +&wdog1 { > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_wdog>; > > + fsl,ext-reset-output; > > + status = "okay"; > > +}; > > + > > +&iomuxc { > > + pinctrl-names = "default"; > > + > > + 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_RXC_GPIO4_IO22 0x19 > > + >; > > + }; > > + > > + pinctrl_gpio_led: gpioledgrp { > > + fsl,pins = < > > + MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16 0x19 > > + >; > > + }; > > + > > + pinctrl_gpio_wlf: gpiowlfgrp { > > + fsl,pins = < > > + MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21 0xd6 > > + >; > > + }; > > + > > + 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_pmic: pmicirq { > > + fsl,pins = < > > + MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x41 > > + >; > > + }; > > + > > + pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc { > > + fsl,pins = < > > + MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41 > > + >; > > + }; > > + > > + pinctrl_sai3: sai3grp { > > + fsl,pins = < > > + MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6 > > + MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK 0xd6 > > + MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK 0xd6 > > + MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0xd6 > > + >; > > + }; > > + > > + pinctrl_typec1: typec1grp { > > + fsl,pins = < > > + MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11 0x159 > > + >; > > + }; > > + > > + pinctrl_uart2: uart2grp { > > + fsl,pins = < > > + MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140 > > + MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140 > > + >; > > + }; > > + > > + pinctrl_usdhc2_gpio: usdhc2grpgpio { > > + fsl,pins = < > > + MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x1c4 > > + >; > > + }; > > + > > + 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_GPIO1_IO04_USDHC2_VSELECT 0x1d0 > > + >; > > + }; > > + > > + pinctrl_usdhc2_100mhz: usdhc2grp100mhz { > > + 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_GPIO1_IO04_USDHC2_VSELECT 0x1d0 > > + >; > > + }; > > + > > + pinctrl_usdhc2_200mhz: usdhc2grp200mhz { > > + 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_GPIO1_IO04_USDHC2_VSELECT 0x1d0 > > + >; > > + }; > > + > > + pinctrl_wdog: wdoggrp { > > + fsl,pins = < > > + MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6 > > + >; > > + }; > > +}; > > -- > > 2.26.2 > >