2013-03-20 13:47:51

by Laxman Dewangan

[permalink] [raw]
Subject: [PATCH 0/4] ARM: tegra: dalmore: add regulators

This series add the regulators for Dalmore platform.
Dalmore also have the Palma PMIC as primary PMIC but
dt population will be send later once DT documentation
finalize.

Laxman Dewangan (4):
ARM: tegra: enable Tegra114 based platform PMICs
ARM: tegra: dalmore: add cpu regulator's node
ARM: tegra: dalmore: add dt node for TPS65090's regulators
ARM: tegra: dalmore: add fixed regulator's node

.../devicetree/bindings/regulator/tps65090.txt | 4 +-
arch/arm/boot/dts/tegra114-dalmore.dts | 160 ++++++++++++++++++++
arch/arm/configs/tegra_defconfig | 7 +
3 files changed, 169 insertions(+), 2 deletions(-)


2013-03-20 13:48:06

by Laxman Dewangan

[permalink] [raw]
Subject: [PATCH 3/4] ARM: tegra: dalmore: add dt node for TPS65090's regulators

NVIDIA's Tegra114 platform, Dalmore, uses the TPS65090 as
secondary PMICs which mainly act as voltage switch controlled
by I2C communication.

Add regulator node for this device.

Signed-off-by: Laxman Dewangan <[email protected]>
---
.../devicetree/bindings/regulator/tps65090.txt | 4 +-
arch/arm/boot/dts/tegra114-dalmore.dts | 90 ++++++++++++++++++++
2 files changed, 92 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/regulator/tps65090.txt b/Documentation/devicetree/bindings/regulator/tps65090.txt
index 313a60b..8926e2d 100644
--- a/Documentation/devicetree/bindings/regulator/tps65090.txt
+++ b/Documentation/devicetree/bindings/regulator/tps65090.txt
@@ -41,8 +41,8 @@ Example:
infet5-supply = <&some_reg>;
infet6-supply = <&some_reg>;
infet7-supply = <&some_reg>;
- vsys_l1-supply = <&some_reg>;
- vsys_l2-supply = <&some_reg>;
+ vsys-l1-supply = <&some_reg>;
+ vsys-l2-supply = <&some_reg>;

