lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANhJrGOtZZEG0mdVeQTQ=HDB3bUT2kkGbMxbqcvZc_gb_aNETA@mail.gmail.com>
Date:   Mon, 9 Jan 2023 21:13:32 +0200
From:   Matti Vaittinen <mazziesaccount@...il.com>
To:     Alistair Francis <alistair23@...il.com>
Cc:     Marco Felsch <m.felsch@...gutronix.de>,
        Alistair Francis <alistair@...stair23.me>,
        linux-kernel@...r.kernel.org, shawnguo@...nel.org,
        linux-arm-kernel@...ts.infradead.org, linux-imx@....com,
        s.hauer@...gutronix.de, robh+dt@...nel.org,
        devicetree@...r.kernel.org, krzysztof.kozlowski+dt@...aro.org,
        arnd@...db.de, linux@...linux.org.uk, jernej.skrabec@...il.com,
        kernel@...gutronix.de, festevam@...il.com
Subject: Re: [PATCH v2 3/3] ARM: dts: imx7d-remarkable2: Enable the rohm,bd71815

ma 9. tammik. 2023 klo 14.32 Alistair Francis (alistair23@...il.com) kirjoitti:
>
> On Tue, Dec 20, 2022 at 11:17 PM Marco Felsch <m.felsch@...gutronix.de> wrote:
> >
> > Hi Alistair,
> >
> > thanks for your patch, please see below.
> >
> > On 22-12-20, Alistair Francis wrote:
> > > Add support for the rohm,bd71815 power controller controller for the
> > > reMarkable 2.
> > >
> > > Signed-off-by: Alistair Francis <alistair@...stair23.me>
> > > ---
> > >  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.
>
> >
> > > +     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.
>
> >
> > > +     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.

I'd like to suggest also seeing what removing the "regulator-boot-on"
causes. As far as I understand, the "regulator-boot-on" mainly (only?)
intended to be used in situations where the regulator state can not be
reliably read from the hardware at the boot-up. AFAIR, unlike the
BD71837 and BD71847,
the BD71815 does not have this limitation. (This is just my
understanding - which is based on some age-old discussions with Mark
Brown - hence this comment is just a suggestion to try this while
testing, not a comment intended to be demanding for a change)

Yours
    Matti

-- 

Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland

~~ When things go utterly wrong vim users can always type :help! ~~

Discuss - Estimate - Plan - Report and finally accomplish this:
void do_work(int time) __attribute__ ((const));

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