Thread (13 messages) 13 messages, 5 authors, 2023-01-21

Re: [PATCH v2 3/3] ARM: dts: imx7d-remarkable2: Enable the rohm,bd71815

From: Alistair Francis <hidden>
Date: 2023-01-09 12:12:58
Also in: linux-devicetree, lkml

On Tue, Dec 20, 2022 at 11:17 PM Marco Felsch [off-list ref] wrote:
Hi Alistair,

thanks for your patch, please see below.

On 22-12-20, Alistair Francis wrote:
quoted
Add support for the rohm,bd71815 power controller controller for the
reMarkable 2.

Signed-off-by: Alistair Francis <redacted>
---
 arch/arm/boot/dts/imx7d-remarkable2.dts | 159 ++++++++++++++++++++++++
 1 file changed, 159 insertions(+)
diff --git a/arch/arm/boot/dts/imx7d-remarkable2.dts b/arch/arm/boot/dts/imx7d-remarkable2.dts
index a138b292ec6a..4387d30d6180 100644
--- a/arch/arm/boot/dts/imx7d-remarkable2.dts
+++ b/arch/arm/boot/dts/imx7d-remarkable2.dts
@@ -92,6 +92,10 @@ wifi_pwrseq: wifi_pwrseq {
      };
 };

+&cpu0 {
+     cpu-supply = <&buck1_reg>;
+};
+
 &clks {
      assigned-clocks = <&clks IMX7D_CLKO2_ROOT_SRC>,
                        <&clks IMX7D_CLKO2_ROOT_DIV>;
@@ -119,6 +123,148 @@ wacom_digitizer: digitizer@9 {
      };
 };

+&i2c2 {
+     clock-frequency = <100000>;
We can set this now to 400kHz since the driver can handle quirks now
internal.
After a discussion on the first patch I'm going to leave this as is.
Let me know if you do want me to change it.
quoted
+     pinctrl-names = "default", "sleep";
+     pinctrl-0 = <&pinctrl_i2c2>;
+     pinctrl-1 = <&pinctrl_i2c2>;
Do we need a "sleep" config here since this will be the same
configuration as the "default" one.
Nope, dropped.
quoted
+     status = "okay";
+
+     bd71815: pmic@4b {
+             compatible = "rohm,bd71815";
+             reg = <0x4b>;
+             pinctrl-names = "default";
+             pinctrl-0 = <&pinctrl_bd71815>;
+             interrupt-parent = <&gpio6>; /* PMIC_INT_B GPIO6_IO16 */
+             interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
+             gpio-controller;
+             clocks = <&clks IMX7D_CLKO2_ROOT_SRC>;
+             clock-output-names = "bd71815-32k-out";
+             #clock-cells = <0>;
+             #gpio-cells = <1>;
+
+             regulators {
+                     #address-cells = <1>;
+                     #size-cells = <0>;
+
+                     buck1_reg: regulator@0 {
+                             reg = <0>;
+                             regulator-compatible = "buck1";
+                             regulator-min-microvolt = <800000>;
+                             regulator-max-microvolt = <2000000>;
+                             regulator-boot-on;
+                             regulator-always-on;
+                             regulator-ramp-delay = <1250>;
+                     };
+
+                     buck2_reg: regulator@1 {
+                             reg = <1>;
+                             regulator-compatible = "buck2";
+                             regulator-min-microvolt = <800000>;
+                             regulator-max-microvolt = <2000000>;
+                             regulator-boot-on;
+                             regulator-always-on;
+                             regulator-ramp-delay = <1250>;
+                     };
+
+                     buck3_reg: regulator@2 {
+                             reg = <2>;
+                             regulator-compatible = "buck3";
+                             regulator-min-microvolt = <1200000>;
+                             regulator-max-microvolt = <2700000>;
+                             regulator-boot-on;
+                             regulator-always-on;
+                     };
+
+                     buck4_reg: regulator@3 {
+                             reg = <3>;
+                             regulator-compatible = "buck4";
+                             regulator-min-microvolt = <1100000>;
+                             regulator-max-microvolt = <1850000>;
+                             regulator-boot-on;
+                             regulator-always-on;
+                     };
+
+                     buck5_reg: regulator@4 {
+                             reg = <4>;
+                             regulator-compatible = "buck5";
+                             regulator-min-microvolt = <1800000>;
+                             regulator-max-microvolt = <3300000>;
+                             regulator-boot-on;
+                             regulator-always-on;
+                     };
+
+                     ldo1_reg: regulator@5 {
+                             reg = <5>;
+                             regulator-compatible = "ldo1";
+                             regulator-min-microvolt = <800000>;
+                             regulator-max-microvolt = <3300000>;
+                             regulator-boot-on;
+                             regulator-always-on;
+                     };
+
+                     ldo2_reg: regulator@6 {
+                             reg = <6>;
+                             regulator-compatible = "ldo2";
+                             regulator-min-microvolt = <800000>;
+                             regulator-max-microvolt = <3300000>;
+                             regulator-boot-on;
+                             regulator-always-on;
+                     };
+
+                     ldo3_reg: regulator@7 {
+                             reg = <7>;
+                             regulator-compatible = "ldo3";
+                             regulator-min-microvolt = <800000>;
+                             regulator-max-microvolt = <3300000>;
+                             regulator-boot-on;
+                             regulator-always-on;
+                     };
+
+                     ldo4_reg: regulator@8 {
+                             reg = <8>;
+                             regulator-compatible = "ldo4";
+                             regulator-min-microvolt = <800000>;
+                             regulator-max-microvolt = <3300000>;
+                             regulator-boot-on;
+                             regulator-always-on;
+                     };
+
+                     ldo5_reg: regulator@9 {
+                             reg = <9>;
+                             regulator-compatible = "ldo5";
+                             regulator-min-microvolt = <800000>;
+                             regulator-max-microvolt = <3300000>;
+                             regulator-boot-on;
+                             regulator-always-on;
+                     };
+
+                     dvref_reg: regulator@a {
+                             reg = <0xa>;
+                             regulator-compatible = "dvref";
+                             regulator-boot-on;
+                             regulator-always-on;
+                     };
+
+                     lpsr_reg: regulator@b {
+                             reg = <0xb>;
+                             regulator-compatible = "lpsr";
+                             regulator-boot-on;
+                             regulator-always-on;
+                     };
+
+                     wled_reg: regulator@c {
+                             reg = <0xc>;
+                             regulator-compatible = "wled";
+                             regulator-min-microamp = <10>;
+                             regulator-max-microamp = <25000>;
+                             regulator-boot-on;
+                             regulator-always-on;
+                     };
Note: You have marked all regulators as always on, this is rather
suboptimal due to power consumption.
Good point. The power consumption is already pretty bad, as mainline
doesn't support the i.MX deep sleep. As I know this works I'd like to
keep it as is. I'll test to see if removing them doesn't break
anything and then send a follow up patch.

Alistair
Regards,
  Marco
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help