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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d262b45a-c0ed-4eff-86c6-e8bcfc005ddb@cherry.de>
Date: Tue, 17 Jun 2025 12:45:00 +0200
From: Quentin Schulz <quentin.schulz@...rry.de>
To: Krzysztof Kozlowski <krzk@...nel.org>,
 Quentin Schulz <foss+kernel@...il.net>
Cc: Lee Jones <lee@...nel.org>, Rob Herring <robh@...nel.org>,
 Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley
 <conor+dt@...nel.org>, Heiko Stuebner <heiko@...ech.de>,
 Sebastian Reichel <sebastian.reichel@...labora.com>,
 Lukasz Czechowski <lukasz.czechowski@...umatec.com>,
 Daniel Semkowicz <dse@...umatec.com>,
 Nicolas Frattaroli <nicolas.frattaroli@...labora.com>,
 devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
 linux-rockchip@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 1/4] dt-bindings: mfd: rk806: allow to customize PMIC
 reset mode

On 6/17/25 12:21 PM, Krzysztof Kozlowski wrote:
> On 17/06/2025 11:38, Quentin Schulz wrote:
>> Hi Krzysztof,
>>
>> On 6/17/25 10:08 AM, Krzysztof Kozlowski wrote:
>>> On Thu, Jun 05, 2025 at 05:41:06PM GMT, Quentin Schulz wrote:
>>>> +  rockchip,reset-mode:
>>>> +    $ref: /schemas/types.yaml#/definitions/uint32
>>>> +    enum: [0, 1, 2]
>>>> +    description:
>>>> +      Mode to use when a reset of the PMIC is triggered.
>>>> +
>>>> +      The reset can be triggered either programmatically, via one of
>>>> +      the PWRCTRL pins (provided additional configuration) or
>>>> +      asserting RESETB pin low.
>>>> +
>>>> +      The following modes are supported (see also
>>>> +      include/dt-bindings/mfd/rockchip,rk8xx.h)
>>>> +
>>>> +      - 0 (RK806_RESTART) restart PMU,
>>>> +      - 1 (RK806_RESET) reset all power off reset registers and force
>>>> +        state to switch to ACTIVE mode,
>>>> +      - 2 (RK806_RESET_NOTIFY) same as RK806_RESET and also pull
>>>> +        RESETB pin down for 5ms,
>>>> +
>>>> +      For example, some hardware may require a full restart
>>>> +      (RK806_RESTART mode) in order to function properly as regulators
>>>> +      are shortly interrupted in this mode.
>>>> +
>>>
>>> This is fine, although now points to missing restart-handler schema and
>>> maybe this should be once made common property. But that's just
>>> digression, nothing needed here.
>>>
>>>>      vcc1-supply:
>>>>        description:
>>>>          The input supply for dcdc-reg1.
>>>> diff --git a/include/dt-bindings/mfd/rockchip,rk8xx.h b/include/dt-bindings/mfd/rockchip,rk8xx.h
>>>> new file mode 100644
>>>> index 0000000000000000000000000000000000000000..f058ed1ca661185f79738a358aa2d4f04539c590
>>>> --- /dev/null
>>>> +++ b/include/dt-bindings/mfd/rockchip,rk8xx.h
>>>> @@ -0,0 +1,17 @@
>>>> +/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
>>>> +/*
>>>> + * Device Tree defines for Rockchip RK8xx PMICs
>>>> + *
>>>> + * Copyright 2025 Cherry Embedded Solutions GmbH
>>>> + *
>>>> + * Author: Quentin Schulz <quentin.schulz@...rry.de>
>>>> + */
>>>> +
>>>> +#ifndef _DT_BINDINGS_MFD_ROCKCHIP_RK8XX_H
>>>> +#define _DT_BINDINGS_MFD_ROCKCHIP_RK8XX_H
>>>> +
>>>> +#define RK806_RESTART		0
>>>> +#define RK806_RESET		1
>>>> +#define RK806_RESET_NOTIFY	2
>>>
>>> I do not see how this is a binding. Where do you use this in the driver
>>> (to be a binding because otherwise you just add unused ABI)?
>>>
>>
>> Explained in the commit log of the driver patch:
>>
>> """
>> This adds the appropriate logic in the driver to parse the new
>> rockchip,reset-mode DT property to pass this information. It just
>> happens that the values in the binding match the values to write in the
>> bitfield so no mapping is necessary.
>> """
>>
>> I can add useless mapping in the driver if it's preferred. I had the
> 
> No, I comment and raise questions when you add ABI which is neither ABI
> or should not be ABI.
> 

Not sure what would make something part of the ABI or not. I would 
assume the value in the DT property to be ABI anyway so this is just 
another name for the same value no? Trying to understand this from your 
perspective.

>> impression that simply using a hardcoded value in the DT binding and
>> then writing it to the register was not desired, so the constant is now
>> here to make this less obscure from DT perspective though I'm still
>> writing the value directly in the register. If hardcoded values are ok
>> in the binding, then I can remove that header file.
> 
> If you want something user readable, make it an enum string or keep the
> header within DTS.
> 

Just to be sure I understood correctly, moving that file to e.g. 
arch/arm64/boot/dts/rockchip/rk806.h (or rk8xx.h or whatever) with the 
file content unchanged from this v2 would be fine with you? Would I be 
able to point at this file from the DT binding (I assume not)?
Of course, Heiko may have a different opinion on the location of this 
file as I don't see header files in arch/arm64/boot/dts/rockchip yet :)

> If I review it like that, it will be brought to me next time for some
> other patch saying that commit was reviewed so I can do the same. [1]

Fair :)

> Therefore since I object against unused binding headers in general
> (there is no user here technically), I need to object here as well. :(
> 

Laws do evolve too over time, same as how society view things. Something 
done decades ago could simply not be acceptable today, and vice-versa. 
It can be good, it can be bad :) Not here to judge, if there are new 
rules to contribute, there are new rules to follow :) (or discussed so 
they evolve to better work for maintainers, the community or project :) ).

It's easier to follow rules if they are made explicit somewhere. Is 
there a public documentation on those "new" rules maybe we can read 
ahead of time to make this easier on you? For example I really like 
https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html 
and point to it often (internally, sometimes on the ML too). Maybe 
something to add to 
https://www.kernel.org/doc/html/latest/devicetree/bindings/writing-bindings.html 
or 
https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html?

Cheers,
Quentin

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