Re: [PATCH v2 1/2] dt-binding: pinctrl: Add NPCM8XX pinctrl and GPIO documentation

From: Krzysztof Kozlowski
Date: Mon Sep 19 2022 - 12:06:48 EST


On 19/09/2022 16:31, Tomer Maimon wrote:
>>>>> +examples:
>>>>> + - |
>>>>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>>>>> + #include <dt-bindings/gpio/gpio.h>
>>>>> +
>>>>> + soc {
>>>>> + #address-cells = <2>;
>>>>> + #size-cells = <2>;
>>>>> +
>>>>> + pinctrl: pinctrl@f0800000 {
>>>>> + compatible = "nuvoton,npcm845-pinctrl";
>>>>> + ranges = <0x0 0x0 0xf0010000 0x8000>;
>>>>> + #address-cells = <1>;
>>>>> + #size-cells = <1>;
>>>>> + nuvoton,sysgcr = <&gcr>;
>>>>> +
>>>>> + gpio0: gpio@f0010000 {
>>>>
>>>> gpio@0
>>>>
>>>> Is this really a child block of the pinctrl? Doesn't really look like it
>>>> based on addressess. Where are the pinctrl registers? In the sysgcr? If
>>>> so, then pinctrl should be a child of it. But that doesn't really work
>>>> too well with gpio child nodes...
>>> the pin controller mux is handled by sysgcr this is why the sysgcr in
>>> the mother node,
>>> and the pin configuration are handled by the GPIO registers. each
>>> GPIO bank (child) contains 32 GPIO.
>>> this is why the GPIO is the child node.
>>
>> Then maybe pinctrl should be the sysgcr and expose regmap for other devices?
> The pin controller using the sysgcr to handle the pinmux, this is why
> the sysgcr is in the mother node, is it problematic?

You said pin-controller mux registers are in sysgcr, so it should not be
used via syscon.

Please provide address map description to convince us that this is
correct HW representation.

Best regards,
Krzysztof