Re: [PATCH v3 1/2] dt-bindings: power: reset: qcom-pon: update "reg" property details

From: Anjelique Melendez
Date: Mon Jul 18 2022 - 15:57:59 EST




On 7/14/2022 4:48 AM, Krzysztof Kozlowski wrote:
> On 13/07/2022 21:33, Anjelique Melendez wrote:
>> From: David Collins <quic_collinsd@xxxxxxxxxxx>
>>
>> Update the description of "reg" property to add the PON_PBS base
>> address along with PON_HLOS base address. Also add "reg-names"
>> property description.
>>
>> Signed-off-by: David Collins <quic_collinsd@xxxxxxxxxxx>
>> Signed-off-by: Anjelique Melendez <quic_amelende@xxxxxxxxxxx>
>> ---
>> Documentation/devicetree/bindings/power/reset/qcom,pon.yaml | 73 ++++++++++++++++++++++++++++--
>> 1 file changed, 69 insertions(+), 4 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml b/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml
>> index 353f155d..562fe308 100644
>> --- a/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml
>> +++ b/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml
>> @@ -15,18 +15,26 @@ description: |
>>
>> This DT node has pwrkey and resin as sub nodes.
>>
>> -allOf:
>> - - $ref: reboot-mode.yaml#
>> -
>> properties:
>> compatible:
>> enum:
>> - qcom,pm8916-pon
>> - qcom,pms405-pon
>> - qcom,pm8998-pon
>> + - qcom,pmk8350-pon
>>
>> reg:
>> - maxItems: 1
>> + description: |
>> + Specifies the SPMI base address for the PON (power-on) peripheral. For
>> + PMICs that have the PON peripheral (GEN3) split into PON_HLOS and PON_PBS
>> + (e.g. PMK8350), this can hold addresses of both PON_HLOS and PON_PBS
>> + peripherals. In that case, the PON_PBS address needs to be specified to
>> + facilitate software debouncing on some PMIC.
>
> You miss here min and maxItems
ACK
>
>> +
>> + reg-names:
>> + description: |
>> + For PON GEN1 and GEN2, it should be "pon". For PON GEN3 it should include
>> + "hlos" and optionally "pbs".
>
> Skip description. You miss here min and maxItems.
>
> See
> https://elixir.bootlin.com/linux/v5.19-rc6/source/Documentation/devicetree/bindings/clock/samsung,exynos7-clock.yaml#L57
> for examples.
ACK
>
>
>>
>> pwrkey:
>> type: object
>> @@ -42,6 +50,63 @@ required:
>>
>> unevaluatedProperties: false
>>
>> +allOf:
>> + - $ref: reboot-mode.yaml#
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + const: qcom,pm8916-pon
>> + then:
>> + properties:
>> + reg:
>> + maxItems: 1
>> + reg-names:
>> + items:
>> + - const: pon
>> +
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + const: qcom,pms405-pon
>> + then:
>> + properties:
>> + reg:
>> + maxItems: 1
>> + reg-names:
>> + items:
>> + - const: pon
>> +
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + const: qcom,pm8998-pon
>> + then:
>> + properties:
>> + reg:
>> + maxItems: 1
>> + reg-names:
>> + items:
>> + - const: pon
>
> No clue why you made three if statements. This is one if for all three
> variants.
>
Sorry about that was not sure how to combine the if statements originally.
Found that you could do:

- if:
properties:
compatible:
contains:
enum:
- qcom,pm8916-pon
- qcom,pms405-pon
- qcom,pm8998-pon
then:
...

I was wondering if for the "qcom,pmk8350-pon" compatible would you rather
have the if statement the way it is or have it follow the same pattern as
above i.e.

contains:
const: qcom,pmk8350-pon

vs

contains:
enum:
- qcom,pmk8350-pon
>> +
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + const: qcom,pmk8350-pon
>> + then:
>> + properties:
>> + reg:
>> + minItems: 1
>> + maxItems: 2
>> + reg-names:
>> + minItems: 1
>> + items:
>> + - const: hlos
>> + - const: pbs
>> +
>> examples:
>> - |
>> #include <dt-bindings/interrupt-controller/irq.h>
>
>
> Best regards,
> Krzysztof

Thanks,
Anjelique