Add eSDHC UHS-I/HS200 mode support for ls1012a/ls1046a/ls208xa
Subsystems (3)
v2 cover Add eSDHC UHS-I/HS200 mode support for ls1012a/ls1046a/ls208xa
This patchset is to add eSDHC UHS-I/HS200 mode support for ls1012a/ls1046a/ls208xa. Also add eSDHC node for ls1088a. Because eSDHC is not a standard SD controller, the specific speed mode support depends on board's peripheral circuit for eSDHC. So, we have to add these speed modes support on board dts file.
In additon, these dts patches depends on esdhc driver patches which just had been merged on mmc.git. Otherwise, the UHS-I SD card and eMMC HS200 card would fail to be initialized, but other cards still could work fine.
https://patchwork.kernel.org/patch/9689875/
https://patchwork.kernel.org/patch/9689877/
https://patchwork.kernel.org/patch/9689879/
https://patchwork.kernel.org/patch/9689887/
https://patchwork.kernel.org/patch/9689885/
Yangbo Lu (5):
mmc: dt: add compatible into eSDHC required properties
arm64: dts: ls1046a: support SD UHS-I and eMMC HS200 on RDB
arm64: dts: ls208xa: support SD UHS-I on RDB and eMMC HS200 on QDS
arm64: dts: ls1012a: add eSDHC nodes
arm64: dts: ls1088a: add esdhc node
.../devicetree/bindings/mmc/fsl-esdhc.txt | 1 + arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts | 8 +++++++ arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts | 13 +++++++++++ arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi | 25 ++++++++++++++++++++++ arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts | 8 +++++++ arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 4 ++-- arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts | 4 ++++ arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts | 4 ++++ arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 12 +++++++++++ arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi | 1 + arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi | 4 ++++ arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 2 +- 12 files changed, 83 insertions(+), 3 deletions(-)
Signature · 1 line
2.1.0.27.g96db324
PATCH v2 1/5 mmc: dt: add compatible into eSDHC required properties
This patch is to add compatible into eSDHC required properties.
---
Changes for v2:
- Added this patch.
--- Documentation/devicetree/bindings/mmc/fsl-esdhc.txt | 1 + 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +1 -0
@@ -7,6 +7,7 @@ This file documents differences between the core properties described by mmc.txt and the properties used by the sdhci-esdhc driver. Required properties: + - compatible : should be "fsl,esdhc", or "fsl,<chip>-esdhc". - interrupt-parent : interrupt source phandle. - clock-frequency : specifies eSDHC base clock frequency.
Signature · 1 line
2.1.0.27.g96db324
PATCH v2 1/5 mmc: dt: add compatible into eSDHC required properties
Quoted 15 lines · Yangbo Lu
This patch is to add compatible into eSDHC required properties.
Signed-off-by Yangbo Lu <[email protected]>---
Changes for v2:
- Added this patch.--- Documentation/devicetree/bindings/mmc/fsl-esdhc.txt | 1 + 1 file changed, 1 insertion(+)Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +0
-0
Documentation/devicetree/bindings/mmc/fsl-esdhc.txt This file documents differences between the core properties described · line 10
Quoted 4 lines
Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +1
-0@@ -7,6 +7,7 @@ This file documents differences between the core properties described by mmc.txt and the properties used by the sdhci-esdhc driver. Required properties: + - compatible : should be "fsl,esdhc", or "fsl,<chip>-esdhc".
I think either supported <chip> or the compatible should be listed explicitly.
Shawn
Quoted 11 lines
Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +0
-0- interrupt-parent : interrupt source phandle. - clock-frequency : specifies eSDHC base clock frequency.Signature · 7 lines
2.1.0.27.g96db324 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
PATCH v2 1/5 mmc: dt: add compatible into eSDHC required properties
Hi Shawn,
Quoted 30 lines
-----Original Message-----
From: Shawn Guo [mailto:shawnguo at kernel.org]
Sent: Friday, May 05, 2017 10:37 AM
To: Y.B. Lu
Cc: devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; ulf.hansson at linaro.org; Rob Herring; Catalin Marinas; Harninder Rai; Xiaobo Xie
Subject: Re: [v2, 1/5] mmc: dt: add compatible into eSDHC required propertiesQuoted 16 lines · Yangbo Lu
This patch is to add compatible into eSDHC required properties.
Signed-off-by Yangbo Lu <[email protected]>---
Changes for v2:
- Added this patch.--- Documentation/devicetree/bindings/mmc/fsl-esdhc.txt | 1 + 1 file changed, 1 insertion(+)Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +0
-0@@ -7,6 +7,7 @@ This file documents differences between the coreQuoted 1 line
properties described by mmc.txt and the properties used by the sdhci-
esdhc driver.
Quoted 1 line
Quoted 6 lines
Quoted 2 lines
Required properties:
+ - compatible : should be "fsl,esdhc", or "fsl,<chip>-esdhc".I think either supported <chip> or the compatible should be listed explicitly.
[Lu Yangbo-B47093] I think the reason we use <chip> is to avoid listing too much chips, and to avoid doc updating if new chips are added. The checkpatch script also had considered that.
Currently there're about 20 platforms with "fsl,<chip>-esdhc" compatible in kernel dts. And the doc also provide an example.
Example:
sdhci at 2e000 {
compatible = "fsl,mpc8378-esdhc", "fsl,esdhc";Should we still need to list all ?
Thanks.
Quoted 13 lines
Shawn
Quoted 11 lines
- interrupt-parent : interrupt source phandle.
- clock-frequency : specifies eSDHC base clock frequency.--
2.1.0.27.g96db324_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
PATCH v2 1/5 mmc: dt: add compatible into eSDHC required properties
Quoted 19 lines · Y.B. Lu
Quoted 9 lines
Quoted 7 lines
Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +0
-0@@ -7,6 +7,7 @@ This file documents differences between the coreproperties described by mmc.txt and the properties used by the sdhci-
esdhc driver.
Quoted 1 line
Quoted 6 lines
Quoted 2 lines
Required properties:
+ - compatible : should be "fsl,esdhc", or "fsl,<chip>-esdhc".I think either supported <chip> or the compatible should be listed explicitly.
[Lu Yangbo-B47093] I think the reason we use <chip> is to avoid listing too much chips, and to avoid doc updating if new chips are added. The checkpatch script also had considered that.
Quoted 8 lines
Currently there're about 20 platforms with "fsl,<chip>-esdhc" compatible in kernel dts. And the doc also provide an example.
Example:sdhci at 2e000 { compatible = "fsl,mpc8378-esdhc", "fsl,esdhc";Should we still need to list all ?
I anyway need an ACK from Rob on this patch. Let's see what he would say.
Shawn
Rob Herring
maintainerPATCH v2 1/5 mmc: dt: add compatible into eSDHC required properties
In reply to Y.B. LuQuoted 36 lines · Y.B. Lu
Hi Shawn,
Quoted 33 lines
-----Original Message-----
From: Shawn Guo [mailto:shawnguo at kernel.org]
Sent: Friday, May 05, 2017 10:37 AM
To: Y.B. Lu
Cc: devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; ulf.hansson at linaro.org; Rob Herring; Catalin Marinas; Harninder Rai; Xiaobo Xie
Subject: Re: [v2, 1/5] mmc: dt: add compatible into eSDHC required propertiesQuoted 16 lines · Yangbo Lu
This patch is to add compatible into eSDHC required properties.
Signed-off-by Yangbo Lu <[email protected]>---
Changes for v2:
- Added this patch.--- Documentation/devicetree/bindings/mmc/fsl-esdhc.txt | 1 + 1 file changed, 1 insertion(+)Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +0
-0@@ -7,6 +7,7 @@ This file documents differences between the coreQuoted 1 line
properties described by mmc.txt and the properties used by the sdhci-
esdhc driver.
Quoted 3 lines
Required properties:
+ - compatible : should be "fsl,esdhc", or "fsl,<chip>-esdhc".
Quoted 8 lines
Quoted 3 lines
I think either supported <chip> or the compatible should be listed explicitly.
[Lu Yangbo-B47093] I think the reason we use <chip> is to avoid listing too much chips, and to avoid doc updating if new chips are added. The checkpatch script also had considered that.
Currently there're about 20 platforms with "fsl,<chip>-esdhc" compatible in kernel dts.
Yes, but it's generally preferred to list possible values of <chip>.
Rob
PATCH v2 1/5 mmc: dt: add compatible into eSDHC required properties
Quoted 53 lines
-----Original Message-----
From: Rob Herring [mailto:robh at kernel.org]
Sent: Tuesday, May 09, 2017 12:36 AM
To: Y.B. Lu
Cc: Shawn Guo; devicetree at vger.kernel.org; linux-arm- kernel at lists.infradead.org; ulf.hansson at linaro.org; Catalin Marinas; Harninder Rai; Xiaobo Xie
Subject: Re: [v2, 1/5] mmc: dt: add compatible into eSDHC required propertiesQuoted 42 lines · Y.B. Lu
Hi Shawn,
Quoted 38 lines
-----Original Message-----
From: Shawn Guo [mailto:shawnguo at kernel.org]
Sent: Friday, May 05, 2017 10:37 AM
To: Y.B. Lu
Cc: devicetree at vger.kernel.org;
linux-arm-kernel at lists.infradead.org;
ulf.hansson at linaro.org; Rob Herring; Catalin Marinas; Harninder Rai; Xiaobo Xie
Subject: Re: [v2, 1/5] mmc: dt: add compatible into eSDHC required propertiesQuoted 16 lines · Yangbo Lu
This patch is to add compatible into eSDHC required properties.
Signed-off-by Yangbo Lu <[email protected]>---
Changes for v2:
- Added this patch.--- Documentation/devicetree/bindings/mmc/fsl-esdhc.txt | 1 + 1 file changed, 1 insertion(+)Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +0
-0@@ -7,6 +7,7 @@ This file documents differences between the coreQuoted 2 lines
properties described by mmc.txt and the properties used by the sdhci-
esdhc driver.
Quoted 3 lines
Required properties:
+ - compatible : should be "fsl,esdhc", or "fsl,<chip>-esdhc".I think either supported <chip> or the compatible should be listed explicitly.
Quoted 9 lines
Quoted 1 line
[Lu Yangbo-B47093] I think the reason we use <chip> is to avoid listing
too much chips, and to avoid doc updating if new chips are added.
Quoted 3 lines
The checkpatch script also had considered that.
Currently there're about 20 platforms with "fsl,<chip>-esdhc"
compatible in kernel dts.
Yes, but it's generally preferred to list possible values of <chip>.
[Lu Yangbo-B47093] Ok, thanks for your suggestions, Rob and Shawn. I will send out the new version soon :)
Quoted 1 line
Rob
PATCH v2 2/5 arm64: dts: ls1046a: support SD UHS-I and eMMC HS200 on RDB
In reply to Yangbo LuThis patch is to enable SD UHS-I mode and eMMC HS200 mode on LS1046ARDB in dts. Also, the eSDHC peripheral clock must be used instead of platform clock to support these modes.
---
Changes for v2:
- Sorted the node.
--- arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts | 8 ++++++++ arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-)
arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts +8 -0
@@ -72,6 +72,14 @@ status = "okay"; }; +&esdhc { + mmc-hs200-1_8v; + sd-uhs-sdr104; + sd-uhs-sdr50; + sd-uhs-sdr25; + sd-uhs-sdr12; +}; + &i2c0 { status = "okay";
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +2 -2
@@ -209,10 +209,10 @@ }; esdhc: esdhc at 1560000 { - compatible = "fsl,esdhc"; + compatible = "fsl,ls1046a-esdhc", "fsl,esdhc"; reg = <0x0 0x1560000 0x0 0x10000>; interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; - clock-frequency = <0>; + clocks = <&clockgen 2 1>; voltage-ranges = <1800 1800 3300 3300>; sdhci,auto-cmd12; big-endian;
Signature · 1 line
2.1.0.27.g96db324
PATCH v2 3/5 arm64: dts: ls208xa: support SD UHS-I on RDB and eMMC HS200 on QDS
In reply to Yangbo LuThis patch is to enable SD UHS-I mode on LS208xRDB and eMMC HS200 mode on LS208xQDS in dts. Also, the eSDHC peripheral clock must be used instead of platform clock to support these modes.
---
Changes for v2:
- None.
--- arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi | 1 + arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi | 4 ++++ arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-)
arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi +1 -0
@@ -46,6 +46,7 @@ */ &esdhc { + mmc-hs200-1_8v; status = "okay"; };
arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi +4 -0
@@ -46,6 +46,10 @@ */ &esdhc { + sd-uhs-sdr104; + sd-uhs-sdr50; + sd-uhs-sdr25; + sd-uhs-sdr12; status = "okay"; };
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +1 -1
@@ -472,7 +472,7 @@ compatible = "fsl,ls2080a-esdhc", "fsl,esdhc"; reg = <0x0 0x2140000 0x0 0x10000>; interrupts = <0 28 0x4>; /* Level high type */ - clock-frequency = <0>; /* Updated by bootloader */ + clocks = <&clockgen 4 1>; voltage-ranges = <1800 1800 3300 3300>; sdhci,auto-cmd12; little-endian;
Signature · 1 line
2.1.0.27.g96db324
PATCH v2 4/5 arm64: dts: ls1012a: add eSDHC nodes
In reply to Yangbo LuThere are two eSDHC controllers in LS1012A. This patch is to add eSDHC nodes for ls1012a dts. Also enable eSDHC for RDB/QDS boards.
---
Changes for v2:
- Sorted the node.
--- arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts | 8 ++++++++ arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts | 13 ++++++++++++ arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi | 25 +++++++++++++++++++++++ 3 files changed, 46 insertions(+)
arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts +8 -0
@@ -97,6 +97,14 @@ status = "okay"; }; +&esdhc0 { + status = "okay"; +}; + +&esdhc1 { + status = "okay"; +}; + &i2c0 { status = "okay";
arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts +13 -0
@@ -54,6 +54,19 @@ status = "okay"; }; +&esdhc0 { + sd-uhs-sdr104; + sd-uhs-sdr50; + sd-uhs-sdr25; + sd-uhs-sdr12; + status = "okay"; +}; + +&esdhc1 { + mmc-hs200-1_8v; + status = "okay"; +}; + &i2c0 { status = "okay"; };
arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +25 -0
@@ -117,12 +117,37 @@ #size-cells = <2>; ranges; + esdhc0: esdhc at 1560000 { + compatible = "fsl,ls1012a-esdhc", "fsl,esdhc"; + reg = <0x0 0x1560000 0x0 0x10000>; + interrupts = <0 62 0x4>; + clocks = <&clockgen 4 0>; + voltage-ranges = <1800 1800 3300 3300>; + sdhci,auto-cmd12; + big-endian; + bus-width = <4>; + status = "disabled"; + }; + scfg: scfg at 1570000 { compatible = "fsl,ls1012a-scfg", "syscon"; reg = <0x0 0x1570000 0x0 0x10000>; big-endian; }; + esdhc1: esdhc at 1580000 { + compatible = "fsl,ls1012a-esdhc", "fsl,esdhc"; + reg = <0x0 0x1580000 0x0 0x10000>; + interrupts = <0 65 0x4>; + clocks = <&clockgen 4 0>; + voltage-ranges = <1800 1800 3300 3300>; + sdhci,auto-cmd12; + big-endian; + broken-cd; + bus-width = <4>; + status = "disabled"; + }; + crypto: crypto at 1700000 { compatible = "fsl,sec-v5.4", "fsl,sec-v5.0", "fsl,sec-v4.0";
Signature · 1 line
2.1.0.27.g96db324
PATCH v2 5/5 arm64: dts: ls1088a: add esdhc node
In reply to Yangbo LuAdd esdhc node for ls1088a and enable it on both RDB and QDS boards.
---
Changes for v2:
- Sorted the node.
--- arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts | 4 ++++ arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts | 4 ++++ arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 12 ++++++++++++ 3 files changed, 20 insertions(+)
arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts +4 -0
@@ -118,6 +118,10 @@ status = "okay"; }; +&esdhc { + status = "okay"; +}; + &sata { status = "okay"; };
arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts +4 -0
@@ -102,6 +102,10 @@ status = "okay"; }; +&esdhc { + status = "okay"; +}; + &sata { status = "okay"; };
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +12 -0
@@ -263,6 +263,18 @@ status = "disabled"; }; + esdhc: esdhc at 2140000 { + compatible = "fsl,ls1088a-esdhc", "fsl,esdhc"; + reg = <0x0 0x2140000 0x0 0x10000>; + interrupts = <0 28 0x4>; /* Level high type */ + clock-frequency = <0>; + voltage-ranges = <1800 1800 3300 3300>; + sdhci,auto-cmd12; + little-endian; + bus-width = <4>; + status = "disabled"; + }; + sata: sata at 3200000 { compatible = "fsl,ls1088a-ahci", "fsl,ls1043a-ahci"; reg = <0x0 0x3200000 0x0 0x10000>;
Signature · 1 line
2.1.0.27.g96db324