On 12/7/20 11:11 PM, Wilken Gottwalt wrote:
> On Mon, 7 Dec 2020 21:22:23 -0600
> Samuel Holland <sam...@sholland.org> wrote:
> 
>> On 12/7/20 10:12 AM, Maxime Ripard wrote:
>>> Hi,
>>>
>>> On Mon, Dec 07, 2020 at 05:05:03PM +0100, Wilken Gottwalt wrote:
>>>> Adds documentation on how to use the sun8i_hwspinlock driver for sun8i
>>>> compatible SoCs.
>>>>
>>>> Signed-off-by: Wilken Gottwalt <wilken.gottw...@posteo.net>
>>>> ---
>>>>  .../bindings/hwlock/sun8i-hwspinlock.yaml     | 63 +++++++++++++++++++
>>>>  1 file changed, 63 insertions(+)
>>>>  create mode 100644 
>>>> Documentation/devicetree/bindings/hwlock/sun8i-hwspinlock.yaml
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/hwlock/sun8i-hwspinlock.yaml
>>>> b/Documentation/devicetree/bindings/hwlock/sun8i-hwspinlock.yaml new file 
>>>> mode 100644
>>>> index 000000000000..2954ee0b36a7
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/hwlock/sun8i-hwspinlock.yaml
>>>> @@ -0,0 +1,63 @@
>>>> +# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
>>>> +%YAML 1.2
>>>> +---
>>>> +$id: http://devicetree.org/schemas/hwlock/sun8i-hwspinlock.yaml#
>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>> +
>>>> +title: SUN8I hardware spinlock driver for Allwinner sun8i compatible SoCs
>>>> +
>>>> +maintainers:
>>>> +  - Wilken Gottwalt <wilken.gottw...@posteo.net>
>>>> +
>>>> +properties:
>>>> +  compatible:
>>>> +    enum:
>>>> +      - allwinner,sun8i-hwspinlock
>>>
>>> This can be a const instead of an enum, and since it was introduced with
>>> the A33 it should be sun8i-a33-hwspinlock. There's a lot of SoCs in that
>>> family, some without that IP, and we could even see new SoCs in that
>>> family with a different IP at some point.
>>
>> I just looked at the A31 ARISC blob, and it uses the hwspinlock hardware
>> as well, with the same MMIO address and gate/reset bits as A33-H3. So
>> the first compatible would actually be sun6i-a31-hwspinlock.
> 
> Hmm, so it would make sense to also change the drivers symbols from sun8i to
> sun6i, right?

Correct.

> Before I do that, is there maybe a sun4i which also includes
> the hwspinlock unit? Just in case :D

There is a sun4i, but there is no evidence it contains the hwspinlock unit.

Cheers,
Samuel

> 
> greetings,
> Wilken
> 
>> Cheers,
>> Samuel
>>
>>>> +
>>>> +    reg:          # 0x01C18000 (H2+, H3, H5), 0x03004000 (H6), length 
>>>> 0x1000
>>>> +      maxItems: 1
>>>
>>> There's no need for those comments
>>>
>>>> +
>>>> +    clocks:       # phandle to the reference clock
>>>
>>> This should be the description, and it's fairly obvious so you don't
>>> really need that comment.
>>>
>>>> +      maxItems: 1
>>>> +
>>>> +    clock-names:  # name of the bus ("ahb")
>>>> +      maxItems: 1
>>>
>>> You don't need clock-names if there's a single clock
>>>
>>>> +
>>>> +    resets:       # phandle to the reset control
>>>> +      maxItems: 1
>>>
>>> Same thing than for the clocks
>>>
>>>> +
>>>> +    reset-names:  # name of the bus ("ahb")
>>>> +      maxItems: 1
>>>> +
>>>
>>> Ditto
>>>
>>>> +required:
>>>> +  - compatible
>>>> +  - reg
>>>> +  - clocks
>>>> +  - clock-names
>>>> +  - resets
>>>> +  - reset-names
>>>> +
>>>> +additionalProperties: false
>>>> +
>>>> +examples:
>>>> +
>>>> +  - |
>>>> +    /* H2+ based OrangePi Zero */
>>>> +    hwspinlock: hwspinlock@1C18000 {
>>>
>>> Unit-address's are lowercase
>>>
>>>> +      compatible = "allwinner,sun8i-hwspinlock";
>>>> +      reg = <0x01c18000 0x1000>;
>>>> +      clocks = <&ccu CLK_BUS_SPINLOCK>;
>>>> +      clock-names = "ahb";
>>>> +      resets = <&ccu RST_BUS_SPINLOCK>;
>>>> +      reset-names = "ahb";
>>>> +    };
>>>> +
>>>> +    /* H6 based OrangePi 3 */
>>>> +    hwspinlock: hwspinlock@3004000 {
>>>> +      compatible = "allwinner,sun8i-hwspinlock";
>>>> +      reg = <0x03004000 0x1000>;
>>>> +      clocks = <&ccu CLK_BUS_SPINLOCK>;
>>>> +      clock-names = "ahb";
>>>> +      resets = <&ccu RST_BUS_SPINLOCK>;
>>>> +      reset-names = "ahb";
>>>> +    };
>>>
>>> Different examples should be different items on that list, but both are
>>> essentially the same binding so you can drop one.
>>>
>>> Maxime
>>>
>>
> 

Reply via email to