diff mbox series

[1/2] dt-bindings: pinctrl: samsung: google,gs101-pinctrl needs a clock

Message ID 20240425-samsung-pinctrl-busclock-v1-1-898a200abe68@linaro.org
State Superseded
Headers show
Series clock support for Samsung Exynos pin controller (Google Tensor gs101) | expand

Commit Message

André Draszik April 25, 2024, 4:03 p.m. UTC
The pin controller on Google Tensor gs101 requires a bus clock for
register access to work. Add it.

Signed-off-by: André Draszik <andre.draszik@linaro.org>

---
As we only have the one clock here, please let me know if the
clock-names should be removed. Having it does make
/sys/kernel/debug/clk/clk_summary look nicer / more meaningful though
:-)
---
 .../devicetree/bindings/pinctrl/samsung,pinctrl.yaml    | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Comments

Krzysztof Kozlowski April 25, 2024, 6:15 p.m. UTC | #1
On 25/04/2024 18:03, André Draszik wrote:
> The pin controller on Google Tensor gs101 requires a bus clock for
> register access to work. Add it.
> 
> Signed-off-by: André Draszik <andre.draszik@linaro.org>
> 
> ---
> As we only have the one clock here, please let me know if the
> clock-names should be removed. Having it does make
> /sys/kernel/debug/clk/clk_summary look nicer / more meaningful though
> :-)
> ---
>  .../devicetree/bindings/pinctrl/samsung,pinctrl.yaml    | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl.yaml
> index 118549c25976..49cc36b76fd0 100644
> --- a/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl.yaml
> +++ b/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl.yaml
> @@ -73,6 +73,13 @@ properties:
>      minItems: 1
>      maxItems: 2
>  
> +  clocks:
> +    maxItems: 1
> +
> +  clock-names:
> +    items:
> +      - const: pclk
> +
>    wakeup-interrupt-controller:
>      $ref: samsung,pinctrl-wakeup-interrupt.yaml
>  
> @@ -120,6 +127,16 @@ required:
>  
>  allOf:
>    - $ref: pinctrl.yaml#
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: google,gs101-pinctrl
> +    then:
> +      required:
> +        - clocks
> +        - clock-names

else:
  properties:
    clocks: false
    clock-names: false

but anyway this is all a bit fragile, because pinctrl is not a driver
and you rely on initcall ordering.

> 

Best regards,
Krzysztof
Krzysztof Kozlowski April 25, 2024, 6:18 p.m. UTC | #2
On 25/04/2024 20:15, Krzysztof Kozlowski wrote:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: google,gs101-pinctrl
>> +    then:
>> +      required:
>> +        - clocks
>> +        - clock-names
> 
> else:
>   properties:
>     clocks: false
>     clock-names: false
> 
> but anyway this is all a bit fragile, because pinctrl is not a driver
> and you rely on initcall ordering.

It is a driver, although initcall ordering is still there. Anyway, it's
the first soc requiring clock for pinctrl

Best regards,
Krzysztof
André Draszik April 26, 2024, 10:54 a.m. UTC | #3
On Thu, 2024-04-25 at 20:18 +0200, Krzysztof Kozlowski wrote:
> On 25/04/2024 20:15, Krzysztof Kozlowski wrote:
> > > +      properties:
> > > +        compatible:
> > > +          contains:
> > > +            const: google,gs101-pinctrl
> > > +    then:
> > > +      required:
> > > +        - clocks
> > > +        - clock-names
> > 
> > else:
> >   properties:
> >     clocks: false
> >     clock-names: false
> > 
> > but anyway this is all a bit fragile, because pinctrl is not a driver
> > and you rely on initcall ordering.
> 
> It is a driver, although initcall ordering is still there. Anyway, it's
> the first soc requiring clock for pinctrl

If I see it right, E850 has similar gates, and like on gs101 they're currently
also all marked as CLK_IGNORE_UNUSED in the e850 clock driver with a comment that
a driver update is needed. I've added Sam.

Cheers,
Andre'
Krzysztof Kozlowski April 26, 2024, 10:56 a.m. UTC | #4
On 26/04/2024 12:54, André Draszik wrote:
> On Thu, 2024-04-25 at 20:18 +0200, Krzysztof Kozlowski wrote:
>> On 25/04/2024 20:15, Krzysztof Kozlowski wrote:
>>>> +      properties:
>>>> +        compatible:
>>>> +          contains:
>>>> +            const: google,gs101-pinctrl
>>>> +    then:
>>>> +      required:
>>>> +        - clocks
>>>> +        - clock-names
>>>
>>> else:
>>>   properties:
>>>     clocks: false
>>>     clock-names: false
>>>
>>> but anyway this is all a bit fragile, because pinctrl is not a driver
>>> and you rely on initcall ordering.
>>
>> It is a driver, although initcall ordering is still there. Anyway, it's
>> the first soc requiring clock for pinctrl
> 
> If I see it right, E850 has similar gates, and like on gs101 they're currently
> also all marked as CLK_IGNORE_UNUSED in the e850 clock driver with a comment that
> a driver update is needed. I've added Sam.

Cool, so this should solve also Sam's problem. Sam, can you test the
patchset in spare time?

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl.yaml
index 118549c25976..49cc36b76fd0 100644
--- a/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl.yaml
@@ -73,6 +73,13 @@  properties:
     minItems: 1
     maxItems: 2
 
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: pclk
+
   wakeup-interrupt-controller:
     $ref: samsung,pinctrl-wakeup-interrupt.yaml
 
@@ -120,6 +127,16 @@  required:
 
 allOf:
   - $ref: pinctrl.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: google,gs101-pinctrl
+    then:
+      required:
+        - clocks
+        - clock-names
+
   - if:
       properties:
         compatible: