ARM: dts: socfpga: fix booting with SD/MMC
cover ARM: dts: socfpga: fix booting with SD/MMC
From: Dinh Nguyen <[email protected]>
The SOCFPGA dev kit was hanging during bootup on the SD/MMC driver loading. The first patch fixes the booting and the 2nd patch adds a regulator node for the SD/MMC driver to use.
Dinh Nguyen (2):
ARM: dts: socfpga: Fix SD card detect
ARM: dts: socfpga: Add a 3.3V fixed regulator node
arch/arm/boot/dts/socfpga_arria5.dtsi | 11 ++++++++++- arch/arm/boot/dts/socfpga_arria5_socdk.dts | 5 +++++ arch/arm/boot/dts/socfpga_cyclone5.dtsi | 9 +++++++++ arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 4 +++- arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | 5 +++++ 5 files changed, 32 insertions(+), 2 deletions(-)
Signature · 1 line
2.0.3
PATCH 1/2 ARM: dts: socfpga: Fix SD card detect
From: Dinh Nguyen <[email protected]>
Without this patch, the booting the SOCFPGA platform would hang at the SDMMC driver loading. There were 2 patches that caused this to happen:
- Patch 9795a846e10 "mmc: dw_mmc: remove dw_mci_of_cd_gpio/wp_gpio()" removed looking for "cd-gpios", since mmc_of_parse was getting called.
- Patch 3cf890fc42b "mmc: dw_mmc: Pass back errors from mmc_of_parse()" would hang the system at the SDMMC driver loading.
This patch will fix booting with SDMMC enabled on SOCFPGA dev kit.
--- arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts +1 -1
@@ -69,7 +69,7 @@ }; &mmc0 { - cd-gpios = <&gpio1 18 0>; + cd = <&gpio1 18 0>; }; &usb1 {
Signature · 1 line
2.0.3
PATCH 2/2 ARM: dts: socfpga: Add a 3.3V fixed regulator node
In reply to dinguyen at opensource.altera.comFrom: Dinh Nguyen <[email protected]>
Without the 3.3V regulator node, the SDMMC driver will give these warnings:
dw_mmc ff704000.dwmmc0: No vmmc regulator founddw_mmc ff704000.dwmmc0: No vqmmc regulator found
This patch adds the regulator node, and points the SD/MMC to the regulator.
--- arch/arm/boot/dts/socfpga_arria5.dtsi | 11 ++++++++++- arch/arm/boot/dts/socfpga_arria5_socdk.dts | 5 +++++ arch/arm/boot/dts/socfpga_cyclone5.dtsi | 9 +++++++++ arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 2 ++ arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | 5 +++++ 5 files changed, 31 insertions(+), 1 deletion(-)
arch/arm/boot/dts/socfpga_arria5.dtsi +10 -1
@@ -29,7 +29,7 @@ }; }; - dwmmc0 at ff704000 { + mmc0: dwmmc0 at ff704000 { num-slots = <1>; broken-cd; bus-width = <4>;
@@ -41,4 +41,13 @@ cpu1-start-addr = <0xffd080c4>; }; }; + + regulator_3_3v_hps: fixed_3_3v_hps_regulator at 0 { + compatible = "regulator-fixed"; + regulator-name = "HPS 3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; };
arch/arm/boot/dts/socfpga_arria5_socdk.dts +5 -0
@@ -68,6 +68,11 @@ }; }; +&mmc0 { + vmmc-supply = <®ulator_3_3v_hps>; + vqmmc-supply = <®ulator_3_3v_hps>; +}; + &usb1 { status = "okay"; };
arch/arm/boot/dts/socfpga_cyclone5.dtsi +9 -0
@@ -48,4 +48,13 @@ cpu1-start-addr = <0xffd080c4>; }; }; + + regulator_3_3v_hps: fixed_3_3v_hps_regulator at 0 { + compatible = "regulator-fixed"; + regulator-name = "HPS 3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; };
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts +2 -0
@@ -70,6 +70,8 @@ &mmc0 { cd = <&gpio1 18 0>; + vmmc-supply = <®ulator_3_3v_hps>; + vqmmc-supply = <®ulator_3_3v_hps>; }; &usb1 {
arch/arm/boot/dts/socfpga_cyclone5_sockit.dts +5 -0
@@ -53,6 +53,11 @@ rxc-skew-ps = <2000>; }; +&mmc0 { + vmmc-supply = <®ulator_3_3v_hps>; + vqmmc-supply = <®ulator_3_3v_hps>; +}; + &usb1 { status = "okay"; };
Signature · 1 line
2.0.3
PATCH 2/2 ARM: dts: socfpga: Add a 3.3V fixed regulator node
Hi, Dinh.
Quoted 33 lines · dinguyen at opensource.altera.com
From: Dinh Nguyen <[email protected]>
Without the 3.3V regulator node, the SDMMC driver will give these warnings:
dw_mmcff704000.dwmmc0: No vmmc regulator founddw_mmcff704000.dwmmc0: No vqmmc regulator foundThis patch adds the regulator node, and points the SD/MMC to the regulator.
Signed-off-by Dinh Nguyen <[email protected]>--- arch/arm/boot/dts/socfpga_arria5.dtsi | 11 ++++++++++- arch/arm/boot/dts/socfpga_arria5_socdk.dts | 5 +++++ arch/arm/boot/dts/socfpga_cyclone5.dtsi | 9 +++++++++ arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 2 ++ arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | 5 +++++ 5 files changed, 31 insertions(+), 1 deletion(-)arch/arm/boot/dts/socfpga_arria5.dtsi +1
-1@@ -29,7 +29,7 @@ }; }; - dwmmc0 at ff704000 { + mmc0: dwmmc0 at ff704000 { num-slots = <1>; broken-cd; bus-width = <4>;@@ -41,4 +41,13 @@ cpu1-start-addr = <0xffd080c4>;
arch/arm/boot/dts/socfpga_arria5.dtsi line 51
Quoted 10 lines
arch/arm/boot/dts/socfpga_arria5.dtsi +8
-0}; }; + + regulator_3_3v_hps: fixed_3_3v_hps_regulator at 0 { + compatible = "regulator-fixed"; + regulator-name = "HPS 3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on;
Always-on is right?
Quoted 41 lines
arch/arm/boot/dts/socfpga_arria5.dtsi +1
-0+ }; };arch/arm/boot/dts/socfpga_arria5_socdk.dts +5
-0@@ -68,6 +68,11 @@ }; }; +&mmc0 { + vmmc-supply = <®ulator_3_3v_hps>; + vqmmc-supply = <®ulator_3_3v_hps>; +}; + &usb1 { status = "okay"; };arch/arm/boot/dts/socfpga_cyclone5.dtsi +9
-0@@ -48,4 +48,13 @@ cpu1-start-addr = <0xffd080c4>; }; }; + + regulator_3_3v_hps: fixed_3_3v_hps_regulator at 0 { + compatible = "regulator-fixed"; + regulator-name = "HPS 3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; };arch/arm/boot/dts/socfpga_cyclone5_socdk.dts +0
-0
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts line 74
Quoted 5 lines
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts +2
-0@@ -70,6 +70,8 @@ &mmc0 { cd = <&gpio1 18 0>; + vmmc-supply = <®ulator_3_3v_hps>; + vqmmc-supply = <®ulator_3_3v_hps>;
Is vmmc and vqmmc used the common supply?
Best Regards,
Jaehoon Chung
Quoted 20 lines
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts +0
-0}; &usb1 {arch/arm/boot/dts/socfpga_cyclone5_sockit.dts +5
-0@@ -53,6 +53,11 @@ rxc-skew-ps = <2000>; }; +&mmc0 { + vmmc-supply = <®ulator_3_3v_hps>; + vqmmc-supply = <®ulator_3_3v_hps>; +}; + &usb1 { status = "okay"; };
PATCH 2/2 ARM: dts: socfpga: Add a 3.3V fixed regulator node
Quoted 40 lines · Jaehoon Chung
Hi, Dinh.
Quoted 37 lines · dinguyen at opensource.altera.com
From: Dinh Nguyen <[email protected]>
Without the 3.3V regulator node, the SDMMC driver will give these warnings:
dw_mmcff704000.dwmmc0: No vmmc regulator founddw_mmcff704000.dwmmc0: No vqmmc regulator foundThis patch adds the regulator node, and points the SD/MMC to the regulator.
Signed-off-by Dinh Nguyen <[email protected]>--- arch/arm/boot/dts/socfpga_arria5.dtsi | 11 ++++++++++- arch/arm/boot/dts/socfpga_arria5_socdk.dts | 5 +++++ arch/arm/boot/dts/socfpga_cyclone5.dtsi | 9 +++++++++ arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 2 ++ arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | 5 +++++ 5 files changed, 31 insertions(+), 1 deletion(-)arch/arm/boot/dts/socfpga_arria5.dtsi +3
-1@@ -29,7 +29,7 @@ }; }; - dwmmc0 at ff704000 { + mmc0: dwmmc0 at ff704000 { num-slots = <1>; broken-cd; bus-width = <4>;@@ -41,4 +41,13 @@ cpu1-start-addr = <0xffd080c4>; }; }; + + regulator_3_3v_hps: fixed_3_3v_hps_regulator at 0 {
Quoted 8 lines
arch/arm/boot/dts/socfpga_arria5.dtsi line 51
Quoted 6 lines
arch/arm/boot/dts/socfpga_arria5.dtsi +6
-0+ compatible = "regulator-fixed"; + regulator-name = "HPS 3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on;Always-on is right?
yes, it's always on.
Quoted 43 lines
Quoted 43 lines
arch/arm/boot/dts/socfpga_arria5.dtsi +1
-0+ }; };arch/arm/boot/dts/socfpga_arria5_socdk.dts +5
-0@@ -68,6 +68,11 @@ }; }; +&mmc0 { + vmmc-supply = <®ulator_3_3v_hps>; + vqmmc-supply = <®ulator_3_3v_hps>; +}; + &usb1 { status = "okay"; };arch/arm/boot/dts/socfpga_cyclone5.dtsi +9
-0@@ -48,4 +48,13 @@ cpu1-start-addr = <0xffd080c4>; }; }; + + regulator_3_3v_hps: fixed_3_3v_hps_regulator at 0 { + compatible = "regulator-fixed"; + regulator-name = "HPS 3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; };arch/arm/boot/dts/socfpga_cyclone5_socdk.dts +0
-0@@ -70,6 +70,8 @@
Quoted 7 lines
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts line 74
Quoted 4 lines
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts +2
-0&mmc0 { cd = <&gpio1 18 0>; + vmmc-supply = <®ulator_3_3v_hps>; + vqmmc-supply = <®ulator_3_3v_hps>;Is vmmc and vqmmc used the common supply?
Yes..
Dinh
PATCH 2/2 ARM: dts: socfpga: Add a 3.3V fixed regulator node
In reply to dinguyen at opensource.altera.comDinh,
Quoted 32 lines · On Thu, Oct 16, 2014 at 2:03 PM, <[email protected]> wrote:
From: Dinh Nguyen <[email protected]>
Without the 3.3V regulator node, the SDMMC driver will give these warnings:
dw_mmcff704000.dwmmc0: No vmmc regulator founddw_mmcff704000.dwmmc0: No vqmmc regulator foundThis patch adds the regulator node, and points the SD/MMC to the regulator.
Signed-off-by Dinh Nguyen <[email protected]>--- arch/arm/boot/dts/socfpga_arria5.dtsi | 11 ++++++++++- arch/arm/boot/dts/socfpga_arria5_socdk.dts | 5 +++++ arch/arm/boot/dts/socfpga_cyclone5.dtsi | 9 +++++++++ arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 2 ++ arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | 5 +++++ 5 files changed, 31 insertions(+), 1 deletion(-)arch/arm/boot/dts/socfpga_arria5.dtsi +1
-1@@ -29,7 +29,7 @@ }; }; - dwmmc0 at ff704000 { + mmc0: dwmmc0 at ff704000 { num-slots = <1>; broken-cd; bus-width = <4>;
arch/arm/boot/dts/socfpga_arria5.dtsi line 45
Quoted 5 lines
arch/arm/boot/dts/socfpga_arria5.dtsi +2
-0@@ -41,4 +41,13 @@ cpu1-start-addr = <0xffd080c4>; }; }; + + regulator_3_3v_hps: fixed_3_3v_hps_regulator at 0 {
nit: no @0 since there is no "reg" (register) under this node.
nit: usually people don't like "_" in node names. ...I would probably do this but I'm not an expert:
regulator_3_3v_hps: hps-regulator {
This regulator also looks pretty bogus to me. Is this really a regulator that software has no control over? It means you can't fully reset a card but I guess that's OK.
I'd also expect this regulator to be defined in the same dts / dtsi file that it's used in. Your current patch says "there's a generic 3.3V regulator on all boards of the socfpga_arria5 class even if they don't use MMC, but the "socfpga_arria5_socdk" uses it for MMC. Is that really true?
PATCH 2/2 ARM: dts: socfpga: Add a 3.3V fixed regulator node
Quoted 12 lines · Doug Anderson
Dinh,
Quoted 9 lines · On Thu, Oct 16, 2014 at 2:03 PM, <[email protected]> wrote:
From: Dinh Nguyen <[email protected]>
Without the 3.3V regulator node, the SDMMC driver will give these warnings:
dw_mmcff704000.dwmmc0: No vmmc regulator founddw_mmcff704000.dwmmc0: No vqmmc regulator foundThis patch adds the regulator node, and points the SD/MMC to the regulator.
[...]
Quoted 15 lines
arch/arm/boot/dts/socfpga_arria5.dtsi line 45
Quoted 12 lines
arch/arm/boot/dts/socfpga_arria5.dtsi +3
-1- dwmmc0 at ff704000 { + mmc0: dwmmc0 at ff704000 { num-slots = <1>; broken-cd; bus-width = <4>;@@ -41,4 +41,13 @@ cpu1-start-addr = <0xffd080c4>; }; }; + + regulator_3_3v_hps: fixed_3_3v_hps_regulator at 0 {nit: no @0 since there is no "reg" (register) under this node.
Quoted 3 lines
nit: usually people don't like "_" in node names. ...I would probably do this but I'm not an expert:
regulator_3_3v_hps: hps-regulator {
Ok..will fix up.
Quoted 4 lines
This regulator also looks pretty bogus to me. Is this really a regulator that software has no control over? It means you can't fully reset a card but I guess that's OK.
Yes, this is a generic 3.3V regulator that is used for the 3.3V power rail for the SOC, and any IP the needs 3.3V.
Schematics are here:
http://www.rocketboards.org/pub/Documentation/AlteraSoCDevelopmentBoard/c5_soc_devkit_c.pdf?t=1365712679
http://www.rocketboards.org/pub/Documentation/ArrowSoCKitEvaluationBoard/SoCKit_RevC.pdf
And right, I don't see anyway to be able to reset the card.
Quoted 7 lines
I'd also expect this regulator to be defined in the same dts / dtsi file that it's used in. Your current patch says "there's a generic 3.3V regulator on all boards of the
socfpga_arria5class even if they don't use MMC, but the "socfpga_arria5_socdk" uses it for MMC. Is that really true?
yeah...My original patch had the regulator placed in it's appropriate dts board file, but I saw that as a bit of duplication. I figured that most people are just copying Altera's devkit schematic, that if a new board file shows up that has a different controllable regulator, then the board file can have the new regulator node. Meanwhile, this patch saves adding an additional regulator node for the existing board files.
The 3.3V is not just used by MMC, but the for all 3.3V peripherals.
Thanks for feedback.
Dinh
PATCH 2/2 ARM: dts: socfpga: Add a 3.3V fixed regulator node
Hi,
Quoted 58 lines · Dinh Nguyen
Quoted 12 lines · Doug Anderson
Dinh,
Quoted 9 lines · On Thu, Oct 16, 2014 at 2:03 PM, <[email protected]> wrote:
From: Dinh Nguyen <[email protected]>
Without the 3.3V regulator node, the SDMMC driver will give these warnings:
dw_mmcff704000.dwmmc0: No vmmc regulator founddw_mmcff704000.dwmmc0: No vqmmc regulator foundThis patch adds the regulator node, and points the SD/MMC to the regulator.
[...]
Quoted 15 lines
arch/arm/boot/dts/socfpga_arria5.dtsi line 45
Quoted 12 lines
arch/arm/boot/dts/socfpga_arria5.dtsi +3
-1- dwmmc0 at ff704000 { + mmc0: dwmmc0 at ff704000 { num-slots = <1>; broken-cd; bus-width = <4>;@@ -41,4 +41,13 @@ cpu1-start-addr = <0xffd080c4>; }; }; + + regulator_3_3v_hps: fixed_3_3v_hps_regulator at 0 {nit: no @0 since there is no "reg" (register) under this node.
Quoted 3 lines
nit: usually people don't like "_" in node names. ...I would probably do this but I'm not an expert:
regulator_3_3v_hps: hps-regulator {Ok..will fix up.
Quoted 4 lines
This regulator also looks pretty bogus to me. Is this really a regulator that software has no control over? It means you can't fully reset a card but I guess that's OK.
Yes, this is a generic 3.3V regulator that is used for the 3.3V power rail for the SOC, and any IP the needs 3.3V.
Schematics are here:
http://www.rocketboards.org/pub/Documentation/AlteraSoCDevelopmentBoard/c5_soc_devkit_c.pdf?t=1365712679http://www.rocketboards.org/pub/Documentation/ArrowSoCKitEvaluationBoard/SoCKit_RevC.pdf
And right, I don't see anyway to be able to reset the card.
Quoted 7 lines
I'd also expect this regulator to be defined in the same dts / dtsi file that it's used in. Your current patch says "there's a generic 3.3V regulator on all boards of the
socfpga_arria5class even if they don't use MMC, but the "socfpga_arria5_socdk" uses it for MMC. Is that really true?
Quoted 8 lines
yeah...My original patch had the regulator placed in it's appropriate dts board file, but I saw that as a bit of duplication. I figured that most people are just copying Altera's devkit schematic, that if a new board file shows up that has a different controllable regulator, then the board file can have the new regulator node. Meanwhile, this patch saves adding an additional regulator node for the existing board files.
The 3.3V is not just used by MMC, but the for all 3.3V peripherals.
The advantage of putting it in each board file is you could name it based on the schematics. I see SoCKit_RevC it is named "VCC3P3"
It also allows you to specify the 3.3 supply as the output of a real regulator driver. In s5_soc_devkit it looks like this comes from LTC2978. That's got i2c connections. What happens when you add a driver for that?
PATCH 2/2 ARM: dts: socfpga: Add a 3.3V fixed regulator node
Quoted 69 lines · Doug Anderson
Hi,
Quoted 65 lines · Dinh Nguyen
Quoted 12 lines · Doug Anderson
Dinh,
Quoted 9 lines · On Thu, Oct 16, 2014 at 2:03 PM, <[email protected]> wrote:
From: Dinh Nguyen <[email protected]>
Without the 3.3V regulator node, the SDMMC driver will give these warnings:
dw_mmcff704000.dwmmc0: No vmmc regulator founddw_mmcff704000.dwmmc0: No vqmmc regulator foundThis patch adds the regulator node, and points the SD/MMC to the regulator.
[...]
Quoted 15 lines
arch/arm/boot/dts/socfpga_arria5.dtsi line 45
Quoted 12 lines
arch/arm/boot/dts/socfpga_arria5.dtsi +3
-1- dwmmc0 at ff704000 { + mmc0: dwmmc0 at ff704000 { num-slots = <1>; broken-cd; bus-width = <4>;@@ -41,4 +41,13 @@ cpu1-start-addr = <0xffd080c4>; }; }; + + regulator_3_3v_hps: fixed_3_3v_hps_regulator at 0 {nit: no @0 since there is no "reg" (register) under this node.
Quoted 3 lines
nit: usually people don't like "_" in node names. ...I would probably do this but I'm not an expert:
regulator_3_3v_hps: hps-regulator {Ok..will fix up.
Quoted 4 lines
This regulator also looks pretty bogus to me. Is this really a regulator that software has no control over? It means you can't fully reset a card but I guess that's OK.
Yes, this is a generic 3.3V regulator that is used for the 3.3V power rail for the SOC, and any IP the needs 3.3V.
Schematics are here:
http://www.rocketboards.org/pub/Documentation/AlteraSoCDevelopmentBoard/c5_soc_devkit_c.pdf?t=1365712679http://www.rocketboards.org/pub/Documentation/ArrowSoCKitEvaluationBoard/SoCKit_RevC.pdf
And right, I don't see anyway to be able to reset the card.
Quoted 7 lines
I'd also expect this regulator to be defined in the same dts / dtsi file that it's used in. Your current patch says "there's a generic 3.3V regulator on all boards of the
socfpga_arria5class even if they don't use MMC, but the "socfpga_arria5_socdk" uses it for MMC. Is that really true?yeah...My original patch had the regulator placed in it's appropriate dts board file, but I saw that as a bit of duplication. I figured that most people are just copying Altera's devkit schematic, that if a new board file shows up that has a different controllable regulator, then the board file can have the new regulator node. Meanwhile, this patch saves adding an additional regulator node for the existing board files.
Quoted 5 lines
Quoted 1 line
The 3.3V is not just used by MMC, but the for all 3.3V peripherals.
The advantage of putting it in each board file is you could name it based on the schematics. I see
SoCKit_RevCit is named "VCC3P3"
That's fine. I can edit the patch so that each regulator node goes into it's respective board dts file.
Quoted 5 lines
It also allows you to specify the 3.3 supply as the output of a real regulator driver. In
s5_soc_devkitit looks like this comes from LTC2978. That's got i2c connections. What happens when you add a driver for that?
Do you mean the c5_soc_devkit? If so, then the 3.3V is coming from the LTC3885 regulator. The LTC2978 is a regulator for the the 3.3V_HPS or 3.3V_REG_HPS which is used by others.
So I should change the regulator name from 3.3V_HPS to just 3.3V for the c5_soc_devkit.
Dinh
PATCH 2/2 ARM: dts: socfpga: Add a 3.3V fixed regulator node
Dinh,
Quoted 85 lines · Dinh Nguyen
Quoted 69 lines · Doug Anderson
Hi,
Quoted 65 lines · Dinh Nguyen
Quoted 12 lines · Doug Anderson
Dinh,
Quoted 9 lines · On Thu, Oct 16, 2014 at 2:03 PM, <[email protected]> wrote:
From: Dinh Nguyen <[email protected]>
Without the 3.3V regulator node, the SDMMC driver will give these warnings:
dw_mmcff704000.dwmmc0: No vmmc regulator founddw_mmcff704000.dwmmc0: No vqmmc regulator foundThis patch adds the regulator node, and points the SD/MMC to the regulator.
[...]
Quoted 15 lines
arch/arm/boot/dts/socfpga_arria5.dtsi line 45
Quoted 12 lines
arch/arm/boot/dts/socfpga_arria5.dtsi +3
-1- dwmmc0 at ff704000 { + mmc0: dwmmc0 at ff704000 { num-slots = <1>; broken-cd; bus-width = <4>;@@ -41,4 +41,13 @@ cpu1-start-addr = <0xffd080c4>; }; }; + + regulator_3_3v_hps: fixed_3_3v_hps_regulator at 0 {nit: no @0 since there is no "reg" (register) under this node.
Quoted 3 lines
nit: usually people don't like "_" in node names. ...I would probably do this but I'm not an expert:
regulator_3_3v_hps: hps-regulator {Ok..will fix up.
Quoted 4 lines
This regulator also looks pretty bogus to me. Is this really a regulator that software has no control over? It means you can't fully reset a card but I guess that's OK.
Yes, this is a generic 3.3V regulator that is used for the 3.3V power rail for the SOC, and any IP the needs 3.3V.
Schematics are here:
http://www.rocketboards.org/pub/Documentation/AlteraSoCDevelopmentBoard/c5_soc_devkit_c.pdf?t=1365712679http://www.rocketboards.org/pub/Documentation/ArrowSoCKitEvaluationBoard/SoCKit_RevC.pdf
And right, I don't see anyway to be able to reset the card.
Quoted 7 lines
I'd also expect this regulator to be defined in the same dts / dtsi file that it's used in. Your current patch says "there's a generic 3.3V regulator on all boards of the
socfpga_arria5class even if they don't use MMC, but the "socfpga_arria5_socdk" uses it for MMC. Is that really true?yeah...My original patch had the regulator placed in it's appropriate dts board file, but I saw that as a bit of duplication. I figured that most people are just copying Altera's devkit schematic, that if a new board file shows up that has a different controllable regulator, then the board file can have the new regulator node. Meanwhile, this patch saves adding an additional regulator node for the existing board files.
Quoted 5 lines
Quoted 1 line
The 3.3V is not just used by MMC, but the for all 3.3V peripherals.
The advantage of putting it in each board file is you could name it based on the schematics. I see
SoCKit_RevCit is named "VCC3P3"That's fine. I can edit the patch so that each regulator node goes into it's respective board dts file.
Quoted 5 lines
It also allows you to specify the 3.3 supply as the output of a real regulator driver. In
s5_soc_devkitit looks like this comes from LTC2978. That's got i2c connections. What happens when you add a driver for that?
Quoted 3 lines
Do you mean the
c5_soc_devkit? If so, then the 3.3V is coming from the LTC3885 regulator. The LTC2978 is a regulator for the the 3.3V_HPS or 3.3V_REG_HPS which is used by others.
Oops, right. c5_soc_devkit_c.
I guess I got confused since your regulator name in the dts was "HPS 3.3V". When I saw "3.3V_PM_HPS" I assumed it was the same.
On <http://www.rocketboards.org/pub/Documentation/AlteraSoCDevelopmentBoard/c5_soc_devkit_c.pdf?t=1365712679>
I don't see a 3885. Oh, 3855. I see.
Quoted 2 lines
So I should change the regulator name from 3.3V_HPS to just 3.3V for the
c5_soc_devkit.
Yes, that's my opinion. Matching the schematics can be a huge benefit and can avoid confusion! :)
-Doug