* [PATCH 0/14] ARM: dts: imx6ul: add more functionality to i.MX6UL @ 2016-01-12 17:21 Lothar Waßmann [not found] ` <1452619291-13625-2-git-send-email-LW@KARO-electronics.de> 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann 0 siblings, 2 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel This patchset adds more functionality to the i.MX6UL machines. The first thre patches are cleanup patches with no functional changes intended. The other patches make various subsystems functional. ^ permalink raw reply [flat|nested] 43+ messages in thread
[parent not found: <1452619291-13625-2-git-send-email-LW@KARO-electronics.de>]
* [PATCH 02/14] ARM: dts: imx6ul: move tsc node to appropriate place in the DTB [not found] ` <1452619291-13625-2-git-send-email-LW@KARO-electronics.de> @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 03/14] ARM: dts: imx6ul: move dt-bindings/input/input.h include to dtsi file Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 99b6465..7e27d76 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -236,6 +236,17 @@ }; }; + tsc: tsc at 02040000 { + compatible = "fsl,imx6ul-tsc"; + reg = <0x02040000 0x4000>, <0x0219c000 0x4000>; + interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_IPG>, + <&clks IMX6UL_CLK_ADC2>; + clock-names = "tsc", "adc"; + status = "disabled"; + }; + gpt1: gpt at 02098000 { compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt"; reg = <0x02098000 0x4000>; @@ -590,17 +601,6 @@ status = "disabled"; }; - tsc: tsc at 02040000 { - compatible = "fsl,imx6ul-tsc"; - reg = <0x02040000 0x4000>, <0x0219c000 0x4000>; - interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_IPG>, - <&clks IMX6UL_CLK_ADC2>; - clock-names = "tsc", "adc"; - status = "disabled"; - }; - usdhc1: usdhc at 02190000 { compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc"; reg = <0x02190000 0x4000>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 03/14] ARM: dts: imx6ul: move dt-bindings/input/input.h include to dtsi file 2016-01-12 17:21 ` [PATCH 02/14] ARM: dts: imx6ul: move tsc node to appropriate place in the DTB Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 04/14] ARM: dts: imx6ul: specify proper clocks for GPT node Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel imx6ul.dtsi references the macro 'KEY_POWER' from dt-bindings/input/input.h. Thus, move the include statement for this file from imx6ul-14x14-evk.dts to imx6ul.dtsi itself. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul-14x14-evk.dts | 1 - arch/arm/boot/dts/imx6ul.dtsi | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/imx6ul-14x14-evk.dts b/arch/arm/boot/dts/imx6ul-14x14-evk.dts index 6aaa5ec..a6f459a 100644 --- a/arch/arm/boot/dts/imx6ul-14x14-evk.dts +++ b/arch/arm/boot/dts/imx6ul-14x14-evk.dts @@ -8,7 +8,6 @@ /dts-v1/; -#include <dt-bindings/input/input.h> #include "imx6ul.dtsi" / { diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 7e27d76..e4c3a80 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -8,6 +8,7 @@ #include <dt-bindings/clock/imx6ul-clock.h> #include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> #include <dt-bindings/interrupt-controller/arm-gic.h> #include "imx6ul-pinfunc.h" #include "skeleton.dtsi" -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 04/14] ARM: dts: imx6ul: specify proper clocks for GPT node 2016-01-12 17:21 ` [PATCH 03/14] ARM: dts: imx6ul: move dt-bindings/input/input.h include to dtsi file Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 05/14] ARM: dts: imx6ul: specify proper clocks for the PWM nodes Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index e4c3a80..e6e3e54 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -499,8 +499,8 @@ compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt"; reg = <0x020e8000 0x4000>; interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_DUMMY>, - <&clks IMX6UL_CLK_DUMMY>; + clocks = <&clks IMX6UL_CLK_GPT2_BUS>, + <&clks IMX6UL_CLK_GPT2_SERIAL>; clock-names = "ipg", "per"; }; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 05/14] ARM: dts: imx6ul: specify proper clocks for the PWM nodes 2016-01-12 17:21 ` [PATCH 04/14] ARM: dts: imx6ul: specify proper clocks for GPT node Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 06/14] ARM: dts: imx6ul: disable PWMs by default Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index e6e3e54..3aba0bb 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -508,8 +508,8 @@ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x020f0000 0x4000>; interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_DUMMY>, - <&clks IMX6UL_CLK_DUMMY>; + clocks = <&clks IMX6UL_CLK_PWM5>, + <&clks IMX6UL_CLK_PWM5>; clock-names = "ipg", "per"; #pwm-cells = <2>; }; @@ -518,8 +518,8 @@ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x020f4000 0x4000>; interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_DUMMY>, - <&clks IMX6UL_CLK_DUMMY>; + clocks = <&clks IMX6UL_CLK_PWM6>, + <&clks IMX6UL_CLK_PWM6>; clock-names = "ipg", "per"; #pwm-cells = <2>; }; @@ -528,8 +528,8 @@ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x020f8000 0x4000>; interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_DUMMY>, - <&clks IMX6UL_CLK_DUMMY>; + clocks = <&clks IMX6UL_CLK_PWM7>, + <&clks IMX6UL_CLK_PWM7>; clock-names = "ipg", "per"; #pwm-cells = <2>; }; @@ -538,8 +538,8 @@ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x020fc000 0x4000>; interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_DUMMY>, - <&clks IMX6UL_CLK_DUMMY>; + clocks = <&clks IMX6UL_CLK_PWM8>, + <&clks IMX6UL_CLK_PWM8>; clock-names = "ipg", "per"; #pwm-cells = <2>; }; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 06/14] ARM: dts: imx6ul: disable PWMs by default 2016-01-12 17:21 ` [PATCH 05/14] ARM: dts: imx6ul: specify proper clocks for the PWM nodes Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 07/14] ARM: dts: imx6ul: add pwm[1-4] nodes Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel Since PWMs are only useful if they are actually connected to an output pin, let users enable them explicitly in their device trees where they should also set up the pin configuration. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 3aba0bb..863777e 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -512,6 +512,7 @@ <&clks IMX6UL_CLK_PWM5>; clock-names = "ipg", "per"; #pwm-cells = <2>; + status = "disabled"; }; pwm6: pwm at 020f4000 { @@ -522,6 +523,7 @@ <&clks IMX6UL_CLK_PWM6>; clock-names = "ipg", "per"; #pwm-cells = <2>; + status = "disabled"; }; pwm7: pwm at 020f8000 { @@ -532,6 +534,7 @@ <&clks IMX6UL_CLK_PWM7>; clock-names = "ipg", "per"; #pwm-cells = <2>; + status = "disabled"; }; pwm8: pwm at 020fc000 { @@ -542,6 +545,7 @@ <&clks IMX6UL_CLK_PWM8>; clock-names = "ipg", "per"; #pwm-cells = <2>; + status = "disabled"; }; }; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 07/14] ARM: dts: imx6ul: add pwm[1-4] nodes 2016-01-12 17:21 ` [PATCH 06/14] ARM: dts: imx6ul: disable PWMs by default Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 08/14] ARM: dts: imx6ul: add kpp support Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 863777e..40ea5f0 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -248,6 +248,50 @@ status = "disabled"; }; + pwm1: pwm at 02080000 { + compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; + reg = <0x02080000 0x4000>; + interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_PWM1>, + <&clks IMX6UL_CLK_PWM1>; + clock-names = "ipg", "per"; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm2: pwm at 02084000 { + compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; + reg = <0x02084000 0x4000>; + interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_PWM2>, + <&clks IMX6UL_CLK_PWM2>; + clock-names = "ipg", "per"; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm3: pwm at 02088000 { + compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; + reg = <0x02088000 0x4000>; + interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_PWM3>, + <&clks IMX6UL_CLK_PWM3>; + clock-names = "ipg", "per"; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm4: pwm at 0208c000 { + compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; + reg = <0x0208c000 0x4000>; + interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_PWM4>, + <&clks IMX6UL_CLK_PWM4>; + clock-names = "ipg", "per"; + #pwm-cells = <2>; + status = "disabled"; + }; + gpt1: gpt at 02098000 { compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt"; reg = <0x02098000 0x4000>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 08/14] ARM: dts: imx6ul: add kpp support 2016-01-12 17:21 ` [PATCH 07/14] ARM: dts: imx6ul: add pwm[1-4] nodes Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 09/14] ARM: dts: imx6ul: add sdma support Lothar Waßmann ` (2 more replies) 0 siblings, 3 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 40ea5f0..a578b23 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -373,6 +373,14 @@ status = "disabled"; }; + kpp: kpp at 020b8000 { + compatible = "fsl,imx6q-kpp", "fsl,imx21-kpp"; + reg = <0x020b8000 0x4000>; + interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_KPP>; + status = "disabled"; + }; + wdog1: wdog at 020bc000 { compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt"; reg = <0x020bc000 0x4000>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 09/14] ARM: dts: imx6ul: add sdma support 2016-01-12 17:21 ` [PATCH 08/14] ARM: dts: imx6ul: add kpp support Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 10/14] ARM: dts: imx6ul: add flexcan support Lothar Waßmann 2016-01-13 3:16 ` [PATCH 08/14] ARM: dts: imx6ul: add kpp support kbuild test robot 2016-01-13 9:40 ` Lucas Stach 2 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index a578b23..96b78a9 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -556,6 +556,17 @@ clock-names = "ipg", "per"; }; + sdma: sdma at 020ec000 { + compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma"; + reg = <0x020ec000 0x4000>; + interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_SDMA>, + <&clks IMX6UL_CLK_SDMA>; + clock-names = "ipg", "ahb"; + #dma-cells = <3>; + fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin"; + }; + pwm5: pwm at 020f0000 { compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x020f0000 0x4000>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 10/14] ARM: dts: imx6ul: add flexcan support 2016-01-12 17:21 ` [PATCH 09/14] ARM: dts: imx6ul: add sdma support Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 11/14] ARM: dts: imx6ul: add sai support Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 96b78a9..f1db53e 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -292,6 +292,26 @@ status = "disabled"; }; + can1: flexcan at 02090000 { + compatible = "fsl,imx6q-flexcan"; + reg = <0x02090000 0x4000>; + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_CAN1_IPG>, + <&clks IMX6UL_CLK_CAN1_SERIAL>; + clock-names = "ipg", "per"; + status = "disabled"; + }; + + can2: flexcan at 02094000 { + compatible = "fsl,imx6q-flexcan"; + reg = <0x02094000 0x4000>; + interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_CAN2_IPG>, + <&clks IMX6UL_CLK_CAN2_SERIAL>; + clock-names = "ipg", "per"; + status = "disabled"; + }; + gpt1: gpt at 02098000 { compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt"; reg = <0x02098000 0x4000>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 11/14] ARM: dts: imx6ul: add sai support 2016-01-12 17:21 ` [PATCH 10/14] ARM: dts: imx6ul: add flexcan support Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 12/14] ARM: dts: imx6ul: add lcdif support Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index f1db53e..3d43321f 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -235,6 +235,51 @@ clock-names = "ipg", "per"; status = "disabled"; }; + + sai1: sai at 02028000 { + #sound-dai-cells = <0>; + compatible = "fsl,imx6sx-sai"; + reg = <0x02028000 0x4000>; + interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_SAI1_IPG>, + <&clks IMX6UL_CLK_SAI1>, + <&clks 0>, <&clks 0>; + clock-names = "bus", "mclk1", "mclk2", "mclk3"; + dmas = <&sdma 35 24 0>, + <&sdma 36 24 0>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + sai2: sai at 0202c000 { + #sound-dai-cells = <0>; + compatible = "fsl,imx6sx-sai"; + reg = <0x0202c000 0x4000>; + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_SAI2_IPG>, + <&clks IMX6UL_CLK_SAI2>, + <&clks 0>, <&clks 0>; + clock-names = "bus", "mclk1", "mclk2", "mclk3"; + dmas = <&sdma 37 24 0>, + <&sdma 38 24 0>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + sai3: sai at 02030000 { + #sound-dai-cells = <0>; + compatible = "fsl,imx6sx-sai"; + reg = <0x02030000 0x4000>; + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_SAI3_IPG>, + <&clks IMX6UL_CLK_SAI3>, + <&clks 0>, <&clks 0>; + clock-names = "bus", "mclk1", "mclk2", "mclk3"; + dmas = <&sdma 39 24 0>, + <&sdma 40 24 0>; + dma-names = "rx", "tx"; + status = "disabled"; + }; }; tsc: tsc at 02040000 { -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 12/14] ARM: dts: imx6ul: add lcdif support 2016-01-12 17:21 ` [PATCH 11/14] ARM: dts: imx6ul: add sai support Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 13/14] ARM: dts: imx6ul: add gpmi support Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 3d43321f..0123480 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -805,6 +805,17 @@ reg = <0x021b0000 0x4000>; }; + lcdif: lcdif at 021c8000 { + compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif"; + reg = <0x021c8000 0x4000>; + interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_LCDIF_PIX>, + <&clks IMX6UL_CLK_LCDIF_APB>, + <&clks IMX6UL_CLK_DUMMY>; + clock-names = "pix", "axi", "disp_axi"; + status = "disabled"; + }; + qspi: qspi at 021e0000 { #address-cells = <1>; #size-cells = <0>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 13/14] ARM: dts: imx6ul: add gpmi support 2016-01-12 17:21 ` [PATCH 12/14] ARM: dts: imx6ul: add lcdif support Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-12 17:21 ` [PATCH 14/14] ARM: dts: imx6: make audmux optional for i.MX6UL sound driver Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 0123480..710e6ca 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -141,6 +141,39 @@ reg = <0x00900000 0x20000>; }; + dma_apbh: dma-apbh at 01804000 { + compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh"; + reg = <0x01804000 0x2000>; + interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>, + <0 13 IRQ_TYPE_LEVEL_HIGH>, + <0 13 IRQ_TYPE_LEVEL_HIGH>, + <0 13 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3"; + #dma-cells = <1>; + dma-channels = <4>; + clocks = <&clks IMX6UL_CLK_APBHDMA>; + }; + + gpmi: gpmi-nand at 01806000 { + compatible = "fsl,imx6q-gpmi-nand"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x01806000 0x2000>, <0x01808000 0x2000>; + reg-names = "gpmi-nand", "bch"; + interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "bch"; + clocks = <&clks IMX6UL_CLK_GPMI_IO>, + <&clks IMX6UL_CLK_GPMI_APB>, + <&clks IMX6UL_CLK_GPMI_BCH>, + <&clks IMX6UL_CLK_GPMI_BCH_APB>, + <&clks IMX6UL_CLK_PER_BCH>; + clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch", + "gpmi_bch_apb", "per1_bch"; + dmas = <&dma_apbh 0>; + dma-names = "rx-tx"; + status = "disabled"; + }; + aips1: aips-bus at 02000000 { compatible = "fsl,aips-bus", "simple-bus"; #address-cells = <1>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 14/14] ARM: dts: imx6: make audmux optional for i.MX6UL sound driver 2016-01-12 17:21 ` [PATCH 13/14] ARM: dts: imx6ul: add gpmi support Lothar Waßmann @ 2016-01-12 17:21 ` Lothar Waßmann 2016-01-15 2:38 ` Rob Herring 0 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-12 17:21 UTC (permalink / raw) To: linux-arm-kernel i.MX6UL does not have the audio multiplexer (AUDMUX) like the other i.MX6 SoCs, but apart from that can use the same audio driver. Make audmux optional for the imx-sgtl5000 driver, so it can be used on i.MX6UL too. Furthermore i.MX6UL requires use of the SAI interface rather than SSI. Change the DTS documentation accordingly. The patch with the corresponding changes to the imx-sgtl5000 driver will be sent separately. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- .../bindings/sound/imx-audio-sgtl5000.txt | 26 +++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt b/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt index 2f89db8..fd46671 100644 --- a/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt +++ b/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt @@ -6,7 +6,7 @@ Required properties: - model : The user-visible name of this sound complex - - ssi-controller : The phandle of the i.MX SSI controller + - ssi-controller : The phandle of the i.MX SSI (or SAI) controller - audio-codec : The phandle of the SGTL5000 audio codec @@ -39,6 +39,16 @@ Required properties: Note: The AUDMUX port numbering should start at 1, which is consistent with hardware manual. +Optional properties: + - fsl,no-audmux : boolean + Required for i.MX6UL (and maybe other SoCs) + which don't have an AUDMUX, but still + feature the same audio subsystem otherwise. + +Note: Setting this property will make mux-int-port and mux-ext-port +obsolete. + + Example: sound { @@ -54,3 +64,17 @@ sound { mux-int-port = <1>; mux-ext-port = <3>; }; + +or (e.g. for i.MX6UL): +sound { + compatible = "karo,imx6ul-tx6ul-sgtl5000", + "fsl,imx-audio-sgtl5000"; + model = "imx6ul-tx6ul-sgtl5000"; + ssi-controller = <&sai2>; + audio-codec = <&sgtl5000>; + audio-routing = + "MIC_IN", "Mic Jack", + "Mic Jack", "Mic Bias", + "Headphone Jack", "HP_OUT"; + fsl,no-audmux; +}; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCH 14/14] ARM: dts: imx6: make audmux optional for i.MX6UL sound driver 2016-01-12 17:21 ` [PATCH 14/14] ARM: dts: imx6: make audmux optional for i.MX6UL sound driver Lothar Waßmann @ 2016-01-15 2:38 ` Rob Herring 2016-01-15 6:34 ` Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Rob Herring @ 2016-01-15 2:38 UTC (permalink / raw) To: linux-arm-kernel On Tue, Jan 12, 2016 at 06:21:31PM +0100, Lothar Wa?mann wrote: > i.MX6UL does not have the audio multiplexer (AUDMUX) like the other > i.MX6 SoCs, but apart from that can use the same audio driver. Make > audmux optional for the imx-sgtl5000 driver, so it can be used on > i.MX6UL too. Furthermore i.MX6UL requires use of the SAI interface > rather than SSI. Change the DTS documentation accordingly. > > The patch with the corresponding changes to the imx-sgtl5000 driver > will be sent separately. > > Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> > --- > .../bindings/sound/imx-audio-sgtl5000.txt | 26 +++++++++++++++++++++- > 1 file changed, 25 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt b/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt > index 2f89db8..fd46671 100644 > --- a/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt > +++ b/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt > @@ -6,7 +6,7 @@ Required properties: > > - model : The user-visible name of this sound complex > > - - ssi-controller : The phandle of the i.MX SSI controller > + - ssi-controller : The phandle of the i.MX SSI (or SAI) controller > > - audio-codec : The phandle of the SGTL5000 audio codec > > @@ -39,6 +39,16 @@ Required properties: > Note: The AUDMUX port numbering should start at 1, which is consistent with > hardware manual. > > +Optional properties: > + - fsl,no-audmux : boolean > + Required for i.MX6UL (and maybe other SoCs) > + which don't have an AUDMUX, but still > + feature the same audio subsystem otherwise. It would have been better if this was a phandle to the audmux and lack of the property meant no audmux. Too late for that I guess. Acked-by: Rob Herring <robh@kernel.org> Rob ^ permalink raw reply [flat|nested] 43+ messages in thread
* [PATCH 14/14] ARM: dts: imx6: make audmux optional for i.MX6UL sound driver 2016-01-15 2:38 ` Rob Herring @ 2016-01-15 6:34 ` Lothar Waßmann 0 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-15 6:34 UTC (permalink / raw) To: linux-arm-kernel Hi, > On Tue, Jan 12, 2016 at 06:21:31PM +0100, Lothar Wa?mann wrote: > > i.MX6UL does not have the audio multiplexer (AUDMUX) like the other > > i.MX6 SoCs, but apart from that can use the same audio driver. Make > > audmux optional for the imx-sgtl5000 driver, so it can be used on > > i.MX6UL too. Furthermore i.MX6UL requires use of the SAI interface > > rather than SSI. Change the DTS documentation accordingly. > > > > The patch with the corresponding changes to the imx-sgtl5000 driver > > will be sent separately. > > > > Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> > > --- > > .../bindings/sound/imx-audio-sgtl5000.txt | 26 +++++++++++++++++++++- > > 1 file changed, 25 insertions(+), 1 deletion(-) > > > > diff --git a/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt b/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt > > index 2f89db8..fd46671 100644 > > --- a/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt > > +++ b/Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt > > @@ -6,7 +6,7 @@ Required properties: > > > > - model : The user-visible name of this sound complex > > > > - - ssi-controller : The phandle of the i.MX SSI controller > > + - ssi-controller : The phandle of the i.MX SSI (or SAI) controller > > > > - audio-codec : The phandle of the SGTL5000 audio codec > > > > @@ -39,6 +39,16 @@ Required properties: > > Note: The AUDMUX port numbering should start at 1, which is consistent with > > hardware manual. > > > > +Optional properties: > > + - fsl,no-audmux : boolean > > + Required for i.MX6UL (and maybe other SoCs) > > + which don't have an AUDMUX, but still > > + feature the same audio subsystem otherwise. > > It would have been better if this was a phandle to the audmux and lack > of the property meant no audmux. Too late for that I guess. > That would mean, that all existing dtbs would have to be changed, and older DTBs with newer kernels wouldn't work. But this patch is obsolete anyway. The simple-card driver can be used instead of the imx-audio-sgtl5000 as Mark Brown suggested in <20160112182253.GD6588@sirena.org.uk>. I'll post an updated patch series soon. Lothar Wa?mann ^ permalink raw reply [flat|nested] 43+ messages in thread
* [PATCH 08/14] ARM: dts: imx6ul: add kpp support 2016-01-12 17:21 ` [PATCH 08/14] ARM: dts: imx6ul: add kpp support Lothar Waßmann 2016-01-12 17:21 ` [PATCH 09/14] ARM: dts: imx6ul: add sdma support Lothar Waßmann @ 2016-01-13 3:16 ` kbuild test robot 2016-01-13 9:40 ` Lucas Stach 2 siblings, 0 replies; 43+ messages in thread From: kbuild test robot @ 2016-01-13 3:16 UTC (permalink / raw) To: linux-arm-kernel Hi Lothar, [auto build test ERROR on robh/for-next] [also build test ERROR on v4.4 next-20160112] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Lothar-Wa-mann/ARM-dts-imx6ul-add-more-functionality-to-i-MX6UL/20160113-012857 base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux for-next config: arm-allmodconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=arm All errors (new ones prefixed by >>): >> Error: arch/arm/boot/dts/imx6ul.dtsi:380.21-22 syntax error FATAL ERROR: Unable to parse input tree --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation -------------- next part -------------- A non-text attachment was scrubbed... Name: .config.gz Type: application/octet-stream Size: 54582 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160113/93326070/attachment-0001.obj> ^ permalink raw reply [flat|nested] 43+ messages in thread
* [PATCH 08/14] ARM: dts: imx6ul: add kpp support 2016-01-12 17:21 ` [PATCH 08/14] ARM: dts: imx6ul: add kpp support Lothar Waßmann 2016-01-12 17:21 ` [PATCH 09/14] ARM: dts: imx6ul: add sdma support Lothar Waßmann 2016-01-13 3:16 ` [PATCH 08/14] ARM: dts: imx6ul: add kpp support kbuild test robot @ 2016-01-13 9:40 ` Lucas Stach 2 siblings, 0 replies; 43+ messages in thread From: Lucas Stach @ 2016-01-13 9:40 UTC (permalink / raw) To: linux-arm-kernel Am Dienstag, den 12.01.2016, 18:21 +0100 schrieb Lothar Wa?mann: > Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> > --- > arch/arm/boot/dts/imx6ul.dtsi | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi > index 40ea5f0..a578b23 100644 > --- a/arch/arm/boot/dts/imx6ul.dtsi > +++ b/arch/arm/boot/dts/imx6ul.dtsi > @@ -373,6 +373,14 @@ > status = "disabled"; > }; > > + kpp: kpp at 020b8000 { > + compatible = "fsl,imx6q-kpp", "fsl,imx21-kpp"; Please always add a new chip specific compatible here, even if the units are fully working with the compatible of an older chip. This allows to implement chip specific workarounds in the respective drivers without changing the DT again if any bugs are found in the integration later on. So the above should be: compatible = "fsl,imx6ul-kpp", "fsl,imx6q-kpp", "fsl,imx21-kpp"; This comment applies to most of the patches in this series following this one. Regards, Lucas > + reg = <0x020b8000 0x4000>; > + interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&clks IMX6UL_CLK_KPP>; > + status = "disabled"; > + }; > + > wdog1: wdog at 020bc000 { > compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt"; > reg = <0x020bc000 0x4000>; -- Pengutronix e.K. | Lucas Stach | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 43+ messages in thread
* ARM: dts: imx6ul: add more functionality to i.MX6UL 2016-01-12 17:21 [PATCH 0/14] ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann [not found] ` <1452619291-13625-2-git-send-email-LW@KARO-electronics.de> @ 2016-01-20 10:08 ` Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 02/16] ARM: dts: imx6ul: move tsc node to appropriate place in the DTB Lothar Waßmann ` (16 more replies) 1 sibling, 17 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:08 UTC (permalink / raw) To: linux-arm-kernel This patchset adds more functionality to the i.MX6UL machines. The first three patches are cleanup patches with no functional changes intended. The other patches make various subsystems functional. ARM: dts: imx6ul: whitespace cleanup; no functional ARM: dts: imx6ul: move tsc node to appropriate place ARM: dts: imx6ul: move dt-bindings/input/input.h ARM: dts: imx6ul: specify proper clocks for GPT node ARM: dts: imx6ul: specify proper clocks for the PWM ARM: dts: imx6ul: disable PWMs by default ARM: dts: imx6ul: add pwm[1-4] nodes ARM: dts: imx6ul: add sdma support ARM: dts: imx6ul: add flexcan support ARM: dts: imx6ul: add sai support ARM: dts: imx6ul: add lcdif support ARM: dts: imx6ul: add gpmi support clk: imx: whitespace cleanup; no functional change clk: imx: add kpp clock for i.MX6UL ARM: dts: imx6ul: add kpp support ARM: dts: imx6ul: add support for Ka-Ro electronics TX6UL module Changes vs. v1: - added patch to implement KPP clock for i.MX6UL to prevent conflicts when this patch would go via a different tree. - added board support for Ka-Ro electronics TX6UL module for the same reason - added imx6ul specific compatibles as requested by Lucas Stach ^ permalink raw reply [flat|nested] 43+ messages in thread
* [PATCHv2 02/16] ARM: dts: imx6ul: move tsc node to appropriate place in the DTB 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann @ 2016-01-20 10:08 ` Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 03/16] ARM: dts: imx6ul: move dt-bindings/input/input.h include to dtsi file Lothar Waßmann ` (15 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:08 UTC (permalink / raw) To: linux-arm-kernel Move the tsc node to keep the nodes sorted in ascending order by unit address. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 99b6465..7e27d76 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -236,6 +236,17 @@ }; }; + tsc: tsc at 02040000 { + compatible = "fsl,imx6ul-tsc"; + reg = <0x02040000 0x4000>, <0x0219c000 0x4000>; + interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_IPG>, + <&clks IMX6UL_CLK_ADC2>; + clock-names = "tsc", "adc"; + status = "disabled"; + }; + gpt1: gpt at 02098000 { compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt"; reg = <0x02098000 0x4000>; @@ -590,17 +601,6 @@ status = "disabled"; }; - tsc: tsc at 02040000 { - compatible = "fsl,imx6ul-tsc"; - reg = <0x02040000 0x4000>, <0x0219c000 0x4000>; - interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_IPG>, - <&clks IMX6UL_CLK_ADC2>; - clock-names = "tsc", "adc"; - status = "disabled"; - }; - usdhc1: usdhc at 02190000 { compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc"; reg = <0x02190000 0x4000>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 03/16] ARM: dts: imx6ul: move dt-bindings/input/input.h include to dtsi file 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 02/16] ARM: dts: imx6ul: move tsc node to appropriate place in the DTB Lothar Waßmann @ 2016-01-20 10:08 ` Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 04/16] ARM: dts: imx6ul: specify proper clocks for GPT node Lothar Waßmann ` (14 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:08 UTC (permalink / raw) To: linux-arm-kernel imx6ul.dtsi references the macro 'KEY_POWER' from dt-bindings/input/input.h. Thus, move the include statement for this file from imx6ul-14x14-evk.dts to imx6ul.dtsi itself. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul-14x14-evk.dts | 1 - arch/arm/boot/dts/imx6ul.dtsi | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/imx6ul-14x14-evk.dts b/arch/arm/boot/dts/imx6ul-14x14-evk.dts index 6aaa5ec..a6f459a 100644 --- a/arch/arm/boot/dts/imx6ul-14x14-evk.dts +++ b/arch/arm/boot/dts/imx6ul-14x14-evk.dts @@ -8,7 +8,6 @@ /dts-v1/; -#include <dt-bindings/input/input.h> #include "imx6ul.dtsi" / { diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 7e27d76..e4c3a80 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -8,6 +8,7 @@ #include <dt-bindings/clock/imx6ul-clock.h> #include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> #include <dt-bindings/interrupt-controller/arm-gic.h> #include "imx6ul-pinfunc.h" #include "skeleton.dtsi" -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 04/16] ARM: dts: imx6ul: specify proper clocks for GPT node 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 02/16] ARM: dts: imx6ul: move tsc node to appropriate place in the DTB Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 03/16] ARM: dts: imx6ul: move dt-bindings/input/input.h include to dtsi file Lothar Waßmann @ 2016-01-20 10:08 ` Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 05/16] ARM: dts: imx6ul: specify proper clocks for the PWM nodes Lothar Waßmann ` (13 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:08 UTC (permalink / raw) To: linux-arm-kernel The i.MX6UL GPT unit requires real clocks. Define the appropriate clocks to make it work. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index e4c3a80..e6e3e54 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -499,8 +499,8 @@ compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt"; reg = <0x020e8000 0x4000>; interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_DUMMY>, - <&clks IMX6UL_CLK_DUMMY>; + clocks = <&clks IMX6UL_CLK_GPT2_BUS>, + <&clks IMX6UL_CLK_GPT2_SERIAL>; clock-names = "ipg", "per"; }; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 05/16] ARM: dts: imx6ul: specify proper clocks for the PWM nodes 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (2 preceding siblings ...) 2016-01-20 10:08 ` [PATCHv2 04/16] ARM: dts: imx6ul: specify proper clocks for GPT node Lothar Waßmann @ 2016-01-20 10:08 ` Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 06/16] ARM: dts: imx6ul: disable PWMs by default Lothar Waßmann ` (12 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:08 UTC (permalink / raw) To: linux-arm-kernel i.MX6UL PWMs require real clocks. Define the appropriate clocks for the PWM units. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index e6e3e54..3aba0bb 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -508,8 +508,8 @@ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x020f0000 0x4000>; interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_DUMMY>, - <&clks IMX6UL_CLK_DUMMY>; + clocks = <&clks IMX6UL_CLK_PWM5>, + <&clks IMX6UL_CLK_PWM5>; clock-names = "ipg", "per"; #pwm-cells = <2>; }; @@ -518,8 +518,8 @@ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x020f4000 0x4000>; interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_DUMMY>, - <&clks IMX6UL_CLK_DUMMY>; + clocks = <&clks IMX6UL_CLK_PWM6>, + <&clks IMX6UL_CLK_PWM6>; clock-names = "ipg", "per"; #pwm-cells = <2>; }; @@ -528,8 +528,8 @@ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x020f8000 0x4000>; interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_DUMMY>, - <&clks IMX6UL_CLK_DUMMY>; + clocks = <&clks IMX6UL_CLK_PWM7>, + <&clks IMX6UL_CLK_PWM7>; clock-names = "ipg", "per"; #pwm-cells = <2>; }; @@ -538,8 +538,8 @@ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x020fc000 0x4000>; interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6UL_CLK_DUMMY>, - <&clks IMX6UL_CLK_DUMMY>; + clocks = <&clks IMX6UL_CLK_PWM8>, + <&clks IMX6UL_CLK_PWM8>; clock-names = "ipg", "per"; #pwm-cells = <2>; }; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 06/16] ARM: dts: imx6ul: disable PWMs by default 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (3 preceding siblings ...) 2016-01-20 10:08 ` [PATCHv2 05/16] ARM: dts: imx6ul: specify proper clocks for the PWM nodes Lothar Waßmann @ 2016-01-20 10:08 ` Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 07/16] ARM: dts: imx6ul: add pwm[1-4] nodes Lothar Waßmann ` (11 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:08 UTC (permalink / raw) To: linux-arm-kernel Since PWMs are only useful if they are actually connected to an output pin, let users enable them explicitly in their device trees where they should also set up the pin configuration. This is in sync with a recent change (commit e2675266b39b "ARM: dts: imx6qdl: disable PWMs by default") to other i.MX SoCs. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 3aba0bb..863777e 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -512,6 +512,7 @@ <&clks IMX6UL_CLK_PWM5>; clock-names = "ipg", "per"; #pwm-cells = <2>; + status = "disabled"; }; pwm6: pwm at 020f4000 { @@ -522,6 +523,7 @@ <&clks IMX6UL_CLK_PWM6>; clock-names = "ipg", "per"; #pwm-cells = <2>; + status = "disabled"; }; pwm7: pwm at 020f8000 { @@ -532,6 +534,7 @@ <&clks IMX6UL_CLK_PWM7>; clock-names = "ipg", "per"; #pwm-cells = <2>; + status = "disabled"; }; pwm8: pwm at 020fc000 { @@ -542,6 +545,7 @@ <&clks IMX6UL_CLK_PWM8>; clock-names = "ipg", "per"; #pwm-cells = <2>; + status = "disabled"; }; }; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 07/16] ARM: dts: imx6ul: add pwm[1-4] nodes 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (4 preceding siblings ...) 2016-01-20 10:08 ` [PATCHv2 06/16] ARM: dts: imx6ul: disable PWMs by default Lothar Waßmann @ 2016-01-20 10:09 ` Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 08/16] ARM: dts: imx6ul: add sdma support Lothar Waßmann ` (10 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:09 UTC (permalink / raw) To: linux-arm-kernel Add device nodes for the PWM uinits 1..4 which were missing in the original commit for i.MX6UL support. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 863777e..40ea5f0 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -248,6 +248,50 @@ status = "disabled"; }; + pwm1: pwm at 02080000 { + compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; + reg = <0x02080000 0x4000>; + interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_PWM1>, + <&clks IMX6UL_CLK_PWM1>; + clock-names = "ipg", "per"; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm2: pwm at 02084000 { + compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; + reg = <0x02084000 0x4000>; + interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_PWM2>, + <&clks IMX6UL_CLK_PWM2>; + clock-names = "ipg", "per"; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm3: pwm at 02088000 { + compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; + reg = <0x02088000 0x4000>; + interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_PWM3>, + <&clks IMX6UL_CLK_PWM3>; + clock-names = "ipg", "per"; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm4: pwm at 0208c000 { + compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; + reg = <0x0208c000 0x4000>; + interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_PWM4>, + <&clks IMX6UL_CLK_PWM4>; + clock-names = "ipg", "per"; + #pwm-cells = <2>; + status = "disabled"; + }; + gpt1: gpt at 02098000 { compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt"; reg = <0x02098000 0x4000>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 08/16] ARM: dts: imx6ul: add sdma support 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (5 preceding siblings ...) 2016-01-20 10:09 ` [PATCHv2 07/16] ARM: dts: imx6ul: add pwm[1-4] nodes Lothar Waßmann @ 2016-01-20 10:09 ` Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 09/16] ARM: dts: imx6ul: add flexcan support Lothar Waßmann ` (9 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:09 UTC (permalink / raw) To: linux-arm-kernel Add device node for the i.MX6UL SDMA unit. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 40ea5f0..9c719b2 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -548,6 +548,18 @@ clock-names = "ipg", "per"; }; + sdma: sdma at 020ec000 { + compatible = "fsl,imx6ul-sdma", "fsl,imx6q-sdma", + "fsl,imx35-sdma"; + reg = <0x020ec000 0x4000>; + interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_SDMA>, + <&clks IMX6UL_CLK_SDMA>; + clock-names = "ipg", "ahb"; + #dma-cells = <3>; + fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin"; + }; + pwm5: pwm at 020f0000 { compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm"; reg = <0x020f0000 0x4000>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 09/16] ARM: dts: imx6ul: add flexcan support 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (6 preceding siblings ...) 2016-01-20 10:09 ` [PATCHv2 08/16] ARM: dts: imx6ul: add sdma support Lothar Waßmann @ 2016-01-20 10:09 ` Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 10/16] ARM: dts: imx6ul: add sai support Lothar Waßmann ` (8 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:09 UTC (permalink / raw) To: linux-arm-kernel Add device nodes for the i.MX6UL flexcan interfaces. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 9c719b2..9c873a6 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -292,6 +292,26 @@ status = "disabled"; }; + can1: flexcan at 02090000 { + compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan"; + reg = <0x02090000 0x4000>; + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_CAN1_IPG>, + <&clks IMX6UL_CLK_CAN1_SERIAL>; + clock-names = "ipg", "per"; + status = "disabled"; + }; + + can2: flexcan at 02094000 { + compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan"; + reg = <0x02094000 0x4000>; + interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_CAN2_IPG>, + <&clks IMX6UL_CLK_CAN2_SERIAL>; + clock-names = "ipg", "per"; + status = "disabled"; + }; + gpt1: gpt at 02098000 { compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt"; reg = <0x02098000 0x4000>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 10/16] ARM: dts: imx6ul: add sai support 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (7 preceding siblings ...) 2016-01-20 10:09 ` [PATCHv2 09/16] ARM: dts: imx6ul: add flexcan support Lothar Waßmann @ 2016-01-20 10:09 ` Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 11/16] ARM: dts: imx6ul: add lcdif support Lothar Waßmann ` (7 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:09 UTC (permalink / raw) To: linux-arm-kernel Add device nodes for the i.MX6UL synchronous audio interfaces (SAI). Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 9c873a6..e1fda39e 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -235,6 +235,51 @@ clock-names = "ipg", "per"; status = "disabled"; }; + + sai1: sai at 02028000 { + #sound-dai-cells = <0>; + compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai"; + reg = <0x02028000 0x4000>; + interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_SAI1_IPG>, + <&clks IMX6UL_CLK_SAI1>, + <&clks IMX6UL_CLK_DUMMY>, <&clks IMX6UL_CLK_DUMMY>; + clock-names = "bus", "mclk1", "mclk2", "mclk3"; + dmas = <&sdma 35 24 0>, + <&sdma 36 24 0>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + sai2: sai at 0202c000 { + #sound-dai-cells = <0>; + compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai"; + reg = <0x0202c000 0x4000>; + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_SAI2_IPG>, + <&clks IMX6UL_CLK_SAI2>, + <&clks IMX6UL_CLK_DUMMY>, <&clks IMX6UL_CLK_DUMMY>; + clock-names = "bus", "mclk1", "mclk2", "mclk3"; + dmas = <&sdma 37 24 0>, + <&sdma 38 24 0>; + dma-names = "rx", "tx"; + status = "disabled"; + }; + + sai3: sai at 02030000 { + #sound-dai-cells = <0>; + compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai"; + reg = <0x02030000 0x4000>; + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_SAI3_IPG>, + <&clks IMX6UL_CLK_SAI3>, + <&clks IMX6UL_CLK_DUMMY>, <&clks IMX6UL_CLK_DUMMY>; + clock-names = "bus", "mclk1", "mclk2", "mclk3"; + dmas = <&sdma 39 24 0>, + <&sdma 40 24 0>; + dma-names = "rx", "tx"; + status = "disabled"; + }; }; tsc: tsc at 02040000 { -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 11/16] ARM: dts: imx6ul: add lcdif support 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (8 preceding siblings ...) 2016-01-20 10:09 ` [PATCHv2 10/16] ARM: dts: imx6ul: add sai support Lothar Waßmann @ 2016-01-20 10:09 ` Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 12/16] ARM: dts: imx6ul: add gpmi support Lothar Waßmann ` (6 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:09 UTC (permalink / raw) To: linux-arm-kernel Add the device node for the i.MX6UL eLCDIF interface. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index e1fda39e..985c1b1 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -798,6 +798,17 @@ reg = <0x021b0000 0x4000>; }; + lcdif: lcdif at 021c8000 { + compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif"; + reg = <0x021c8000 0x4000>; + interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_LCDIF_PIX>, + <&clks IMX6UL_CLK_LCDIF_APB>, + <&clks IMX6UL_CLK_DUMMY>; + clock-names = "pix", "axi", "disp_axi"; + status = "disabled"; + }; + qspi: qspi at 021e0000 { #address-cells = <1>; #size-cells = <0>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 12/16] ARM: dts: imx6ul: add gpmi support 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (9 preceding siblings ...) 2016-01-20 10:09 ` [PATCHv2 11/16] ARM: dts: imx6ul: add lcdif support Lothar Waßmann @ 2016-01-20 10:09 ` Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 13/16] clk: imx: whitespace cleanup; no functional change Lothar Waßmann ` (5 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:09 UTC (permalink / raw) To: linux-arm-kernel Add the device node for the i.MX6UL GPMI interface and the related APBH DMA which is necessary for the GPMI to work properly. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 985c1b1..8499b3d 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -141,6 +141,39 @@ reg = <0x00900000 0x20000>; }; + dma_apbh: dma-apbh at 01804000 { + compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh"; + reg = <0x01804000 0x2000>; + interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>, + <0 13 IRQ_TYPE_LEVEL_HIGH>, + <0 13 IRQ_TYPE_LEVEL_HIGH>, + <0 13 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3"; + #dma-cells = <1>; + dma-channels = <4>; + clocks = <&clks IMX6UL_CLK_APBHDMA>; + }; + + gpmi: gpmi-nand at 01806000 { + compatible = "fsl,imx6q-gpmi-nand"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x01806000 0x2000>, <0x01808000 0x2000>; + reg-names = "gpmi-nand", "bch"; + interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "bch"; + clocks = <&clks IMX6UL_CLK_GPMI_IO>, + <&clks IMX6UL_CLK_GPMI_APB>, + <&clks IMX6UL_CLK_GPMI_BCH>, + <&clks IMX6UL_CLK_GPMI_BCH_APB>, + <&clks IMX6UL_CLK_PER_BCH>; + clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch", + "gpmi_bch_apb", "per1_bch"; + dmas = <&dma_apbh 0>; + dma-names = "rx-tx"; + status = "disabled"; + }; + aips1: aips-bus at 02000000 { compatible = "fsl,aips-bus", "simple-bus"; #address-cells = <1>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 13/16] clk: imx: whitespace cleanup; no functional change 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (10 preceding siblings ...) 2016-01-20 10:09 ` [PATCHv2 12/16] ARM: dts: imx6ul: add gpmi support Lothar Waßmann @ 2016-01-20 10:09 ` Lothar Waßmann 2016-02-25 22:27 ` Stephen Boyd 2016-01-20 10:09 ` [PATCHv2 14/16] clk: imx: add kpp clock for i.MX6UL Lothar Waßmann ` (4 subsequent siblings) 16 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:09 UTC (permalink / raw) To: linux-arm-kernel remove whitespace before TAB. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- drivers/clk/imx/clk-imx6ul.c | 62 ++++++------- include/dt-bindings/clock/imx6ul-clock.h | 146 +++++++++++++++---------------- 2 files changed, 104 insertions(+), 104 deletions(-) diff --git a/drivers/clk/imx/clk-imx6ul.c b/drivers/clk/imx/clk-imx6ul.c index 08692d7..3e31ec0 100644 --- a/drivers/clk/imx/clk-imx6ul.c +++ b/drivers/clk/imx/clk-imx6ul.c @@ -157,9 +157,9 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) clk_set_parent(clks[IMX6UL_PLL7_BYPASS], clks[IMX6UL_CLK_PLL7]); clks[IMX6UL_CLK_PLL1_SYS] = imx_clk_fixed_factor("pll1_sys", "pll1_bypass", 1, 1); - clks[IMX6UL_CLK_PLL2_BUS] = imx_clk_gate("pll2_bus", "pll2_bypass", base + 0x30, 13); - clks[IMX6UL_CLK_PLL3_USB_OTG] = imx_clk_gate("pll3_usb_otg", "pll3_bypass", base + 0x10, 13); - clks[IMX6UL_CLK_PLL4_AUDIO] = imx_clk_gate("pll4_audio", "pll4_bypass", base + 0x70, 13); + clks[IMX6UL_CLK_PLL2_BUS] = imx_clk_gate("pll2_bus", "pll2_bypass", base + 0x30, 13); + clks[IMX6UL_CLK_PLL3_USB_OTG] = imx_clk_gate("pll3_usb_otg", "pll3_bypass", base + 0x10, 13); + clks[IMX6UL_CLK_PLL4_AUDIO] = imx_clk_gate("pll4_audio", "pll4_bypass", base + 0x70, 13); clks[IMX6UL_CLK_PLL5_VIDEO] = imx_clk_gate("pll5_video", "pll5_bypass", base + 0xa0, 13); clks[IMX6UL_CLK_PLL6_ENET] = imx_clk_gate("pll6_enet", "pll6_bypass", base + 0xe0, 13); clks[IMX6UL_CLK_PLL7_USB_HOST] = imx_clk_gate("pll7_usb_host", "pll7_bypass", base + 0x20, 13); @@ -196,8 +196,8 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) base + 0xe0, 2, 2, 0, clk_enet_ref_table, &imx_ccm_lock); clks[IMX6UL_CLK_ENET2_REF_125M] = imx_clk_gate("enet_ref_125m", "enet2_ref", base + 0xe0, 20); - clks[IMX6UL_CLK_ENET_PTP_REF] = imx_clk_fixed_factor("enet_ptp_ref", "pll6_enet", 1, 20); - clks[IMX6UL_CLK_ENET_PTP] = imx_clk_gate("enet_ptp", "enet_ptp_ref", base + 0xe0, 21); + clks[IMX6UL_CLK_ENET_PTP_REF] = imx_clk_fixed_factor("enet_ptp_ref", "pll6_enet", 1, 20); + clks[IMX6UL_CLK_ENET_PTP] = imx_clk_gate("enet_ptp", "enet_ptp_ref", base + 0xe0, 21); clks[IMX6UL_CLK_PLL4_POST_DIV] = clk_register_divider_table(NULL, "pll4_post_div", "pll4_audio", CLK_SET_RATE_PARENT | CLK_SET_RATE_GATE, base + 0x70, 19, 2, 0, post_div_table, &imx_ccm_lock); @@ -210,8 +210,8 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) /* name parent_name mult div */ clks[IMX6UL_CLK_PLL2_198M] = imx_clk_fixed_factor("pll2_198m", "pll2_pfd2_396m", 1, 2); - clks[IMX6UL_CLK_PLL3_80M] = imx_clk_fixed_factor("pll3_80m", "pll3_usb_otg", 1, 6); - clks[IMX6UL_CLK_PLL3_60M] = imx_clk_fixed_factor("pll3_60m", "pll3_usb_otg", 1, 8); + clks[IMX6UL_CLK_PLL3_80M] = imx_clk_fixed_factor("pll3_80m", "pll3_usb_otg", 1, 6); + clks[IMX6UL_CLK_PLL3_60M] = imx_clk_fixed_factor("pll3_60m", "pll3_usb_otg", 1, 8); clks[IMX6UL_CLK_GPT_3M] = imx_clk_fixed_factor("gpt_3m", "osc", 1, 8); np = ccm_node; @@ -219,34 +219,34 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) WARN_ON(!base); clks[IMX6UL_CA7_SECONDARY_SEL] = imx_clk_mux("ca7_secondary_sel", base + 0xc, 3, 1, ca7_secondary_sels, ARRAY_SIZE(ca7_secondary_sels)); - clks[IMX6UL_CLK_STEP] = imx_clk_mux("step", base + 0x0c, 8, 1, step_sels, ARRAY_SIZE(step_sels)); - clks[IMX6UL_CLK_PLL1_SW] = imx_clk_mux_flags("pll1_sw", base + 0x0c, 2, 1, pll1_sw_sels, ARRAY_SIZE(pll1_sw_sels), 0); + clks[IMX6UL_CLK_STEP] = imx_clk_mux("step", base + 0x0c, 8, 1, step_sels, ARRAY_SIZE(step_sels)); + clks[IMX6UL_CLK_PLL1_SW] = imx_clk_mux_flags("pll1_sw", base + 0x0c, 2, 1, pll1_sw_sels, ARRAY_SIZE(pll1_sw_sels), 0); clks[IMX6UL_CLK_AXI_ALT_SEL] = imx_clk_mux("axi_alt_sel", base + 0x14, 7, 1, axi_alt_sels, ARRAY_SIZE(axi_alt_sels)); - clks[IMX6UL_CLK_AXI_SEL] = imx_clk_mux_flags("axi_sel", base + 0x14, 6, 1, axi_sels, ARRAY_SIZE(axi_sels), 0); - clks[IMX6UL_CLK_PERIPH_PRE] = imx_clk_mux("periph_pre", base + 0x18, 18, 2, periph_pre_sels, ARRAY_SIZE(periph_pre_sels)); - clks[IMX6UL_CLK_PERIPH2_PRE] = imx_clk_mux("periph2_pre", base + 0x18, 21, 2, periph2_pre_sels, ARRAY_SIZE(periph2_pre_sels)); + clks[IMX6UL_CLK_AXI_SEL] = imx_clk_mux_flags("axi_sel", base + 0x14, 6, 1, axi_sels, ARRAY_SIZE(axi_sels), 0); + clks[IMX6UL_CLK_PERIPH_PRE] = imx_clk_mux("periph_pre", base + 0x18, 18, 2, periph_pre_sels, ARRAY_SIZE(periph_pre_sels)); + clks[IMX6UL_CLK_PERIPH2_PRE] = imx_clk_mux("periph2_pre", base + 0x18, 21, 2, periph2_pre_sels, ARRAY_SIZE(periph2_pre_sels)); clks[IMX6UL_CLK_PERIPH_CLK2_SEL] = imx_clk_mux("periph_clk2_sel", base + 0x18, 12, 2, periph_clk2_sels, ARRAY_SIZE(periph_clk2_sels)); clks[IMX6UL_CLK_PERIPH2_CLK2_SEL] = imx_clk_mux("periph2_clk2_sel", base + 0x18, 20, 1, periph2_clk2_sels, ARRAY_SIZE(periph2_clk2_sels)); - clks[IMX6UL_CLK_EIM_SLOW_SEL] = imx_clk_mux("eim_slow_sel", base + 0x1c, 29, 2, eim_slow_sels, ARRAY_SIZE(eim_slow_sels)); + clks[IMX6UL_CLK_EIM_SLOW_SEL] = imx_clk_mux("eim_slow_sel", base + 0x1c, 29, 2, eim_slow_sels, ARRAY_SIZE(eim_slow_sels)); clks[IMX6UL_CLK_GPMI_SEL] = imx_clk_mux("gpmi_sel", base + 0x1c, 19, 1, gpmi_sels, ARRAY_SIZE(gpmi_sels)); - clks[IMX6UL_CLK_BCH_SEL] = imx_clk_mux("bch_sel", base + 0x1c, 18, 1, bch_sels, ARRAY_SIZE(bch_sels)); + clks[IMX6UL_CLK_BCH_SEL] = imx_clk_mux("bch_sel", base + 0x1c, 18, 1, bch_sels, ARRAY_SIZE(bch_sels)); clks[IMX6UL_CLK_USDHC2_SEL] = imx_clk_mux("usdhc2_sel", base + 0x1c, 17, 1, usdhc_sels, ARRAY_SIZE(usdhc_sels)); clks[IMX6UL_CLK_USDHC1_SEL] = imx_clk_mux("usdhc1_sel", base + 0x1c, 16, 1, usdhc_sels, ARRAY_SIZE(usdhc_sels)); - clks[IMX6UL_CLK_SAI3_SEL] = imx_clk_mux("sai3_sel", base + 0x1c, 14, 2, sai_sels, ARRAY_SIZE(sai_sels)); + clks[IMX6UL_CLK_SAI3_SEL] = imx_clk_mux("sai3_sel", base + 0x1c, 14, 2, sai_sels, ARRAY_SIZE(sai_sels)); clks[IMX6UL_CLK_SAI2_SEL] = imx_clk_mux("sai2_sel", base + 0x1c, 12, 2, sai_sels, ARRAY_SIZE(sai_sels)); - clks[IMX6UL_CLK_SAI1_SEL] = imx_clk_mux("sai1_sel", base + 0x1c, 10, 2, sai_sels, ARRAY_SIZE(sai_sels)); - clks[IMX6UL_CLK_QSPI1_SEL] = imx_clk_mux("qspi1_sel", base + 0x1c, 7, 3, qspi1_sels, ARRAY_SIZE(qspi1_sels)); - clks[IMX6UL_CLK_PERCLK_SEL] = imx_clk_mux("perclk_sel", base + 0x1c, 6, 1, perclk_sels, ARRAY_SIZE(perclk_sels)); - clks[IMX6UL_CLK_CAN_SEL] = imx_clk_mux("can_sel", base + 0x20, 8, 2, can_sels, ARRAY_SIZE(can_sels)); + clks[IMX6UL_CLK_SAI1_SEL] = imx_clk_mux("sai1_sel", base + 0x1c, 10, 2, sai_sels, ARRAY_SIZE(sai_sels)); + clks[IMX6UL_CLK_QSPI1_SEL] = imx_clk_mux("qspi1_sel", base + 0x1c, 7, 3, qspi1_sels, ARRAY_SIZE(qspi1_sels)); + clks[IMX6UL_CLK_PERCLK_SEL] = imx_clk_mux("perclk_sel", base + 0x1c, 6, 1, perclk_sels, ARRAY_SIZE(perclk_sels)); + clks[IMX6UL_CLK_CAN_SEL] = imx_clk_mux("can_sel", base + 0x20, 8, 2, can_sels, ARRAY_SIZE(can_sels)); clks[IMX6UL_CLK_UART_SEL] = imx_clk_mux("uart_sel", base + 0x24, 6, 1, uart_sels, ARRAY_SIZE(uart_sels)); clks[IMX6UL_CLK_ENFC_SEL] = imx_clk_mux("enfc_sel", base + 0x2c, 15, 3, enfc_sels, ARRAY_SIZE(enfc_sels)); clks[IMX6UL_CLK_LDB_DI0_SEL] = imx_clk_mux("ldb_di0_sel", base + 0x2c, 9, 3, ldb_di0_sels, ARRAY_SIZE(ldb_di0_sels)); clks[IMX6UL_CLK_SPDIF_SEL] = imx_clk_mux("spdif_sel", base + 0x30, 20, 2, spdif_sels, ARRAY_SIZE(spdif_sels)); - clks[IMX6UL_CLK_SIM_PRE_SEL] = imx_clk_mux("sim_pre_sel", base + 0x34, 15, 3, sim_pre_sels, ARRAY_SIZE(sim_pre_sels)); - clks[IMX6UL_CLK_SIM_SEL] = imx_clk_mux("sim_sel", base + 0x34, 9, 3, sim_sels, ARRAY_SIZE(sim_sels)); + clks[IMX6UL_CLK_SIM_PRE_SEL] = imx_clk_mux("sim_pre_sel", base + 0x34, 15, 3, sim_pre_sels, ARRAY_SIZE(sim_pre_sels)); + clks[IMX6UL_CLK_SIM_SEL] = imx_clk_mux("sim_sel", base + 0x34, 9, 3, sim_sels, ARRAY_SIZE(sim_sels)); clks[IMX6UL_CLK_ECSPI_SEL] = imx_clk_mux("ecspi_sel", base + 0x38, 18, 1, ecspi_sels, ARRAY_SIZE(ecspi_sels)); clks[IMX6UL_CLK_LCDIF_PRE_SEL] = imx_clk_mux("lcdif_pre_sel", base + 0x38, 15, 3, lcdif_pre_sels, ARRAY_SIZE(lcdif_pre_sels)); - clks[IMX6UL_CLK_LCDIF_SEL] = imx_clk_mux("lcdif_sel", base + 0x38, 9, 3, lcdif_sels, ARRAY_SIZE(lcdif_sels)); + clks[IMX6UL_CLK_LCDIF_SEL] = imx_clk_mux("lcdif_sel", base + 0x38, 9, 3, lcdif_sels, ARRAY_SIZE(lcdif_sels)); clks[IMX6UL_CLK_LDB_DI0_DIV_SEL] = imx_clk_mux("ldb_di0", base + 0x20, 10, 1, ldb_di0_div_sels, ARRAY_SIZE(ldb_di0_div_sels)); clks[IMX6UL_CLK_LDB_DI1_DIV_SEL] = imx_clk_mux("ldb_di1", base + 0x20, 11, 1, ldb_di1_div_sels, ARRAY_SIZE(ldb_di1_div_sels)); @@ -259,11 +259,11 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) clks[IMX6UL_CLK_PERIPH] = imx_clk_busy_mux("periph", base + 0x14, 25, 1, base + 0x48, 5, periph_sels, ARRAY_SIZE(periph_sels)); clks[IMX6UL_CLK_PERIPH2] = imx_clk_busy_mux("periph2", base + 0x14, 26, 1, base + 0x48, 3, periph2_sels, ARRAY_SIZE(periph2_sels)); - clks[IMX6UL_CLK_PERIPH_CLK2] = imx_clk_divider("periph_clk2", "periph_clk2_sel", base + 0x14, 27, 3); - clks[IMX6UL_CLK_PERIPH2_CLK2] = imx_clk_divider("periph2_clk2", "periph2_clk2_sel", base + 0x14, 0, 3); + clks[IMX6UL_CLK_PERIPH_CLK2] = imx_clk_divider("periph_clk2", "periph_clk2_sel", base + 0x14, 27, 3); + clks[IMX6UL_CLK_PERIPH2_CLK2] = imx_clk_divider("periph2_clk2", "periph2_clk2_sel", base + 0x14, 0, 3); clks[IMX6UL_CLK_IPG] = imx_clk_divider("ipg", "ahb", base + 0x14, 8, 2); clks[IMX6UL_CLK_LCDIF_PODF] = imx_clk_divider("lcdif_podf", "lcdif_pred", base + 0x18, 23, 3); - clks[IMX6UL_CLK_QSPI1_PDOF] = imx_clk_divider("qspi1_podf", "qspi1_sel", base + 0x1c, 26, 3); + clks[IMX6UL_CLK_QSPI1_PDOF] = imx_clk_divider("qspi1_podf", "qspi1_sel", base + 0x1c, 26, 3); clks[IMX6UL_CLK_EIM_SLOW_PODF] = imx_clk_divider("eim_slow_podf", "eim_slow_sel", base + 0x1c, 23, 3); clks[IMX6UL_CLK_PERCLK] = imx_clk_divider("perclk", "perclk_sel", base + 0x1c, 0, 6); clks[IMX6UL_CLK_CAN_PODF] = imx_clk_divider("can_podf", "can_sel", base + 0x20, 2, 6); @@ -287,14 +287,14 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) clks[IMX6UL_CLK_LCDIF_PRED] = imx_clk_divider("lcdif_pred", "lcdif_pre_sel", base + 0x38, 12, 3); clks[IMX6UL_CLK_CSI_PODF] = imx_clk_divider("csi_podf", "csi_sel", base + 0x3c, 11, 3); - clks[IMX6UL_CLK_ARM] = imx_clk_busy_divider("arm", "pll1_sw", base + 0x10, 0, 3, base + 0x48, 16); + clks[IMX6UL_CLK_ARM] = imx_clk_busy_divider("arm", "pll1_sw", base + 0x10, 0, 3, base + 0x48, 16); clks[IMX6UL_CLK_MMDC_PODF] = imx_clk_busy_divider("mmdc_podf", "periph2", base + 0x14, 3, 3, base + 0x48, 2); clks[IMX6UL_CLK_AXI_PODF] = imx_clk_busy_divider("axi_podf", "axi_sel", base + 0x14, 16, 3, base + 0x48, 0); clks[IMX6UL_CLK_AHB] = imx_clk_busy_divider("ahb", "periph", base + 0x14, 10, 3, base + 0x48, 1); /* CCGR0 */ - clks[IMX6UL_CLK_AIPSTZ1] = imx_clk_gate2("aips_tz1", "ahb", base + 0x68, 0); - clks[IMX6UL_CLK_AIPSTZ2] = imx_clk_gate2("aips_tz2", "ahb", base + 0x68, 2); + clks[IMX6UL_CLK_AIPSTZ1] = imx_clk_gate2("aips_tz1", "ahb", base + 0x68, 0); + clks[IMX6UL_CLK_AIPSTZ2] = imx_clk_gate2("aips_tz2", "ahb", base + 0x68, 2); clks[IMX6UL_CLK_APBHDMA] = imx_clk_gate2("apbh_dma", "bch_podf", base + 0x68, 4); clks[IMX6UL_CLK_ASRC_IPG] = imx_clk_gate2_shared("asrc_ipg", "ahb", base + 0x68, 6, &share_count_asrc); clks[IMX6UL_CLK_ASRC_MEM] = imx_clk_gate2_shared("asrc_mem", "ahb", base + 0x68, 6, &share_count_asrc); @@ -302,7 +302,7 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) clks[IMX6UL_CLK_CAAM_ACLK] = imx_clk_gate2("caam_aclk", "ahb", base + 0x68, 10); clks[IMX6UL_CLK_CAAM_IPG] = imx_clk_gate2("caam_ipg", "ipg", base + 0x68, 12); clks[IMX6UL_CLK_CAN1_IPG] = imx_clk_gate2("can1_ipg", "ipg", base + 0x68, 14); - clks[IMX6UL_CLK_CAN1_SERIAL] = imx_clk_gate2("can1_serial", "can_podf", base + 0x68, 16); + clks[IMX6UL_CLK_CAN1_SERIAL] = imx_clk_gate2("can1_serial", "can_podf", base + 0x68, 16); clks[IMX6UL_CLK_CAN2_IPG] = imx_clk_gate2("can2_ipg", "ipg", base + 0x68, 18); clks[IMX6UL_CLK_CAN2_SERIAL] = imx_clk_gate2("can2_serial", "can_podf", base + 0x68, 20); clks[IMX6UL_CLK_GPT2_BUS] = imx_clk_gate2("gpt_bus", "perclk", base + 0x68, 24); @@ -331,7 +331,7 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) clks[IMX6UL_CLK_CSI] = imx_clk_gate2("csi", "csi_podf", base + 0x70, 2); clks[IMX6UL_CLK_I2C1] = imx_clk_gate2("i2c1", "perclk", base + 0x70, 6); clks[IMX6UL_CLK_I2C2] = imx_clk_gate2("i2c2", "perclk", base + 0x70, 8); - clks[IMX6UL_CLK_I2C3] = imx_clk_gate2("i2c3", "perclk", base + 0x70, 10); + clks[IMX6UL_CLK_I2C3] = imx_clk_gate2("i2c3", "perclk", base + 0x70, 10); clks[IMX6UL_CLK_OCOTP] = imx_clk_gate2("ocotp", "ipg", base + 0x70, 12); clks[IMX6UL_CLK_IOMUXC] = imx_clk_gate2("iomuxc", "lcdif_podf", base + 0x70, 14); clks[IMX6UL_CLK_LCDIF_APB] = imx_clk_gate2("lcdif_apb", "axi", base + 0x70, 28); @@ -391,7 +391,7 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) clks[IMX6UL_CLK_UART8_IPG] = imx_clk_gate2("uart8_ipg", "ipg", base + 0x80, 14); clks[IMX6UL_CLK_UART8_SERIAL] = imx_clk_gate2("uart8_serial", "uart_podf", base + 0x80, 14); clks[IMX6UL_CLK_WDOG3] = imx_clk_gate2("wdog3", "ipg", base + 0x80, 20); - clks[IMX6UL_CLK_I2C4] = imx_clk_gate2("i2c4", "perclk", base + 0x80, 24); + clks[IMX6UL_CLK_I2C4] = imx_clk_gate2("i2c4", "perclk", base + 0x80, 24); clks[IMX6UL_CLK_PWM5] = imx_clk_gate2("pwm5", "perclk", base + 0x80, 26); clks[IMX6UL_CLK_PWM6] = imx_clk_gate2("pwm6", "perclk", base + 0x80, 28); clks[IMX6UL_CLK_PWM7] = imx_clk_gate2("Pwm7", "perclk", base + 0x80, 30); diff --git a/include/dt-bindings/clock/imx6ul-clock.h b/include/dt-bindings/clock/imx6ul-clock.h index c343894..08ce4a7 100644 --- a/include/dt-bindings/clock/imx6ul-clock.h +++ b/include/dt-bindings/clock/imx6ul-clock.h @@ -21,13 +21,13 @@ #define IMX6UL_PLL5_BYPASS_SRC 8 #define IMX6UL_PLL6_BYPASS_SRC 9 #define IMX6UL_PLL7_BYPASS_SRC 10 -#define IMX6UL_CLK_PLL1 11 -#define IMX6UL_CLK_PLL2 12 -#define IMX6UL_CLK_PLL3 13 -#define IMX6UL_CLK_PLL4 14 -#define IMX6UL_CLK_PLL5 15 -#define IMX6UL_CLK_PLL6 16 -#define IMX6UL_CLK_PLL7 17 +#define IMX6UL_CLK_PLL1 11 +#define IMX6UL_CLK_PLL2 12 +#define IMX6UL_CLK_PLL3 13 +#define IMX6UL_CLK_PLL4 14 +#define IMX6UL_CLK_PLL5 15 +#define IMX6UL_CLK_PLL6 16 +#define IMX6UL_CLK_PLL7 17 #define IMX6UL_PLL1_BYPASS 18 #define IMX6UL_PLL2_BYPASS 19 #define IMX6UL_PLL3_BYPASS 20 @@ -37,7 +37,7 @@ #define IMX6UL_PLL7_BYPASS 24 #define IMX6UL_CLK_PLL1_SYS 25 #define IMX6UL_CLK_PLL2_BUS 26 -#define IMX6UL_CLK_PLL3_USB_OTG 27 +#define IMX6UL_CLK_PLL3_USB_OTG 27 #define IMX6UL_CLK_PLL4_AUDIO 28 #define IMX6UL_CLK_PLL5_VIDEO 29 #define IMX6UL_CLK_PLL6_ENET 30 @@ -66,7 +66,7 @@ #define IMX6UL_CLK_PLL2_198M 53 #define IMX6UL_CLK_PLL3_80M 54 #define IMX6UL_CLK_PLL3_60M 55 -#define IMX6UL_CLK_STEP 56 +#define IMX6UL_CLK_STEP 56 #define IMX6UL_CLK_PLL1_SW 57 #define IMX6UL_CLK_AXI_ALT_SEL 58 #define IMX6UL_CLK_AXI_SEL 59 @@ -78,7 +78,7 @@ #define IMX6UL_CLK_USDHC2_SEL 65 #define IMX6UL_CLK_BCH_SEL 66 #define IMX6UL_CLK_GPMI_SEL 67 -#define IMX6UL_CLK_EIM_SLOW_SEL 68 +#define IMX6UL_CLK_EIM_SLOW_SEL 68 #define IMX6UL_CLK_SPDIF_SEL 69 #define IMX6UL_CLK_SAI1_SEL 70 #define IMX6UL_CLK_SAI2_SEL 71 @@ -105,9 +105,9 @@ #define IMX6UL_CLK_LDB_DI1_DIV_SEL 92 #define IMX6UL_CLK_ARM 93 #define IMX6UL_CLK_PERIPH_CLK2 94 -#define IMX6UL_CLK_PERIPH2_CLK2 95 +#define IMX6UL_CLK_PERIPH2_CLK2 95 #define IMX6UL_CLK_AHB 96 -#define IMX6UL_CLK_MMDC_PODF 97 +#define IMX6UL_CLK_MMDC_PODF 97 #define IMX6UL_CLK_AXI_PODF 98 #define IMX6UL_CLK_PERCLK 99 #define IMX6UL_CLK_IPG 100 @@ -133,16 +133,16 @@ #define IMX6UL_CLK_CAN_PODF 120 #define IMX6UL_CLK_ECSPI_PODF 121 #define IMX6UL_CLK_UART_PODF 122 -#define IMX6UL_CLK_ADC1 123 -#define IMX6UL_CLK_ADC2 124 +#define IMX6UL_CLK_ADC1 123 +#define IMX6UL_CLK_ADC2 124 #define IMX6UL_CLK_AIPSTZ1 125 #define IMX6UL_CLK_AIPSTZ2 126 #define IMX6UL_CLK_AIPSTZ3 127 #define IMX6UL_CLK_APBHDMA 128 #define IMX6UL_CLK_ASRC_IPG 129 #define IMX6UL_CLK_ASRC_MEM 130 -#define IMX6UL_CLK_GPMI_BCH_APB 131 -#define IMX6UL_CLK_GPMI_BCH 132 +#define IMX6UL_CLK_GPMI_BCH_APB 131 +#define IMX6UL_CLK_GPMI_BCH 132 #define IMX6UL_CLK_GPMI_IO 133 #define IMX6UL_CLK_GPMI_APB 134 #define IMX6UL_CLK_CAAM_MEM 135 @@ -154,7 +154,7 @@ #define IMX6UL_CLK_ECSPI3 141 #define IMX6UL_CLK_ECSPI4 142 #define IMX6UL_CLK_EIM 143 -#define IMX6UL_CLK_ENET 144 +#define IMX6UL_CLK_ENET 144 #define IMX6UL_CLK_ENET_AHB 145 #define IMX6UL_CLK_EPIT1 146 #define IMX6UL_CLK_EPIT2 147 @@ -166,63 +166,63 @@ #define IMX6UL_CLK_GPT1_SERIAL 153 #define IMX6UL_CLK_GPT2_BUS 154 #define IMX6UL_CLK_GPT2_SERIAL 155 -#define IMX6UL_CLK_I2C1 156 -#define IMX6UL_CLK_I2C2 157 -#define IMX6UL_CLK_I2C3 158 -#define IMX6UL_CLK_I2C4 159 -#define IMX6UL_CLK_IOMUXC 160 -#define IMX6UL_CLK_LCDIF_APB 161 -#define IMX6UL_CLK_LCDIF_PIX 162 -#define IMX6UL_CLK_MMDC_P0_FAST 163 -#define IMX6UL_CLK_MMDC_P0_IPG 164 -#define IMX6UL_CLK_OCOTP 165 -#define IMX6UL_CLK_OCRAM 166 -#define IMX6UL_CLK_PWM1 167 -#define IMX6UL_CLK_PWM2 168 -#define IMX6UL_CLK_PWM3 169 -#define IMX6UL_CLK_PWM4 170 -#define IMX6UL_CLK_PWM5 171 -#define IMX6UL_CLK_PWM6 172 -#define IMX6UL_CLK_PWM7 173 -#define IMX6UL_CLK_PWM8 174 -#define IMX6UL_CLK_PXP 175 -#define IMX6UL_CLK_QSPI 176 -#define IMX6UL_CLK_ROM 177 -#define IMX6UL_CLK_SAI1 178 -#define IMX6UL_CLK_SAI1_IPG 179 -#define IMX6UL_CLK_SAI2 180 -#define IMX6UL_CLK_SAI2_IPG 181 -#define IMX6UL_CLK_SAI3 182 -#define IMX6UL_CLK_SAI3_IPG 183 -#define IMX6UL_CLK_SDMA 184 -#define IMX6UL_CLK_SIM 185 -#define IMX6UL_CLK_SIM_S 186 -#define IMX6UL_CLK_SPBA 187 -#define IMX6UL_CLK_SPDIF 188 -#define IMX6UL_CLK_UART1_IPG 189 -#define IMX6UL_CLK_UART1_SERIAL 190 -#define IMX6UL_CLK_UART2_IPG 191 -#define IMX6UL_CLK_UART2_SERIAL 192 -#define IMX6UL_CLK_UART3_IPG 193 -#define IMX6UL_CLK_UART3_SERIAL 194 -#define IMX6UL_CLK_UART4_IPG 195 -#define IMX6UL_CLK_UART4_SERIAL 196 -#define IMX6UL_CLK_UART5_IPG 197 -#define IMX6UL_CLK_UART5_SERIAL 198 -#define IMX6UL_CLK_UART6_IPG 199 -#define IMX6UL_CLK_UART6_SERIAL 200 -#define IMX6UL_CLK_UART7_IPG 201 -#define IMX6UL_CLK_UART7_SERIAL 202 -#define IMX6UL_CLK_UART8_IPG 203 -#define IMX6UL_CLK_UART8_SERIAL 204 -#define IMX6UL_CLK_USBOH3 205 -#define IMX6UL_CLK_USDHC1 206 -#define IMX6UL_CLK_USDHC2 207 -#define IMX6UL_CLK_WDOG1 208 -#define IMX6UL_CLK_WDOG2 209 -#define IMX6UL_CLK_WDOG3 210 +#define IMX6UL_CLK_I2C1 156 +#define IMX6UL_CLK_I2C2 157 +#define IMX6UL_CLK_I2C3 158 +#define IMX6UL_CLK_I2C4 159 +#define IMX6UL_CLK_IOMUXC 160 +#define IMX6UL_CLK_LCDIF_APB 161 +#define IMX6UL_CLK_LCDIF_PIX 162 +#define IMX6UL_CLK_MMDC_P0_FAST 163 +#define IMX6UL_CLK_MMDC_P0_IPG 164 +#define IMX6UL_CLK_OCOTP 165 +#define IMX6UL_CLK_OCRAM 166 +#define IMX6UL_CLK_PWM1 167 +#define IMX6UL_CLK_PWM2 168 +#define IMX6UL_CLK_PWM3 169 +#define IMX6UL_CLK_PWM4 170 +#define IMX6UL_CLK_PWM5 171 +#define IMX6UL_CLK_PWM6 172 +#define IMX6UL_CLK_PWM7 173 +#define IMX6UL_CLK_PWM8 174 +#define IMX6UL_CLK_PXP 175 +#define IMX6UL_CLK_QSPI 176 +#define IMX6UL_CLK_ROM 177 +#define IMX6UL_CLK_SAI1 178 +#define IMX6UL_CLK_SAI1_IPG 179 +#define IMX6UL_CLK_SAI2 180 +#define IMX6UL_CLK_SAI2_IPG 181 +#define IMX6UL_CLK_SAI3 182 +#define IMX6UL_CLK_SAI3_IPG 183 +#define IMX6UL_CLK_SDMA 184 +#define IMX6UL_CLK_SIM 185 +#define IMX6UL_CLK_SIM_S 186 +#define IMX6UL_CLK_SPBA 187 +#define IMX6UL_CLK_SPDIF 188 +#define IMX6UL_CLK_UART1_IPG 189 +#define IMX6UL_CLK_UART1_SERIAL 190 +#define IMX6UL_CLK_UART2_IPG 191 +#define IMX6UL_CLK_UART2_SERIAL 192 +#define IMX6UL_CLK_UART3_IPG 193 +#define IMX6UL_CLK_UART3_SERIAL 194 +#define IMX6UL_CLK_UART4_IPG 195 +#define IMX6UL_CLK_UART4_SERIAL 196 +#define IMX6UL_CLK_UART5_IPG 197 +#define IMX6UL_CLK_UART5_SERIAL 198 +#define IMX6UL_CLK_UART6_IPG 199 +#define IMX6UL_CLK_UART6_SERIAL 200 +#define IMX6UL_CLK_UART7_IPG 201 +#define IMX6UL_CLK_UART7_SERIAL 202 +#define IMX6UL_CLK_UART8_IPG 203 +#define IMX6UL_CLK_UART8_SERIAL 204 +#define IMX6UL_CLK_USBOH3 205 +#define IMX6UL_CLK_USDHC1 206 +#define IMX6UL_CLK_USDHC2 207 +#define IMX6UL_CLK_WDOG1 208 +#define IMX6UL_CLK_WDOG2 209 +#define IMX6UL_CLK_WDOG3 210 #define IMX6UL_CLK_LDB_DI0 211 -#define IMX6UL_CLK_AXI 212 +#define IMX6UL_CLK_AXI 212 #define IMX6UL_CLK_SPDIF_GCLK 213 #define IMX6UL_CLK_GPT_3M 214 #define IMX6UL_CLK_SIM2 215 -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 13/16] clk: imx: whitespace cleanup; no functional change 2016-01-20 10:09 ` [PATCHv2 13/16] clk: imx: whitespace cleanup; no functional change Lothar Waßmann @ 2016-02-25 22:27 ` Stephen Boyd 0 siblings, 0 replies; 43+ messages in thread From: Stephen Boyd @ 2016-02-25 22:27 UTC (permalink / raw) To: linux-arm-kernel On 01/20, Lothar Wa?mann wrote: > remove whitespace before TAB. > > Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> > --- Acked-by: Stephen Boyd <sboyd@codeaurora.org> -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ^ permalink raw reply [flat|nested] 43+ messages in thread
* [PATCHv2 14/16] clk: imx: add kpp clock for i.MX6UL 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (11 preceding siblings ...) 2016-01-20 10:09 ` [PATCHv2 13/16] clk: imx: whitespace cleanup; no functional change Lothar Waßmann @ 2016-01-20 10:09 ` Lothar Waßmann 2016-02-25 22:27 ` Stephen Boyd 2016-01-20 10:09 ` [PATCHv2 15/16] ARM: dts: imx6ul: add kpp support Lothar Waßmann ` (3 subsequent siblings) 16 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:09 UTC (permalink / raw) To: linux-arm-kernel Add the necessary clock to use the KPP interface on i.MX6UL. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- drivers/clk/imx/clk-imx6ul.c | 1 + include/dt-bindings/clock/imx6ul-clock.h | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/clk/imx/clk-imx6ul.c b/drivers/clk/imx/clk-imx6ul.c index 3e31ec0..1ee28d3 100644 --- a/drivers/clk/imx/clk-imx6ul.c +++ b/drivers/clk/imx/clk-imx6ul.c @@ -365,6 +365,7 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node) /* CCGR5 */ clks[IMX6UL_CLK_ROM] = imx_clk_gate2("rom", "ahb", base + 0x7c, 0); clks[IMX6UL_CLK_SDMA] = imx_clk_gate2("sdma", "ahb", base + 0x7c, 6); + clks[IMX6UL_CLK_KPP] = imx_clk_gate2("kpp", "ipg", base + 0x7c, 8); clks[IMX6UL_CLK_WDOG2] = imx_clk_gate2("wdog2", "ipg", base + 0x7c, 10); clks[IMX6UL_CLK_SPBA] = imx_clk_gate2("spba", "ipg", base + 0x7c, 12); clks[IMX6UL_CLK_SPDIF] = imx_clk_gate2_shared("spdif", "spdif_podf", base + 0x7c, 14, &share_count_audio); diff --git a/include/dt-bindings/clock/imx6ul-clock.h b/include/dt-bindings/clock/imx6ul-clock.h index 08ce4a7..fd8aee8 100644 --- a/include/dt-bindings/clock/imx6ul-clock.h +++ b/include/dt-bindings/clock/imx6ul-clock.h @@ -234,7 +234,8 @@ #define IMX6UL_CLK_CSI_SEL 221 #define IMX6UL_CLK_CSI_PODF 222 #define IMX6UL_CLK_PLL3_120M 223 +#define IMX6UL_CLK_KPP 224 -#define IMX6UL_CLK_END 224 +#define IMX6UL_CLK_END 225 #endif /* __DT_BINDINGS_CLOCK_IMX6UL_H */ -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 14/16] clk: imx: add kpp clock for i.MX6UL 2016-01-20 10:09 ` [PATCHv2 14/16] clk: imx: add kpp clock for i.MX6UL Lothar Waßmann @ 2016-02-25 22:27 ` Stephen Boyd 0 siblings, 0 replies; 43+ messages in thread From: Stephen Boyd @ 2016-02-25 22:27 UTC (permalink / raw) To: linux-arm-kernel On 01/20, Lothar Wa?mann wrote: > Add the necessary clock to use the KPP interface on i.MX6UL. > > Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> > --- Acked-by: Stephen Boyd <sboyd@codeaurora.org> -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project ^ permalink raw reply [flat|nested] 43+ messages in thread
* [PATCHv2 15/16] ARM: dts: imx6ul: add kpp support 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (12 preceding siblings ...) 2016-01-20 10:09 ` [PATCHv2 14/16] clk: imx: add kpp clock for i.MX6UL Lothar Waßmann @ 2016-01-20 10:09 ` Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 16/16] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules Lothar Waßmann ` (2 subsequent siblings) 16 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:09 UTC (permalink / raw) To: linux-arm-kernel This patch adds the device node for the i.MX6UL keypad controller. Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/imx6ul.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi index 8499b3d..7177899 100644 --- a/arch/arm/boot/dts/imx6ul.dtsi +++ b/arch/arm/boot/dts/imx6ul.dtsi @@ -471,6 +471,14 @@ status = "disabled"; }; + kpp: kpp at 020b8000 { + compatible = "fsl,imx6ul-kpp", "fsl,imx6q-kpp", "fsl,imx21-kpp"; + reg = <0x020b8000 0x4000>; + interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6UL_CLK_KPP>; + status = "disabled"; + }; + wdog1: wdog at 020bc000 { compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt"; reg = <0x020bc000 0x4000>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 16/16] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (13 preceding siblings ...) 2016-01-20 10:09 ` [PATCHv2 15/16] ARM: dts: imx6ul: add kpp support Lothar Waßmann @ 2016-01-20 10:09 ` Lothar Waßmann 2016-02-28 6:43 ` Shawn Guo 2016-02-28 6:49 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Shawn Guo 2016-03-04 12:37 ` Lothar Waßmann 16 siblings, 1 reply; 43+ messages in thread From: Lothar Waßmann @ 2016-01-20 10:09 UTC (permalink / raw) To: linux-arm-kernel The TXUL-0010/-0011 modules are Computers On Module manufactured by Ka-Ro electronics GmbH with the following characteristics: Processor Freescale i.MX 6UltraLite MCIMX6G2, 528 MHz RAM 256MB 16-bit DDR3 SDRAM ROM 128MB NAND Flash (TXUL-0010) / 4GB eMMC (TXUL-0011) Power supply Single 3.3 to 5V Size 26mm SO-DIMM Temp. Range -40?C to 85?C Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/Makefile | 4 +- arch/arm/boot/dts/imx6ul-txul-0010.dts | 54 ++ arch/arm/boot/dts/imx6ul-txul-0011.dts | 85 +++ arch/arm/boot/dts/imx6ul-txul.dtsi | 962 +++++++++++++++++++++++++++++++++ 4 files changed, 1104 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/imx6ul-txul-0010.dts create mode 100644 arch/arm/boot/dts/imx6ul-txul-0011.dts create mode 100644 arch/arm/boot/dts/imx6ul-txul.dtsi diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index a4a6d70..f993e7d 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -358,7 +358,9 @@ dtb-$(CONFIG_SOC_IMX6SX) += \ imx6sx-sdb-reva.dtb \ imx6sx-sdb.dtb dtb-$(CONFIG_SOC_IMX6UL) += \ - imx6ul-14x14-evk.dtb + imx6ul-14x14-evk.dtb \ + imx6ul-txul-0010.dtb \ + imx6ul-txul-0011.dtb dtb-$(CONFIG_SOC_IMX7D) += \ imx7d-cl-som-imx7.dtb \ imx7d-sbc-imx7.dtb \ diff --git a/arch/arm/boot/dts/imx6ul-txul-0010.dts b/arch/arm/boot/dts/imx6ul-txul-0010.dts new file mode 100644 index 0000000..5e0b09f --- /dev/null +++ b/arch/arm/boot/dts/imx6ul-txul-0010.dts @@ -0,0 +1,54 @@ +/* + * Copyright 2015 Lothar Wa?mann <LW@KARO-electronics.de> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/dts-v1/; +#include "imx6ul.dtsi" +#include "imx6ul-txul.dtsi" + +/ { + model = "Ka-Ro electronics TXUL-0010 Module"; + compatible = "karo,imx6ul-tx6ul", "fsl,imx6ul"; + + aliases { + mmc0 = &usdhc1; + /delete-property/ mmc1; + }; +}; diff --git a/arch/arm/boot/dts/imx6ul-txul-0011.dts b/arch/arm/boot/dts/imx6ul-txul-0011.dts new file mode 100644 index 0000000..dd3055b --- /dev/null +++ b/arch/arm/boot/dts/imx6ul-txul-0011.dts @@ -0,0 +1,85 @@ +/* + * Copyright 2015 Lothar Wa?mann <LW@KARO-electronics.de> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/dts-v1/; +#include "imx6ul.dtsi" +#include "imx6ul-txul.dtsi" + +/ { + model = "Ka-Ro electronics TXUL-0011 Module"; + compatible = "karo,imx6ul-tx6ul", "fsl,imx6ul"; + + aliases { + mmc0 = &usdhc2; + mmc1 = &usdhc1; + }; +}; + +&gpmi { + status = "disabled"; +}; + +&iomuxc { + imx6ul-txul { + pinctrl_usdhc2: usdhc2grp { + fsl,pins = < + MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x070b1 + MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x070b1 + MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x070b1 + MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x070b1 + MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x070b1 + MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x070b1 + /* eMMC RESET */ + MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x170b0 + >; + }; + }; +}; + +&usdhc2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc2>; + bus-width = <4>; + no-1-8-v; + non-removable; + fsl,wp-controller; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/imx6ul-txul.dtsi b/arch/arm/boot/dts/imx6ul-txul.dtsi new file mode 100644 index 0000000..12dff96 --- /dev/null +++ b/arch/arm/boot/dts/imx6ul-txul.dtsi @@ -0,0 +1,962 @@ +/* + * Copyright 2015 Lothar Wa?mann <LW@KARO-electronics.de> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/pwm/pwm.h> + +/ { + aliases { + can0 = &can2; + can1 = &can1; + display = &display; + i2c0 = &i2c_gpio; + i2c1 = &i2c2; + lcdif_23bit_pins_a = &pinctrl_disp0_1; + lcdif_24bit_pins_a = &pinctrl_disp0_2; + pwm0 = &pwm5; + reg_can_xcvr = ®_can_xcvr; + serial2 = &uart5; + serial4 = &uart3; + spi0 = &ecspi2; + spi1 = &spi_gpio; + stk5led = &user_led; + usbh1 = &usbotg2; + usbotg = &usbotg1; + }; + + chosen { + stdout-path = &uart1; + }; + + memory { + reg = <0 0>; /* will be filled by U-Boot */ + }; + + clocks { + #address-cells = <1>; + #size-cells = <0>; + mclk: clock at 0 { + compatible = "fixed-clock"; + reg = <0>; + #clock-cells = <0>; + clock-frequency = <26000000>; + }; + }; + + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pwm5 0 500000 PWM_POLARITY_INVERTED>; + power-supply = <®_3v3>; + /* + * a poor man's way to create a 1:1 relationship between + * the PWM value and the actual duty cycle + */ + brightness-levels = < 0 1 2 3 4 5 6 7 8 9 + 10 11 12 13 14 15 16 17 18 19 + 20 21 22 23 24 25 26 27 28 29 + 30 31 32 33 34 35 36 37 38 39 + 40 41 42 43 44 45 46 47 48 49 + 50 51 52 53 54 55 56 57 58 59 + 60 61 62 63 64 65 66 67 68 69 + 70 71 72 73 74 75 76 77 78 79 + 80 81 82 83 84 85 86 87 88 89 + 90 91 92 93 94 95 96 97 98 99 + 100>; + default-brightness-level = <50>; + }; + + gpio-keys { + compatible = "gpio-keys"; + }; + + i2c_gpio: i2c-gpio { + compatible = "i2c-gpio"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c_gpio>; + gpios = < + &gpio5 1 GPIO_ACTIVE_HIGH /* SDA */ + &gpio5 0 GPIO_ACTIVE_HIGH /* SCL */ + >; + clock-frequency = <400000>; + status = "okay"; + + ds1339: rtc at 68 { + compatible = "dallas,ds1339"; + reg = <0x68>; + status = "disabled"; + }; + }; + + leds { + compatible = "gpio-leds"; + + user_led: user { + label = "Heartbeat"; + gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + }; + + regulators { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <0>; + + reg_3v3_etn: regulator at 0 { + compatible = "regulator-fixed"; + reg = <0>; + regulator-name = "3V3_ETN"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_etnphy_power>; + gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_2v5: regulator at 1 { + compatible = "regulator-fixed"; + reg = <1>; + regulator-name = "2V5"; + regulator-min-microvolt = <2500000>; + regulator-max-microvolt = <2500000>; + regulator-always-on; + }; + + reg_3v3: regulator at 2 { + compatible = "regulator-fixed"; + reg = <2>; + regulator-name = "3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + reg_can_xcvr: regulator at 3 { + compatible = "regulator-fixed"; + reg = <3>; + regulator-name = "CAN XCVR"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan_xcvr>; + gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>; + enable-active-low; + }; + + reg_lcd_pwr: regulator at 5 { + compatible = "regulator-fixed"; + reg = <5>; + regulator-name = "LCD POWER"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_lcd_pwr>; + gpio = <&gpio5 4 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-boot-on; + regulator-always-on; + }; + + reg_lcd_reset: regulator at 6 { + compatible = "regulator-fixed"; + reg = <6>; + regulator-name = "LCD RESET"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_lcd_reset>; + gpio = <&gpio3 4 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-boot-on; + regulator-always-on; + }; + + reg_usbh1_vbus: regulator at 7 { + compatible = "regulator-fixed"; + reg = <7>; + regulator-name = "usbh1_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usbh1_vbus &pinctrl_usbh1_oc>; + gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_usbotg_vbus: regulator at 8 { + compatible = "regulator-fixed"; + reg = <8>; + regulator-name = "usbotg_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usbotg_vbus &pinctrl_usbotg_oc>; + gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + }; + + spi_gpio: spi-gpio { + #address-cells = <1>; + #size-cells = <0>; + compatible = "spi-gpio"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_spi_gpio>; + gpio-mosi = <&gpio1 30 GPIO_ACTIVE_HIGH>; + gpio-miso = <&gpio1 31 GPIO_ACTIVE_HIGH>; + gpio-sck = <&gpio1 28 GPIO_ACTIVE_HIGH>; + num-chipselects = <2>; + cs-gpios = < + &gpio1 29 GPIO_ACTIVE_HIGH + &gpio1 10 GPIO_ACTIVE_HIGH + >; + status = "disabled"; + + spi at 0 { + compatible = "spidev"; + reg = <0>; + spi-max-frequency = <660000>; + }; + + spi at 1 { + compatible = "spidev"; + reg = <1>; + spi-max-frequency = <660000>; + }; + }; + + sound { + compatible = "karo,imx6ul-tx6ul-sgtl5000", + "simple-audio-card"; + simple-audio-card,name = "imx6ul-tx6ul-sgtl5000-audio"; + simple-audio-card,format = "i2s"; + simple-audio-card,bitclock-master = <&codec_dai>; + simple-audio-card,frame-master = <&codec_dai>; + simple-audio-card,widgets = + "Microphone", "Mic Jack", + "Line", "Line In", + "Line", "Line Out", + "Headphone", "Headphone Jack"; + simple-audio-card,routing = + "MIC_IN", "Mic Jack", + "Mic Jack", "Mic Bias", + "Headphone Jack", "HP_OUT"; + + cpu_dai: simple-audio-card,cpu { + sound-dai = <&sai2>; + }; + + codec_dai: simple-audio-card,codec { + sound-dai = <&sgtl5000>; + }; + }; +}; + +&can1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan1>; + xceiver-supply = <®_can_xcvr>; + status = "okay"; +}; + +&can2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan2>; + xceiver-supply = <®_can_xcvr>; + status = "okay"; +}; + +&ecspi2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ecspi2>; + fsl,spi-num-chipselects = <2>; + cs-gpios = < + &gpio1 29 GPIO_ACTIVE_HIGH + &gpio1 10 GPIO_ACTIVE_HIGH + >; + status = "disabled"; + + spi at 0 { + compatible = "spidev"; + reg = <0>; + spi-max-frequency = <60000000>; + }; + + spi at 1 { + compatible = "spidev"; + reg = <1>; + spi-max-frequency = <60000000>; + }; +}; + +&fec1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enet1 &pinctrl_enet_mdio>; + phy-mode = "rmii"; + phy-reset-gpios = <&gpio5 6 GPIO_ACTIVE_HIGH>; + phy-supply = <®_3v3_etn>; + phy-handle = <&etnphy0>; + status = "okay"; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + etnphy0: ethernet-phy at 0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0>; + interrupt-parent = <&gpio5>; + interrupts = <5>; + status = "okay"; + }; + + etnphy1: ethernet-phy at 1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + status = "okay"; + }; + }; +}; + +&fec2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enet2>; + phy-mode = "rmii"; + phy-supply = <®_3v3_etn>; + phy-handle = <&etnphy1>; + status = "disabled"; +}; + +&gpmi { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpmi_nand>; + nand-on-flash-bbt; + fsl,no-blockmark-swap; + status = "okay"; +}; + +&i2c2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c2>; + clock-frequency = <400000>; + status = "okay"; + + sgtl5000: sgtl5000 at 0a { + #sound-dai-cells = <0>; + compatible = "fsl,sgtl5000"; + reg = <0x0a>; + VDDA-supply = <®_2v5>; + VDDIO-supply = <®_3v3>; + clocks = <&mclk>; + }; + + polytouch: edt-ft5x06 at 38 { + compatible = "edt,edt-ft5x06"; + reg = <0x38>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_edt_ft5x06>; + interrupt-parent = <&gpio5>; + interrupts = <2 IRQ_TYPE_EDGE_FALLING>; + reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; + wake-gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>; + linux,wakeup; + }; + + touchscreen: tsc2007 at 48 { + compatible = "ti,tsc2007"; + reg = <0x48>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_tsc2007>; + interrupt-parent = <&gpio3>; + interrupts = <26 IRQ_TYPE_NONE>; + gpios = <&gpio3 26 GPIO_ACTIVE_LOW>; + ti,x-plate-ohms = <660>; + linux,wakeup; + }; +}; + +&iomuxc { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hog>; + + imx6ul-txul { + pinctrl_hog: hoggrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x0b0b0 /* LED */ + MX6UL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x0b0b0 /* ETN PHY RESET */ + MX6UL_PAD_SNVS_TAMPER5__GPIO5_IO05 0x0b0b0 /* ETN PHY INT */ + >; + }; + + pinctrl_disp0_1: disp0grp-1 { + fsl,pins = < + MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x10 /* LSCLK */ + MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x10 /* OE_ACD */ + MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x10 /* HSYNC */ + MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x10 /* VSYNC */ + /* PAD DISP0_DAT0 is used for the Flexcan transceiver control */ + MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x10 + MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x10 + MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x10 + MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x10 + MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x10 + MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x10 + MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x10 + MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x10 + MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x10 + MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x10 + MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x10 + MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x10 + MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x10 + MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x10 + MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x10 + MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x10 + MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x10 + MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x10 + MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x10 + MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x10 + MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x10 + MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x10 + MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x10 + >; + }; + + pinctrl_disp0_2: disp0grp-2 { + fsl,pins = < + MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x10 /* LSCLK */ + MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x10 /* OE_ACD */ + MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x10 /* HSYNC */ + MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x10 /* VSYNC */ + MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x10 + MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x10 + MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x10 + MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x10 + MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x10 + MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x10 + MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x10 + MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x10 + MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x10 + MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x10 + MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x10 + MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x10 + MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x10 + MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x10 + MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x10 + MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x10 + MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x10 + MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x10 + MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x10 + MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x10 + MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x10 + MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x10 + MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x10 + MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x10 + >; + }; + + pinctrl_ecspi2: ecspi2grp { + fsl,pins = < + MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x0b0b0 /* CSPI_SS */ + MX6UL_PAD_JTAG_MOD__GPIO1_IO10 0x0b0b0 /* CSPI_SS */ + MX6UL_PAD_UART5_TX_DATA__ECSPI2_MOSI 0x0b0b0 /* CSPI_MOSI */ + MX6UL_PAD_UART5_RX_DATA__ECSPI2_MISO 0x0b0b0 /* CSPI_MISO */ + MX6UL_PAD_UART4_TX_DATA__ECSPI2_SCLK 0x0b0b0 /* CSPI_SCLK */ + >; + }; + + pinctrl_edt_ft5x06: edt-ft5x06grp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x1b0b0 /* Interrupt */ + MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x1b0b0 /* Reset */ + MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x1b0b0 /* Wake */ + >; + }; + + pinctrl_enet1: enet1grp { + fsl,pins = < + MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x0b0b0 + MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x0b0b0 + MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x0b0b0 + MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x0b0b0 + MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x0b0b0 + MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x0b0b0 + MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x0b0b0 + MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x40000031 + >; + }; + + pinctrl_enet2: enet2grp { + fsl,pins = < + MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x0b0b0 + MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x0b0b0 + MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x0b0b0 + MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x0b0b0 + MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x0b0b0 + MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x0b0b0 + MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x0b0b0 + MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x40000031 + >; + }; + + pinctrl_enet_mdio: enet-mdiogrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x0b0b0 + MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0 + >; + }; + + pinctrl_etnphy_power: etnphy-pwrgrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x0b0b0 /* ETN PHY POWER */ + >; + }; + + pinctrl_flexcan1: flexcan1grp { + fsl,pins = < + MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b0b0 + MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b0b0 + >; + }; + + pinctrl_flexcan2: flexcan2grp { + fsl,pins = < + MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x1b0b0 + MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x1b0b0 + >; + }; + + pinctrl_flexcan_xcvr: flexcan-xcvrgrp { + fsl,pins = < + MX6UL_PAD_LCD_DATA00__GPIO3_IO05 0x0b0b0 /* Flexcan XCVR enable */ + >; + }; + + pinctrl_gpmi_nand: gpminandgrp { + fsl,pins = < + MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0x0b0b1 + MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0x0b0b1 + MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B 0x0b0b1 + MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0x0b000 + MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B 0x0b0b1 + MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B 0x0b0b1 + MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B 0x0b0b1 + MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00 0x0b0b1 + MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01 0x0b0b1 + MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02 0x0b0b1 + MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03 0x0b0b1 + MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04 0x0b0b1 + MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05 0x0b0b1 + MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06 0x0b0b1 + MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07 0x0b0b1 + >; + }; + + pinctrl_i2c_gpio: i2c-gpiogrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x4001b8b1 /* I2C SCL */ + MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x4001b8b1 /* I2C SDA */ + >; + }; + + pinctrl_i2c2: i2c2grp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x4001b8b1 + MX6UL_PAD_GPIO1_IO01__I2C2_SDA 0x4001b8b1 + >; + }; + + pinctrl_kpp: kppgrp { + fsl,pins = < + MX6UL_PAD_ENET2_RX_DATA1__KPP_COL04 0x1b0b0 + MX6UL_PAD_ENET2_TX_DATA0__KPP_COL05 0x1b0b0 + MX6UL_PAD_ENET2_TX_EN__KPP_COL06 0x1b0b0 + MX6UL_PAD_ENET2_RX_ER__KPP_COL07 0x1b0b0 + MX6UL_PAD_ENET2_RX_DATA0__KPP_ROW04 0x1b0b0 + MX6UL_PAD_ENET2_RX_EN__KPP_ROW05 0x1b0b0 + MX6UL_PAD_ENET2_TX_DATA1__KPP_ROW06 0x1b0b0 + MX6UL_PAD_ENET2_TX_CLK__KPP_ROW07 0x1b0b0 + >; + }; + + pinctrl_lcd_pwr: lcd-pwrgrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x0b0b0 /* LCD Power Enable */ + >; + }; + + pinctrl_lcd_reset: lcd-resetgrp { + fsl,pins = < + MX6UL_PAD_LCD_RESET__GPIO3_IO04 0x0b0b0 /* LCD RESET */ + >; + }; + + pinctrl_pwm5: pwm5grp { + fsl,pins = < + MX6UL_PAD_NAND_DQS__PWM5_OUT 0x0b0b0 + >; + }; + + pinctrl_sai2: sai2grp { + fsl,pins = < + MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x0b0b0 /* SSI1_RXD */ + MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x0b0b0 /* SSI1_TXD */ + MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x0b0b0 /* SSI1_CLK */ + MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x0b0b0 /* SSI1_FS */ + >; + }; + + pinctrl_spi_gpio: spi-gpiogrp { + fsl,pins = < + MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x0b0b0 /* CSPI_SS */ + MX6UL_PAD_JTAG_MOD__GPIO1_IO10 0x0b0b0 /* CSPI_SS */ + MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30 0x0b0b0 /* CSPI_MOSI */ + MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31 0x0b0b0 /* CSPI_MISO */ + MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x0b0b0 /* CSPI_SCLK */ + >; + }; + + pinctrl_tsc2007: tsc2007grp { + fsl,pins = < + MX6UL_PAD_JTAG_TMS__GPIO1_IO11 0x1b0b0 /* Interrupt */ + >; + }; + + pinctrl_uart1: uart1grp { + fsl,pins = < + MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x0b0b0 + MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x0b0b0 + >; + }; + + pinctrl_uart1_rtscts: uart1_rtsctsgrp { + fsl,pins = < + MX6UL_PAD_UART1_RTS_B__UART1_DCE_RTS 0x0b0b0 + MX6UL_PAD_UART1_CTS_B__UART1_DCE_CTS 0x0b0b0 + >; + }; + + pinctrl_uart2: uart2grp { + fsl,pins = < + MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x0b0b0 + MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x0b0b0 + >; + }; + + pinctrl_uart2_rtscts: uart2_rtsctsgrp { + fsl,pins = < + MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x0b0b0 + MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x0b0b0 + >; + }; + + pinctrl_uart5: uart5grp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO04__UART5_DCE_TX 0x0b0b0 + MX6UL_PAD_GPIO1_IO05__UART5_DCE_RX 0x0b0b0 + >; + }; + + pinctrl_uart5_rtscts: uart5_rtsctsgrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO08__UART5_DCE_RTS 0x0b0b0 + MX6UL_PAD_GPIO1_IO09__UART5_DCE_CTS 0x0b0b0 + >; + }; + + pinctrl_usbh1_oc: usbh1-ocgrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x17059 /* USBH1_OC */ + >; + }; + + pinctrl_usbh1_vbus: usbh1-vbusgrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0x0b0b0 /* USBH1_VBUSEN */ + >; + }; + + pinctrl_usbotg_oc: usbotg-ocgrp { + fsl,pins = < + MX6UL_PAD_UART3_RTS_B__GPIO1_IO27 0x17059 /* USBOTG_OC */ + >; + }; + + pinctrl_usbotg_vbus: usbotg-vbusgrp { + fsl,pins = < + MX6UL_PAD_UART3_CTS_B__GPIO1_IO26 0x1b0b0 /* USBOTG_VBUSEN */ + >; + }; + + pinctrl_usdhc1: usdhc1grp { + fsl,pins = < + MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x070b1 + MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x07099 + MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x070b1 + MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x070b1 + MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x070b1 + MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x070b1 + /* SD1 CD */ + MX6UL_PAD_NAND_CE1_B__GPIO4_IO14 0x170b0 /* SD1 CD */ + >; + }; + pinctrl_usdhc2: usdhc2grp { + fsl,pins = < + MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x070b1 + MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x070b1 + MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x070b1 + MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x070b1 + MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x070b1 + MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x070b1 + /* eMMC RESET */ + MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x170b0 + >; + }; + }; +}; + +&kpp { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_kpp>; + /* sample keymap */ + /* row/col 0..3 are mapped to KPP row/col 4..7 */ + linux,keymap = < + MATRIX_KEY(4, 4, KEY_POWER) + MATRIX_KEY(4, 5, KEY_KP0) + MATRIX_KEY(4, 6, KEY_KP1) + MATRIX_KEY(4, 7, KEY_KP2) + MATRIX_KEY(5, 4, KEY_KP3) + MATRIX_KEY(5, 5, KEY_KP4) + MATRIX_KEY(5, 6, KEY_KP5) + MATRIX_KEY(5, 7, KEY_KP6) + MATRIX_KEY(6, 4, KEY_KP7) + MATRIX_KEY(6, 5, KEY_KP8) + MATRIX_KEY(6, 6, KEY_KP9) + >; + status = "okay"; +}; + +&lcdif { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_disp0_1>; + lcd-supply = <®_lcd_pwr>; + display = <&display>; + status = "okay"; + + display: display at di0 { + bits-per-pixel = <32>; + bus-width = <24>; + status = "okay"; + + display-timings { + VGA { + clock-frequency = <25200000>; + hactive = <640>; + vactive = <480>; + hback-porch = <48>; + hsync-len = <96>; + hfront-porch = <16>; + vback-porch = <31>; + vsync-len = <2>; + vfront-porch = <12>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + ETV570 { + clock-frequency = <25200000>; + hactive = <640>; + vactive = <480>; + hback-porch = <114>; + hsync-len = <30>; + hfront-porch = <16>; + vback-porch = <32>; + vsync-len = <3>; + vfront-porch = <10>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + ET0350 { + clock-frequency = <6413760>; + hactive = <320>; + vactive = <240>; + hback-porch = <34>; + hsync-len = <34>; + hfront-porch = <20>; + vback-porch = <15>; + vsync-len = <3>; + vfront-porch = <4>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + ET0430 { + clock-frequency = <9009000>; + hactive = <480>; + vactive = <272>; + hback-porch = <2>; + hsync-len = <41>; + hfront-porch = <2>; + vback-porch = <2>; + vsync-len = <10>; + vfront-porch = <2>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <0>; + }; + + ET0500 { + clock-frequency = <33264000>; + hactive = <800>; + vactive = <480>; + hback-porch = <88>; + hsync-len = <128>; + hfront-porch = <40>; + vback-porch = <33>; + vsync-len = <2>; + vfront-porch = <10>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + ET0700 { /* same as ET0500 */ + clock-frequency = <33264000>; + hactive = <800>; + vactive = <480>; + hback-porch = <88>; + hsync-len = <128>; + hfront-porch = <40>; + vback-porch = <33>; + vsync-len = <2>; + vfront-porch = <10>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + ETQ570 { + clock-frequency = <6596040>; + hactive = <320>; + vactive = <240>; + hback-porch = <38>; + hsync-len = <30>; + hfront-porch = <30>; + vback-porch = <16>; + vsync-len = <3>; + vfront-porch = <4>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + }; + }; +}; + +&pwm5 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pwm5>; + #pwm-cells = <3>; + status = "okay"; +}; + +&sai2 { + #sound-dai-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai2>; + status = "okay"; +}; + +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_rtscts>; + status = "okay"; +}; + +&uart2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart2 &pinctrl_uart2_rtscts>; + status = "okay"; +}; + +&uart5 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart5 &pinctrl_uart5_rtscts>; + status = "okay"; +}; + +&usbotg2 { + vbus-supply = <®_usbh1_vbus>; + dr_mode = "host"; + disable-over-current; + status = "okay"; +}; + +&usbotg1 { + vbus-supply = <®_usbotg_vbus>; + dr_mode = "peripheral"; + disable-over-current; + status = "okay"; +}; + +&usdhc1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc1>; + bus-width = <4>; + no-1-8-v; + cd-gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; + fsl,wp-controller; + status = "okay"; +}; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv2 16/16] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules 2016-01-20 10:09 ` [PATCHv2 16/16] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules Lothar Waßmann @ 2016-02-28 6:43 ` Shawn Guo 2016-02-29 11:21 ` Lothar Waßmann 0 siblings, 1 reply; 43+ messages in thread From: Shawn Guo @ 2016-02-28 6:43 UTC (permalink / raw) To: linux-arm-kernel On Wed, Jan 20, 2016 at 11:09:09AM +0100, Lothar Wa?mann wrote: > The TXUL-0010/-0011 modules are Computers On Module manufactured by > Ka-Ro electronics GmbH with the following characteristics: > Processor Freescale i.MX 6UltraLite MCIMX6G2, 528 MHz > RAM 256MB 16-bit DDR3 SDRAM > ROM 128MB NAND Flash (TXUL-0010) / 4GB eMMC (TXUL-0011) > Power supply Single 3.3 to 5V > Size 26mm SO-DIMM > Temp. Range -40?C to 85?C > > > Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> > --- > arch/arm/boot/dts/Makefile | 4 +- > arch/arm/boot/dts/imx6ul-txul-0010.dts | 54 ++ > arch/arm/boot/dts/imx6ul-txul-0011.dts | 85 +++ > arch/arm/boot/dts/imx6ul-txul.dtsi | 962 +++++++++++++++++++++++++++++++++ > 4 files changed, 1104 insertions(+), 1 deletion(-) > create mode 100644 arch/arm/boot/dts/imx6ul-txul-0010.dts > create mode 100644 arch/arm/boot/dts/imx6ul-txul-0011.dts > create mode 100644 arch/arm/boot/dts/imx6ul-txul.dtsi > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index a4a6d70..f993e7d 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -358,7 +358,9 @@ dtb-$(CONFIG_SOC_IMX6SX) += \ > imx6sx-sdb-reva.dtb \ > imx6sx-sdb.dtb > dtb-$(CONFIG_SOC_IMX6UL) += \ > - imx6ul-14x14-evk.dtb > + imx6ul-14x14-evk.dtb \ > + imx6ul-txul-0010.dtb \ > + imx6ul-txul-0011.dtb > dtb-$(CONFIG_SOC_IMX7D) += \ > imx7d-cl-som-imx7.dtb \ > imx7d-sbc-imx7.dtb \ > diff --git a/arch/arm/boot/dts/imx6ul-txul-0010.dts b/arch/arm/boot/dts/imx6ul-txul-0010.dts > new file mode 100644 > index 0000000..5e0b09f > --- /dev/null > +++ b/arch/arm/boot/dts/imx6ul-txul-0010.dts > @@ -0,0 +1,54 @@ > +/* > + * Copyright 2015 Lothar Wa?mann <LW@KARO-electronics.de> > + * > + * This file is dual-licensed: you can use it either under the terms > + * of the GPL or the X11 license, at your option. Note that this dual > + * licensing only applies to this file, and not this project as a > + * whole. > + * > + * a) This file is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License > + * version 2 as published by the Free Software Foundation. > + * > + * This file is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * Or, alternatively, > + * > + * b) Permission is hereby granted, free of charge, to any person > + * obtaining a copy of this software and associated documentation > + * files (the "Software"), to deal in the Software without > + * restriction, including without limitation the rights to use, > + * copy, modify, merge, publish, distribute, sublicense, and/or > + * sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following > + * conditions: > + * > + * The above copyright notice and this permission notice shall be > + * included in all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES > + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT > + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, > + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + * OTHER DEALINGS IN THE SOFTWARE. > + */ > + > +/dts-v1/; > +#include "imx6ul.dtsi" > +#include "imx6ul-txul.dtsi" > + > +/ { > + model = "Ka-Ro electronics TXUL-0010 Module"; > + compatible = "karo,imx6ul-tx6ul", "fsl,imx6ul"; > + > + aliases { > + mmc0 = &usdhc1; > + /delete-property/ mmc1; Why is this deletion of mmc1 needed? > + }; > +}; > diff --git a/arch/arm/boot/dts/imx6ul-txul-0011.dts b/arch/arm/boot/dts/imx6ul-txul-0011.dts > new file mode 100644 > index 0000000..dd3055b > --- /dev/null > +++ b/arch/arm/boot/dts/imx6ul-txul-0011.dts > @@ -0,0 +1,85 @@ > +/* > + * Copyright 2015 Lothar Wa?mann <LW@KARO-electronics.de> > + * > + * This file is dual-licensed: you can use it either under the terms > + * of the GPL or the X11 license, at your option. Note that this dual > + * licensing only applies to this file, and not this project as a > + * whole. > + * > + * a) This file is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License > + * version 2 as published by the Free Software Foundation. > + * > + * This file is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * Or, alternatively, > + * > + * b) Permission is hereby granted, free of charge, to any person > + * obtaining a copy of this software and associated documentation > + * files (the "Software"), to deal in the Software without > + * restriction, including without limitation the rights to use, > + * copy, modify, merge, publish, distribute, sublicense, and/or > + * sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following > + * conditions: > + * > + * The above copyright notice and this permission notice shall be > + * included in all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES > + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT > + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, > + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + * OTHER DEALINGS IN THE SOFTWARE. > + */ > + > +/dts-v1/; > +#include "imx6ul.dtsi" > +#include "imx6ul-txul.dtsi" > + > +/ { > + model = "Ka-Ro electronics TXUL-0011 Module"; > + compatible = "karo,imx6ul-tx6ul", "fsl,imx6ul"; > + > + aliases { > + mmc0 = &usdhc2; > + mmc1 = &usdhc1; > + }; > +}; > + > +&gpmi { > + status = "disabled"; > +}; > + > +&iomuxc { > + imx6ul-txul { Since commit 5fcdf6a7ed95 (pinctrl: imx: Allow parsing DT without function nodes), we can save this container node. > + pinctrl_usdhc2: usdhc2grp { > + fsl,pins = < > + MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x070b1 > + MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x070b1 > + MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x070b1 > + MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x070b1 > + MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x070b1 > + MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x070b1 > + /* eMMC RESET */ > + MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x170b0 > + >; > + }; > + }; > +}; > + > +&usdhc2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc2>; > + bus-width = <4>; > + no-1-8-v; > + non-removable; > + fsl,wp-controller; > + status = "okay"; > +}; > diff --git a/arch/arm/boot/dts/imx6ul-txul.dtsi b/arch/arm/boot/dts/imx6ul-txul.dtsi > new file mode 100644 > index 0000000..12dff96 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6ul-txul.dtsi > @@ -0,0 +1,962 @@ > +/* > + * Copyright 2015 Lothar Wa?mann <LW@KARO-electronics.de> > + * > + * This file is dual-licensed: you can use it either under the terms > + * of the GPL or the X11 license, at your option. Note that this dual > + * licensing only applies to this file, and not this project as a > + * whole. > + * > + * a) This file is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License > + * version 2 as published by the Free Software Foundation. > + * > + * This file is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * Or, alternatively, > + * > + * b) Permission is hereby granted, free of charge, to any person > + * obtaining a copy of this software and associated documentation > + * files (the "Software"), to deal in the Software without > + * restriction, including without limitation the rights to use, > + * copy, modify, merge, publish, distribute, sublicense, and/or > + * sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following > + * conditions: > + * > + * The above copyright notice and this permission notice shall be > + * included in all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES > + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT > + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, > + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + * OTHER DEALINGS IN THE SOFTWARE. > + */ > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/interrupt-controller/irq.h> > +#include <dt-bindings/pwm/pwm.h> > + > +/ { > + aliases { > + can0 = &can2; > + can1 = &can1; > + display = &display; > + i2c0 = &i2c_gpio; > + i2c1 = &i2c2; > + lcdif_23bit_pins_a = &pinctrl_disp0_1; > + lcdif_24bit_pins_a = &pinctrl_disp0_2; > + pwm0 = &pwm5; > + reg_can_xcvr = ®_can_xcvr; > + serial2 = &uart5; > + serial4 = &uart3; > + spi0 = &ecspi2; > + spi1 = &spi_gpio; > + stk5led = &user_led; > + usbh1 = &usbotg2; > + usbotg = &usbotg1; > + }; > + > + chosen { > + stdout-path = &uart1; > + }; > + > + memory { > + reg = <0 0>; /* will be filled by U-Boot */ > + }; > + > + clocks { > + #address-cells = <1>; > + #size-cells = <0>; Have a new line here. > + mclk: clock at 0 { > + compatible = "fixed-clock"; > + reg = <0>; > + #clock-cells = <0>; > + clock-frequency = <26000000>; > + }; > + }; > + > + backlight: backlight { > + compatible = "pwm-backlight"; > + pwms = <&pwm5 0 500000 PWM_POLARITY_INVERTED>; > + power-supply = <®_3v3>; > + /* > + * a poor man's way to create a 1:1 relationship between > + * the PWM value and the actual duty cycle > + */ > + brightness-levels = < 0 1 2 3 4 5 6 7 8 9 > + 10 11 12 13 14 15 16 17 18 19 > + 20 21 22 23 24 25 26 27 28 29 > + 30 31 32 33 34 35 36 37 38 39 > + 40 41 42 43 44 45 46 47 48 49 > + 50 51 52 53 54 55 56 57 58 59 > + 60 61 62 63 64 65 66 67 68 69 > + 70 71 72 73 74 75 76 77 78 79 > + 80 81 82 83 84 85 86 87 88 89 > + 90 91 92 93 94 95 96 97 98 99 > + 100>; > + default-brightness-level = <50>; > + }; > + > + gpio-keys { > + compatible = "gpio-keys"; With no real keys defined? If so, please drop it. > + }; > + > + i2c_gpio: i2c-gpio { > + compatible = "i2c-gpio"; > + #address-cells = <1>; > + #size-cells = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c_gpio>; > + gpios = < > + &gpio5 1 GPIO_ACTIVE_HIGH /* SDA */ > + &gpio5 0 GPIO_ACTIVE_HIGH /* SCL */ > + >; > + clock-frequency = <400000>; > + status = "okay"; > + > + ds1339: rtc at 68 { > + compatible = "dallas,ds1339"; > + reg = <0x68>; > + status = "disabled"; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + user_led: user { > + label = "Heartbeat"; > + gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "heartbeat"; > + }; > + }; > + > + regulators { > + compatible = "simple-bus"; Device tree maintainers do not like this fake simple-bus. Let's put all these fixed regulators directly under root with the following naming schema: reg_xxx: regulator-xxx { ... }; > + #address-cells = <1>; > + #size-cells = <0>; > + > + reg_3v3_etn: regulator at 0 { > + compatible = "regulator-fixed"; > + reg = <0>; > + regulator-name = "3V3_ETN"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_etnphy_power>; > + gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + reg_2v5: regulator at 1 { > + compatible = "regulator-fixed"; > + reg = <1>; > + regulator-name = "2V5"; > + regulator-min-microvolt = <2500000>; > + regulator-max-microvolt = <2500000>; > + regulator-always-on; > + }; > + > + reg_3v3: regulator at 2 { > + compatible = "regulator-fixed"; > + reg = <2>; > + regulator-name = "3V3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-always-on; > + }; > + > + reg_can_xcvr: regulator at 3 { > + compatible = "regulator-fixed"; > + reg = <3>; > + regulator-name = "CAN XCVR"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_flexcan_xcvr>; > + gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>; > + enable-active-low; > + }; > + > + reg_lcd_pwr: regulator at 5 { > + compatible = "regulator-fixed"; > + reg = <5>; > + regulator-name = "LCD POWER"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_lcd_pwr>; > + gpio = <&gpio5 4 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + reg_lcd_reset: regulator at 6 { > + compatible = "regulator-fixed"; > + reg = <6>; > + regulator-name = "LCD RESET"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_lcd_reset>; > + gpio = <&gpio3 4 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + reg_usbh1_vbus: regulator at 7 { > + compatible = "regulator-fixed"; > + reg = <7>; > + regulator-name = "usbh1_vbus"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usbh1_vbus &pinctrl_usbh1_oc>; > + gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + reg_usbotg_vbus: regulator at 8 { > + compatible = "regulator-fixed"; > + reg = <8>; > + regulator-name = "usbotg_vbus"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usbotg_vbus &pinctrl_usbotg_oc>; > + gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + }; > + > + spi_gpio: spi-gpio { > + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "spi-gpio"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_spi_gpio>; > + gpio-mosi = <&gpio1 30 GPIO_ACTIVE_HIGH>; > + gpio-miso = <&gpio1 31 GPIO_ACTIVE_HIGH>; > + gpio-sck = <&gpio1 28 GPIO_ACTIVE_HIGH>; > + num-chipselects = <2>; > + cs-gpios = < > + &gpio1 29 GPIO_ACTIVE_HIGH > + &gpio1 10 GPIO_ACTIVE_HIGH > + >; > + status = "disabled"; > + > + spi at 0 { > + compatible = "spidev"; > + reg = <0>; > + spi-max-frequency = <660000>; > + }; > + > + spi at 1 { > + compatible = "spidev"; > + reg = <1>; > + spi-max-frequency = <660000>; > + }; > + }; > + > + sound { > + compatible = "karo,imx6ul-tx6ul-sgtl5000", > + "simple-audio-card"; > + simple-audio-card,name = "imx6ul-tx6ul-sgtl5000-audio"; > + simple-audio-card,format = "i2s"; > + simple-audio-card,bitclock-master = <&codec_dai>; > + simple-audio-card,frame-master = <&codec_dai>; > + simple-audio-card,widgets = > + "Microphone", "Mic Jack", > + "Line", "Line In", > + "Line", "Line Out", > + "Headphone", "Headphone Jack"; > + simple-audio-card,routing = > + "MIC_IN", "Mic Jack", > + "Mic Jack", "Mic Bias", > + "Headphone Jack", "HP_OUT"; > + > + cpu_dai: simple-audio-card,cpu { > + sound-dai = <&sai2>; > + }; > + > + codec_dai: simple-audio-card,codec { > + sound-dai = <&sgtl5000>; > + }; > + }; > +}; > + > +&can1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_flexcan1>; > + xceiver-supply = <®_can_xcvr>; > + status = "okay"; > +}; > + > +&can2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_flexcan2>; > + xceiver-supply = <®_can_xcvr>; > + status = "okay"; > +}; > + > +&ecspi2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ecspi2>; > + fsl,spi-num-chipselects = <2>; > + cs-gpios = < > + &gpio1 29 GPIO_ACTIVE_HIGH > + &gpio1 10 GPIO_ACTIVE_HIGH > + >; > + status = "disabled"; > + > + spi at 0 { > + compatible = "spidev"; > + reg = <0>; > + spi-max-frequency = <60000000>; > + }; > + > + spi at 1 { > + compatible = "spidev"; > + reg = <1>; > + spi-max-frequency = <60000000>; > + }; > +}; > + > +&fec1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_enet1 &pinctrl_enet_mdio>; > + phy-mode = "rmii"; > + phy-reset-gpios = <&gpio5 6 GPIO_ACTIVE_HIGH>; > + phy-supply = <®_3v3_etn>; > + phy-handle = <&etnphy0>; > + status = "okay"; > + > + mdio { > + #address-cells = <1>; > + #size-cells = <0>; > + > + etnphy0: ethernet-phy at 0 { > + compatible = "ethernet-phy-ieee802.3-c22"; > + reg = <0>; > + interrupt-parent = <&gpio5>; > + interrupts = <5>; > + status = "okay"; > + }; > + > + etnphy1: ethernet-phy at 1 { > + compatible = "ethernet-phy-ieee802.3-c22"; > + reg = <1>; > + status = "okay"; > + }; > + }; > +}; > + > +&fec2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_enet2>; > + phy-mode = "rmii"; > + phy-supply = <®_3v3_etn>; > + phy-handle = <&etnphy1>; > + status = "disabled"; > +}; > + > +&gpmi { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpmi_nand>; > + nand-on-flash-bbt; > + fsl,no-blockmark-swap; > + status = "okay"; > +}; > + > +&i2c2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c2>; > + clock-frequency = <400000>; > + status = "okay"; > + > + sgtl5000: sgtl5000 at 0a { > + #sound-dai-cells = <0>; > + compatible = "fsl,sgtl5000"; > + reg = <0x0a>; > + VDDA-supply = <®_2v5>; > + VDDIO-supply = <®_3v3>; > + clocks = <&mclk>; > + }; > + > + polytouch: edt-ft5x06 at 38 { > + compatible = "edt,edt-ft5x06"; > + reg = <0x38>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_edt_ft5x06>; > + interrupt-parent = <&gpio5>; > + interrupts = <2 IRQ_TYPE_EDGE_FALLING>; > + reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; > + wake-gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>; > + linux,wakeup; This property becomes legacy one. Please use wakeup-source instead. See Documentation/devicetree/bindings/power/wakeup-source.txt for details. > + }; > + > + touchscreen: tsc2007 at 48 { > + compatible = "ti,tsc2007"; > + reg = <0x48>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_tsc2007>; > + interrupt-parent = <&gpio3>; > + interrupts = <26 IRQ_TYPE_NONE>; > + gpios = <&gpio3 26 GPIO_ACTIVE_LOW>; > + ti,x-plate-ohms = <660>; > + linux,wakeup; Ditto > + }; > +}; > + > +&iomuxc { I suggest you put iomuxc node at the bottom of the file to make the rest a bit easier to be read. > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_hog>; > + > + imx6ul-txul { Drop this container node. Shawn > + pinctrl_hog: hoggrp { > + fsl,pins = < > + MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x0b0b0 /* LED */ > + MX6UL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x0b0b0 /* ETN PHY RESET */ > + MX6UL_PAD_SNVS_TAMPER5__GPIO5_IO05 0x0b0b0 /* ETN PHY INT */ > + >; > + }; > + > + pinctrl_disp0_1: disp0grp-1 { > + fsl,pins = < > + MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x10 /* LSCLK */ > + MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x10 /* OE_ACD */ > + MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x10 /* HSYNC */ > + MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x10 /* VSYNC */ > + /* PAD DISP0_DAT0 is used for the Flexcan transceiver control */ > + MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x10 > + MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x10 > + MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x10 > + MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x10 > + MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x10 > + MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x10 > + MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x10 > + MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x10 > + MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x10 > + MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x10 > + MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x10 > + MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x10 > + MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x10 > + MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x10 > + MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x10 > + MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x10 > + MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x10 > + MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x10 > + MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x10 > + MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x10 > + MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x10 > + MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x10 > + MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x10 > + >; > + }; > + > + pinctrl_disp0_2: disp0grp-2 { > + fsl,pins = < > + MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x10 /* LSCLK */ > + MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x10 /* OE_ACD */ > + MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x10 /* HSYNC */ > + MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x10 /* VSYNC */ > + MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x10 > + MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x10 > + MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x10 > + MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x10 > + MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x10 > + MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x10 > + MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x10 > + MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x10 > + MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x10 > + MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x10 > + MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x10 > + MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x10 > + MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x10 > + MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x10 > + MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x10 > + MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x10 > + MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x10 > + MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x10 > + MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x10 > + MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x10 > + MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x10 > + MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x10 > + MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x10 > + MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x10 > + >; > + }; > + > + pinctrl_ecspi2: ecspi2grp { > + fsl,pins = < > + MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x0b0b0 /* CSPI_SS */ > + MX6UL_PAD_JTAG_MOD__GPIO1_IO10 0x0b0b0 /* CSPI_SS */ > + MX6UL_PAD_UART5_TX_DATA__ECSPI2_MOSI 0x0b0b0 /* CSPI_MOSI */ > + MX6UL_PAD_UART5_RX_DATA__ECSPI2_MISO 0x0b0b0 /* CSPI_MISO */ > + MX6UL_PAD_UART4_TX_DATA__ECSPI2_SCLK 0x0b0b0 /* CSPI_SCLK */ > + >; > + }; > + > + pinctrl_edt_ft5x06: edt-ft5x06grp { > + fsl,pins = < > + MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x1b0b0 /* Interrupt */ > + MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x1b0b0 /* Reset */ > + MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x1b0b0 /* Wake */ > + >; > + }; > + > + pinctrl_enet1: enet1grp { > + fsl,pins = < > + MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x0b0b0 > + MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x0b0b0 > + MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x0b0b0 > + MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x0b0b0 > + MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x0b0b0 > + MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x0b0b0 > + MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x0b0b0 > + MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x40000031 > + >; > + }; > + > + pinctrl_enet2: enet2grp { > + fsl,pins = < > + MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x0b0b0 > + MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x0b0b0 > + MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x0b0b0 > + MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x0b0b0 > + MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x0b0b0 > + MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x0b0b0 > + MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x0b0b0 > + MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x40000031 > + >; > + }; > + > + pinctrl_enet_mdio: enet-mdiogrp { > + fsl,pins = < > + MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x0b0b0 > + MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0 > + >; > + }; > + > + pinctrl_etnphy_power: etnphy-pwrgrp { > + fsl,pins = < > + MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x0b0b0 /* ETN PHY POWER */ > + >; > + }; > + > + pinctrl_flexcan1: flexcan1grp { > + fsl,pins = < > + MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b0b0 > + MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b0b0 > + >; > + }; > + > + pinctrl_flexcan2: flexcan2grp { > + fsl,pins = < > + MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x1b0b0 > + MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x1b0b0 > + >; > + }; > + > + pinctrl_flexcan_xcvr: flexcan-xcvrgrp { > + fsl,pins = < > + MX6UL_PAD_LCD_DATA00__GPIO3_IO05 0x0b0b0 /* Flexcan XCVR enable */ > + >; > + }; > + > + pinctrl_gpmi_nand: gpminandgrp { > + fsl,pins = < > + MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0x0b0b1 > + MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0x0b0b1 > + MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B 0x0b0b1 > + MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0x0b000 > + MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B 0x0b0b1 > + MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B 0x0b0b1 > + MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B 0x0b0b1 > + MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00 0x0b0b1 > + MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01 0x0b0b1 > + MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02 0x0b0b1 > + MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03 0x0b0b1 > + MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04 0x0b0b1 > + MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05 0x0b0b1 > + MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06 0x0b0b1 > + MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07 0x0b0b1 > + >; > + }; > + > + pinctrl_i2c_gpio: i2c-gpiogrp { > + fsl,pins = < > + MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x4001b8b1 /* I2C SCL */ > + MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x4001b8b1 /* I2C SDA */ > + >; > + }; > + > + pinctrl_i2c2: i2c2grp { > + fsl,pins = < > + MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x4001b8b1 > + MX6UL_PAD_GPIO1_IO01__I2C2_SDA 0x4001b8b1 > + >; > + }; > + > + pinctrl_kpp: kppgrp { > + fsl,pins = < > + MX6UL_PAD_ENET2_RX_DATA1__KPP_COL04 0x1b0b0 > + MX6UL_PAD_ENET2_TX_DATA0__KPP_COL05 0x1b0b0 > + MX6UL_PAD_ENET2_TX_EN__KPP_COL06 0x1b0b0 > + MX6UL_PAD_ENET2_RX_ER__KPP_COL07 0x1b0b0 > + MX6UL_PAD_ENET2_RX_DATA0__KPP_ROW04 0x1b0b0 > + MX6UL_PAD_ENET2_RX_EN__KPP_ROW05 0x1b0b0 > + MX6UL_PAD_ENET2_TX_DATA1__KPP_ROW06 0x1b0b0 > + MX6UL_PAD_ENET2_TX_CLK__KPP_ROW07 0x1b0b0 > + >; > + }; > + > + pinctrl_lcd_pwr: lcd-pwrgrp { > + fsl,pins = < > + MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x0b0b0 /* LCD Power Enable */ > + >; > + }; > + > + pinctrl_lcd_reset: lcd-resetgrp { > + fsl,pins = < > + MX6UL_PAD_LCD_RESET__GPIO3_IO04 0x0b0b0 /* LCD RESET */ > + >; > + }; > + > + pinctrl_pwm5: pwm5grp { > + fsl,pins = < > + MX6UL_PAD_NAND_DQS__PWM5_OUT 0x0b0b0 > + >; > + }; > + > + pinctrl_sai2: sai2grp { > + fsl,pins = < > + MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x0b0b0 /* SSI1_RXD */ > + MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x0b0b0 /* SSI1_TXD */ > + MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x0b0b0 /* SSI1_CLK */ > + MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x0b0b0 /* SSI1_FS */ > + >; > + }; > + > + pinctrl_spi_gpio: spi-gpiogrp { > + fsl,pins = < > + MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x0b0b0 /* CSPI_SS */ > + MX6UL_PAD_JTAG_MOD__GPIO1_IO10 0x0b0b0 /* CSPI_SS */ > + MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30 0x0b0b0 /* CSPI_MOSI */ > + MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31 0x0b0b0 /* CSPI_MISO */ > + MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x0b0b0 /* CSPI_SCLK */ > + >; > + }; > + > + pinctrl_tsc2007: tsc2007grp { > + fsl,pins = < > + MX6UL_PAD_JTAG_TMS__GPIO1_IO11 0x1b0b0 /* Interrupt */ > + >; > + }; > + > + pinctrl_uart1: uart1grp { > + fsl,pins = < > + MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x0b0b0 > + MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x0b0b0 > + >; > + }; > + > + pinctrl_uart1_rtscts: uart1_rtsctsgrp { > + fsl,pins = < > + MX6UL_PAD_UART1_RTS_B__UART1_DCE_RTS 0x0b0b0 > + MX6UL_PAD_UART1_CTS_B__UART1_DCE_CTS 0x0b0b0 > + >; > + }; > + > + pinctrl_uart2: uart2grp { > + fsl,pins = < > + MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x0b0b0 > + MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x0b0b0 > + >; > + }; > + > + pinctrl_uart2_rtscts: uart2_rtsctsgrp { > + fsl,pins = < > + MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x0b0b0 > + MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x0b0b0 > + >; > + }; > + > + pinctrl_uart5: uart5grp { > + fsl,pins = < > + MX6UL_PAD_GPIO1_IO04__UART5_DCE_TX 0x0b0b0 > + MX6UL_PAD_GPIO1_IO05__UART5_DCE_RX 0x0b0b0 > + >; > + }; > + > + pinctrl_uart5_rtscts: uart5_rtsctsgrp { > + fsl,pins = < > + MX6UL_PAD_GPIO1_IO08__UART5_DCE_RTS 0x0b0b0 > + MX6UL_PAD_GPIO1_IO09__UART5_DCE_CTS 0x0b0b0 > + >; > + }; > + > + pinctrl_usbh1_oc: usbh1-ocgrp { > + fsl,pins = < > + MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x17059 /* USBH1_OC */ > + >; > + }; > + > + pinctrl_usbh1_vbus: usbh1-vbusgrp { > + fsl,pins = < > + MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0x0b0b0 /* USBH1_VBUSEN */ > + >; > + }; > + > + pinctrl_usbotg_oc: usbotg-ocgrp { > + fsl,pins = < > + MX6UL_PAD_UART3_RTS_B__GPIO1_IO27 0x17059 /* USBOTG_OC */ > + >; > + }; > + > + pinctrl_usbotg_vbus: usbotg-vbusgrp { > + fsl,pins = < > + MX6UL_PAD_UART3_CTS_B__GPIO1_IO26 0x1b0b0 /* USBOTG_VBUSEN */ > + >; > + }; > + > + pinctrl_usdhc1: usdhc1grp { > + fsl,pins = < > + MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x070b1 > + MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x07099 > + MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x070b1 > + MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x070b1 > + MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x070b1 > + MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x070b1 > + /* SD1 CD */ > + MX6UL_PAD_NAND_CE1_B__GPIO4_IO14 0x170b0 /* SD1 CD */ > + >; > + }; > + pinctrl_usdhc2: usdhc2grp { > + fsl,pins = < > + MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x070b1 > + MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x070b1 > + MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x070b1 > + MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x070b1 > + MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x070b1 > + MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x070b1 > + /* eMMC RESET */ > + MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x170b0 > + >; > + }; > + }; > +}; > + > +&kpp { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_kpp>; > + /* sample keymap */ > + /* row/col 0..3 are mapped to KPP row/col 4..7 */ > + linux,keymap = < > + MATRIX_KEY(4, 4, KEY_POWER) > + MATRIX_KEY(4, 5, KEY_KP0) > + MATRIX_KEY(4, 6, KEY_KP1) > + MATRIX_KEY(4, 7, KEY_KP2) > + MATRIX_KEY(5, 4, KEY_KP3) > + MATRIX_KEY(5, 5, KEY_KP4) > + MATRIX_KEY(5, 6, KEY_KP5) > + MATRIX_KEY(5, 7, KEY_KP6) > + MATRIX_KEY(6, 4, KEY_KP7) > + MATRIX_KEY(6, 5, KEY_KP8) > + MATRIX_KEY(6, 6, KEY_KP9) > + >; > + status = "okay"; > +}; > + > +&lcdif { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_disp0_1>; > + lcd-supply = <®_lcd_pwr>; > + display = <&display>; > + status = "okay"; > + > + display: display at di0 { > + bits-per-pixel = <32>; > + bus-width = <24>; > + status = "okay"; > + > + display-timings { > + VGA { > + clock-frequency = <25200000>; > + hactive = <640>; > + vactive = <480>; > + hback-porch = <48>; > + hsync-len = <96>; > + hfront-porch = <16>; > + vback-porch = <31>; > + vsync-len = <2>; > + vfront-porch = <12>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <1>; > + }; > + > + ETV570 { > + clock-frequency = <25200000>; > + hactive = <640>; > + vactive = <480>; > + hback-porch = <114>; > + hsync-len = <30>; > + hfront-porch = <16>; > + vback-porch = <32>; > + vsync-len = <3>; > + vfront-porch = <10>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <1>; > + }; > + > + ET0350 { > + clock-frequency = <6413760>; > + hactive = <320>; > + vactive = <240>; > + hback-porch = <34>; > + hsync-len = <34>; > + hfront-porch = <20>; > + vback-porch = <15>; > + vsync-len = <3>; > + vfront-porch = <4>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <1>; > + }; > + > + ET0430 { > + clock-frequency = <9009000>; > + hactive = <480>; > + vactive = <272>; > + hback-porch = <2>; > + hsync-len = <41>; > + hfront-porch = <2>; > + vback-porch = <2>; > + vsync-len = <10>; > + vfront-porch = <2>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <0>; > + }; > + > + ET0500 { > + clock-frequency = <33264000>; > + hactive = <800>; > + vactive = <480>; > + hback-porch = <88>; > + hsync-len = <128>; > + hfront-porch = <40>; > + vback-porch = <33>; > + vsync-len = <2>; > + vfront-porch = <10>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <1>; > + }; > + > + ET0700 { /* same as ET0500 */ > + clock-frequency = <33264000>; > + hactive = <800>; > + vactive = <480>; > + hback-porch = <88>; > + hsync-len = <128>; > + hfront-porch = <40>; > + vback-porch = <33>; > + vsync-len = <2>; > + vfront-porch = <10>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <1>; > + }; > + > + ETQ570 { > + clock-frequency = <6596040>; > + hactive = <320>; > + vactive = <240>; > + hback-porch = <38>; > + hsync-len = <30>; > + hfront-porch = <30>; > + vback-porch = <16>; > + vsync-len = <3>; > + vfront-porch = <4>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <1>; > + }; > + }; > + }; > +}; > + > +&pwm5 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm5>; > + #pwm-cells = <3>; > + status = "okay"; > +}; > + > +&sai2 { > + #sound-dai-cells = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_sai2>; > + status = "okay"; > +}; > + > +&uart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_rtscts>; > + status = "okay"; > +}; > + > +&uart2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart2 &pinctrl_uart2_rtscts>; > + status = "okay"; > +}; > + > +&uart5 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart5 &pinctrl_uart5_rtscts>; > + status = "okay"; > +}; > + > +&usbotg2 { > + vbus-supply = <®_usbh1_vbus>; > + dr_mode = "host"; > + disable-over-current; > + status = "okay"; > +}; > + > +&usbotg1 { > + vbus-supply = <®_usbotg_vbus>; > + dr_mode = "peripheral"; > + disable-over-current; > + status = "okay"; > +}; > + > +&usdhc1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc1>; > + bus-width = <4>; > + no-1-8-v; > + cd-gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; > + fsl,wp-controller; > + status = "okay"; > +}; > -- > 2.1.4 > > ^ permalink raw reply [flat|nested] 43+ messages in thread
* [PATCHv2 16/16] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules 2016-02-28 6:43 ` Shawn Guo @ 2016-02-29 11:21 ` Lothar Waßmann 0 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-02-29 11:21 UTC (permalink / raw) To: linux-arm-kernel Hi, On Sun, 28 Feb 2016 14:43:26 +0800 Shawn Guo wrote: > On Wed, Jan 20, 2016 at 11:09:09AM +0100, Lothar Wa?mann wrote: [...] > > +/dts-v1/; > > +#include "imx6ul.dtsi" > > +#include "imx6ul-txul.dtsi" > > + > > +/ { > > + model = "Ka-Ro electronics TXUL-0010 Module"; > > + compatible = "karo,imx6ul-tx6ul", "fsl,imx6ul"; > > + > > + aliases { > > + mmc0 = &usdhc1; > > + /delete-property/ mmc1; > > Why is this deletion of mmc1 needed? > Its not actually necessary, but for convenience of U-Boot users who may want to enable/disable the mmc interface dynamically. Since the USDHC2 interface is not available on this module, I prefer not to have a dangling alias that points to an interface that is not actually useable. > > diff --git a/arch/arm/boot/dts/imx6ul-txul-0011.dts b/arch/arm/boot/dts/imx6ul-txul-0011.dts > > new file mode 100644 > > index 0000000..dd3055b > > --- /dev/null > > +++ b/arch/arm/boot/dts/imx6ul-txul-0011.dts > > @@ -0,0 +1,85 @@ > > +/* > > + * Copyright 2015 Lothar Wa?mann <LW@KARO-electronics.de> > > + * > > + * This file is dual-licensed: you can use it either under the terms > > + * of the GPL or the X11 license, at your option. Note that this dual > > + * licensing only applies to this file, and not this project as a > > + * whole. > > + * > > + * a) This file is free software; you can redistribute it and/or > > + * modify it under the terms of the GNU General Public License > > + * version 2 as published by the Free Software Foundation. > > + * > > + * This file is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > > + * GNU General Public License for more details. > > + * > > + * Or, alternatively, > > + * > > + * b) Permission is hereby granted, free of charge, to any person > > + * obtaining a copy of this software and associated documentation > > + * files (the "Software"), to deal in the Software without > > + * restriction, including without limitation the rights to use, > > + * copy, modify, merge, publish, distribute, sublicense, and/or > > + * sell copies of the Software, and to permit persons to whom the > > + * Software is furnished to do so, subject to the following > > + * conditions: > > + * > > + * The above copyright notice and this permission notice shall be > > + * included in all copies or substantial portions of the Software. > > + * > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES > > + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT > > + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, > > + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > > + * OTHER DEALINGS IN THE SOFTWARE. > > + */ > > + > > +/dts-v1/; > > +#include "imx6ul.dtsi" > > +#include "imx6ul-txul.dtsi" > > + > > +/ { > > + model = "Ka-Ro electronics TXUL-0011 Module"; > > + compatible = "karo,imx6ul-tx6ul", "fsl,imx6ul"; > > + > > + aliases { > > + mmc0 = &usdhc2; > > + mmc1 = &usdhc1; > > + }; > > +}; > > + > > +&gpmi { > > + status = "disabled"; > > +}; > > + > > +&iomuxc { > > + imx6ul-txul { > > Since commit 5fcdf6a7ed95 (pinctrl: imx: Allow parsing DT without > function nodes), we can save this container node. > I already reworked the file in the meantime, so that this and your remaining comments are addressed. Lothar Wa?mann ^ permalink raw reply [flat|nested] 43+ messages in thread
* ARM: dts: imx6ul: add more functionality to i.MX6UL 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (14 preceding siblings ...) 2016-01-20 10:09 ` [PATCHv2 16/16] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules Lothar Waßmann @ 2016-02-28 6:49 ` Shawn Guo 2016-03-04 12:37 ` Lothar Waßmann 16 siblings, 0 replies; 43+ messages in thread From: Shawn Guo @ 2016-02-28 6:49 UTC (permalink / raw) To: linux-arm-kernel On Wed, Jan 20, 2016 at 11:08:53AM +0100, Lothar Wa?mann wrote: > This patchset adds more functionality to the i.MX6UL machines. > > The first three patches are cleanup patches with no functional changes > intended. > The other patches make various subsystems functional. > > ARM: dts: imx6ul: whitespace cleanup; no functional This has been applied from another series. > ARM: dts: imx6ul: move tsc node to appropriate place > ARM: dts: imx6ul: move dt-bindings/input/input.h > ARM: dts: imx6ul: specify proper clocks for GPT node > ARM: dts: imx6ul: specify proper clocks for the PWM > ARM: dts: imx6ul: disable PWMs by default > ARM: dts: imx6ul: add pwm[1-4] nodes > ARM: dts: imx6ul: add sdma support > ARM: dts: imx6ul: add flexcan support > ARM: dts: imx6ul: add sai support > ARM: dts: imx6ul: add lcdif support > ARM: dts: imx6ul: add gpmi support Just applied the above. > clk: imx: whitespace cleanup; no functional change > clk: imx: add kpp clock for i.MX6UL These two have been applied from a separate series. > ARM: dts: imx6ul: add kpp support It was just applied. Shawn > ARM: dts: imx6ul: add support for Ka-Ro electronics TX6UL module ^ permalink raw reply [flat|nested] 43+ messages in thread
* ARM: dts: imx6ul: add more functionality to i.MX6UL 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann ` (15 preceding siblings ...) 2016-02-28 6:49 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Shawn Guo @ 2016-03-04 12:37 ` Lothar Waßmann 2016-03-04 12:37 ` [PATCHv3 1/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules Lothar Waßmann ` (2 more replies) 16 siblings, 3 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-03-04 12:37 UTC (permalink / raw) To: linux-arm-kernel [PATCHv3 1/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules [PATCHv3 2/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL mainboard This patchset adds more functionality to the i.MX6UL machines. Changes vs. v1: - added patch to implement KPP clock for i.MX6UL to prevent conflicts when this patch would go via a different tree. - added board support for Ka-Ro electronics TX6UL module for the same reason - added imx6ul specific compatibles as requested by Lucas Stach Changes vs. v2: - dropped patches which have already been applied in the meantime - addressed comments by Shawn Guo ^ permalink raw reply [flat|nested] 43+ messages in thread
* [PATCHv3 1/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules 2016-03-04 12:37 ` Lothar Waßmann @ 2016-03-04 12:37 ` Lothar Waßmann 2016-03-04 12:37 ` [PATCHv3 2/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL mainboard Lothar Waßmann 2016-03-30 11:43 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Shawn Guo 2 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-03-04 12:37 UTC (permalink / raw) To: linux-arm-kernel The TXUL-0010/-0011 modules are Computers On Module manufactured by Ka-Ro electronics GmbH with the following characteristics: Processor Freescale i.MX 6UltraLite MCIMX6G2, 528 MHz RAM 256MB 16-bit DDR3 SDRAM ROM 128MB NAND Flash (TXUL-0010) / 4GB eMMC (TXUL-0011) Power supply Single 3.3 to 5V Size 26mm SO-DIMM Temp. Range -40?C to 85?C Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/Makefile | 4 +- arch/arm/boot/dts/imx6ul-tx6ul-0010.dts | 53 ++ arch/arm/boot/dts/imx6ul-tx6ul-0011.dts | 68 +++ arch/arm/boot/dts/imx6ul-tx6ul.dtsi | 973 ++++++++++++++++++++++++++++++++ 4 files changed, 1097 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/imx6ul-tx6ul-0010.dts create mode 100644 arch/arm/boot/dts/imx6ul-tx6ul-0011.dts create mode 100644 arch/arm/boot/dts/imx6ul-tx6ul.dtsi diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 072294f..a5e21ae 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -374,7 +374,9 @@ dtb-$(CONFIG_SOC_IMX6SX) += \ imx6sx-sdb-reva.dtb \ imx6sx-sdb.dtb dtb-$(CONFIG_SOC_IMX6UL) += \ - imx6ul-14x14-evk.dtb + imx6ul-14x14-evk.dtb \ + imx6ul-tx6ul-0010.dtb \ + imx6ul-tx6ul-0011.dtb dtb-$(CONFIG_SOC_IMX7D) += \ imx7d-cl-som-imx7.dtb \ imx7d-sbc-imx7.dtb \ diff --git a/arch/arm/boot/dts/imx6ul-tx6ul-0010.dts b/arch/arm/boot/dts/imx6ul-tx6ul-0010.dts new file mode 100644 index 0000000..8c2f3df --- /dev/null +++ b/arch/arm/boot/dts/imx6ul-tx6ul-0010.dts @@ -0,0 +1,53 @@ +/* + * Copyright 2015 Lothar Wa?mann <LW@KARO-electronics.de> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/dts-v1/; +#include "imx6ul.dtsi" +#include "imx6ul-tx6ul.dtsi" + +/ { + model = "Ka-Ro electronics TXUL-0010 Module"; + compatible = "karo,imx6ul-tx6ul", "fsl,imx6ul"; + + aliases { + /delete-property/ mmc1; + }; +}; diff --git a/arch/arm/boot/dts/imx6ul-tx6ul-0011.dts b/arch/arm/boot/dts/imx6ul-tx6ul-0011.dts new file mode 100644 index 0000000..d82698e --- /dev/null +++ b/arch/arm/boot/dts/imx6ul-tx6ul-0011.dts @@ -0,0 +1,68 @@ +/* + * Copyright 2015 Lothar Wa?mann <LW@KARO-electronics.de> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/dts-v1/; +#include "imx6ul.dtsi" +#include "imx6ul-tx6ul.dtsi" + +/ { + model = "Ka-Ro electronics TXUL-0011 Module"; + compatible = "karo,imx6ul-tx6ul", "fsl,imx6ul"; + + aliases { + mmc0 = &usdhc2; + mmc1 = &usdhc1; + }; +}; + +&gpmi { + status = "disabled"; +}; + +&usdhc2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc2>; + bus-width = <4>; + no-1-8-v; + non-removable; + fsl,wp-controller; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/imx6ul-tx6ul.dtsi b/arch/arm/boot/dts/imx6ul-tx6ul.dtsi new file mode 100644 index 0000000..437e9aa --- /dev/null +++ b/arch/arm/boot/dts/imx6ul-tx6ul.dtsi @@ -0,0 +1,973 @@ +/* + * Copyright 2015 Lothar Wa?mann <LW@KARO-electronics.de> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/pwm/pwm.h> + +/ { + aliases { + can0 = &can2; + can1 = &can1; + display = &display; + i2c0 = &i2c2; + i2c1 = &i2c_gpio; + i2c2 = &i2c1; + i2c3 = &i2c3; + i2c4 = &i2c4; + lcdif_23bit_pins_a = &pinctrl_disp0_1; + lcdif_24bit_pins_a = &pinctrl_disp0_2; + pwm0 = &pwm5; + reg_can_xcvr = ®_can_xcvr; + serial2 = &uart5; + serial4 = &uart3; + spi0 = &ecspi2; + spi1 = &spi_gpio; + stk5led = &user_led; + usbh1 = &usbotg2; + usbotg = &usbotg1; + }; + + chosen { + stdout-path = &uart1; + }; + + memory { + reg = <0 0>; /* will be filled by U-Boot */ + }; + + clocks { + mclk: mclk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <26000000>; + }; + }; + + backlight: backlight { + compatible = "pwm-backlight"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_lcd_rst>; + enable-gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>; + pwms = <&pwm5 0 500000 PWM_POLARITY_INVERTED>; + power-supply = <®_lcd_pwr>; + /* + * a poor man's way to create a 1:1 relationship between + * the PWM value and the actual duty cycle + */ + brightness-levels = < 0 1 2 3 4 5 6 7 8 9 + 10 11 12 13 14 15 16 17 18 19 + 20 21 22 23 24 25 26 27 28 29 + 30 31 32 33 34 35 36 37 38 39 + 40 41 42 43 44 45 46 47 48 49 + 50 51 52 53 54 55 56 57 58 59 + 60 61 62 63 64 65 66 67 68 69 + 70 71 72 73 74 75 76 77 78 79 + 80 81 82 83 84 85 86 87 88 89 + 90 91 92 93 94 95 96 97 98 99 + 100>; + default-brightness-level = <50>; + }; + + i2c_gpio: i2c-gpio { + compatible = "i2c-gpio"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c_gpio>; + gpios = < + &gpio5 1 GPIO_ACTIVE_HIGH /* SDA */ + &gpio5 0 GPIO_ACTIVE_HIGH /* SCL */ + >; + clock-frequency = <400000>; + status = "okay"; + + ds1339: rtc at 68 { + compatible = "dallas,ds1339"; + reg = <0x68>; + status = "disabled"; + }; + }; + + leds { + compatible = "gpio-leds"; + + user_led: user { + label = "Heartbeat"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_led>; + gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + }; + + reg_3v3_etn: regulator-3v3etn { + compatible = "regulator-fixed"; + regulator-name = "3V3_ETN"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_etnphy_power>; + gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_2v5: regulator-2v5 { + compatible = "regulator-fixed"; + regulator-name = "2V5"; + regulator-min-microvolt = <2500000>; + regulator-max-microvolt = <2500000>; + regulator-always-on; + }; + + reg_3v3: regulator-3v3 { + compatible = "regulator-fixed"; + regulator-name = "3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + reg_can_xcvr: regulator-canxcvr { + compatible = "regulator-fixed"; + regulator-name = "CAN XCVR"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan_xcvr>; + gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>; + enable-active-low; + }; + + reg_lcd_pwr: regulator-lcdpwr { + compatible = "regulator-fixed"; + regulator-name = "LCD POWER"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_lcd_pwr>; + gpio = <&gpio5 4 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-boot-on; + regulator-always-on; + }; + + reg_usbh1_vbus: regulator-usbh1vbus { + compatible = "regulator-fixed"; + regulator-name = "usbh1_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usbh1_vbus &pinctrl_usbh1_oc>; + gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + reg_usbotg_vbus: regulator-usbotgvbus { + compatible = "regulator-fixed"; + regulator-name = "usbotg_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usbotg_vbus &pinctrl_usbotg_oc>; + gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + spi_gpio: spi-gpio { + #address-cells = <1>; + #size-cells = <0>; + compatible = "spi-gpio"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_spi_gpio>; + gpio-mosi = <&gpio1 30 GPIO_ACTIVE_HIGH>; + gpio-miso = <&gpio1 31 GPIO_ACTIVE_HIGH>; + gpio-sck = <&gpio1 28 GPIO_ACTIVE_HIGH>; + num-chipselects = <2>; + cs-gpios = < + &gpio1 29 GPIO_ACTIVE_HIGH + &gpio1 10 GPIO_ACTIVE_HIGH + >; + status = "disabled"; + + spi at 0 { + compatible = "spidev"; + reg = <0>; + spi-max-frequency = <660000>; + }; + + spi at 1 { + compatible = "spidev"; + reg = <1>; + spi-max-frequency = <660000>; + }; + }; + + sound { + compatible = "karo,imx6ul-tx6ul-sgtl5000", + "simple-audio-card"; + simple-audio-card,name = "imx6ul-tx6ul-sgtl5000-audio"; + simple-audio-card,format = "i2s"; + simple-audio-card,bitclock-master = <&codec_dai>; + simple-audio-card,frame-master = <&codec_dai>; + simple-audio-card,widgets = + "Microphone", "Mic Jack", + "Line", "Line In", + "Line", "Line Out", + "Headphone", "Headphone Jack"; + simple-audio-card,routing = + "MIC_IN", "Mic Jack", + "Mic Jack", "Mic Bias", + "Headphone Jack", "HP_OUT"; + + cpu_dai: simple-audio-card,cpu { + sound-dai = <&sai2>; + }; + + codec_dai: simple-audio-card,codec { + sound-dai = <&sgtl5000>; + }; + }; +}; + +&can1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan1>; + xceiver-supply = <®_can_xcvr>; + status = "okay"; +}; + +&can2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan2>; + xceiver-supply = <®_can_xcvr>; + status = "okay"; +}; + +&ecspi2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ecspi2>; + fsl,spi-num-chipselects = <2>; + cs-gpios = < + &gpio1 29 GPIO_ACTIVE_HIGH + &gpio1 10 GPIO_ACTIVE_HIGH + >; + status = "disabled"; + + spidev0: spi at 0 { + compatible = "spidev"; + reg = <0>; + spi-max-frequency = <60000000>; + }; + + spidev1: spi at 1 { + compatible = "spidev"; + reg = <1>; + spi-max-frequency = <60000000>; + }; +}; + +&fec1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enet1 &pinctrl_enet1_mdio &pinctrl_etnphy0_rst>; + phy-mode = "rmii"; + phy-reset-gpios = <&gpio5 6 GPIO_ACTIVE_HIGH>; + phy-supply = <®_3v3_etn>; + phy-handle = <&etnphy0>; + status = "okay"; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + etnphy0: ethernet-phy at 0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_etnphy0_int>; + interrupt-parent = <&gpio5>; + interrupts = <5 IRQ_TYPE_EDGE_FALLING>; + status = "okay"; + }; + + etnphy1: ethernet-phy at 2 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <2>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_etnphy1_int>; + interrupt-parent = <&gpio4>; + interrupts = <27 IRQ_TYPE_EDGE_FALLING>; + status = "okay"; + }; + }; +}; + +&fec2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enet2 &pinctrl_etnphy1_rst>; + phy-mode = "rmii"; + phy-reset-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; + phy-supply = <®_3v3_etn>; + phy-handle = <&etnphy1>; + status = "disabled"; +}; + +&gpmi { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpmi_nand>; + nand-on-flash-bbt; + fsl,no-blockmark-swap; + status = "okay"; +}; + +&i2c2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c2>; + clock-frequency = <400000>; + status = "okay"; + + sgtl5000: codec at 0a { + compatible = "fsl,sgtl5000"; + reg = <0x0a>; + #sound-dai-cells = <0>; + VDDA-supply = <®_2v5>; + VDDIO-supply = <®_3v3>; + clocks = <&mclk>; + }; + + polytouch: polytouch at 38 { + compatible = "edt,edt-ft5x06"; + reg = <0x38>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_edt_ft5x06>; + interrupt-parent = <&gpio5>; + interrupts = <2 IRQ_TYPE_EDGE_FALLING>; + reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; + wake-gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>; + wakeup-source; + }; + + touchscreen: touchscreen at 48 { + compatible = "ti,tsc2007"; + reg = <0x48>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_tsc2007>; + interrupt-parent = <&gpio3>; + interrupts = <26 IRQ_TYPE_NONE>; + gpios = <&gpio3 26 GPIO_ACTIVE_LOW>; + ti,x-plate-ohms = <660>; + wakeup-source; + }; +}; + +&kpp { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_kpp>; + /* sample keymap */ + /* row/col 0..3 are mapped to KPP row/col 4..7 */ + linux,keymap = < + MATRIX_KEY(4, 4, KEY_POWER) + MATRIX_KEY(4, 5, KEY_KP0) + MATRIX_KEY(4, 6, KEY_KP1) + MATRIX_KEY(4, 7, KEY_KP2) + MATRIX_KEY(5, 4, KEY_KP3) + MATRIX_KEY(5, 5, KEY_KP4) + MATRIX_KEY(5, 6, KEY_KP5) + MATRIX_KEY(5, 7, KEY_KP6) + MATRIX_KEY(6, 4, KEY_KP7) + MATRIX_KEY(6, 5, KEY_KP8) + MATRIX_KEY(6, 6, KEY_KP9) + >; + status = "okay"; +}; + +&lcdif { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_disp0_1>; + lcd-supply = <®_lcd_pwr>; + display = <&display>; + status = "okay"; + + display: display at di0 { + bits-per-pixel = <32>; + bus-width = <24>; + status = "okay"; + + display-timings { + VGA { + clock-frequency = <25200000>; + hactive = <640>; + vactive = <480>; + hback-porch = <48>; + hsync-len = <96>; + hfront-porch = <16>; + vback-porch = <31>; + vsync-len = <2>; + vfront-porch = <12>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + ETV570 { + clock-frequency = <25200000>; + hactive = <640>; + vactive = <480>; + hback-porch = <114>; + hsync-len = <30>; + hfront-porch = <16>; + vback-porch = <32>; + vsync-len = <3>; + vfront-porch = <10>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + ET0350 { + clock-frequency = <6413760>; + hactive = <320>; + vactive = <240>; + hback-porch = <34>; + hsync-len = <34>; + hfront-porch = <20>; + vback-porch = <15>; + vsync-len = <3>; + vfront-porch = <4>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + ET0430 { + clock-frequency = <9009000>; + hactive = <480>; + vactive = <272>; + hback-porch = <2>; + hsync-len = <41>; + hfront-porch = <2>; + vback-porch = <2>; + vsync-len = <10>; + vfront-porch = <2>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <0>; + }; + + ET0500 { + clock-frequency = <33264000>; + hactive = <800>; + vactive = <480>; + hback-porch = <88>; + hsync-len = <128>; + hfront-porch = <40>; + vback-porch = <33>; + vsync-len = <2>; + vfront-porch = <10>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + ET0700 { /* same as ET0500 */ + clock-frequency = <33264000>; + hactive = <800>; + vactive = <480>; + hback-porch = <88>; + hsync-len = <128>; + hfront-porch = <40>; + vback-porch = <33>; + vsync-len = <2>; + vfront-porch = <10>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + ETQ570 { + clock-frequency = <6596040>; + hactive = <320>; + vactive = <240>; + hback-porch = <38>; + hsync-len = <30>; + hfront-porch = <30>; + vback-porch = <16>; + vsync-len = <3>; + vfront-porch = <4>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + }; + }; +}; + +&pwm5 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pwm5>; + #pwm-cells = <3>; + status = "okay"; +}; + +&sai2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai2>; + status = "okay"; +}; + +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_rtscts>; + fsl,uart-has-rtscts; + status = "okay"; +}; + +&uart2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart2 &pinctrl_uart2_rtscts>; + fsl,uart-has-rtscts; + status = "okay"; +}; + +&uart5 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart5 &pinctrl_uart5_rtscts>; + fsl,uart-has-rtscts; + status = "okay"; +}; + +&usbotg1 { + vbus-supply = <®_usbotg_vbus>; + dr_mode = "peripheral"; + disable-over-current; + status = "okay"; +}; + +&usbotg2 { + vbus-supply = <®_usbh1_vbus>; + dr_mode = "host"; + disable-over-current; + status = "okay"; +}; + +&usdhc1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_usdhc1_cd>; + bus-width = <4>; + no-1-8-v; + cd-gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; + fsl,wp-controller; + status = "okay"; +}; + +&iomuxc { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hog>; + + pinctrl_hog: hoggrp { + }; + + pinctrl_led: ledgrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x0b0b0 /* LED */ + >; + }; + + pinctrl_disp0_1: disp0grp-1 { + fsl,pins = < + MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x10 /* LSCLK */ + MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x10 /* OE_ACD */ + MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x10 /* HSYNC */ + MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x10 /* VSYNC */ + /* PAD DISP0_DAT0 is used for the Flexcan transceiver control on STK5-v5 */ + MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x10 + MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x10 + MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x10 + MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x10 + MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x10 + MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x10 + MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x10 + MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x10 + MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x10 + MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x10 + MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x10 + MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x10 + MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x10 + MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x10 + MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x10 + MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x10 + MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x10 + MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x10 + MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x10 + MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x10 + MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x10 + MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x10 + MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x10 + >; + }; + + pinctrl_disp0_2: disp0grp-2 { + fsl,pins = < + MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x10 /* LSCLK */ + MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x10 /* OE_ACD */ + MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x10 /* HSYNC */ + MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x10 /* VSYNC */ + MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x10 + MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x10 + MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x10 + MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x10 + MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x10 + MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x10 + MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x10 + MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x10 + MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x10 + MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x10 + MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x10 + MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x10 + MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x10 + MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x10 + MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x10 + MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x10 + MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x10 + MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x10 + MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x10 + MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x10 + MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x10 + MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x10 + MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x10 + MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x10 + >; + }; + + pinctrl_ecspi2: ecspi2grp { + fsl,pins = < + MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x0b0b0 /* CSPI_SS */ + MX6UL_PAD_JTAG_MOD__GPIO1_IO10 0x0b0b0 /* CSPI_SS */ + MX6UL_PAD_UART5_TX_DATA__ECSPI2_MOSI 0x0b0b0 /* CSPI_MOSI */ + MX6UL_PAD_UART5_RX_DATA__ECSPI2_MISO 0x0b0b0 /* CSPI_MISO */ + MX6UL_PAD_UART4_TX_DATA__ECSPI2_SCLK 0x0b0b0 /* CSPI_SCLK */ + >; + }; + + pinctrl_edt_ft5x06: edt-ft5x06grp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x1b0b0 /* Interrupt */ + MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x1b0b0 /* Reset */ + MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x1b0b0 /* Wake */ + >; + }; + + pinctrl_enet1: enet1grp { + fsl,pins = < + MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x000b0 + MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x000b0 + MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x000b0 + MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x000b0 + MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x000b0 + MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x000b0 + MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x000b0 + MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x400000b1 + >; + }; + + pinctrl_enet2: enet2grp { + fsl,pins = < + MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x000b0 + MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x000b0 + MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x000b0 + MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x000b0 + MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x000b0 + MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x000b0 + MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x000b0 + MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x400000b1 + >; + }; + + pinctrl_enet1_mdio: enet1-mdiogrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x0b0b0 + MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0 + >; + }; + + pinctrl_etnphy_power: etnphy-pwrgrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x0b0b0 /* ETN PHY POWER */ + >; + }; + + pinctrl_etnphy0_int: etnphy-intgrp-0 { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER5__GPIO5_IO05 0x0b0b0 /* ETN PHY INT */ + >; + }; + + pinctrl_etnphy0_rst: etnphy-rstgrp-0 { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x0b0b0 /* ETN PHY RESET */ + >; + }; + + pinctrl_etnphy1_int: etnphy-intgrp-1 { + fsl,pins = < + MX6UL_PAD_CSI_DATA06__GPIO4_IO27 0x0b0b0 /* ETN PHY INT */ + >; + }; + + pinctrl_etnphy1_rst: etnphy-rstgrp-1 { + fsl,pins = < + MX6UL_PAD_CSI_DATA07__GPIO4_IO28 0x0b0b0 /* ETN PHY RESET */ + >; + }; + + pinctrl_flexcan1: flexcan1grp { + fsl,pins = < + MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x0b0b0 + MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x0b0b0 + >; + }; + + pinctrl_flexcan2: flexcan2grp { + fsl,pins = < + MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x0b0b0 + MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x0b0b0 + >; + }; + + pinctrl_flexcan_xcvr: flexcan-xcvrgrp { + fsl,pins = < + MX6UL_PAD_LCD_DATA00__GPIO3_IO05 0x0b0b0 /* Flexcan XCVR enable */ + >; + }; + + pinctrl_gpmi_nand: gpminandgrp { + fsl,pins = < + MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0x0b0b1 + MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0x0b0b1 + MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B 0x0b0b1 + MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0x0b000 + MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B 0x0b0b1 + MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B 0x0b0b1 + MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B 0x0b0b1 + MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00 0x0b0b1 + MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01 0x0b0b1 + MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02 0x0b0b1 + MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03 0x0b0b1 + MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04 0x0b0b1 + MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05 0x0b0b1 + MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06 0x0b0b1 + MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07 0x0b0b1 + >; + }; + + pinctrl_i2c_gpio: i2c-gpiogrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x4001b8b1 /* I2C SCL */ + MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x4001b8b1 /* I2C SDA */ + >; + }; + + pinctrl_i2c2: i2c2grp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x4001b8b1 + MX6UL_PAD_GPIO1_IO01__I2C2_SDA 0x4001b8b1 + >; + }; + + pinctrl_kpp: kppgrp { + fsl,pins = < + MX6UL_PAD_ENET2_RX_DATA1__KPP_COL04 0x1b0b0 + MX6UL_PAD_ENET2_TX_DATA0__KPP_COL05 0x1b0b0 + MX6UL_PAD_ENET2_TX_EN__KPP_COL06 0x1b0b0 + MX6UL_PAD_ENET2_RX_ER__KPP_COL07 0x1b0b0 + MX6UL_PAD_ENET2_RX_DATA0__KPP_ROW04 0x1b0b0 + MX6UL_PAD_ENET2_RX_EN__KPP_ROW05 0x1b0b0 + MX6UL_PAD_ENET2_TX_DATA1__KPP_ROW06 0x1b0b0 + MX6UL_PAD_ENET2_TX_CLK__KPP_ROW07 0x1b0b0 + >; + }; + + pinctrl_lcd_pwr: lcd-pwrgrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x0b0b0 /* LCD Power Enable */ + >; + }; + + pinctrl_lcd_rst: lcd-rstgrp { + fsl,pins = < + MX6UL_PAD_LCD_RESET__GPIO3_IO04 0x0b0b0 /* LCD Reset */ + >; + }; + + pinctrl_pwm5: pwm5grp { + fsl,pins = < + MX6UL_PAD_NAND_DQS__PWM5_OUT 0x0b0b0 + >; + }; + + pinctrl_sai2: sai2grp { + fsl,pins = < + MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x0b0b0 /* SSI1_RXD */ + MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x0b0b0 /* SSI1_TXD */ + MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x0b0b0 /* SSI1_CLK */ + MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x0b0b0 /* SSI1_FS */ + >; + }; + + pinctrl_spi_gpio: spi-gpiogrp { + fsl,pins = < + MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x0b0b0 /* CSPI_SS */ + MX6UL_PAD_JTAG_MOD__GPIO1_IO10 0x0b0b0 /* CSPI_SS */ + MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30 0x0b0b0 /* CSPI_MOSI */ + MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31 0x0b0b0 /* CSPI_MISO */ + MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x0b0b0 /* CSPI_SCLK */ + >; + }; + + pinctrl_tsc2007: tsc2007grp { + fsl,pins = < + MX6UL_PAD_JTAG_TMS__GPIO1_IO11 0x1b0b0 /* Interrupt */ + >; + }; + + pinctrl_uart1: uart1grp { + fsl,pins = < + MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x0b0b0 + MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x0b0b0 + >; + }; + + pinctrl_uart1_rtscts: uart1-rtsctsgrp { + fsl,pins = < + MX6UL_PAD_UART1_RTS_B__UART1_DCE_RTS 0x0b0b0 + MX6UL_PAD_UART1_CTS_B__UART1_DCE_CTS 0x0b0b0 + >; + }; + + pinctrl_uart2: uart2grp { + fsl,pins = < + MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x0b0b0 + MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x0b0b0 + >; + }; + + pinctrl_uart2_rtscts: uart2-rtsctsgrp { + fsl,pins = < + MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x0b0b0 + MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x0b0b0 + >; + }; + + pinctrl_uart5: uart5grp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO04__UART5_DCE_TX 0x0b0b0 + MX6UL_PAD_GPIO1_IO05__UART5_DCE_RX 0x0b0b0 + >; + }; + + pinctrl_uart5_rtscts: uart5-rtsctsgrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO08__UART5_DCE_RTS 0x0b0b0 + MX6UL_PAD_GPIO1_IO09__UART5_DCE_CTS 0x0b0b0 + >; + }; + + pinctrl_usbh1_oc: usbh1-ocgrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x17059 /* USBH1_OC */ + >; + }; + + pinctrl_usbh1_vbus: usbh1-vbusgrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0x0b0b0 /* USBH1_VBUSEN */ + >; + }; + + pinctrl_usbotg_oc: usbotg-ocgrp { + fsl,pins = < + MX6UL_PAD_UART3_RTS_B__GPIO1_IO27 0x17059 /* USBOTG_OC */ + >; + }; + + pinctrl_usbotg_vbus: usbotg-vbusgrp { + fsl,pins = < + MX6UL_PAD_UART3_CTS_B__GPIO1_IO26 0x1b0b0 /* USBOTG_VBUSEN */ + >; + }; + + pinctrl_usdhc1: usdhc1grp { + fsl,pins = < + MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x070b1 + MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x07099 + MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x070b1 + MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x070b1 + MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x070b1 + MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x070b1 + >; + }; + + pinctrl_usdhc1_cd: usdhc1cdgrp { + fsl,pins = < + MX6UL_PAD_NAND_CE1_B__GPIO4_IO14 0x170b0 /* SD1 CD */ + >; + }; + + pinctrl_usdhc2: usdhc2grp { + fsl,pins = < + MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x070b1 + MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x070b1 + MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x070b1 + MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x070b1 + MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x070b1 + MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x070b1 + /* eMMC RESET */ + MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x170b0 + >; + }; +}; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* [PATCHv3 2/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL mainboard 2016-03-04 12:37 ` Lothar Waßmann 2016-03-04 12:37 ` [PATCHv3 1/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules Lothar Waßmann @ 2016-03-04 12:37 ` Lothar Waßmann 2016-03-30 11:43 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Shawn Guo 2 siblings, 0 replies; 43+ messages in thread From: Lothar Waßmann @ 2016-03-04 12:37 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de> --- arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts | 271 +++++++++++++++++++++++++++ 2 files changed, 273 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index a5e21ae..9f6af0f 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -376,7 +376,8 @@ dtb-$(CONFIG_SOC_IMX6SX) += \ dtb-$(CONFIG_SOC_IMX6UL) += \ imx6ul-14x14-evk.dtb \ imx6ul-tx6ul-0010.dtb \ - imx6ul-tx6ul-0011.dtb + imx6ul-tx6ul-0011.dtb \ + imx6ul-tx6ul-mainboard.dtb dtb-$(CONFIG_SOC_IMX7D) += \ imx7d-cl-som-imx7.dtb \ imx7d-sbc-imx7.dtb \ diff --git a/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts b/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts new file mode 100644 index 0000000..d25899b --- /dev/null +++ b/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts @@ -0,0 +1,271 @@ +/* + * Copyright 2015 Lothar Wa?mann <LW@KARO-electronics.de> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/dts-v1/; +#include "imx6ul.dtsi" +#include "imx6ul-tx6ul.dtsi" + +/ { + model = "Ka-Ro electronics TXUL-0010 Module on TXUL Mainboard"; + compatible = "karo,imx6ul-tx6ul", "fsl,imx6ul"; + + aliases { + lcdif_24bit_pins_a = &pinctrl_disp0_3; + mmc0 = &usdhc1; + /delete-property/ mmc1; + serial2 = &uart3; + serial4 = &uart5; + }; + /delete-node/ sound; +}; + +&can1 { + xceiver-supply = <®_3v3>; +}; + +&can2 { + xceiver-supply = <®_3v3>; +}; + +&ds1339 { + status = "disabled"; +}; + +&fec1 { + pinctrl-0 = <&pinctrl_enet1 &pinctrl_etnphy0_rst>; + /delete-node/ mdio; +}; + +&fec2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enet2 &pinctrl_enet2_mdio &pinctrl_etnphy1_rst>; + phy-mode = "rmii"; + phy-reset-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; + phy-supply = <®_3v3_etn>; + phy-handle = <&etnphy1>; + status = "okay"; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + etnphy0: ethernet-phy at 0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_etnphy0_int>; + interrupt-parent = <&gpio5>; + interrupts = <5 IRQ_TYPE_EDGE_FALLING>; + interrupts-extended = <&gpio5 5 IRQ_TYPE_EDGE_FALLING>; + status = "okay"; + }; + + etnphy1: ethernet-phy at 2 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <2>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_etnphy1_int>; + interrupt-parent = <&gpio4>; + interrupts = <27 IRQ_TYPE_EDGE_FALLING>; + interrupts-extended = <&gpio4 27 IRQ_TYPE_EDGE_FALLING>; + status = "okay"; + }; + }; +}; + +&i2c_gpio { + status = "disabled"; +}; + +&i2c2 { + /delete-node/ codec at 0a; + /delete-node/ touchscreen at 48; + + rtc: mcp7940x at 6f { + compatible = "microchip,mcp7940x"; + reg = <0x6f>; + }; +}; + +&kpp { + status = "disabled"; +}; + +&lcdif { + pinctrl-0 = <&pinctrl_disp0_3>; +}; + +®_usbotg_vbus{ + status = "disabled"; +}; + +&usdhc1 { + pinctrl-0 = <&pinctrl_usdhc1>; + non-removable; + /delete-property/ cd-gpios; + cap-sdio-irq; +}; + +&uart1 { + pinctrl-0 = <&pinctrl_uart1>; + /delete-property/ fsl,uart-has-rtscts; +}; + +&uart2 { + pinctrl-0 = <&pinctrl_uart2>; + /delete-property/ fsl,uart-has-rtscts; + status = "okay"; +}; + +&uart3 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart3>; + status = "okay"; +}; + +&uart4 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart4>; + status = "okay"; +}; + +&uart5 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart5>; + status = "okay"; +}; + +&uart6 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart6>; + status = "okay"; +}; + +&uart7 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart7>; + status = "okay"; +}; + +&uart8 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart8>; + status = "disabled"; /* conflicts with LCDIF */ +}; + +&iomuxc { + hoggrp { + fsl,pins = < + MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x0b0b0 /* WLAN_RESET */ + >; + }; + + pinctrl_disp0_3: disp0grp-3 { + fsl,pins = < + MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x10 /* LSCLK */ + MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x10 /* OE_ACD */ + MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x10 /* HSYNC */ + MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x10 /* VSYNC */ + MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x10 + MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x10 + MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x10 + MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x10 + MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x10 + MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x10 + /* LCD_DATA08..09 not wired */ + MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x10 + MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x10 + MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x10 + MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x10 + MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x10 + MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x10 + /* LCD_DATA16..17 not wired */ + MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x10 + MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x10 + MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x10 + MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x10 + MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x10 + MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x10 + >; + }; + + pinctrl_enet2_mdio: enet2-mdiogrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x0b0b0 + MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0 + >; + }; + + pinctrl_uart3: uart3grp { + fsl,pins = < + MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x0b0b0 + MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0x0b0b0 + >; + }; + + pinctrl_uart4: uart4grp { + fsl,pins = < + MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX 0x0b0b0 + MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX 0x0b0b0 + >; + }; + + pinctrl_uart6: uart6grp { + fsl,pins = < + MX6UL_PAD_CSI_MCLK__UART6_DCE_TX 0x0b0b0 + MX6UL_PAD_CSI_PIXCLK__UART6_DCE_RX 0x0b0b0 + >; + }; + + pinctrl_uart7: uart7grp { + fsl,pins = < + MX6UL_PAD_LCD_DATA16__UART7_DCE_TX 0x0b0b0 + MX6UL_PAD_LCD_DATA17__UART7_DCE_RX 0x0b0b0 + >; + }; + + pinctrl_uart8: uart8grp { + fsl,pins = < + MX6UL_PAD_LCD_DATA20__UART8_DCE_TX 0x0b0b0 + MX6UL_PAD_LCD_DATA21__UART8_DCE_RX 0x0b0b0 + >; + }; +}; -- 2.1.4 ^ permalink raw reply related [flat|nested] 43+ messages in thread
* ARM: dts: imx6ul: add more functionality to i.MX6UL 2016-03-04 12:37 ` Lothar Waßmann 2016-03-04 12:37 ` [PATCHv3 1/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules Lothar Waßmann 2016-03-04 12:37 ` [PATCHv3 2/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL mainboard Lothar Waßmann @ 2016-03-30 11:43 ` Shawn Guo 2 siblings, 0 replies; 43+ messages in thread From: Shawn Guo @ 2016-03-30 11:43 UTC (permalink / raw) To: linux-arm-kernel On Fri, Mar 04, 2016 at 01:37:21PM +0100, Lothar Wa?mann wrote: > [PATCHv3 1/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules > [PATCHv3 2/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL mainboard Applied both, thanks. > > This patchset adds more functionality to the i.MX6UL machines. > > Changes vs. v1: > - added patch to implement KPP clock for i.MX6UL to prevent conflicts > when this patch would go via a different tree. > - added board support for Ka-Ro electronics TX6UL module for the same > reason > - added imx6ul specific compatibles as requested by Lucas Stach > > Changes vs. v2: > - dropped patches which have already been applied in the meantime > - addressed comments by Shawn Guo > > ^ permalink raw reply [flat|nested] 43+ messages in thread
end of thread, other threads:[~2016-03-30 11:43 UTC | newest] Thread overview: 43+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-01-12 17:21 [PATCH 0/14] ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann [not found] ` <1452619291-13625-2-git-send-email-LW@KARO-electronics.de> 2016-01-12 17:21 ` [PATCH 02/14] ARM: dts: imx6ul: move tsc node to appropriate place in the DTB Lothar Waßmann 2016-01-12 17:21 ` [PATCH 03/14] ARM: dts: imx6ul: move dt-bindings/input/input.h include to dtsi file Lothar Waßmann 2016-01-12 17:21 ` [PATCH 04/14] ARM: dts: imx6ul: specify proper clocks for GPT node Lothar Waßmann 2016-01-12 17:21 ` [PATCH 05/14] ARM: dts: imx6ul: specify proper clocks for the PWM nodes Lothar Waßmann 2016-01-12 17:21 ` [PATCH 06/14] ARM: dts: imx6ul: disable PWMs by default Lothar Waßmann 2016-01-12 17:21 ` [PATCH 07/14] ARM: dts: imx6ul: add pwm[1-4] nodes Lothar Waßmann 2016-01-12 17:21 ` [PATCH 08/14] ARM: dts: imx6ul: add kpp support Lothar Waßmann 2016-01-12 17:21 ` [PATCH 09/14] ARM: dts: imx6ul: add sdma support Lothar Waßmann 2016-01-12 17:21 ` [PATCH 10/14] ARM: dts: imx6ul: add flexcan support Lothar Waßmann 2016-01-12 17:21 ` [PATCH 11/14] ARM: dts: imx6ul: add sai support Lothar Waßmann 2016-01-12 17:21 ` [PATCH 12/14] ARM: dts: imx6ul: add lcdif support Lothar Waßmann 2016-01-12 17:21 ` [PATCH 13/14] ARM: dts: imx6ul: add gpmi support Lothar Waßmann 2016-01-12 17:21 ` [PATCH 14/14] ARM: dts: imx6: make audmux optional for i.MX6UL sound driver Lothar Waßmann 2016-01-15 2:38 ` Rob Herring 2016-01-15 6:34 ` Lothar Waßmann 2016-01-13 3:16 ` [PATCH 08/14] ARM: dts: imx6ul: add kpp support kbuild test robot 2016-01-13 9:40 ` Lucas Stach 2016-01-20 10:08 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 02/16] ARM: dts: imx6ul: move tsc node to appropriate place in the DTB Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 03/16] ARM: dts: imx6ul: move dt-bindings/input/input.h include to dtsi file Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 04/16] ARM: dts: imx6ul: specify proper clocks for GPT node Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 05/16] ARM: dts: imx6ul: specify proper clocks for the PWM nodes Lothar Waßmann 2016-01-20 10:08 ` [PATCHv2 06/16] ARM: dts: imx6ul: disable PWMs by default Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 07/16] ARM: dts: imx6ul: add pwm[1-4] nodes Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 08/16] ARM: dts: imx6ul: add sdma support Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 09/16] ARM: dts: imx6ul: add flexcan support Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 10/16] ARM: dts: imx6ul: add sai support Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 11/16] ARM: dts: imx6ul: add lcdif support Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 12/16] ARM: dts: imx6ul: add gpmi support Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 13/16] clk: imx: whitespace cleanup; no functional change Lothar Waßmann 2016-02-25 22:27 ` Stephen Boyd 2016-01-20 10:09 ` [PATCHv2 14/16] clk: imx: add kpp clock for i.MX6UL Lothar Waßmann 2016-02-25 22:27 ` Stephen Boyd 2016-01-20 10:09 ` [PATCHv2 15/16] ARM: dts: imx6ul: add kpp support Lothar Waßmann 2016-01-20 10:09 ` [PATCHv2 16/16] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules Lothar Waßmann 2016-02-28 6:43 ` Shawn Guo 2016-02-29 11:21 ` Lothar Waßmann 2016-02-28 6:49 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Shawn Guo 2016-03-04 12:37 ` Lothar Waßmann 2016-03-04 12:37 ` [PATCHv3 1/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL modules Lothar Waßmann 2016-03-04 12:37 ` [PATCHv3 2/2] ARM: dts: imx6ul: add support for Ka-Ro electronics TXUL mainboard Lothar Waßmann 2016-03-30 11:43 ` ARM: dts: imx6ul: add more functionality to i.MX6UL Shawn Guo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).