diff options
30 files changed, 2681 insertions, 346 deletions
| diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index f8d59433af01..6f0777ee6cd6 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -27,10 +27,12 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-clearfog-cx.dtb  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-honeycomb.dtb  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb +dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2162a-qds.dtb  dtb-$(CONFIG_ARCH_MXC) += imx8mm-beacon-kit.dtb  dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb  dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mm-kontron-n801x-s.dtb  dtb-$(CONFIG_ARCH_MXC) += imx8mm-var-som-symphony.dtb  dtb-$(CONFIG_ARCH_MXC) += imx8mn-evk.dtb  dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk.dtb diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi index 6a2c09199047..626b709d1fb9 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi @@ -291,43 +291,46 @@  			compatible = "fsl,qoriq-tmu";  			reg = <0x0 0x1f00000 0x0 0x10000>;  			interrupts = <0 33 0x4>; -			fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>; -			fsl,tmu-calibration = <0x00000000 0x00000026 -					       0x00000001 0x0000002d +			fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x60062>; +			fsl,tmu-calibration = <0x00000000 0x00000025 +					       0x00000001 0x0000002c  					       0x00000002 0x00000032  					       0x00000003 0x00000039  					       0x00000004 0x0000003f  					       0x00000005 0x00000046 -					       0x00000006 0x0000004d -					       0x00000007 0x00000054 -					       0x00000008 0x0000005a -					       0x00000009 0x00000061 -					       0x0000000a 0x0000006a -					       0x0000000b 0x00000071 - -					       0x00010000 0x00000025 -					       0x00010001 0x0000002c +					       0x00000006 0x0000004c +					       0x00000007 0x00000053 +					       0x00000008 0x00000059 +					       0x00000009 0x0000005f +					       0x0000000a 0x00000066 +					       0x0000000b 0x0000006c + +					       0x00010000 0x00000026 +					       0x00010001 0x0000002d  					       0x00010002 0x00000035  					       0x00010003 0x0000003d  					       0x00010004 0x00000045 -					       0x00010005 0x0000004e -					       0x00010006 0x00000057 -					       0x00010007 0x00000061 -					       0x00010008 0x0000006b -					       0x00010009 0x00000076 - -					       0x00020000 0x00000029 -					       0x00020001 0x00000033 -					       0x00020002 0x0000003d -					       0x00020003 0x00000049 -					       0x00020004 0x00000056 -					       0x00020005 0x00000061 -					       0x00020006 0x0000006d - -					       0x00030000 0x00000021 -					       0x00030001 0x0000002a -					       0x00030002 0x0000003c -					       0x00030003 0x0000004e>; +					       0x00010005 0x0000004d +					       0x00010006 0x00000055 +					       0x00010007 0x0000005d +					       0x00010008 0x00000065 +					       0x00010009 0x0000006d + +					       0x00020000 0x00000026 +					       0x00020001 0x00000030 +					       0x00020002 0x0000003a +					       0x00020003 0x00000044 +					       0x00020004 0x0000004e +					       0x00020005 0x00000059 +					       0x00020006 0x00000063 + +					       0x00030000 0x00000014 +					       0x00030001 0x00000021 +					       0x00030002 0x0000002e +					       0x00030003 0x0000003a +					       0x00030004 0x00000047 +					       0x00030005 0x00000053 +					       0x00030006 0x00000060>;  			big-endian;  			#thermal-sensor-cells = <1>;  		}; @@ -401,7 +404,7 @@  			#interrupt-cells = <2>;  		}; -		wdog0: wdog@2ad0000 { +		wdog0: watchdog@2ad0000 {  			compatible = "fsl,ls1012a-wdt",  				     "fsl,imx21-wdt";  			reg = <0x0 0x2ad0000 0x0 0x10000>; @@ -454,7 +457,7 @@  				 <&clockgen 4 3>;  		}; -		usb0: usb3@2f00000 { +		usb0: usb@2f00000 {  			compatible = "snps,dwc3";  			reg = <0x0 0x2f00000 0x0 0x10000>;  			interrupts = <0 60 0x4>; @@ -475,7 +478,7 @@  			status = "disabled";  		}; -		usb1: usb2@8600000 { +		usb1: usb@8600000 {  			compatible = "fsl-usb2-dr-v2.5", "fsl-usb2-dr";  			reg = <0x0 0x8600000 0x0 0x1000>;  			interrupts = <0 139 0x4>; diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts index f46eb47cfa4d..3123e4173c62 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts @@ -23,6 +23,8 @@  		serial2 = &lpuart1;  		spi0 = &fspi;  		spi1 = &dspi2; +		mmc0 = &esdhc1; +		mmc1 = &esdhc;  	};  	buttons0 { @@ -60,6 +62,10 @@  	};  }; +&can0 { +	status = "okay"; +}; +  &dspi2 {  	status = "okay";  }; @@ -154,20 +160,10 @@  		};  		partition@210000 { -			reg = <0x210000 0x0f0000>; +			reg = <0x210000 0x1d0000>;  			label = "bootloader";  		}; -		partition@300000 { -			reg = <0x300000 0x040000>; -			label = "DP firmware"; -		}; - -		partition@340000 { -			reg = <0x340000 0x0a0000>; -			label = "trusted firmware"; -		}; -  		partition@3e0000 {  			reg = <0x3e0000 0x020000>;  			label = "bootloader environment"; diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts index 13cdc958ba3e..c0786b713791 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts @@ -23,6 +23,8 @@  		gpio2 = &gpio3;  		serial0 = &duart0;  		serial1 = &duart1; +		mmc0 = &esdhc; +		mmc1 = &esdhc1;  	};  	chosen { diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts index 1efb61cff454..c1d1ba459307 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts @@ -19,6 +19,8 @@  		crypto = &crypto;  		serial0 = &duart0;  		serial1 = &duart1; +		mmc0 = &esdhc; +		mmc1 = &esdhc1;  	};  	chosen { diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi index 73e4f9466887..7cb603497d65 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi @@ -90,6 +90,14 @@  		clocks = <&osc_27m>;  	}; +	firmware { +		optee { +			compatible = "linaro,optee-tz"; +			method = "smc"; +			status = "disabled"; +		}; +	}; +  	reboot {  		compatible ="syscon-reboot";  		regmap = <&rst>; @@ -309,7 +317,7 @@  			      <0x0 0x20000000 0x0 0x10000000>;  			reg-names = "fspi_base", "fspi_mmap";  			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&clockgen 4 3>, <&clockgen 4 3>; +			clocks = <&clockgen 2 0>, <&clockgen 2 0>;  			clock-names = "fspi_en", "fspi";  			status = "disabled";  		}; @@ -386,6 +394,24 @@  			status = "disabled";  		}; +		can0: can@2180000 { +			compatible = "fsl,ls1028ar1-flexcan", "fsl,lx2160ar1-flexcan"; +			reg = <0x0 0x2180000 0x0 0x10000>; +			interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&sysclk>, <&clockgen 4 1>; +			clock-names = "ipg", "per"; +			status = "disabled"; +		}; + +		can1: can@2190000 { +			compatible = "fsl,ls1028ar1-flexcan", "fsl,lx2160ar1-flexcan"; +			reg = <0x0 0x2190000 0x0 0x10000>; +			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&sysclk>, <&clockgen 4 1>; +			clock-names = "ipg", "per"; +			status = "disabled"; +		}; +  		duart0: serial@21c0500 {  			compatible = "fsl,ns16550", "ns16550a";  			reg = <0x00 0x21c0500 0x0 0x100>; @@ -934,7 +960,7 @@  			ethernet@0,4 {  				compatible = "fsl,enetc-ptp";  				reg = <0x000400 0 0 0 0>; -				clocks = <&clockgen 4 0>; +				clocks = <&clockgen 2 3>;  				little-endian;  				fsl,extts-fifo;  			}; diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi index 0464b8aa4bc4..bbae4b353d3f 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi @@ -403,43 +403,47 @@  			compatible = "fsl,qoriq-tmu";  			reg = <0x0 0x1f00000 0x0 0x10000>;  			interrupts = <0 33 0x4>; -			fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>; -			fsl,tmu-calibration = <0x00000000 0x00000026 -					       0x00000001 0x0000002d -					       0x00000002 0x00000032 -					       0x00000003 0x00000039 -					       0x00000004 0x0000003f -					       0x00000005 0x00000046 -					       0x00000006 0x0000004d -					       0x00000007 0x00000054 -					       0x00000008 0x0000005a -					       0x00000009 0x00000061 -					       0x0000000a 0x0000006a -					       0x0000000b 0x00000071 - -					       0x00010000 0x00000025 -					       0x00010001 0x0000002c -					       0x00010002 0x00000035 -					       0x00010003 0x0000003d -					       0x00010004 0x00000045 -					       0x00010005 0x0000004e -					       0x00010006 0x00000057 -					       0x00010007 0x00000061 -					       0x00010008 0x0000006b -					       0x00010009 0x00000076 - -					       0x00020000 0x00000029 -					       0x00020001 0x00000033 -					       0x00020002 0x0000003d -					       0x00020003 0x00000049 -					       0x00020004 0x00000056 -					       0x00020005 0x00000061 -					       0x00020006 0x0000006d - -					       0x00030000 0x00000021 -					       0x00030001 0x0000002a -					       0x00030002 0x0000003c -					       0x00030003 0x0000004e>; +			fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x70062>; +			fsl,tmu-calibration = <0x00000000 0x00000023 +					       0x00000001 0x0000002a +					       0x00000002 0x00000031 +					       0x00000003 0x00000037 +					       0x00000004 0x0000003e +					       0x00000005 0x00000044 +					       0x00000006 0x0000004b +					       0x00000007 0x00000051 +					       0x00000008 0x00000058 +					       0x00000009 0x0000005e +					       0x0000000a 0x00000065 +					       0x0000000b 0x0000006b + +					       0x00010000 0x00000023 +					       0x00010001 0x0000002b +					       0x00010002 0x00000033 +					       0x00010003 0x0000003b +					       0x00010004 0x00000043 +					       0x00010005 0x0000004b +					       0x00010006 0x00000054 +					       0x00010007 0x0000005c +					       0x00010008 0x00000064 +					       0x00010009 0x0000006c + +					       0x00020000 0x00000021 +					       0x00020001 0x0000002c +					       0x00020002 0x00000036 +					       0x00020003 0x00000040 +					       0x00020004 0x0000004b +					       0x00020005 0x00000055 +					       0x00020006 0x0000005f + +					       0x00030000 0x00000013 +					       0x00030001 0x0000001d +					       0x00030002 0x00000028 +					       0x00030003 0x00000032 +					       0x00030004 0x0000003d +					       0x00030005 0x00000047 +					       0x00030006 0x00000052 +					       0x00030007 0x0000005c>;  			#thermal-sensor-cells = <1>;  		}; @@ -725,7 +729,7 @@  			status = "disabled";  		}; -		wdog0: wdog@2ad0000 { +		wdog0: watchdog@2ad0000 {  			compatible = "fsl,ls1043a-wdt", "fsl,imx21-wdt";  			reg = <0x0 0x2ad0000 0x0 0x10000>;  			interrupts = <0 83 0x4>; @@ -750,7 +754,7 @@  				 <&clockgen 4 0>;  		}; -		usb0: usb3@2f00000 { +		usb0: usb@2f00000 {  			compatible = "snps,dwc3";  			reg = <0x0 0x2f00000 0x0 0x10000>;  			interrupts = <0 60 0x4>; @@ -761,7 +765,7 @@  			status = "disabled";  		}; -		usb1: usb3@3000000 { +		usb1: usb@3000000 {  			compatible = "snps,dwc3";  			reg = <0x0 0x3000000 0x0 0x10000>;  			interrupts = <0 61 0x4>; @@ -772,7 +776,7 @@  			status = "disabled";  		}; -		usb2: usb3@3100000 { +		usb2: usb@3100000 {  			compatible = "snps,dwc3";  			reg = <0x0 0x3100000 0x0 0x10000>;  			interrupts = <0 63 0x4>; diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi index 1fa39bacff4b..025e1f587662 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi @@ -400,45 +400,49 @@  			compatible = "fsl,qoriq-tmu";  			reg = <0x0 0x1f00000 0x0 0x10000>;  			interrupts = <0 33 0x4>; -			fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>; +			fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x70062>;  			fsl,tmu-calibration =  				/* Calibration data group 1 */ -				<0x00000000 0x00000026 -				0x00000001 0x0000002d -				0x00000002 0x00000032 -				0x00000003 0x00000039 -				0x00000004 0x0000003f -				0x00000005 0x00000046 -				0x00000006 0x0000004d -				0x00000007 0x00000054 -				0x00000008 0x0000005a -				0x00000009 0x00000061 -				0x0000000a 0x0000006a -				0x0000000b 0x00000071 +				<0x00000000 0x00000023 +				0x00000001 0x00000029 +				0x00000002 0x0000002f +				0x00000003 0x00000036 +				0x00000004 0x0000003c +				0x00000005 0x00000042 +				0x00000006 0x00000049 +				0x00000007 0x0000004f +				0x00000008 0x00000055 +				0x00000009 0x0000005c +				0x0000000a 0x00000062 +				0x0000000b 0x00000068  				/* Calibration data group 2 */ -				0x00010000 0x00000025 -				0x00010001 0x0000002c -				0x00010002 0x00000035 -				0x00010003 0x0000003d -				0x00010004 0x00000045 -				0x00010005 0x0000004e -				0x00010006 0x00000057 -				0x00010007 0x00000061 -				0x00010008 0x0000006b -				0x00010009 0x00000076 +				0x00010000 0x00000022 +				0x00010001 0x0000002a +				0x00010002 0x00000032 +				0x00010003 0x0000003a +				0x00010004 0x00000042 +				0x00010005 0x0000004a +				0x00010006 0x00000052 +				0x00010007 0x0000005a +				0x00010008 0x00000062 +				0x00010009 0x0000006a  				/* Calibration data group 3 */ -				0x00020000 0x00000029 -				0x00020001 0x00000033 -				0x00020002 0x0000003d -				0x00020003 0x00000049 -				0x00020004 0x00000056 -				0x00020005 0x00000061 -				0x00020006 0x0000006d +				0x00020000 0x00000021 +				0x00020001 0x0000002b +				0x00020002 0x00000035 +				0x00020003 0x0000003e +				0x00020004 0x00000048 +				0x00020005 0x00000052 +				0x00020006 0x0000005c  				/* Calibration data group 4 */ -				0x00030000 0x00000021 -				0x00030001 0x0000002a -				0x00030002 0x0000003c -				0x00030003 0x0000004e>; +				0x00030000 0x00000011 +				0x00030001 0x0000001a +				0x00030002 0x00000024 +				0x00030003 0x0000002e +				0x00030004 0x00000038 +				0x00030005 0x00000042 +				0x00030006 0x0000004c +				0x00030007 0x00000056>;  			big-endian;  			#thermal-sensor-cells = <1>;  		}; diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts index 5633e59febc3..528ec72d0b83 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts @@ -17,6 +17,113 @@  	compatible = "fsl,ls1088a-rdb", "fsl,ls1088a";  }; +&dpmac2 { +	phy-handle = <&mdio2_aquantia_phy>; +	phy-connection-type = "10gbase-r"; +	pcs-handle = <&pcs2>; +}; + +&dpmac3 { +	phy-handle = <&mdio1_phy5>; +	phy-connection-type = "qsgmii"; +	managed = "in-band-status"; +	pcs-handle = <&pcs3_0>; +}; + +&dpmac4 { +	phy-handle = <&mdio1_phy6>; +	phy-connection-type = "qsgmii"; +	managed = "in-band-status"; +	pcs-handle = <&pcs3_1>; +}; + +&dpmac5 { +	phy-handle = <&mdio1_phy7>; +	phy-connection-type = "qsgmii"; +	managed = "in-band-status"; +	pcs-handle = <&pcs3_2>; +}; + +&dpmac6 { +	phy-handle = <&mdio1_phy8>; +	phy-connection-type = "qsgmii"; +	managed = "in-band-status"; +	pcs-handle = <&pcs3_3>; +}; + +&dpmac7 { +	phy-handle = <&mdio1_phy1>; +	phy-connection-type = "qsgmii"; +	managed = "in-band-status"; +	pcs-handle = <&pcs7_0>; +}; + +&dpmac8 { +	phy-handle = <&mdio1_phy2>; +	phy-connection-type = "qsgmii"; +	managed = "in-band-status"; +	pcs-handle = <&pcs7_1>; +}; + +&dpmac9 { +	phy-handle = <&mdio1_phy3>; +	phy-connection-type = "qsgmii"; +	managed = "in-band-status"; +	pcs-handle = <&pcs7_2>; +}; + +&dpmac10 { +	phy-handle = <&mdio1_phy4>; +	phy-connection-type = "qsgmii"; +	managed = "in-band-status"; +	pcs-handle = <&pcs7_3>; +}; + +&emdio1 { +	status = "okay"; + +	mdio1_phy5: ethernet-phy@c { +		reg = <0xc>; +	}; + +	mdio1_phy6: ethernet-phy@d { +		reg = <0xd>; +	}; + +	mdio1_phy7: ethernet-phy@e { +		reg = <0xe>; +	}; + +	mdio1_phy8: ethernet-phy@f { +		reg = <0xf>; +	}; + +	mdio1_phy1: ethernet-phy@1c { +		reg = <0x1c>; +	}; + +	mdio1_phy2: ethernet-phy@1d { +		reg = <0x1d>; +	}; + +	mdio1_phy3: ethernet-phy@1e { +		reg = <0x1e>; +	}; + +	mdio1_phy4: ethernet-phy@1f { +		reg = <0x1f>; +	}; +}; + +&emdio2 { +	status = "okay"; + +	mdio2_aquantia_phy: ethernet-phy@0 { +		compatible = "ethernet-phy-ieee802.3-c45"; +		reg = <0x0>; +	}; +}; +  &i2c0 {  	status = "okay"; @@ -87,6 +194,18 @@  	status = "okay";  }; +&pcs_mdio2 { +	status = "okay"; +}; + +&pcs_mdio3 { +	status = "okay"; +}; + +&pcs_mdio7 { +	status = "okay"; +}; +  &qspi {  	status = "okay"; diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi index ff5805206a28..cfd341ee48bf 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi @@ -420,7 +420,7 @@  			status = "disabled";  		}; -		usb0: usb3@3100000 { +		usb0: usb@3100000 {  			compatible = "snps,dwc3";  			reg = <0x0 0x3100000 0x0 0x10000>;  			interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>; @@ -431,7 +431,7 @@  			status = "disabled";  		}; -		usb1: usb3@3110000 { +		usb1: usb@3110000 {  			compatible = "snps,dwc3";  			reg = <0x0 0x3110000 0x0 0x10000>;  			interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>; @@ -517,6 +517,17 @@  			status = "disabled";  		}; +		pcie_ep1: pcie-ep@3400000 { +			compatible = "fsl,ls1088a-pcie-ep", "fsl,ls-pcie-ep"; +			reg = <0x00 0x03400000 0x0 0x00100000 +			       0x20 0x00000000 0x8 0x00000000>; +			reg-names = "regs", "addr_space"; +			num-ib-windows = <24>; +			num-ob-windows = <256>; +			max-functions = /bits/ 8 <2>; +			status = "disabled"; +		}; +  		pcie2: pcie@3500000 {  			compatible = "fsl,ls1088a-pcie";  			reg = <0x00 0x03500000 0x0 0x00100000   /* controller registers */ @@ -543,6 +554,16 @@  			status = "disabled";  		}; +		pcie_ep2: pcie-ep@3500000 { +			compatible = "fsl,ls1088a-pcie-ep", "fsl,ls-pcie-ep"; +			reg = <0x00 0x03500000 0x0 0x00100000 +			       0x28 0x00000000 0x8 0x00000000>; +			reg-names = "regs", "addr_space"; +			num-ib-windows = <6>; +			num-ob-windows = <6>; +			status = "disabled"; +		}; +  		pcie3: pcie@3600000 {  			compatible = "fsl,ls1088a-pcie";  			reg = <0x00 0x03600000 0x0 0x00100000   /* controller registers */ @@ -569,6 +590,16 @@  			status = "disabled";  		}; +		pcie_ep3: pcie-ep@3600000 { +			compatible = "fsl,ls1088a-pcie-ep", "fsl,ls-pcie-ep"; +			reg = <0x00 0x03600000 0x0 0x00100000 +			       0x30 0x00000000 0x8 0x00000000>; +			reg-names = "regs", "addr_space"; +			num-ib-windows = <6>; +			num-ob-windows = <6>; +			status = "disabled"; +		}; +  		smmu: iommu@5000000 {  			compatible = "arm,mmu-500";  			reg = <0 0x5000000 0 0x800000>; @@ -672,6 +703,87 @@  			fsl,extts-fifo;  		}; +		emdio1: mdio@8b96000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8b96000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; +		}; + +		emdio2: mdio@8b97000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8b97000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; +		}; + +		pcs_mdio2: mdio@8c0b000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c0b000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs2: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio3: mdio@8c0f000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c0f000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs3_0: ethernet-phy@0 { +				reg = <0>; +			}; + +			pcs3_1: ethernet-phy@1 { +				reg = <1>; +			}; + +			pcs3_2: ethernet-phy@2 { +				reg = <2>; +			}; + +			pcs3_3: ethernet-phy@3 { +				reg = <3>; +			}; +		}; + +		pcs_mdio7: mdio@8c1f000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c1f000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs7_0: ethernet-phy@0 { +				reg = <0>; +			}; + +			pcs7_1: ethernet-phy@1 { +				reg = <1>; +			}; + +			pcs7_2: ethernet-phy@2 { +				reg = <2>; +			}; + +			pcs7_3: ethernet-phy@3 { +				reg = <3>; +			}; +		}; +  		cluster1_core0_watchdog: wdt@c000000 {  			compatible = "arm,sp805-wdt", "arm,primecell";  			reg = <0x0 0xc000000 0x0 0x1000>; @@ -749,52 +861,52 @@  				#address-cells = <1>;  				#size-cells = <0>; -				dpmac1: dpmac@1 { +				dpmac1: ethernet@1 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <1>;  				}; -				dpmac2: dpmac@2 { +				dpmac2: ethernet@2 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <2>;  				}; -				dpmac3: dpmac@3 { +				dpmac3: ethernet@3 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <3>;  				}; -				dpmac4: dpmac@4 { +				dpmac4: ethernet@4 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <4>;  				}; -				dpmac5: dpmac@5 { +				dpmac5: ethernet@5 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <5>;  				}; -				dpmac6: dpmac@6 { +				dpmac6: ethernet@6 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <6>;  				}; -				dpmac7: dpmac@7 { +				dpmac7: ethernet@7 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <7>;  				}; -				dpmac8: dpmac@8 { +				dpmac8: ethernet@8 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <8>;  				}; -				dpmac9: dpmac@9 { +				dpmac9: ethernet@9 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <9>;  				}; -				dpmac10: dpmac@a { +				dpmac10: ethernet@a {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xa>;  				}; diff --git a/arch/arm64/boot/dts/freescale/fsl-ls2088a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls2088a-rdb.dts index f6b4d75a258b..60563917be44 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls2088a-rdb.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls2088a-rdb.dts @@ -22,3 +22,123 @@  		stdout-path = "serial1:115200n8";  	};  }; + +&dpmac1 { +	phy-handle = <&mdio1_phy1>; +	phy-connection-type = "10gbase-r"; +}; + +&dpmac2 { +	phy-handle = <&mdio1_phy2>; +	phy-connection-type = "10gbase-r"; +}; + +&dpmac3 { +	phy-handle = <&mdio1_phy3>; +	phy-connection-type = "10gbase-r"; +}; + +&dpmac4 { +	phy-handle = <&mdio1_phy4>; +	phy-connection-type = "10gbase-r"; +}; + +&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 = "okay"; + +	mdio1_phy1: ethernet-phy@10 { +		compatible = "ethernet-phy-id13e5.1002"; +		reg = <0x10>; +	}; + +	mdio1_phy2: ethernet-phy@11 { +		compatible = "ethernet-phy-id13e5.1002"; +		reg = <0x11>; +	}; + +	mdio1_phy3: ethernet-phy@12 { +		compatible = "ethernet-phy-id13e5.1002"; +		reg = <0x12>; +	}; + +	mdio1_phy4: ethernet-phy@13 { +		compatible = "ethernet-phy-id13e5.1002"; +		reg = <0x13>; +	}; +}; + +&emdio2 { +	status = "okay"; + +	mdio2_phy1: ethernet-phy@0 { +		compatible = "ethernet-phy-id03a1.b4b0", "ethernet-phy-ieee802.3-c45"; +		reg = <0x0>; +	}; + +	mdio2_phy2: ethernet-phy@1 { +		compatible = "ethernet-phy-id03a1.b4b0", "ethernet-phy-ieee802.3-c45"; +		reg = <0x1>; +	}; + +	mdio2_phy3: ethernet-phy@2 { +		compatible = "ethernet-phy-id03a1.b4b0", "ethernet-phy-ieee802.3-c45"; +		reg = <0x2>; +	}; + +	mdio2_phy4: ethernet-phy@3 { +		compatible = "ethernet-phy-id03a1.b4b0", "ethernet-phy-ieee802.3-c45"; +		reg = <0x3>; +	}; +}; + +&pcs_mdio1 { +	status = "okay"; +}; + +&pcs_mdio2 { +	status = "okay"; +}; + +&pcs_mdio3 { +	status = "okay"; +}; + +&pcs_mdio4 { +	status = "okay"; +}; + +&pcs_mdio5 { +	status = "okay"; +}; + +&pcs_mdio6 { +	status = "okay"; +}; + +&pcs_mdio7 { +	status = "okay"; +}; + +&pcs_mdio8 { +	status = "okay"; +}; diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi index bf72918fe545..02ad16b1bfe3 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi @@ -458,6 +458,232 @@  			fsl,extts-fifo;  		}; +		emdio1: mdio@8b96000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8b96000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; +		}; + +		emdio2: mdio@8b97000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8b97000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; +		}; + +		pcs_mdio1: mdio@8c07000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c07000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs1: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio2: mdio@8c0b000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c0b000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs2: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio3: mdio@8c0f000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c0f000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs3: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio4: mdio@8c13000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c13000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs4: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio5: mdio@8c17000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c17000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs5: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio6: mdio@8c1b000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c1b000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs6: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio7: mdio@8c1f000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c1f000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs7: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio8: mdio@8c23000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c23000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs8: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio9: mdio@8c27000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c27000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs9: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio10: mdio@8c2b000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c2b000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs10: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio11: mdio@8c2f000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c2f000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs11: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio12: mdio@8c33000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c33000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs12: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio13: mdio@8c37000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c37000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs13: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio14: mdio@8c3b000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c3b000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs14: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio15: mdio@8c3f000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c3f000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs15: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio16: mdio@8c43000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c43000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs16: ethernet-phy@0 { +				reg = <0>; +			}; +		}; +  		fsl_mc: fsl-mc@80c000000 {  			compatible = "fsl,qoriq-mc";  			reg = <0x00000008 0x0c000000 0 0x40>,	 /* MC portal base */ @@ -482,84 +708,100 @@  				#address-cells = <1>;  				#size-cells = <0>; -				dpmac1: dpmac@1 { +				dpmac1: ethernet@1 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x1>; +					pcs-handle = <&pcs1>;  				}; -				dpmac2: dpmac@2 { +				dpmac2: ethernet@2 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x2>; +					pcs-handle = <&pcs2>;  				}; -				dpmac3: dpmac@3 { +				dpmac3: ethernet@3 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x3>; +					pcs-handle = <&pcs3>;  				}; -				dpmac4: dpmac@4 { +				dpmac4: ethernet@4 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x4>; +					pcs-handle = <&pcs4>;  				}; -				dpmac5: dpmac@5 { +				dpmac5: ethernet@5 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x5>; +					pcs-handle = <&pcs5>;  				}; -				dpmac6: dpmac@6 { +				dpmac6: ethernet@6 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x6>; +					pcs-handle = <&pcs6>;  				}; -				dpmac7: dpmac@7 { +				dpmac7: ethernet@7 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x7>; +					pcs-handle = <&pcs7>;  				}; -				dpmac8: dpmac@8 { +				dpmac8: ethernet@8 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x8>; +					pcs-handle = <&pcs8>;  				}; -				dpmac9: dpmac@9 { +				dpmac9: ethernet@9 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x9>; +					pcs-handle = <&pcs9>;  				}; -				dpmac10: dpmac@a { +				dpmac10: ethernet@a {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xa>; +					pcs-handle = <&pcs10>;  				}; -				dpmac11: dpmac@b { +				dpmac11: ethernet@b {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xb>; +					pcs-handle = <&pcs11>;  				}; -				dpmac12: dpmac@c { +				dpmac12: ethernet@c {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xc>; +					pcs-handle = <&pcs12>;  				}; -				dpmac13: dpmac@d { +				dpmac13: ethernet@d {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xd>; +					pcs-handle = <&pcs13>;  				}; -				dpmac14: dpmac@e { +				dpmac14: ethernet@e {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xe>; +					pcs-handle = <&pcs14>;  				}; -				dpmac15: dpmac@f { +				dpmac15: ethernet@f {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xf>; +					pcs-handle = <&pcs15>;  				}; -				dpmac16: dpmac@10 { +				dpmac16: ethernet@10 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x10>; +					pcs-handle = <&pcs16>;  				};  			};  		}; @@ -860,7 +1102,7 @@  			dma-coherent;  		}; -		usb0: usb3@3100000 { +		usb0: usb@3100000 {  			status = "disabled";  			compatible = "snps,dwc3";  			reg = <0x0 0x3100000 0x0 0x10000>; @@ -871,7 +1113,7 @@  			snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;  		}; -		usb1: usb3@3110000 { +		usb1: usb@3110000 {  			status = "disabled";  			compatible = "snps,dwc3";  			reg = <0x0 0x3110000 0x0 0x10000>; diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts index 54fe8cd3a711..7723ad5efd37 100644 --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts @@ -35,6 +35,18 @@  	status = "okay";  }; +&dpmac3 { +	phy-handle = <&aquantia_phy1>; +	phy-connection-type = "usxgmii"; +	managed = "in-band-status"; +}; + +&dpmac4 { +	phy-handle = <&aquantia_phy2>; +	phy-connection-type = "usxgmii"; +	managed = "in-band-status"; +}; +  &dpmac17 {  	phy-handle = <&rgmii_phy1>;  	phy-connection-type = "rgmii-id"; @@ -61,6 +73,18 @@  		reg = <0x2>;  		eee-broken-1000t;  	}; + +	aquantia_phy1: ethernet-phy@4 { +		/* AQR107 PHY */ +		compatible = "ethernet-phy-ieee802.3-c45"; +		reg = <0x4>; +	}; + +	aquantia_phy2: ethernet-phy@5 { +		/* AQR107 PHY */ +		compatible = "ethernet-phy-ieee802.3-c45"; +		reg = <0x5>; +	};  };  &esdhc0 { @@ -156,6 +180,14 @@  	};  }; +&pcs_mdio3 { +	status = "okay"; +}; + +&pcs_mdio4 { +	status = "okay"; +}; +  &sata0 {  	status = "okay";  }; diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi index 83072da6f6c6..197397777c83 100644 --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi @@ -1305,6 +1305,240 @@  			status = "disabled";  		}; +		pcs_mdio1: mdio@8c07000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c07000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs1: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio2: mdio@8c0b000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c0b000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs2: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio3: mdio@8c0f000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c0f000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs3: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio4: mdio@8c13000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c13000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs4: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio5: mdio@8c17000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c17000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs5: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio6: mdio@8c1b000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c1b000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs6: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio7: mdio@8c1f000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c1f000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs7: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio8: mdio@8c23000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c23000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs8: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio9: mdio@8c27000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c27000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs9: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio10: mdio@8c2b000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c2b000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs10: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio11: mdio@8c2f000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c2f000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs11: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio12: mdio@8c33000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c33000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs12: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio13: mdio@8c37000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c37000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs13: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio14: mdio@8c3b000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c3b000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs14: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio15: mdio@8c3f000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c3f000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs15: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio16: mdio@8c43000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c43000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs16: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio17: mdio@8c47000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c47000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs17: ethernet-phy@0 { +				reg = <0>; +			}; +		}; + +		pcs_mdio18: mdio@8c4b000 { +			compatible = "fsl,fman-memac-mdio"; +			reg = <0x0 0x8c4b000 0x0 0x1000>; +			little-endian; +			#address-cells = <1>; +			#size-cells = <0>; +			status = "disabled"; + +			pcs18: ethernet-phy@0 { +				reg = <0>; +			}; +		}; +  		fsl_mc: fsl-mc@80c000000 {  			compatible = "fsl,qoriq-mc";  			reg = <0x00000008 0x0c000000 0 0x40>, @@ -1330,94 +1564,112 @@  				#address-cells = <1>;  				#size-cells = <0>; -				dpmac1: dpmac@1 { +				dpmac1: ethernet@1 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x1>; +					pcs-handle = <&pcs1>;  				}; -				dpmac2: dpmac@2 { +				dpmac2: ethernet@2 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x2>; +					pcs-handle = <&pcs2>;  				}; -				dpmac3: dpmac@3 { +				dpmac3: ethernet@3 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x3>; +					pcs-handle = <&pcs3>;  				}; -				dpmac4: dpmac@4 { +				dpmac4: ethernet@4 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x4>; +					pcs-handle = <&pcs4>;  				}; -				dpmac5: dpmac@5 { +				dpmac5: ethernet@5 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x5>; +					pcs-handle = <&pcs5>;  				}; -				dpmac6: dpmac@6 { +				dpmac6: ethernet@6 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x6>; +					pcs-handle = <&pcs6>;  				}; -				dpmac7: dpmac@7 { +				dpmac7: ethernet@7 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x7>; +					pcs-handle = <&pcs7>;  				}; -				dpmac8: dpmac@8 { +				dpmac8: ethernet@8 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x8>; +					pcs-handle = <&pcs8>;  				}; -				dpmac9: dpmac@9 { +				dpmac9: ethernet@9 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x9>; +					pcs-handle = <&pcs9>;  				}; -				dpmac10: dpmac@a { +				dpmac10: ethernet@a {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xa>; +					pcs-handle = <&pcs10>;  				}; -				dpmac11: dpmac@b { +				dpmac11: ethernet@b {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xb>; +					pcs-handle = <&pcs11>;  				}; -				dpmac12: dpmac@c { +				dpmac12: ethernet@c {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xc>; +					pcs-handle = <&pcs12>;  				}; -				dpmac13: dpmac@d { +				dpmac13: ethernet@d {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xd>; +					pcs-handle = <&pcs13>;  				}; -				dpmac14: dpmac@e { +				dpmac14: ethernet@e {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xe>; +					pcs-handle = <&pcs14>;  				}; -				dpmac15: dpmac@f { +				dpmac15: ethernet@f {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0xf>; +					pcs-handle = <&pcs15>;  				}; -				dpmac16: dpmac@10 { +				dpmac16: ethernet@10 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x10>; +					pcs-handle = <&pcs16>;  				}; -				dpmac17: dpmac@11 { +				dpmac17: ethernet@11 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x11>; +					pcs-handle = <&pcs17>;  				}; -				dpmac18: dpmac@12 { +				dpmac18: ethernet@12 {  					compatible = "fsl,qoriq-mc-dpmac";  					reg = <0x12>; +					pcs-handle = <&pcs18>;  				};  			};  		}; diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2162a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-lx2162a-qds.dts new file mode 100644 index 000000000000..91786848bd30 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/fsl-lx2162a-qds.dts @@ -0,0 +1,334 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +// +// Device Tree file for LX2162AQDS +// +// Copyright 2020 NXP + +/dts-v1/; + +#include "fsl-lx2160a.dtsi" + +/ { +	model = "NXP Layerscape LX2162AQDS"; +	compatible = "fsl,lx2162a-qds", "fsl,lx2160a"; + +	aliases { +		crypto = &crypto; +		serial0 = &uart0; +	}; + +	chosen { +		stdout-path = "serial0:115200n8"; +	}; + +	sb_3v3: regulator-sb3v3 { +		compatible = "regulator-fixed"; +		regulator-name = "LTM4619-3.3VSB"; +		regulator-min-microvolt = <3300000>; +		regulator-max-microvolt = <3300000>; +	}; + +	mdio-mux-1 { +		compatible = "mdio-mux-multiplexer"; +		mux-controls = <&mux 0>; +		mdio-parent-bus = <&emdio1>; +		#address-cells=<1>; +		#size-cells = <0>; + +		mdio@0 { /* On-board RTL8211F PHY #1 RGMII1 */ +			reg = <0x00>; +			#address-cells = <1>; +			#size-cells = <0>; + +			rgmii_phy1: ethernet-phy@1 { +				compatible = "ethernet-phy-id001c.c916"; +				reg = <0x1>; +				eee-broken-1000t; +			}; +		}; + +		mdio@8 { /* On-board RTL8211F PHY #2 RGMII2 */ +			reg = <0x8>; +			#address-cells = <1>; +			#size-cells = <0>; + +			rgmii_phy2: ethernet-phy@2 { +				compatible = "ethernet-phy-id001c.c916"; +				reg = <0x2>; +				eee-broken-1000t; +			}; +		}; + +		mdio@18 { /* Slot #1 */ +			reg = <0x18>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@19 { /* Slot #2 */ +			reg = <0x19>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@1a { /* Slot #3 */ +			reg = <0x1a>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@1b { /* Slot #4 */ +			reg = <0x1b>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@1c { /* Slot #5 */ +			reg = <0x1c>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@1d { /* Slot #6 */ +			reg = <0x1d>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@1e { /* Slot #7 */ +			reg = <0x1e>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@1f { /* Slot #8 */ +			reg = <0x1f>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; +	}; + +	mdio-mux-2 { +		compatible = "mdio-mux-multiplexer"; +		mux-controls = <&mux 1>; +		mdio-parent-bus = <&emdio2>; +		#address-cells=<1>; +		#size-cells = <0>; + +		mdio@0 { /* Slot #1 (secondary EMI) */ +			reg = <0x00>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@1 { /* Slot #2 (secondary EMI) */ +			reg = <0x01>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@2 { /* Slot #3 (secondary EMI) */ +			reg = <0x02>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@3 { /* Slot #4 (secondary EMI) */ +			reg = <0x03>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@4 { /* Slot #5 (secondary EMI) */ +			reg = <0x04>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@5 { /* Slot #6 (secondary EMI) */ +			reg = <0x05>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@6 { /* Slot #7 (secondary EMI) */ +			reg = <0x06>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; + +		mdio@7 { /* Slot #8 (secondary EMI) */ +			reg = <0x07>; +			#address-cells = <1>; +			#size-cells = <0>; +		}; +	}; +}; + +&crypto { +	status = "okay"; +}; + +&dpmac17 { +	phy-handle = <&rgmii_phy1>; +	phy-connection-type = "rgmii-id"; +}; + +&dpmac18 { +	phy-handle = <&rgmii_phy2>; +	phy-connection-type = "rgmii-id"; +}; + +&dspi0 { +	status = "okay"; + +	dflash0: flash@0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "jedec,spi-nor"; +		reg = <0>; +		spi-max-frequency = <1000000>; +	}; +}; + +&dspi1 { +	status = "okay"; + +	dflash1: flash@0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "jedec,spi-nor"; +		reg = <0>; +		spi-max-frequency = <1000000>; +	}; +}; + +&dspi2 { +	status = "okay"; + +	dflash2: flash@0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "jedec,spi-nor"; +		reg = <0>; +		spi-max-frequency = <1000000>; +	}; +}; + +&emdio1 { +	status = "okay"; +}; + +&emdio2 { +	status = "okay"; +}; + +&esdhc0 { +	status = "okay"; +}; + +&esdhc1 { +	status = "okay"; +}; + +&fspi { +	status = "okay"; + +	mt35xu512aba0: flash@0 { +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "jedec,spi-nor"; +		m25p,fast-read; +		spi-max-frequency = <50000000>; +		reg = <0>; +		spi-rx-bus-width = <8>; +		spi-tx-bus-width = <8>; +	}; +}; + +&i2c0 { +	status = "okay"; + +	fpga@66 { +		compatible = "fsl,lx2160aqds-fpga", "fsl,fpga-qixis-i2c", +			     "simple-mfd"; +		reg = <0x66>; + +		mux: mux-controller { +			compatible = "reg-mux"; +			#mux-control-cells = <1>; +			mux-reg-masks = <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */ +					<0x54 0x07>; /* 1: reg 0x54, bit 2:0 */ +		}; +	}; + +	i2c-mux@77 { +		compatible = "nxp,pca9547"; +		reg = <0x77>; +		#address-cells = <1>; +		#size-cells = <0>; + +		i2c@2 { +			#address-cells = <1>; +			#size-cells = <0>; +			reg = <0x2>; + +			power-monitor@40 { +				compatible = "ti,ina220"; +				reg = <0x40>; +				shunt-resistor = <500>; +			}; + +			power-monitor@41 { +				compatible = "ti,ina220"; +				reg = <0x41>; +				shunt-resistor = <1000>; +			}; +		}; + +		i2c@3 { +			#address-cells = <1>; +			#size-cells = <0>; +			reg = <0x3>; + +			temperature-sensor@4c { +				compatible = "nxp,sa56004"; +				reg = <0x4c>; +				vcc-supply = <&sb_3v3>; +			}; + +			rtc@51 { +				compatible = "nxp,pcf2129"; +				reg = <0x51>; +			}; +		}; +	}; +}; + +&sata0 { +	status = "okay"; +}; + +&sata1 { +	status = "okay"; +}; + +&sata2 { +	status = "okay"; +}; + +&sata3 { +	status = "okay"; +}; + +&uart0 { +	status = "okay"; +}; + +&uart1 { +	status = "okay"; +}; + +&usb0 { +	status = "okay"; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi index 6de86a4f0ec4..c14add99bfa4 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi @@ -4,6 +4,11 @@   */  / { +	aliases { +		rtc0 = &rtc; +		rtc1 = &snvs_rtc; +	}; +  	usdhc1_pwrseq: usdhc1_pwrseq {  		compatible = "mmc-pwrseq-simple";  		pinctrl-names = "default"; @@ -24,6 +29,18 @@  	cpu-supply = <&buck2_reg>;  }; +&A53_1 { +	cpu-supply = <&buck2_reg>; +}; + +&A53_2 { +	cpu-supply = <&buck2_reg>; +}; + +&A53_3 { +	cpu-supply = <&buck2_reg>; +}; +  &ddrc {  	operating-points-v2 = <&ddrc_opp_table>; @@ -63,6 +80,22 @@  	};  }; +&flexspi { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_flexspi>; +	status = "okay"; + +	flash@0 { +		reg = <0>; +		#address-cells = <1>; +		#size-cells = <1>; +		compatible = "jedec,spi-nor"; +		spi-max-frequency = <80000000>; +		spi-tx-bus-width = <4>; +		spi-rx-bus-width = <4>; +	}; +}; +  &i2c1 {  	clock-frequency = <400000>;  	pinctrl-names = "default"; @@ -77,6 +110,10 @@  		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;  		rohm,reset-snvs-powered; +		#clock-cells = <0>; +		clocks = <&osc_32k 0>; +		clock-output-names = "clk-32k-out"; +  		regulators {  			buck1_reg: BUCK1 {  				regulator-name = "buck1"; @@ -190,7 +227,7 @@  		reg = <0x50>;  	}; -	rtc@51 { +	rtc: rtc@51 {  		compatible = "nxp,pcf85263";  		reg = <0x51>;  	}; @@ -256,155 +293,166 @@  };  &iomuxc { -		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_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_i2c1: i2c1grp { -			fsl,pins = < -				MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL		0x400001c3 -				MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA		0x400001c3 -			>; -		}; +	pinctrl_i2c1: i2c1grp { +		fsl,pins = < +			MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL		0x400001c3 +			MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA		0x400001c3 +		>; +	}; -		pinctrl_i2c3: i2c3grp { -			fsl,pins = < -				MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL		0x400001c3 -				MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA		0x400001c3 -			>; -		}; +	pinctrl_i2c3: i2c3grp { +		fsl,pins = < +			MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL		0x400001c3 +			MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA		0x400001c3 +		>; +	}; -		pinctrl_pmic: pmicirqgrp { -			fsl,pins = < -				MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3	0x141 -			>; -		}; +	pinctrl_flexspi: flexspigrp { +		fsl,pins = < +			MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK               0x1c2 +			MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B            0x82 +			MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0           0x82 +			MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1           0x82 +			MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2           0x82 +			MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3           0x82 +		>; +	}; -		pinctrl_uart1: uart1grp { -			fsl,pins = < -				MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX	0x140 -				MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX	0x140 -				MX8MM_IOMUXC_UART3_RXD_UART1_DCE_CTS_B	0x140 -				MX8MM_IOMUXC_UART3_TXD_UART1_DCE_RTS_B	0x140 -				MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6	0x19 -				MX8MM_IOMUXC_SD1_DATA5_GPIO2_IO7	0x19 -				MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8	0x19 -				MX8MM_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K	0x141 -			>; -		}; +	pinctrl_pmic: pmicirqgrp { +		fsl,pins = < +			MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3	0x141 +		>; +	}; -		pinctrl_usdhc1_gpio: usdhc1gpiogrp { -			fsl,pins = < -				MX8MM_IOMUXC_SD1_RESET_B_GPIO2_IO10	0x41 -			>; -		}; +	pinctrl_uart1: uart1grp { +		fsl,pins = < +			MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX	0x140 +			MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX	0x140 +			MX8MM_IOMUXC_UART3_RXD_UART1_DCE_CTS_B	0x140 +			MX8MM_IOMUXC_UART3_TXD_UART1_DCE_RTS_B	0x140 +			MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6	0x19 +			MX8MM_IOMUXC_SD1_DATA5_GPIO2_IO7	0x19 +			MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8	0x19 +			MX8MM_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K	0x141 +		>; +	}; -		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 -			>; -		}; +	pinctrl_usdhc1_gpio: usdhc1gpiogrp { +		fsl,pins = < +			MX8MM_IOMUXC_SD1_RESET_B_GPIO2_IO10	0x41 +		>; +	}; -		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 -			>; -		}; +	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 +		>; +	}; -		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 -			>; -		}; +	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 +		>; +	}; -		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_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 +		>; +	}; -		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: 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_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_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_wdog: wdoggrp { -			fsl,pins = < -				MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B		0xc6 -			>; -		}; +	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_wlan: wlangrp { -			fsl,pins = < -				MX8MM_IOMUXC_SD1_DATA7_GPIO2_IO9		0x111 -			>; -		}; +	pinctrl_wdog: wdoggrp { +		fsl,pins = < +			MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B		0x166 +		>; +	}; + +	pinctrl_wlan: wlangrp { +		fsl,pins = < +			MX8MM_IOMUXC_SD1_DATA7_GPIO2_IO9		0x111 +		>; +	};  }; diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi index f305a530ff6f..8c5aa2d8f4a0 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi @@ -41,6 +41,14 @@  		enable-active-high;  	}; +	ir-receiver { +		compatible = "gpio-ir-receiver"; +		gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; +		pinctrl-names = "default"; +		pinctrl-0 = <&pinctrl_ir>; +		linux,autosuspend-period = <125>; +	}; +  	wm8524: audio-codec {  		#sound-dai-cells = <0>;  		compatible = "wlf,wm8524"; @@ -363,6 +371,12 @@  		>;  	}; +	pinctrl_ir: irgrp { +		fsl,pins = < +			MX8MM_IOMUXC_GPIO1_IO13_GPIO1_IO13              0x4f +		>; +	}; +  	pinctrl_gpio_wlf: gpiowlfgrp {  		fsl,pins = <  			MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21	0xd6 @@ -468,7 +482,7 @@  	pinctrl_wdog: wdoggrp {  		fsl,pins = < -			MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0xc6 +			MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0x166  		>;  	};  }; diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts new file mode 100644 index 000000000000..d17abb515835 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts @@ -0,0 +1,322 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* + * Copyright (C) 2019 Kontron Electronics GmbH + */ + +/dts-v1/; + +#include "imx8mm-kontron-n801x-som.dtsi" + +/ { +	model = "Kontron i.MX8MM N801X S"; +	compatible = "kontron,imx8mm-n801x-s", "kontron,imx8mm-n801x-som", "fsl,imx8mm"; + +	aliases { +		ethernet1 = &usbnet; +	}; + +	/* fixed crystal dedicated to mcp2515 */ +	osc_can: clock-osc-can { +		compatible = "fixed-clock"; +		#clock-cells = <0>; +		clock-frequency = <16000000>; +		clock-output-names = "osc-can"; +	}; + +	leds { +		compatible = "gpio-leds"; +		pinctrl-names = "default"; +		pinctrl-0 = <&pinctrl_gpio_led>; + +		led1 { +			label = "led1"; +			gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; +			linux,default-trigger = "heartbeat"; +		}; + +		led2 { +			label = "led2"; +			gpios = <&gpio4 19 GPIO_ACTIVE_LOW>; +		}; + +		led3 { +			label = "led3"; +			gpios = <&gpio4 18 GPIO_ACTIVE_LOW>; +		}; + +		led4 { +			label = "led4"; +			gpios = <&gpio4 8 GPIO_ACTIVE_LOW>; +		}; + +		led5 { +			label = "led5"; +			gpios = <&gpio4 9 GPIO_ACTIVE_LOW>; +		}; + +		led6 { +			label = "led6"; +			gpios = <&gpio4 7 GPIO_ACTIVE_LOW>; +		}; +	}; + +	pwm-beeper { +		compatible = "pwm-beeper"; +		pwms = <&pwm2 0 5000 0>; +	}; + +	reg_rst_eth2: regulator-rst-eth2 { +		compatible = "regulator-fixed"; +		regulator-name = "rst-usb-eth2"; +		pinctrl-names = "default"; +		pinctrl-0 = <&pinctrl_usb_eth2>; +		gpio = <&gpio3 2 GPIO_ACTIVE_LOW>; +	}; + +	reg_vdd_5v: regulator-5v { +		compatible = "regulator-fixed"; +		regulator-name = "vdd-5v"; +		regulator-min-microvolt = <5000000>; +		regulator-max-microvolt = <5000000>; +	}; +}; + +&ecspi2 { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_ecspi2>; +	cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>; +	status = "okay"; + +	can0: can@0 { +		compatible = "microchip,mcp2515"; +		reg = <0>; +		pinctrl-names = "default"; +		pinctrl-0 = <&pinctrl_can>; +		clocks = <&osc_can>; +		interrupt-parent = <&gpio4>; +		interrupts = <28 IRQ_TYPE_EDGE_FALLING>; +		spi-max-frequency = <100000>; +		vdd-supply = <®_vdd_3v3>; +		xceiver-supply = <®_vdd_5v>; +	}; +}; + +&ecspi3 { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_ecspi3>; +	cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>; +	status = "okay"; +}; + +&fec1 { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_enet>; +	phy-connection-type = "rgmii"; +	phy-handle = <ðphy>; +	status = "okay"; + +	mdio { +		#address-cells = <1>; +		#size-cells = <0>; + +		ethphy: ethernet-phy@0 { +			reg = <0>; +			reset-assert-us = <100>; +			reset-deassert-us = <100>; +			reset-gpios = <&gpio4 27 GPIO_ACTIVE_LOW>; +		}; +	}; +}; + +&i2c4 { +	clock-frequency = <100000>; +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_i2c4>; +	status = "okay"; + +	rtc@32 { +		compatible = "epson,rx8900"; +		reg = <0x32>; +	}; +}; + +&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"; +	over-current-active-low; +	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: usbether@1 { +			compatible = "usb424,ec00"; +			reg = <1>; +			local-mac-address = [ 00 00 00 00 00 00 ]; +		}; +	}; +}; + +&usdhc2 { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_usdhc2>; +	vmmc-supply = <®_vdd_3v3>; +	vqmmc-supply = <®_nvcc_sd>; +	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; +	status = "okay"; +}; + +&iomuxc { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_gpio>; + +	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_SAI2_MCLK_GPIO4_IO27		0x19 /* PHY RST */ +			MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25		0x19 /* ETH IRQ */ +		>; +	}; + +	pinctrl_gpio_led: gpioledgrp { +		fsl,pins = < +			MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16		0x19 +			MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7		0x19 +			MX8MM_IOMUXC_SAI1_RXD6_GPIO4_IO8		0x19 +			MX8MM_IOMUXC_SAI1_RXD7_GPIO4_IO9		0x19 +			MX8MM_IOMUXC_SAI1_TXD5_GPIO4_IO17		0x19 +			MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18		0x19 +			MX8MM_IOMUXC_SAI1_TXD7_GPIO4_IO19		0x19 +		>; +	}; + +	pinctrl_gpio: gpiogrp { +		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 +			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_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 +		>; +	}; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi new file mode 100644 index 000000000000..d0456daefda8 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi @@ -0,0 +1,294 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* + * Copyright (C) 2019 Kontron Electronics GmbH + */ + +#include "imx8mm.dtsi" + +/ { +	model = "Kontron i.MX8MM N801X SoM"; +	compatible = "kontron,imx8mm-n801x-som", "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 = <®_vdd_arm>; +}; + +&A53_1 { +	cpu-supply = <®_vdd_arm>; +}; + +&A53_2 { +	cpu-supply = <®_vdd_arm>; +}; + +&A53_3 { +	cpu-supply = <®_vdd_arm>; +}; + +&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>; +		}; +	}; +}; + +&ecspi1 { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_ecspi1>; +	cs-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; +	status = "okay"; + +	spi-flash@0 { +		compatible = "mxicy,mx25r1635f", "jedec,spi-nor"; +		spi-max-frequency = <80000000>; +		reg = <0>; +	}; +}; + +&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 = "buck1"; +				regulator-min-microvolt = <800000>; +				regulator-max-microvolt = <900000>; +				regulator-boot-on; +				regulator-always-on; +				regulator-ramp-delay = <3125>; +			}; + +			reg_vdd_arm: BUCK2 { +				regulator-name = "buck2"; +				regulator-min-microvolt = <850000>; +				regulator-max-microvolt = <950000>; +				regulator-boot-on; +				regulator-ramp-delay = <3125>; +				nxp,dvs-run-voltage = <950000>; +				nxp,dvs-standby-voltage = <850000>; +			}; + +			reg_vdd_dram: BUCK3 { +				regulator-name = "buck3"; +				regulator-min-microvolt = <850000>; +				regulator-max-microvolt = <900000>; +				regulator-boot-on; +				regulator-always-on; +			}; + +			reg_vdd_3v3: BUCK4 { +				regulator-name = "buck4"; +				regulator-min-microvolt = <3300000>; +				regulator-max-microvolt = <3300000>; +				regulator-boot-on; +				regulator-always-on; +			}; + +			reg_vdd_1v8: BUCK5 { +				regulator-name = "buck5"; +				regulator-min-microvolt = <1800000>; +				regulator-max-microvolt = <1800000>; +				regulator-boot-on; +				regulator-always-on; +			}; + +			reg_nvcc_dram: BUCK6 { +				regulator-name = "buck6"; +				regulator-min-microvolt = <1100000>; +				regulator-max-microvolt = <1100000>; +				regulator-boot-on; +				regulator-always-on; +			}; + +			reg_nvcc_snvs: LDO1 { +				regulator-name = "ldo1"; +				regulator-min-microvolt = <1800000>; +				regulator-max-microvolt = <1800000>; +				regulator-boot-on; +				regulator-always-on; +			}; + +			reg_vdd_snvs: LDO2 { +				regulator-name = "ldo2"; +				regulator-min-microvolt = <850000>; +				regulator-max-microvolt = <900000>; +				regulator-boot-on; +				regulator-always-on; +			}; + +			reg_vdda: LDO3 { +				regulator-name = "ldo3"; +				regulator-min-microvolt = <1800000>; +				regulator-max-microvolt = <1800000>; +				regulator-boot-on; +				regulator-always-on; +			}; + +			reg_vdd_phy: LDO4 { +				regulator-name = "ldo4"; +				regulator-min-microvolt = <900000>; +				regulator-max-microvolt = <900000>; +				regulator-boot-on; +				regulator-always-on; +			}; + +			reg_nvcc_sd: LDO5 { +				regulator-name = "ldo5"; +				regulator-min-microvolt = <1800000>; +				regulator-max-microvolt = <3300000>; +			}; +		}; +	}; +}; + +&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 = <®_vdd_3v3>; +	vqmmc-supply = <®_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_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 +		>; +	}; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8mm-var-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-var-som.dtsi index 4107fe914d08..38e879d32560 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-var-som.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-var-som.dtsi @@ -555,7 +555,7 @@  	pinctrl_wdog: wdoggrp {  		fsl,pins = < -			MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0xc6 +			MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0x166  		>;  	};  }; diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi index b83f400def8b..033fee525982 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi @@ -194,16 +194,16 @@  	pmu {  		compatible = "arm,armv8-pmuv3";  		interrupts = <GIC_PPI 7 -			     (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>; +			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;  		interrupt-affinity = <&A53_0>, <&A53_1>, <&A53_2>, <&A53_3>;  	};  	timer {  		compatible = "arm,armv8-timer"; -		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Secure */ -			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Non-Secure */ -			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, /* Virtual */ -			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; /* Hypervisor */ +		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Secure */ +			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Non-Secure */ +			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, /* Virtual */ +			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; /* Hypervisor */  		clock-frequency = <8000000>;  		arm,no-tick-in-suspend;  	}; @@ -339,6 +339,49 @@  				status = "disabled";  			}; +			micfil: audio-controller@30080000 { +				compatible = "fsl,imx8mm-micfil"; +				reg = <0x30080000 0x10000>; +				interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, +					     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, +					     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, +					     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&clk IMX8MM_CLK_PDM_IPG>, +					 <&clk IMX8MM_CLK_PDM_ROOT>, +					 <&clk IMX8MM_AUDIO_PLL1_OUT>, +					 <&clk IMX8MM_AUDIO_PLL2_OUT>, +					 <&clk IMX8MM_CLK_EXT3>; +				clock-names = "ipg_clk", "ipg_clk_app", +					      "pll8k", "pll11k", "clkext3"; +				dmas = <&sdma2 24 25 0x80000000>; +				dma-names = "rx"; +				status = "disabled"; +			}; + +			spdif1: spdif@30090000 { +				compatible = "fsl,imx35-spdif"; +				reg = <0x30090000 0x10000>; +				interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&clk IMX8MM_CLK_AUDIO_AHB>, /* core */ +					 <&clk IMX8MM_CLK_24M>, /* rxtx0 */ +					 <&clk IMX8MM_CLK_SPDIF1>, /* rxtx1 */ +					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx2 */ +					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx3 */ +					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx4 */ +					 <&clk IMX8MM_CLK_AUDIO_AHB>, /* rxtx5 */ +					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx6 */ +					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx7 */ +					 <&clk IMX8MM_CLK_DUMMY>; /* spba */ +				clock-names = "core", "rxtx0", +					      "rxtx1", "rxtx2", +					      "rxtx3", "rxtx4", +					      "rxtx5", "rxtx6", +					      "rxtx7", "spba"; +				dmas = <&sdma2 28 18 0>, <&sdma2 29 18 0>; +				dma-names = "rx", "tx"; +				status = "disabled"; +			}; +  			gpio1: gpio@30200000 {  				compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";  				reg = <0x30200000 0x10000>; diff --git a/arch/arm64/boot/dts/freescale/imx8mn-evk.dts b/arch/arm64/boot/dts/freescale/imx8mn-evk.dts index 707d8486b4d8..9e5c0af5f540 100644 --- a/arch/arm64/boot/dts/freescale/imx8mn-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx8mn-evk.dts @@ -14,6 +14,22 @@  	compatible = "fsl,imx8mn-evk", "fsl,imx8mn";  }; +&A53_0 { +	cpu-supply = <&buck2>; +}; + +&A53_1 { +	cpu-supply = <&buck2>; +}; + +&A53_2 { +	cpu-supply = <&buck2>; +}; + +&A53_3 { +	cpu-supply = <&buck2>; +}; +  &i2c1 {  	pmic: pmic@25 {  		compatible = "nxp,pca9450b"; @@ -109,19 +125,3 @@  		};  	};  }; - -&A53_0 { -	/delete-property/operating-points-v2; -}; - -&A53_1 { -	/delete-property/operating-points-v2; -}; - -&A53_2 { -	/delete-property/operating-points-v2; -}; - -&A53_3 { -	/delete-property/operating-points-v2; -}; diff --git a/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi b/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi index 4aa0dbd578df..76d042a4cf09 100644 --- a/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi @@ -38,6 +38,14 @@  		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;  		enable-active-high;  	}; + +	ir-receiver { +		compatible = "gpio-ir-receiver"; +		gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; +		pinctrl-names = "default"; +		pinctrl-0 = <&pinctrl_ir>; +		linux,autosuspend-period = <125>; +	};  };  &fec1 { @@ -202,6 +210,12 @@  		>;  	}; +	pinctrl_ir: irgrp { +		fsl,pins = < +			MX8MN_IOMUXC_GPIO1_IO13_GPIO1_IO13              0x4f +		>; +	}; +  	pinctrl_i2c1: i2c1grp {  		fsl,pins = <  			MX8MN_IOMUXC_I2C1_SCL_I2C1_SCL		0x400001c3 @@ -340,7 +354,7 @@  	pinctrl_wdog: wdoggrp {  		fsl,pins = < -			MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B		0xc6 +			MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B		0x166  		>;  	};  }; diff --git a/arch/arm64/boot/dts/freescale/imx8mn-var-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mn-var-som.dtsi index a2d0190921e4..dde01daab62e 100644 --- a/arch/arm64/boot/dts/freescale/imx8mn-var-som.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mn-var-som.dtsi @@ -545,7 +545,7 @@  	pinctrl_wdog: wdoggrp {  		fsl,pins = < -			MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0xc6 +			MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0x166  		>;  	};  }; diff --git a/arch/arm64/boot/dts/freescale/imx8mn.dtsi b/arch/arm64/boot/dts/freescale/imx8mn.dtsi index 746faf1cf2fb..31ca1f3bfece 100644 --- a/arch/arm64/boot/dts/freescale/imx8mn.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mn.dtsi @@ -186,6 +186,13 @@  		clock-output-names = "clk_ext4";  	}; +	pmu { +		compatible = "arm,cortex-a53-pmu"; +		interrupts = <GIC_PPI 7 +			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; +		interrupt-affinity = <&A53_0>, <&A53_1>, <&A53_2>, <&A53_3>; +	}; +  	psci {  		compatible = "arm,psci-1.0";  		method = "smc"; @@ -225,10 +232,10 @@  	timer {  		compatible = "arm,armv8-timer"; -		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, -			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, -			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, -			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; +		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, +			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, +			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, +			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;  		clock-frequency = <8000000>;  		arm,no-tick-in-suspend;  	}; @@ -246,6 +253,149 @@  			#size-cells = <1>;  			ranges; +			spba: bus@30000000 { +				compatible = "fsl,spba-bus", "simple-bus"; +				#address-cells = <1>; +				#size-cells = <1>; +				reg = <0x30000000 0x100000>; +				ranges; + +				sai2: sai@30020000 { +					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; +					reg = <0x30020000 0x10000>; +					interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; +					clocks = <&clk IMX8MN_CLK_SAI2_IPG>, +						<&clk IMX8MN_CLK_DUMMY>, +						<&clk IMX8MN_CLK_SAI2_ROOT>, +						<&clk IMX8MN_CLK_DUMMY>, <&clk IMX8MN_CLK_DUMMY>; +					clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; +					dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>; +					dma-names = "rx", "tx"; +					status = "disabled"; +				}; + +				sai3: sai@30030000 { +					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; +					reg = <0x30030000 0x10000>; +					interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; +					clocks = <&clk IMX8MN_CLK_SAI3_IPG>, +						 <&clk IMX8MN_CLK_DUMMY>, +						 <&clk IMX8MN_CLK_SAI3_ROOT>, +						 <&clk IMX8MN_CLK_DUMMY>, <&clk IMX8MN_CLK_DUMMY>; +					clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; +					dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>; +					dma-names = "rx", "tx"; +					status = "disabled"; +				}; + +				sai5: sai@30050000 { +					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; +					reg = <0x30050000 0x10000>; +					interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; +					clocks = <&clk IMX8MN_CLK_SAI5_IPG>, +						 <&clk IMX8MN_CLK_DUMMY>, +						 <&clk IMX8MN_CLK_SAI5_ROOT>, +						 <&clk IMX8MN_CLK_DUMMY>, <&clk IMX8MN_CLK_DUMMY>; +					clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; +					dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>; +					dma-names = "rx", "tx"; +					fsl,shared-interrupt; +					fsl,dataline = <0 0xf 0xf>; +					status = "disabled"; +				}; + +				sai6: sai@30060000 { +					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; +					reg = <0x30060000  0x10000>; +					interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; +					clocks = <&clk IMX8MN_CLK_SAI6_IPG>, +						 <&clk IMX8MN_CLK_DUMMY>, +						 <&clk IMX8MN_CLK_SAI6_ROOT>, +						 <&clk IMX8MN_CLK_DUMMY>, <&clk IMX8MN_CLK_DUMMY>; +					clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; +					dmas = <&sdma2 10 2 0>, <&sdma2 11 2 0>; +					dma-names = "rx", "tx"; +					status = "disabled"; +				}; + +				micfil: audio-controller@30080000 { +					compatible = "fsl,imx8mm-micfil"; +					reg = <0x30080000 0x10000>; +					interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, +						     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, +						     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, +						     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; +					clocks = <&clk IMX8MN_CLK_PDM_IPG>, +						 <&clk IMX8MN_CLK_PDM_ROOT>, +						 <&clk IMX8MN_AUDIO_PLL1_OUT>, +						 <&clk IMX8MN_AUDIO_PLL2_OUT>, +						 <&clk IMX8MN_CLK_EXT3>; +					clock-names = "ipg_clk", "ipg_clk_app", +						      "pll8k", "pll11k", "clkext3"; +					dmas = <&sdma2 24 25 0x80000000>; +					dma-names = "rx"; +					status = "disabled"; +				}; + +				spdif1: spdif@30090000 { +					compatible = "fsl,imx35-spdif"; +					reg = <0x30090000 0x10000>; +					interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; +					clocks = <&clk IMX8MN_CLK_AUDIO_AHB>, /* core */ +						 <&clk IMX8MN_CLK_24M>, /* rxtx0 */ +						 <&clk IMX8MN_CLK_SPDIF1>, /* rxtx1 */ +						 <&clk IMX8MN_CLK_DUMMY>, /* rxtx2 */ +						 <&clk IMX8MN_CLK_DUMMY>, /* rxtx3 */ +						 <&clk IMX8MN_CLK_DUMMY>, /* rxtx4 */ +						 <&clk IMX8MN_CLK_AUDIO_AHB>, /* rxtx5 */ +						 <&clk IMX8MN_CLK_DUMMY>, /* rxtx6 */ +						 <&clk IMX8MN_CLK_DUMMY>, /* rxtx7 */ +						 <&clk IMX8MN_CLK_DUMMY>; /* spba */ +					clock-names = "core", "rxtx0", +						      "rxtx1", "rxtx2", +						      "rxtx3", "rxtx4", +						      "rxtx5", "rxtx6", +						      "rxtx7", "spba"; +					dmas = <&sdma2 28 18 0>, <&sdma2 29 18 0>; +					dma-names = "rx", "tx"; +					status = "disabled"; +				}; + +				sai7: sai@300b0000 { +					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; +					reg = <0x300b0000 0x10000>; +					interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; +					clocks = <&clk IMX8MN_CLK_SAI7_IPG>, +						 <&clk IMX8MN_CLK_DUMMY>, +						 <&clk IMX8MN_CLK_SAI7_ROOT>, +						 <&clk IMX8MN_CLK_DUMMY>, <&clk IMX8MN_CLK_DUMMY>; +					clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; +					dmas = <&sdma2 12 2 0>, <&sdma2 13 2 0>; +					dma-names = "rx", "tx"; +					status = "disabled"; +				}; + +				easrc: easrc@300c0000 { +					compatible = "fsl,imx8mn-easrc"; +					reg = <0x300c0000 0x10000>; +					interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; +					clocks = <&clk IMX8MN_CLK_ASRC_ROOT>; +					clock-names = "mem"; +					dmas = <&sdma2 16 23 0> , <&sdma2 17 23 0>, +					       <&sdma2 18 23 0> , <&sdma2 19 23 0>, +					       <&sdma2 20 23 0> , <&sdma2 21 23 0>, +					       <&sdma2 22 23 0> , <&sdma2 23 23 0>; +					dma-names = "ctx0_rx", "ctx0_tx", +						    "ctx1_rx", "ctx1_tx", +						    "ctx2_rx", "ctx2_tx", +						    "ctx3_rx", "ctx3_tx"; +					firmware-name = "imx/easrc/easrc-imx8mn.bin"; +					fsl,asrc-rate  = <8000>; +					fsl,asrc-format = <2>; +					status = "disabled"; +				}; +			}; +  			gpio1: gpio@30200000 {  				compatible = "fsl,imx8mn-gpio", "fsl,imx35-gpio";  				reg = <0x30200000 0x10000>; diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts index ad66f1286d95..b10dce8767a4 100644 --- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts @@ -33,6 +33,28 @@  		      <0x1 0x00000000 0 0xc0000000>;  	}; +	reg_can1_stby: regulator-can1-stby { +		compatible = "regulator-fixed"; +		regulator-name = "can1-stby"; +		pinctrl-names = "default"; +		pinctrl-0 = <&pinctrl_flexcan1_reg>; +		regulator-min-microvolt = <3300000>; +		regulator-max-microvolt = <3300000>; +		gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>; +		enable-active-high; +	}; + +	reg_can2_stby: regulator-can2-stby { +		compatible = "regulator-fixed"; +		regulator-name = "can2-stby"; +		pinctrl-names = "default"; +		pinctrl-0 = <&pinctrl_flexcan2_reg>; +		regulator-min-microvolt = <3300000>; +		regulator-max-microvolt = <3300000>; +		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; +		enable-active-high; +	}; +  	reg_usdhc2_vmmc: regulator-usdhc2 {  		compatible = "regulator-fixed";  		pinctrl-names = "default"; @@ -45,6 +67,20 @@  	};  }; +&flexcan1 { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_flexcan1>; +	xceiver-supply = <®_can1_stby>; +	status = "okay"; +}; + +&flexcan2 { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_flexcan2>; +	xceiver-supply = <®_can2_stby>; +	status = "disabled";/* can2 pin conflict with pdm */ +}; +  &fec {  	pinctrl-names = "default";  	pinctrl-0 = <&pinctrl_fec>; @@ -144,6 +180,32 @@  		>;  	}; +	pinctrl_flexcan1: flexcan1grp { +		fsl,pins = < +			MX8MP_IOMUXC_SPDIF_RX__CAN1_RX          0x154 +			MX8MP_IOMUXC_SPDIF_TX__CAN1_TX          0x154 +		>; +	}; + +	pinctrl_flexcan2: flexcan2grp { +		fsl,pins = < +			MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX         0x154 +			MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX         0x154 +		>; +	}; + +	pinctrl_flexcan1_reg: flexcan1reggrp { +		fsl,pins = < +			MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05  0x154   /* CAN1_STBY */ +		>; +	}; + +	pinctrl_flexcan2_reg: flexcan2reggrp { +		fsl,pins = < +			MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27      0x154   /* CAN2_STBY */ +		>; +	}; +  	pinctrl_gpio_led: gpioledgrp {  		fsl,pins = <  			MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16	0x19 @@ -262,7 +324,7 @@  	pinctrl_wdog: wdoggrp {  		fsl,pins = < -			MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B	0xc6 +			MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B	0x166  		>;  	};  }; diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi index 6038f66aefc1..ecccfbb4f5ad 100644 --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi @@ -133,6 +133,13 @@  		clock-output-names = "clk_ext4";  	}; +	pmu { +		compatible = "arm,cortex-a53-pmu"; +		interrupts = <GIC_PPI 7 +			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; +		interrupt-affinity = <&A53_0>, <&A53_1>, <&A53_2>, <&A53_3>; +	}; +  	psci {  		compatible = "arm,psci-1.0";  		method = "smc"; @@ -202,10 +209,10 @@  	timer {  		compatible = "arm,armv8-timer"; -		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, -			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, -			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>, -			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>; +		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, +			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, +			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, +			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;  		clock-frequency = <8000000>;  		arm,no-tick-in-suspend;  	}; @@ -545,6 +552,36 @@  				status = "disabled";  			}; +			flexcan1: can@308c0000 { +				compatible = "fsl,imx8mp-flexcan", "fsl,imx6q-flexcan"; +				reg = <0x308c0000 0x10000>; +				interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&clk IMX8MP_CLK_IPG_ROOT>, +					 <&clk IMX8MP_CLK_CAN1_ROOT>; +				clock-names = "ipg", "per"; +				assigned-clocks = <&clk IMX8MP_CLK_CAN1>; +				assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_40M>; +				assigned-clock-rates = <40000000>; +				fsl,clk-source = /bits/ 8 <0>; +				fsl,stop-mode = <&gpr 0x10 4>; +				status = "disabled"; +			}; + +			flexcan2: can@308d0000 { +				compatible = "fsl,imx8mp-flexcan", "fsl,imx6q-flexcan"; +				reg = <0x308d0000 0x10000>; +				interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&clk IMX8MP_CLK_IPG_ROOT>, +					 <&clk IMX8MP_CLK_CAN2_ROOT>; +				clock-names = "ipg", "per"; +				assigned-clocks = <&clk IMX8MP_CLK_CAN2>; +				assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_40M>; +				assigned-clock-rates = <40000000>; +				fsl,clk-source = /bits/ 8 <0>; +				fsl,stop-mode = <&gpr 0x10 5>; +				status = "disabled"; +			}; +  			crypto: crypto@30900000 {  				compatible = "fsl,sec-v4.0";  				#address-cells = <1>; diff --git a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts index 2418cca00bc5..85b045253a0e 100644 --- a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts @@ -57,6 +57,7 @@  		gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;  		pinctrl-names = "default";  		pinctrl-0 = <&pinctrl_ir>; +		linux,autosuspend-period = <125>;  	};  	wm8524: audio-codec { @@ -87,6 +88,21 @@  			clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;  		};  	}; + +	sound-spdif { +		compatible = "fsl,imx-audio-spdif"; +		model = "imx-spdif"; +		spdif-controller = <&spdif1>; +		spdif-out; +		spdif-in; +	}; + +	sound-hdmi-arc { +		compatible = "fsl,imx-audio-spdif"; +		model = "imx-hdmi-arc"; +		spdif-controller = <&spdif2>; +		spdif-in; +	};  };  &A53_0 { @@ -336,6 +352,22 @@  	status = "okay";  }; +&spdif1 { +	pinctrl-names = "default"; +	pinctrl-0 = <&pinctrl_spdif1>; +	assigned-clocks = <&clk IMX8MQ_CLK_SPDIF1>; +	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>; +	assigned-clock-rates = <24576000>; +	status = "okay"; +}; + +&spdif2 { +	assigned-clocks = <&clk IMX8MQ_CLK_SPDIF2>; +	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>; +	assigned-clock-rates = <24576000>; +	status = "okay"; +}; +  &uart1 {  	pinctrl-names = "default";  	pinctrl-0 = <&pinctrl_uart1>; @@ -467,6 +499,13 @@  		>;  	}; +	pinctrl_spdif1: spdif1grp { +		fsl,pins = < +			MX8MQ_IOMUXC_SPDIF_TX_SPDIF1_OUT	0xd6 +			MX8MQ_IOMUXC_SPDIF_RX_SPDIF1_IN		0xd6 +		>; +	}; +  	pinctrl_uart1: uart1grp {  		fsl,pins = <  			MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX		0x49 diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi b/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi index e3c6d1272198..64fc546b110f 100644 --- a/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi @@ -250,7 +250,7 @@  	pinctrl-names = "default";  	pinctrl-0 = <&pinctrl_pmic_5v>; -	pmic-5v { +	pmic-5v-hog {  		gpio-hog;  		gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;  		input; diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi index 5e0e7d0f1bc4..a841a023e8e0 100644 --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi @@ -606,11 +606,25 @@  				              "clk_ext3", "clk_ext4";  				assigned-clocks = <&clk IMX8MQ_CLK_A53_SRC>,  						  <&clk IMX8MQ_CLK_A53_CORE>, -						  <&clk IMX8MQ_CLK_NOC>; +						  <&clk IMX8MQ_CLK_NOC>, +						  <&clk IMX8MQ_CLK_AUDIO_AHB>, +						  <&clk IMX8MQ_AUDIO_PLL1_BYPASS>, +						  <&clk IMX8MQ_AUDIO_PLL2_BYPASS>, +						  <&clk IMX8MQ_AUDIO_PLL1>, +						  <&clk IMX8MQ_AUDIO_PLL2>;  				assigned-clock-rates = <0>, <0>, -						       <800000000>; +						       <800000000>, +						       <0>, +						       <0>, +						       <0>, +						       <786432000>, +						       <722534400>;  				assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>, -							 <&clk IMX8MQ_ARM_PLL_OUT>; +							 <&clk IMX8MQ_ARM_PLL_OUT>, +							 <0>, +							 <&clk IMX8MQ_SYS2_PLL_500M>, +							 <&clk IMX8MQ_AUDIO_PLL1>, +							 <&clk IMX8MQ_AUDIO_PLL2>;  			};  			src: reset-controller@30390000 { @@ -779,6 +793,30 @@  			ranges = <0x30800000 0x30800000 0x400000>,  				 <0x08000000 0x08000000 0x10000000>; +			spdif1: spdif@30810000 { +				compatible = "fsl,imx35-spdif"; +				reg = <0x30810000 0x10000>; +				interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */ +					<&clk IMX8MQ_CLK_25M>, /* rxtx0 */ +					<&clk IMX8MQ_CLK_SPDIF1>, /* rxtx1 */ +					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */ +					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */ +					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */ +					<&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */ +					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */ +					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */ +					<&clk IMX8MQ_CLK_DUMMY>; /* spba */ +				clock-names = "core", "rxtx0", +					      "rxtx1", "rxtx2", +					      "rxtx3", "rxtx4", +					      "rxtx5", "rxtx6", +					      "rxtx7", "spba"; +				dmas = <&sdma1 8 18 0>, <&sdma1 9 18 0>; +				dma-names = "rx", "tx"; +				status = "disabled"; +			}; +  			ecspi1: spi@30820000 {  				#address-cells = <1>;  				#size-cells = <0>; @@ -848,6 +886,30 @@  				status = "disabled";  			}; +			spdif2: spdif@308a0000 { +				compatible = "fsl,imx35-spdif"; +				reg = <0x308a0000 0x10000>; +				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; +				clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */ +					<&clk IMX8MQ_CLK_25M>, /* rxtx0 */ +					<&clk IMX8MQ_CLK_SPDIF2>, /* rxtx1 */ +					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */ +					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */ +					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */ +					<&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */ +					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */ +					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */ +					<&clk IMX8MQ_CLK_DUMMY>; /* spba */ +				clock-names = "core", "rxtx0", +					      "rxtx1", "rxtx2", +					      "rxtx3", "rxtx4", +					      "rxtx5", "rxtx6", +					      "rxtx7", "spba"; +				dmas = <&sdma1 16 18 0>, <&sdma1 17 18 0>; +				dma-names = "rx", "tx"; +				status = "disabled"; +			}; +  			sai2: sai@308b0000 {  				#sound-dai-cells = <0>;  				compatible = "fsl,imx8mq-sai"; | 