regulators {
dcdc1 {
diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts
index 6be9434..a47c3d2 100644
--- a/arch/arm/boot/dts/tegra114-dalmore.dts
+++ b/arch/arm/boot/dts/tegra114-dalmore.dts
@@ -731,6 +731,82 @@
regulator-boot-on;
regulator-always-on;
};
+
+ tps65090@48 {
+ compatible = "ti,tps65090";
+ reg = <0x48>;
+ interrupt-parent = <&gpio>;
+ interrupts = <72 0x04>; /* gpio PJ0 */
+
+ vsys1-supply = <&vdd_ac_bat_reg>;
+ vsys2-supply = <&vdd_ac_bat_reg>;
+ vsys3-supply = <&vdd_ac_bat_reg>;
+ infet1-supply = <&vdd_ac_bat_reg>;
+ infet2-supply = <&vdd_ac_bat_reg>;
+ infet3-supply = <&tps65090_dcdc2_reg>;
+ infet4-supply = <&tps65090_dcdc2_reg>;
+ infet5-supply = <&tps65090_dcdc2_reg>;
+ infet6-supply = <&tps65090_dcdc2_reg>;
+ infet7-supply = <&tps65090_dcdc2_reg>;
+ vsys-l1-supply = <&vdd_ac_bat_reg>;
+ vsys-l2-supply = <&vdd_ac_bat_reg>;
+
+ regulators {
+ dcdc1 {
+ regulator-name = "vdd-sys-5v0";
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ tps65090_dcdc2_reg: dcdc2 {
+ regulator-name = "vdd-sys-3v3";
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ dcdc3 {
+ regulator-name = "vdd-ao";
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ fet1 {
+ regulator-name = "vdd-lcd-bl";
+ };
+
+ fet3 {
+ regulator-name = "vdd-modem-3v3";
+ };
+
+ fet4 {
+ regulator-name = "avdd-lcd";
+ };
+
+ fet5 {
+ regulator-name = "vdd-lvds";
+ };
+
+ fet6 {
+ regulator-name = "vdd-sd-slot";
+ };
+
+ fet7 {
+ regulator-name = "vdd-com-3v3";
+ };
+
+ ldo1 {
+ regulator-name = "vdd-sby-5v0";
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ ldo2 {
+ regulator-name = "vdd-sby-3v3";
+ regulator-always-on;
+ regulator-boot-on;
+ };
+ };
+ };
};

pmc {
@@ -747,4 +823,18 @@
bus-width = <8>;
status = "okay";
};
+ regulators {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ vdd_ac_bat_reg: regulator@0 {
+ compatible = "regulator-fixed";
+ reg = <0>;
+ regulator-name = "vdd_ac_bat";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ };
+ };
};
--
1.7.1.1

2013-03-20 13:48:03

by Laxman Dewangan

[permalink] [raw]
Subject: [PATCH 4/4] ARM: tegra: dalmore: add fixed regulator's node

NVIDIA's Tegra114 platform Dalmore has some voltage switches
which are controlled by the Tegra GPIOs.

Add dt node for such fixed regulators.

Signed-off-by: Laxman Dewangan <[email protected]>
---
arch/arm/boot/dts/tegra114-dalmore.dts | 55 ++++++++++++++++++++++++++++++++
1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts
index a47c3d2..86116f1 100644
--- a/arch/arm/boot/dts/tegra114-dalmore.dts
+++ b/arch/arm/boot/dts/tegra114-dalmore.dts
@@ -836,5 +836,60 @@
regulator-max-microvolt = <5000000>;
regulator-always-on;
};
+
+ dvdd_ts_reg: regulator@1 {
+ compatible = "regulator-fixed";
+ reg = <1>;
+ regulator-name = "dvdd_ts";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ enable-active-high;
+ gpio = <&gpio 61 0>; /* GPIO PH5 */
+ };
+
+ lcd_bl_en_reg: regulator@2 {
+ compatible = "regulator-fixed";
+ reg = <2>;
+ regulator-name = "lcd_bl_en";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ enable-active-high;
+ gpio = <&gpio 58 0>; /* GPIO PH2 */
+ };
+
+ usb1_vbus_reg: regulator@3 {
+ compatible = "regulator-fixed";
+ reg = <3>;
+ regulator-name = "usb1_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ enable-active-high;
+ gpio = <&gpio 108 0>; /* GPIO PN4 */
+ gpio-open-drain;
+ vin-supply = <&tps65090_dcdc1_reg>;
+ };
+
+ usb3_vbus_reg: regulator@4 {
+ compatible = "regulator-fixed";
+ reg = <4>;
+ regulator-name = "usb2_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ enable-active-high;
+ gpio = <&gpio 86 0>; /* GPIO PK6 */
+ gpio-open-drain;
+ vin-supply = <&tps65090_dcdc1_reg>;
+ };
+
+ vdd_hdmi_reg: regulator@5 {
+ compatible = "regulator-fixed";
+ reg = <5>;
+ regulator-name = "vdd_hdmi_5v0";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ enable-active-high;
+ gpio = <&gpio 81 0>; /* GPIO PK1 */
+ vin-supply = <&tps65090_dcdc1_reg>;
+ };
};
};
--
1.7.1.1

2013-03-20 13:48:30

by Laxman Dewangan

[permalink] [raw]
Subject: [PATCH 1/4] ARM: tegra: enable Tegra114 based platform PMICs

NVIDIA's Tegra114 have two reference platform, Dalmore and Pluto.
Dalmore uses the following PMICs:
- TPS65913 as primary PMIC.
- TPS65090 as secondary PMIC used for switch regulators and battery charging.
- TPS51632 for cpu regulator.

Pluto uses the TPS65913 as the PMIC.

Enable config variable of these PMICs for Dalomore and Pluto.

