diff mbox

ARM: dts: omap5-board-common: Describe the voltage supply mapping accurately

Message ID 1462389618-28860-1-git-send-email-nm@ti.com
State New
Headers show

Commit Message

Nishanth Menon May 4, 2016, 7:20 p.m. UTC
OMAP5uEVM[1] based platforms share a similar voltage rail map. This
should be properly described in device tree, without this regulator core
will be unable to determine the source voltage of LDOs such as LDO9 and
SMPS10 which could be configured for bypass depending on the voltage
requested of them. This results in conditions such as

[    4.207853] ldo9: bypassed regulator has no supply!
[    4.212982] ldo9: failed to get the current voltage(-517)
[    4.218662] palmas-pmic 48070000.i2c:palmas@48:palmas_pmic: failed to register 48070000.i2c:palmas@48:palmas_pmic regulator

NOTE: I do not have access to omap5-igep0050 schematics, but based on
test behavior for LDO9 by Tony, I am assuming to be the same map as
OMAP5uEVM.

Reference schematics document: 750-2628-103-SCH
rev D (Access to schematics requires NDA as per
https://e2e.ti.com/support/omap/f/885/t/282560)

[1] https://svtronics.com/5432

Reported-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Nishanth Menon <nm@ti.com>

---

Based on next-20160504

This should fix regression reported for mmcsd such as that seen in:
https://storage.kernelci.org/next/next-20160504/arm-omap2plus_defconfig/lab-baylibre-seattle/boot-omap5-uevm_rootfs:mmc.txt

http://pastebin.ubuntu.com/16223856/
NFS data transfer test however failed on linux-next
next-20160504 - this could be a second order issue to be identified.

 arch/arm/boot/dts/omap5-board-common.dtsi | 42 +++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

-- 
2.8.0

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Nishanth Menon May 4, 2016, 7:50 p.m. UTC | #1
On 05/04/2016 02:20 PM, Nishanth Menon wrote:
[...]

> @@ -551,6 +590,8 @@

>  

>  				ldo9_reg: ldo9 {

>  					/* VCC_DV_SDIO: vdds_sdcard */

> +					vin-supply = <&vmmcsdio_fixed>;

> +


There is an extra white space here, and vmmcsd_fixed is the regulator
to be used, looks like vmmcsdio_fixed should ideally been vwlan_fixed
or something.. the actual rail to LDO9_IN was called vmmc_3v3_SDIO..

Sorry for the confusion. Unfortunately, I can not recreate the fail on
my board, but this sounded like the closest fix I can think of.




-- 
Regards,
Nishanth Menon
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Nishanth Menon May 5, 2016, 7 p.m. UTC | #2
On 05/05/2016 01:36 PM, Tony Lindgren wrote:
> * Nishanth Menon <nm@ti.com> [160504 12:52]:

>> On 05/04/2016 02:20 PM, Nishanth Menon wrote:

>> [...]

>>

>>> @@ -551,6 +590,8 @@

>>>  

>>>  				ldo9_reg: ldo9 {

>>>  					/* VCC_DV_SDIO: vdds_sdcard */

>>> +					vin-supply = <&vmmcsdio_fixed>;

>>> +

>>

>> There is an extra white space here, and vmmcsd_fixed is the regulator

>> to be used, looks like vmmcsdio_fixed should ideally been vwlan_fixed

>> or something.. the actual rail to LDO9_IN was called vmmc_3v3_SDIO..

>>

>> Sorry for the confusion. Unfortunately, I can not recreate the fail on

>> my board, but this sounded like the closest fix I can think of.

> 

> Looks like arch/arm/boot/dts/tegra114-dalmore.dts has entries like

> this instead for the PMIC:

> 

> ldo9-in-supply = <&palmas_smps9_reg>:

> ...

> 

> Doing simlar changes for omap5-board-common.dtsi seems to fix the

> issues for me:

> 

> LDO3: supplied by vdds_1v8_main

> LDO4: supplied by vdds_1v8_main

> ldo4: Bringing 0uV into 1800000-1800000uV

> LDO5: supplied by vsys_cobra

> LDO6: supplied by vdds_1v8_main

> LDO7: supplied by vsys_cobra

> ldo7: Bringing 0uV into 2000000-2000000uV

> LDO8: supplied by vsys_cobra

> LDO9: supplied by vmmcsd_fixed

> 

> See also the patch below too, and please check I got things right

> based on your earlier patch :)



> 

> Now I'm wondering if the x15 related vin-supply changes are actually all

> ignored? It seems that "vin" is only automatically configured for the

> fixed-regulator? Maybe regulator-palmas should be updated to use the


ok /me goes duh!!!! ofcourse! Sorry about not catching it..
hmm.. maybe we messed up am572x-idk as well.. I can quickly fix that
up as well

> "vin-supply" if configured to avoid confusion?

regulator-palmas using vin-supply is more sensible, but i am not sure
about the argument
for this originally was -> +Mark, Keerthy and Lakshman for feedback.

[...]
> +			smps123-in-supply = <&vsys_cobra>;

> +			smps45-in-supply = <&vsys_cobra>;

> +			smps6-in-supply = <&vsys_cobra>;

> +			smps7-in-supply = <&vsys_cobra>;

> +			smps8-in-supply = <&vsys_cobra>;

> +			smps9-in-supply = <&vsys_cobra>;

> +			smps10_out2-in-supply = <&vsys_cobra>;

> +			smps10_out1-in-supply = <&vsys_cobra>;

> +			ldo1-in-supply = <&vsys_cobra>;

> +			ldo2-in-supply = <&vsys_cobra>;

> +			ldo3-in-supply = <&vdds_1v8_main>;

> +			ldo4-in-supply = <&vdds_1v8_main>;

> +			ldo5-in-supply = <&vsys_cobra>;

> +			ldo6-in-supply = <&vdds_1v8_main>;

> +			ldo7-in-supply = <&vsys_cobra>;

> +			ldo8-in-supply = <&vsys_cobra>;

> +			ldo9-in-supply = <&vmmcsd_fixed>;

> +			ldousb-in-supply = <&vsys_cobra>;

ldoln is vsys_cobra as well.. I missed that.

Others look good. we should probably get this merged to fix the
regression.

> +

>  			regulators {

>  				smps123_reg: smps123 {

>  					/* VDD_OPP_MPU */

> 



-- 
Regards,
Nishanth Menon
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/boot/dts/omap5-board-common.dtsi b/arch/arm/boot/dts/omap5-board-common.dtsi
index dc759a3028b7..56eb4f1a6bf0 100644
--- a/arch/arm/boot/dts/omap5-board-common.dtsi
+++ b/arch/arm/boot/dts/omap5-board-common.dtsi
@@ -14,6 +14,29 @@ 
 		display0 = &hdmi0;
 	};
 
+	vmain: fixedregulator-vmain {
+		compatible = "regulator-fixed";
+		regulator-name = "vmain";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+
+	vsys_cobra: fixedregulator-vsys_cobra {
+		compatible = "regulator-fixed";
+		regulator-name = "vsys_cobra";
+		vin-supply = <&vmain>;
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+
+	vdds_1v8_main: fixedregulator-vdds_1v8_main {
+		compatible = "regulator-fixed";
+		regulator-name = "vdds_1v8_main";
+		vin-supply = <&smps7_reg>;
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+	};
+
 	vmmcsd_fixed: fixedregulator-mmcsd {
 		compatible = "regulator-fixed";
 		regulator-name = "vmmcsd_fixed";
@@ -413,6 +436,7 @@ 
 				smps123_reg: smps123 {
 					/* VDD_OPP_MPU */
 					regulator-name = "smps123";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = < 600000>;
 					regulator-max-microvolt = <1500000>;
 					regulator-always-on;
@@ -422,6 +446,7 @@ 
 				smps45_reg: smps45 {
 					/* VDD_OPP_MM */
 					regulator-name = "smps45";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = < 600000>;
 					regulator-max-microvolt = <1310000>;
 					regulator-always-on;
@@ -431,6 +456,7 @@ 
 				smps6_reg: smps6 {
 					/* VDD_DDR3 - over VDD_SMPS6 */
 					regulator-name = "smps6";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = <1200000>;
 					regulator-max-microvolt = <1200000>;
 					regulator-always-on;
@@ -440,6 +466,7 @@ 
 				smps7_reg: smps7 {
 					/* VDDS_1v8_OMAP over VDDS_1v8_MAIN */
 					regulator-name = "smps7";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
 					regulator-always-on;
@@ -449,6 +476,7 @@ 
 				smps8_reg: smps8 {
 					/* VDD_OPP_CORE */
 					regulator-name = "smps8";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = < 600000>;
 					regulator-max-microvolt = <1310000>;
 					regulator-always-on;
@@ -458,6 +486,7 @@ 
 				smps9_reg: smps9 {
 					/* VDDA_2v1_AUD over VDD_2v1 */
 					regulator-name = "smps9";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = <2100000>;
 					regulator-max-microvolt = <2100000>;
 					ti,smps-range = <0x80>;
@@ -466,6 +495,7 @@ 
 				smps10_out2_reg: smps10_out2 {
 					/* VBUS_5V_OTG */
 					regulator-name = "smps10_out2";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = <5000000>;
 					regulator-max-microvolt = <5000000>;
 					regulator-always-on;
@@ -475,6 +505,7 @@ 
 				smps10_out1_reg: smps10_out1 {
 					/* VBUS_5V_OTG */
 					regulator-name = "smps10_out1";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = <5000000>;
 					regulator-max-microvolt = <5000000>;
 				};
@@ -482,6 +513,7 @@ 
 				ldo1_reg: ldo1 {
 					/* VDDAPHY_CAM: vdda_csiport */
 					regulator-name = "ldo1";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
 				};
@@ -489,6 +521,7 @@ 
 				ldo2_reg: ldo2 {
 					/* VCC_2V8_DISP: Does not go anywhere */
 					regulator-name = "ldo2";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = <2800000>;
 					regulator-max-microvolt = <2800000>;
 					/* Unused */
@@ -498,6 +531,7 @@ 
 				ldo3_reg: ldo3 {
 					/* VDDAPHY_MDM: vdda_lli */
 					regulator-name = "ldo3";
+					vin-supply = <&vdds_1v8_main>;
 					regulator-min-microvolt = <1500000>;
 					regulator-max-microvolt = <1500000>;
 					regulator-boot-on;
@@ -508,6 +542,7 @@ 
 				ldo4_reg: ldo4 {
 					/* VDDAPHY_DISP: vdda_dsiport/hdmi */
 					regulator-name = "ldo4";
+					vin-supply = <&vdds_1v8_main>;
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
 				};
@@ -515,6 +550,7 @@ 
 				ldo5_reg: ldo5 {
 					/* VDDA_1V8_PHY: usb/sata/hdmi.. */
 					regulator-name = "ldo5";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <1800000>;
 					regulator-always-on;
@@ -524,6 +560,7 @@ 
 				ldo6_reg: ldo6 {
 					/* VDDS_1V2_WKUP: hsic/ldo_emu_wkup */
 					regulator-name = "ldo6";
+					vin-supply = <&vdds_1v8_main>;
 					regulator-min-microvolt = <1200000>;
 					regulator-max-microvolt = <1200000>;
 					regulator-always-on;
@@ -533,6 +570,7 @@ 
 				ldo7_reg: ldo7 {
 					/* VDD_VPP: vpp1 */
 					regulator-name = "ldo7";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = <2000000>;
 					regulator-max-microvolt = <2000000>;
 					/* Only for efuse reprograming! */
@@ -542,6 +580,7 @@ 
 				ldo8_reg: ldo8 {
 					/* VDD_3v0: Does not go anywhere */
 					regulator-name = "ldo8";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = <3000000>;
 					regulator-max-microvolt = <3000000>;
 					regulator-boot-on;
@@ -551,6 +590,8 @@ 
 
 				ldo9_reg: ldo9 {
 					/* VCC_DV_SDIO: vdds_sdcard */
+					vin-supply = <&vmmcsdio_fixed>;
+
 					regulator-name = "ldo9";
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <3000000>;
@@ -569,6 +610,7 @@ 
 				ldousb_reg: ldousb {
 					/* VDDA_3V_USB: VDDA_USBHS33 */
 					regulator-name = "ldousb";
+					vin-supply = <&vsys_cobra>;
 					regulator-min-microvolt = <3250000>;
 					regulator-max-microvolt = <3250000>;
 					regulator-always-on;