2024-06-11 13:37:00

by Mithil

[permalink] [raw]
Subject: [PATCH v1] ARM: dts: twl6032: Add DTS file for TWL6032 PMIC

From: Mithil Bavishi <[email protected]>

Add a dedicated DTS file for the TWL6032 PMIC (Phoenix Lite). Already
has driver support with TWL6030 (Phoenix) since both of them are so
similar, some nodes can be reused from TWL6030 as well.

This can be included in the board files like twl6030.
Example:
...
&i2c1 {
twl: twl@48 {
reg = <0x48>;
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
interrupt-parent = <&gic>;
};
};

/include/ "twl6032.dtsi"
...

Used in devices like samsung-espresso, amazon-jem, epson-embt2ws etc.

Regulator values are found from downstream kernel for espresso.

Signed-off-by: Mithil Bavishi <[email protected]>
---
arch/arm/boot/dts/ti/omap/twl6032.dtsi | 94 ++++++++++++++++++++++++++
1 file changed, 94 insertions(+)
create mode 100644 arch/arm/boot/dts/ti/omap/twl6032.dtsi

diff --git a/arch/arm/boot/dts/ti/omap/twl6032.dtsi b/arch/arm/boot/dts/ti/omap/twl6032.dtsi
new file mode 100644
index 000000000..a48723a24
--- /dev/null
+++ b/arch/arm/boot/dts/ti/omap/twl6032.dtsi
@@ -0,0 +1,95 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Integrated Power Management Chip
+ * https://www.ti.com/lit/ds/symlink/twl6032.pdf
+ */
+
+&twl {
+ compatible = "ti,twl6032";
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ rtc {
+ compatible = "ti,twl4030-rtc";
+ interrupts = <11>;
+ };
+
+ vana: regulator-vana {
+ compatible = "ti,twl6030-vana";
+ regulator-min-microvolt = <2100000>;
+ regulator-max-microvolt = <2100000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ ldo1: regulator-ldo1 {
+ compatible = "ti,twl6032-ldo1";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ ldo3: regulator-ldo3 {
+ compatible = "ti,twl6032-ldo3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ ldo4: regulator-ldo4 {
+ compatible = "ti,twl6032-ldo4";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-always-on;
+ };
+
+ ldo5: regulator-ldo5 {
+ compatible = "ti,twl6032-ldo5";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ ldo6: regulator-ldo6 {
+ compatible = "ti,twl6032-ldo6";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ smps4: regulator-smps4 {
+ compatible = "ti,twl6032-smps4";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ ldousb: regulator-ldousb {
+ compatible = "ti,twl6032-ldousb";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ gpadc: gpadc {
+ compatible = "ti,twl6032-gpadc";
+ interrupts = <3>;
+ #io-channel-cells = <1>;
+ };
+
+ twl_usb_comparator: usb-comparator {
+ compatible = "ti,twl6030-usb";
+ interrupts = <4>, <10>;
+ };
+};
--
2.34.1



2024-06-11 14:50:44

by Andreas Kemnade

[permalink] [raw]
Subject: Re: [PATCH v1] ARM: dts: twl6032: Add DTS file for TWL6032 PMIC

Hi,

On Tue, 11 Jun 2024 18:51:34 +0530
Mighty <[email protected]> wrote:

> From: Mithil Bavishi <[email protected]>
>
> Add a dedicated DTS file for the TWL6032 PMIC (Phoenix Lite). Already
> has driver support with TWL6030 (Phoenix) since both of them are so
> similar, some nodes can be reused from TWL6030 as well.
>
> This can be included in the board files like twl6030.
> Example:
> ...
> &i2c1 {
> twl: twl@48 {
> reg = <0x48>;
> interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
> interrupt-controller;
> interrupt-parent = <&gic>;
> };
> };
>
> /include/ "twl6032.dtsi"
> ...
>
> Used in devices like samsung-espresso, amazon-jem, epson-embt2ws etc.
>
> Regulator values are found from downstream kernel for espresso.
>
hmm, that might be board specific stuff, maybe keep them as they are in the
twl6030.dtsi and override them in board specific dts files if needed.
And is there any reason why you left out the pwm stuff?
I think the twl6030.dtsi and twl6032.dtsi should be as similar as possible.

Regards,
Andreas

2024-06-11 18:43:42

by Mithil

[permalink] [raw]
Subject: Re: [PATCH v1] ARM: dts: twl6032: Add DTS file for TWL6032 PMIC

On Tue, Jun 11, 2024 at 8:19 PM Andreas Kemnade <[email protected]> wrote:
> hmm, that might be board specific stuff, maybe keep them as they are in the
> twl6030.dtsi and override them in board specific dts files if needed.
We could do that, since we have no datasheet publicly available for
6032, I thought it would be better to stick to values which are known
to be working hence using downstream values. Anything mentioned in the
BT200 kernel, we could update it with those values.

> And is there any reason why you left out the pwm stuff?
Didn't need it for espresso, but will add in v2.

> I think the twl6030.dtsi and twl6032.dtsi should be as similar as possible.
Agreed. But same min/max values as well?

--
Best Regards,
Mithil

2024-06-13 08:47:57

by Mithil

[permalink] [raw]
Subject: Re: [PATCH v1] ARM: dts: twl6032: Add DTS file for TWL6032 PMIC

On Tue, Jun 11, 2024 at 8:19 PM Andreas Kemnade <[email protected]> wrote:
> I think the twl6030.dtsi and twl6032.dtsi should be as similar as possible.

Hey the values seem to be different for twl6030.dtsi,
omap4-epson-embt2ws.dts, and omap4-samsung-espresso-common.dtsi.
Should we just define the nodes in twl6032.dtsi and let them put
min/max volts and other properties in the board files?

--
Best Regards,
Mithil

2024-06-13 09:24:10

by Mithil

[permalink] [raw]
Subject: Re: [PATCH v1] ARM: dts: twl6032: Add DTS file for TWL6032 PMIC

https://github.com/MightyM17/android_kernel_ti_omap4/blob/3.4/common/arch/arm/mach-omap2/board-espresso-pmic.c#L446-L455
Should we map it accordingly? Like vaux1: regulator-vaux1 and
compatible has ldo1, or should we call the node ldo1 as well?
--
Best Regards,
Mithil