Signed-off-by: Laxman Dewangan <[email protected]>
---
arch/arm/configs/tegra_defconfig | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig
index aba4881..34b9342 100644
--- a/arch/arm/configs/tegra_defconfig
+++ b/arch/arm/configs/tegra_defconfig
@@ -126,6 +126,7 @@ CONFIG_SPI=y
CONFIG_SPI_TEGRA20_SFLASH=y
CONFIG_SPI_TEGRA20_SLINK=y
CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_PALMAS=y
CONFIG_GPIO_TPS6586X=y
CONFIG_GPIO_TPS65910=y
CONFIG_POWER_SUPPLY=y
@@ -136,12 +137,17 @@ CONFIG_SENSORS_LM90=y
CONFIG_MFD_TPS6586X=y
CONFIG_MFD_TPS65910=y
CONFIG_MFD_MAX8907=y
+CONFIG_MFD_TPS65090=y
+CONFIG_MFD_PALMAS=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
CONFIG_REGULATOR_GPIO=y
CONFIG_REGULATOR_MAX8907=y
+CONFIG_REGULATOR_PALMAS=y
+CONFIG_REGULATOR_TPS51632=y
CONFIG_REGULATOR_TPS62360=y
+CONFIG_REGULATOR_TPS65090=y
CONFIG_REGULATOR_TPS6586X=y
CONFIG_REGULATOR_TPS65910=y
CONFIG_MEDIA_SUPPORT=y
@@ -191,6 +197,7 @@ CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_DRV_MAX8907=y
+CONFIG_RTC_DRV_PALMAS=y
CONFIG_RTC_DRV_TPS6586X=y
CONFIG_RTC_DRV_TPS65910=y
CONFIG_RTC_DRV_EM3027=y
--
1.7.1.1

2013-03-20 13:49:04

by Laxman Dewangan

[permalink] [raw]
Subject: [PATCH 2/4] ARM: tegra: dalmore: add cpu regulator's node

Dalmore uses the TPS51632 as cpu regulator. This device
is connected on I2C5.

Add dt node for this device.

Signed-off-by: Laxman Dewangan <[email protected]>
---
arch/arm/boot/dts/tegra114-dalmore.dts | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts
index a61974e..6be9434 100644
--- a/arch/arm/boot/dts/tegra114-dalmore.dts
+++ b/arch/arm/boot/dts/tegra114-dalmore.dts
@@ -718,6 +718,21 @@
clock-frequency = <408000000>;
};

