Message ID | 20240425-samsung-pinctrl-busclock-v1-1-898a200abe68@linaro.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | clock support for Samsung Exynos pin controller (Google Tensor gs101) | expand |
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
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
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'
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 --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:
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(+)