+ i2c@7000d000 {
+ status = "okay";
+ clock-frequency = <400000>;
+
+ tps51632 {
+ compatible = "ti,tps51632";
+ reg = <0x43>;
+ regulator-name = "vdd-cpu";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1520000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+ };
+
pmc {
nvidia,invert-interrupt;
};
--
1.7.1.1

2013-03-20 16:57:59

by Rhyland Klein

[permalink] [raw]
Subject: Re: [PATCH 3/4] ARM: tegra: dalmore: add dt node for TPS65090's regulators

On 3/20/2013 9:44 AM, Laxman Dewangan wrote:
> NVIDIA's Tegra114 platform, Dalmore, uses the TPS65090 as
> secondary PMICs which mainly act as voltage switch controlled
> by I2C communication.
>
> Add regulator node for this device.
>
> Signed-off-by: Laxman Dewangan <[email protected]>
> ---
> .../devicetree/bindings/regulator/tps65090.txt | 4 +-
> arch/arm/boot/dts/tegra114-dalmore.dts | 90 ++++++++++++++++++++
> 2 files changed, 92 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/regulator/tps65090.txt b/Documentation/devicetree/bindings/regulator/tps65090.txt
> index 313a60b..8926e2d 100644
> --- a/Documentation/devicetree/bindings/regulator/tps65090.txt
> +++ b/Documentation/devicetree/bindings/regulator/tps65090.txt
> @@ -41,8 +41,8 @@ Example:
> infet5-supply = <&some_reg>;
> infet6-supply = <&some_reg>;
> infet7-supply = <&some_reg>;
> - vsys_l1-supply = <&some_reg>;
> - vsys_l2-supply = <&some_reg>;
> + vsys-l1-supply = <&some_reg>;
> + vsys-l2-supply = <&some_reg>;
>
> regulators {
> dcdc1 {
> diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts
> index 6be9434..a47c3d2 100644
> --- a/arch/arm/boot/dts/tegra114-dalmore.dts
> +++ b/arch/arm/boot/dts/tegra114-dalmore.dts
> @@ -731,6 +731,82 @@
> regulator-boot-on;
> regulator-always-on;
> };
> +
> + tps65090@48 {
> + compatible = "ti,tps65090";
> + reg = <0x48>;
> + interrupt-parent = <&gpio>;
> + interrupts = <72 0x04>; /* gpio PJ0 */
> +
> + vsys1-supply = <&vdd_ac_bat_reg>;
> + vsys2-supply = <&vdd_ac_bat_reg>;
> + vsys3-supply = <&vdd_ac_bat_reg>;
> + infet1-supply = <&vdd_ac_bat_reg>;
> + infet2-supply = <&vdd_ac_bat_reg>;
> + infet3-supply = <&tps65090_dcdc2_reg>;
> + infet4-supply = <&tps65090_dcdc2_reg>;
> + infet5-supply = <&tps65090_dcdc2_reg>;
> + infet6-supply = <&tps65090_dcdc2_reg>;
> + infet7-supply = <&tps65090_dcdc2_reg>;
> + vsys-l1-supply = <&vdd_ac_bat_reg>;
> + vsys-l2-supply = <&vdd_ac_bat_reg>;
> +
> + regulators {
> + dcdc1 {
> + regulator-name = "vdd-sys-5v0";
> + regulator-always-on;
> + regulator-boot-on;
> + };

You should also add the tps65090_dcdc1_reg label to dcdc1. I believe you
make use of it in patch 4 and this currently causes build breaks.

> +
> + tps65090_dcdc2_reg: dcdc2 {
> + regulator-name = "vdd-sys-3v3";
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
>

-rhyland

--
nvpublic

2013-03-20 18:08:51

by Laxman Dewangan

[permalink] [raw]
Subject: Re: [PATCH 3/4] ARM: tegra: dalmore: add dt node for TPS65090's regulators

On Wednesday 20 March 2013 10:27 PM, Rhyland Klein wrote:
> On 3/20/2013 9:44 AM, Laxman Dewangan wrote:
> + regulators {
> + dcdc1 {
> + regulator-name = "vdd-sys-5v0";
> + regulator-always-on;
> + regulator-boot-on;
> + };
> You should also add the tps65090_dcdc1_reg label to dcdc1. I believe you
> make use of it in patch 4 and this currently causes build breaks.
>

Actually patch 4 uses this label and I should add on patch 4, not on
patch 3.

I removed from patch3 and when cherrypick the patch 4 from different
branch to make the patches, I missed the change and hence patch 4 is not
getting compiled.

I will fix the issue on next revision.

Sorry for messing up and thins for pointing this.



2013-03-20 20:48:51

by Stephen Warren

[permalink] [raw]
Subject: Re: [PATCH 3/4] ARM: tegra: dalmore: add dt node for TPS65090's regulators

On 03/20/2013 07:44 AM, Laxman Dewangan wrote:
> NVIDIA's Tegra114 platform, Dalmore, uses the TPS65090 as
> secondary PMICs which mainly act as voltage switch controlled
> by I2C communication.

> diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts

> @@ -747,4 +823,18 @@
> bus-width = <8>;
> status = "okay";
> };
> + regulators {
> + compatible = "simple-bus";
> + #address-cells = <1>;

You need a blank line between the nodes there.

There a a number of typos and capitalization issues in the various
commit descriptions.

2013-03-20 20:50:25

by Stephen Warren

[permalink] [raw]
Subject: Re: [PATCH 1/4] ARM: tegra: enable Tegra114 based platform PMICs

On 03/20/2013 07:44 AM, Laxman Dewangan wrote:
> NVIDIA's Tegra114 have two reference platform, Dalmore and Pluto.
> Dalmore uses the following PMICs:
> - TPS65913 as primary PMIC.
> - TPS65090 as secondary PMIC used for switch regulators and battery charging.
> - TPS51632 for cpu regulator.
>
> Pluto uses the TPS65913 as the PMIC.
>
> Enable config variable of these PMICs for Dalomore and Pluto.

Just FYI, I would apply the DT changes to Tegra's for-3.10/dt branch,
and the defconfig change to Tegra's for-3.10/defconfig branch. The /dt
branch will get merged first, and the /defconfig after it. Hence, you
would typically want to send patches in that order. It doesn't really
make any practical difference in this case though.