[1/1] dt-bindings: rtc: convert hym8563 bindings to json-schema

Message ID 20221021170605.85163-1-sebastian.reichel@collabora.com
State New
Headers
Series [1/1] dt-bindings: rtc: convert hym8563 bindings to json-schema |

Commit Message

Sebastian Reichel Oct. 21, 2022, 5:06 p.m. UTC
  Convert RTC binding for Haoyu Microelectronics HYM8563 to Device Tree
Schema format.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
 .../devicetree/bindings/rtc/haoyu,hym8563.txt | 30 ----------
 .../bindings/rtc/haoyu,hym8563.yaml           | 55 +++++++++++++++++++
 2 files changed, 55 insertions(+), 30 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
 create mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
  

Comments

Rob Herring Oct. 21, 2022, 9 p.m. UTC | #1
On Fri, 21 Oct 2022 19:06:05 +0200, Sebastian Reichel wrote:
> Convert RTC binding for Haoyu Microelectronics HYM8563 to Device Tree
> Schema format.
> 
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
>  .../devicetree/bindings/rtc/haoyu,hym8563.txt | 30 ----------
>  .../bindings/rtc/haoyu,hym8563.yaml           | 55 +++++++++++++++++++
>  2 files changed, 55 insertions(+), 30 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
>  create mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> 

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/


hym8563@51: $nodename:0: 'hym8563@51' does not match '^rtc(@.*|-[0-9a-f])*$'
	arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dtb
	arch/arm64/boot/dts/rockchip/rk3368-r88.dtb
	arch/arm64/boot/dts/rockchip/rk3399pro-rock-pi-n10.dtb
	arch/arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dtb
	arch/arm/boot/dts/rk3036-evb.dtb
	arch/arm/boot/dts/rk3288-evb-act8846.dtb
	arch/arm/boot/dts/rk3288-firefly-beta.dtb
	arch/arm/boot/dts/rk3288-firefly.dtb
	arch/arm/boot/dts/rk3288-firefly-reload.dtb
	arch/arm/boot/dts/rk3288-miqi.dtb
	arch/arm/boot/dts/rk3288-rock2-square.dtb

hym8563@51: Unevaluated properties are not allowed ('clock-frequency' was unexpected)
	arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dtb
	arch/arm64/boot/dts/rockchip/rk3368-r88.dtb
	arch/arm64/boot/dts/rockchip/rk3399pro-rock-pi-n10.dtb
	arch/arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dtb
	arch/arm/boot/dts/rk3036-evb.dtb
	arch/arm/boot/dts/rk3288-firefly-beta.dtb
	arch/arm/boot/dts/rk3288-firefly.dtb
	arch/arm/boot/dts/rk3288-firefly-reload.dtb
	arch/arm/boot/dts/rk3288-miqi.dtb
	arch/arm/boot/dts/rk3288-rock2-square.dtb

rtc@51: Unevaluated properties are not allowed ('clock-frequency' was unexpected)
	arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dtb
	arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb
	arch/arm64/boot/dts/amlogic/meson-gxm-minix-neo-u9h.dtb
	arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dtb
	arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dtb
	arch/arm/boot/dts/rk3288-rock-pi-n8.dtb
  
Krzysztof Kozlowski Oct. 21, 2022, 11:59 p.m. UTC | #2
On 21/10/2022 13:06, Sebastian Reichel wrote:
> Convert RTC binding for Haoyu Microelectronics HYM8563 to Device Tree
> Schema format.
> 
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
>  .../devicetree/bindings/rtc/haoyu,hym8563.txt | 30 ----------
>  .../bindings/rtc/haoyu,hym8563.yaml           | 55 +++++++++++++++++++
>  2 files changed, 55 insertions(+), 30 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
>  create mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> 
> diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> deleted file mode 100644
> index a8934fe2ab4c..000000000000
> --- a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -Haoyu Microelectronics HYM8563 Real Time Clock
> -
> -The HYM8563 provides basic rtc and alarm functionality
> -as well as a clock output of up to 32kHz.
> -
> -Required properties:
> -- compatible: should be: "haoyu,hym8563"
> -- reg: i2c address
> -- #clock-cells: the value should be 0
> -
> -Optional properties:
> -- clock-output-names: From common clock binding
> -- interrupts: rtc alarm/event interrupt
> -
> -Example:
> -
> -hym8563: hym8563@51 {
> -	compatible = "haoyu,hym8563";
> -	reg = <0x51>;
> -
> -	interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
> -
> -	#clock-cells = <0>;
> -};
> -
> -device {
> -...
> -	clocks = <&hym8563>;
> -...
> -};
> diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> new file mode 100644
> index 000000000000..b0b6126b12dd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> @@ -0,0 +1,55 @@
> +# SPDX-License-Identifier: GPL-2.0

Dual license please. I don't think you copied any content from original
bindings... unless the example?

> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/rtc/haoyu,hym8563.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Haoyu Microelectronics HYM8563 RTC
> +
> +maintainers:
> +  - Alexandre Belloni <alexandre.belloni@bootlin.com>
> +
> +properties:
> +  compatible:
> +    const: haoyu,hym8563
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  "#clock-cells":
> +    const: 0
> +
> +  clock-output-names:
> +    description: From common clock binding to override the default output clock name.

You need maxItems for this.

> +
> +  wakeup-source:
> +    description: Enables wake up of host system on alarm.
> +
> +allOf:
> +  - $ref: rtc.yaml
> +
> +unevaluatedProperties: false
> +

Would be great if you could also correct DTS using these bindings (see
warning from Rob).

Best regards,
Krzysztof
  
Rob Herring Oct. 24, 2022, 6:50 p.m. UTC | #3
On Fri, Oct 21, 2022 at 07:59:26PM -0400, Krzysztof Kozlowski wrote:
> On 21/10/2022 13:06, Sebastian Reichel wrote:
> > Convert RTC binding for Haoyu Microelectronics HYM8563 to Device Tree
> > Schema format.
> > 
> > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> > ---
> >  .../devicetree/bindings/rtc/haoyu,hym8563.txt | 30 ----------
> >  .../bindings/rtc/haoyu,hym8563.yaml           | 55 +++++++++++++++++++
> >  2 files changed, 55 insertions(+), 30 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> >  create mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> > deleted file mode 100644
> > index a8934fe2ab4c..000000000000
> > --- a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> > +++ /dev/null
> > @@ -1,30 +0,0 @@
> > -Haoyu Microelectronics HYM8563 Real Time Clock
> > -
> > -The HYM8563 provides basic rtc and alarm functionality
> > -as well as a clock output of up to 32kHz.
> > -
> > -Required properties:
> > -- compatible: should be: "haoyu,hym8563"
> > -- reg: i2c address
> > -- #clock-cells: the value should be 0
> > -
> > -Optional properties:
> > -- clock-output-names: From common clock binding
> > -- interrupts: rtc alarm/event interrupt
> > -
> > -Example:
> > -
> > -hym8563: hym8563@51 {
> > -	compatible = "haoyu,hym8563";
> > -	reg = <0x51>;
> > -
> > -	interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
> > -
> > -	#clock-cells = <0>;
> > -};
> > -
> > -device {
> > -...
> > -	clocks = <&hym8563>;
> > -...
> > -};
> > diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> > new file mode 100644
> > index 000000000000..b0b6126b12dd
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> > @@ -0,0 +1,55 @@
> > +# SPDX-License-Identifier: GPL-2.0
> 
> Dual license please. I don't think you copied any content from original
> bindings... unless the example?
> 
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/rtc/haoyu,hym8563.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Haoyu Microelectronics HYM8563 RTC
> > +
> > +maintainers:
> > +  - Alexandre Belloni <alexandre.belloni@bootlin.com>
> > +
> > +properties:
> > +  compatible:
> > +    const: haoyu,hym8563
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  "#clock-cells":
> > +    const: 0
> > +
> > +  clock-output-names:
> > +    description: From common clock binding to override the default output clock name.
> 
> You need maxItems for this.
> 
> > +
> > +  wakeup-source:
> > +    description: Enables wake up of host system on alarm.
> > +
> > +allOf:
> > +  - $ref: rtc.yaml
> > +
> > +unevaluatedProperties: false
> > +
> 
> Would be great if you could also correct DTS using these bindings (see
> warning from Rob).

It looked to me like 'clock-frequency' should be added to the schema.

Rob
  
Sebastian Reichel Oct. 24, 2022, 10:05 p.m. UTC | #4
Hi,

On Mon, Oct 24, 2022 at 01:50:49PM -0500, Rob Herring wrote:
> On Fri, Oct 21, 2022 at 07:59:26PM -0400, Krzysztof Kozlowski wrote:
> > On 21/10/2022 13:06, Sebastian Reichel wrote:
> > > Convert RTC binding for Haoyu Microelectronics HYM8563 to Device Tree
> > > Schema format.
> > > 
> > > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> > > ---
> > >  .../devicetree/bindings/rtc/haoyu,hym8563.txt | 30 ----------
> > >  .../bindings/rtc/haoyu,hym8563.yaml           | 55 +++++++++++++++++++
> > >  2 files changed, 55 insertions(+), 30 deletions(-)
> > >  delete mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> > >  create mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> > > 
> > > diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> > > deleted file mode 100644
> > > index a8934fe2ab4c..000000000000
> > > --- a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> > > +++ /dev/null
> > > @@ -1,30 +0,0 @@
> > > -Haoyu Microelectronics HYM8563 Real Time Clock
> > > -
> > > -The HYM8563 provides basic rtc and alarm functionality
> > > -as well as a clock output of up to 32kHz.
> > > -
> > > -Required properties:
> > > -- compatible: should be: "haoyu,hym8563"
> > > -- reg: i2c address
> > > -- #clock-cells: the value should be 0
> > > -
> > > -Optional properties:
> > > -- clock-output-names: From common clock binding
> > > -- interrupts: rtc alarm/event interrupt
> > > -
> > > -Example:
> > > -
> > > -hym8563: hym8563@51 {
> > > -	compatible = "haoyu,hym8563";
> > > -	reg = <0x51>;
> > > -
> > > -	interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
> > > -
> > > -	#clock-cells = <0>;
> > > -};
> > > -
> > > -device {
> > > -...
> > > -	clocks = <&hym8563>;
> > > -...
> > > -};
> > > diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> > > new file mode 100644
> > > index 000000000000..b0b6126b12dd
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> > > @@ -0,0 +1,55 @@
> > > +# SPDX-License-Identifier: GPL-2.0
> > 
> > Dual license please. I don't think you copied any content from original
> > bindings... unless the example?
> > 
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/rtc/haoyu,hym8563.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Haoyu Microelectronics HYM8563 RTC
> > > +
> > > +maintainers:
> > > +  - Alexandre Belloni <alexandre.belloni@bootlin.com>
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: haoyu,hym8563
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  interrupts:
> > > +    maxItems: 1
> > > +
> > > +  "#clock-cells":
> > > +    const: 0
> > > +
> > > +  clock-output-names:
> > > +    description: From common clock binding to override the default output clock name.
> > 
> > You need maxItems for this.
> > 
> > > +
> > > +  wakeup-source:
> > > +    description: Enables wake up of host system on alarm.
> > > +
> > > +allOf:
> > > +  - $ref: rtc.yaml
> > > +
> > > +unevaluatedProperties: false
> > > +
> > 
> > Would be great if you could also correct DTS using these bindings (see
> > warning from Rob).
> 
> It looked to me like 'clock-frequency' should be added to the schema.

I've sent PATCHv2, which removes clock-frequency from all hym8563
users. My reasoning is, that the old txt binding does not describe
it and the current Linux driver does not handle it as far as I can
see.

https://lore.kernel.org/all/20221024165549.74574-1-sebastian.reichel@collabora.com/

-- Sebastian
  
Johan Jonker Oct. 27, 2022, 4:11 p.m. UTC | #5
On 10/25/22 00:05, Sebastian Reichel wrote:
> Hi,
> 
> On Mon, Oct 24, 2022 at 01:50:49PM -0500, Rob Herring wrote:
>> On Fri, Oct 21, 2022 at 07:59:26PM -0400, Krzysztof Kozlowski wrote:
>>> On 21/10/2022 13:06, Sebastian Reichel wrote:
>>>> Convert RTC binding for Haoyu Microelectronics HYM8563 to Device Tree
>>>> Schema format.
>>>>
>>>> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
>>>> ---
>>>>  .../devicetree/bindings/rtc/haoyu,hym8563.txt | 30 ----------
>>>>  .../bindings/rtc/haoyu,hym8563.yaml           | 55 +++++++++++++++++++
>>>>  2 files changed, 55 insertions(+), 30 deletions(-)
>>>>  delete mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
>>>>  create mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
>>>> deleted file mode 100644
>>>> index a8934fe2ab4c..000000000000
>>>> --- a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
>>>> +++ /dev/null
>>>> @@ -1,30 +0,0 @@
>>>> -Haoyu Microelectronics HYM8563 Real Time Clock
>>>> -
>>>> -The HYM8563 provides basic rtc and alarm functionality
>>>> -as well as a clock output of up to 32kHz.
>>>> -
>>>> -Required properties:
>>>> -- compatible: should be: "haoyu,hym8563"
>>>> -- reg: i2c address
>>>> -- #clock-cells: the value should be 0
>>>> -
>>>> -Optional properties:
>>>> -- clock-output-names: From common clock binding
>>>> -- interrupts: rtc alarm/event interrupt
>>>> -
>>>> -Example:
>>>> -
>>>> -hym8563: hym8563@51 {
>>>> -	compatible = "haoyu,hym8563";
>>>> -	reg = <0x51>;
>>>> -
>>>> -	interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
>>>> -
>>>> -	#clock-cells = <0>;
>>>> -};
>>>> -
>>>> -device {
>>>> -...
>>>> -	clocks = <&hym8563>;
>>>> -...
>>>> -};
>>>> diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
>>>> new file mode 100644
>>>> index 000000000000..b0b6126b12dd
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
>>>> @@ -0,0 +1,55 @@
>>>> +# SPDX-License-Identifier: GPL-2.0
>>>
>>> Dual license please. I don't think you copied any content from original
>>> bindings... unless the example?
>>>
>>>> +%YAML 1.2
>>>> +---
>>>> +$id: http://devicetree.org/schemas/rtc/haoyu,hym8563.yaml#
>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>> +
>>>> +title: Haoyu Microelectronics HYM8563 RTC
>>>> +
>>>> +maintainers:
>>>> +  - Alexandre Belloni <alexandre.belloni@bootlin.com>
>>>> +
>>>> +properties:
>>>> +  compatible:
>>>> +    const: haoyu,hym8563
>>>> +
>>>> +  reg:
>>>> +    maxItems: 1
>>>> +
>>>> +  interrupts:
>>>> +    maxItems: 1
>>>> +
>>>> +  "#clock-cells":
>>>> +    const: 0
>>>> +
>>>> +  clock-output-names:
>>>> +    description: From common clock binding to override the default output clock name.
>>>
>>> You need maxItems for this.
>>>
>>>> +
>>>> +  wakeup-source:
>>>> +    description: Enables wake up of host system on alarm.
>>>> +
>>>> +allOf:
>>>> +  - $ref: rtc.yaml
>>>> +
>>>> +unevaluatedProperties: false
>>>> +
>>>

>>> Would be great if you could also correct DTS using these bindings (see
>>> warning from Rob).
>>
>> It looked to me like 'clock-frequency' should be added to the schema.
> 
> I've sent PATCHv2, which removes clock-frequency from all hym8563
> users. My reasoning is, that the old txt binding does not describe
> it and the current Linux driver does not handle it as far as I can
> see.

Didn't note you were doing a conversion as well...
From my abandonment patch serie

  clock-frequency:
    enum: [1, 32, 1024, 32768]

The data sheet shows that it can generate 4 different frequencies.
Rockchip mostly uses 32768, but that doesn't mean someone else is not alowed to set what he/she prefers.

Johan

> 
> https://lore.kernel.org/all/20221024165549.74574-1-sebastian.reichel@collabora.com/
> 
> -- Sebastian
  
Sebastian Reichel Oct. 27, 2022, 4:26 p.m. UTC | #6
Hi,

On Thu, Oct 27, 2022 at 06:11:19PM +0200, Johan Jonker wrote:
> On 10/25/22 00:05, Sebastian Reichel wrote:
> > On Mon, Oct 24, 2022 at 01:50:49PM -0500, Rob Herring wrote:
> >> On Fri, Oct 21, 2022 at 07:59:26PM -0400, Krzysztof Kozlowski wrote:
> >>> On 21/10/2022 13:06, Sebastian Reichel wrote:
> >>>> Convert RTC binding for Haoyu Microelectronics HYM8563 to Device Tree
> >>>> Schema format.
> >>>>
> >>>> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> >>>> ---
> >>>>  .../devicetree/bindings/rtc/haoyu,hym8563.txt | 30 ----------
> >>>>  .../bindings/rtc/haoyu,hym8563.yaml           | 55 +++++++++++++++++++
> >>>>  2 files changed, 55 insertions(+), 30 deletions(-)
> >>>>  delete mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> >>>>  create mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> >>>>
> >>>> diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> >>>> deleted file mode 100644
> >>>> index a8934fe2ab4c..000000000000
> >>>> --- a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> >>>> +++ /dev/null
> >>>> @@ -1,30 +0,0 @@
> >>>> -Haoyu Microelectronics HYM8563 Real Time Clock
> >>>> -
> >>>> -The HYM8563 provides basic rtc and alarm functionality
> >>>> -as well as a clock output of up to 32kHz.
> >>>> -
> >>>> -Required properties:
> >>>> -- compatible: should be: "haoyu,hym8563"
> >>>> -- reg: i2c address
> >>>> -- #clock-cells: the value should be 0
> >>>> -
> >>>> -Optional properties:
> >>>> -- clock-output-names: From common clock binding
> >>>> -- interrupts: rtc alarm/event interrupt
> >>>> -
> >>>> -Example:
> >>>> -
> >>>> -hym8563: hym8563@51 {
> >>>> -	compatible = "haoyu,hym8563";
> >>>> -	reg = <0x51>;
> >>>> -
> >>>> -	interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
> >>>> -
> >>>> -	#clock-cells = <0>;
> >>>> -};
> >>>> -
> >>>> -device {
> >>>> -...
> >>>> -	clocks = <&hym8563>;
> >>>> -...
> >>>> -};
> >>>> diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> >>>> new file mode 100644
> >>>> index 000000000000..b0b6126b12dd
> >>>> --- /dev/null
> >>>> +++ b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> >>>> @@ -0,0 +1,55 @@
> >>>> +# SPDX-License-Identifier: GPL-2.0
> >>>
> >>> Dual license please. I don't think you copied any content from original
> >>> bindings... unless the example?
> >>>
> >>>> +%YAML 1.2
> >>>> +---
> >>>> +$id: http://devicetree.org/schemas/rtc/haoyu,hym8563.yaml#
> >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>>> +
> >>>> +title: Haoyu Microelectronics HYM8563 RTC
> >>>> +
> >>>> +maintainers:
> >>>> +  - Alexandre Belloni <alexandre.belloni@bootlin.com>
> >>>> +
> >>>> +properties:
> >>>> +  compatible:
> >>>> +    const: haoyu,hym8563
> >>>> +
> >>>> +  reg:
> >>>> +    maxItems: 1
> >>>> +
> >>>> +  interrupts:
> >>>> +    maxItems: 1
> >>>> +
> >>>> +  "#clock-cells":
> >>>> +    const: 0
> >>>> +
> >>>> +  clock-output-names:
> >>>> +    description: From common clock binding to override the default output clock name.
> >>>
> >>> You need maxItems for this.
> >>>
> >>>> +
> >>>> +  wakeup-source:
> >>>> +    description: Enables wake up of host system on alarm.
> >>>> +
> >>>> +allOf:
> >>>> +  - $ref: rtc.yaml
> >>>> +
> >>>> +unevaluatedProperties: false
> >>>> +
> >>>
> 
> >>> Would be great if you could also correct DTS using these bindings (see
> >>> warning from Rob).
> >>
> >> It looked to me like 'clock-frequency' should be added to the schema.
> > 
> > I've sent PATCHv2, which removes clock-frequency from all hym8563
> > users. My reasoning is, that the old txt binding does not describe
> > it and the current Linux driver does not handle it as far as I can
> > see.
> 
> Didn't note you were doing a conversion as well...
> From my abandonment patch serie
> 
>   clock-frequency:
>     enum: [1, 32, 1024, 32768]
> 
> The data sheet shows that it can generate 4 different frequencies.
> Rockchip mostly uses 32768, but that doesn't mean someone else is
> not alowed to set what he/she prefers.

As far as I can tell 32768 has been cargo copied by everyone, but
the driver is not parsing this at all and I would expect the clock
API to be used for requesting a specific frequency.

-- Sebastian
  
Johan Jonker Oct. 27, 2022, 4:29 p.m. UTC | #7
On 10/27/22 18:26, Sebastian Reichel wrote:
> Hi,
> 
> On Thu, Oct 27, 2022 at 06:11:19PM +0200, Johan Jonker wrote:
>> On 10/25/22 00:05, Sebastian Reichel wrote:
>>> On Mon, Oct 24, 2022 at 01:50:49PM -0500, Rob Herring wrote:
>>>> On Fri, Oct 21, 2022 at 07:59:26PM -0400, Krzysztof Kozlowski wrote:
>>>>> On 21/10/2022 13:06, Sebastian Reichel wrote:
>>>>>> Convert RTC binding for Haoyu Microelectronics HYM8563 to Device Tree
>>>>>> Schema format.
>>>>>>
>>>>>> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
>>>>>> ---
>>>>>>  .../devicetree/bindings/rtc/haoyu,hym8563.txt | 30 ----------
>>>>>>  .../bindings/rtc/haoyu,hym8563.yaml           | 55 +++++++++++++++++++
>>>>>>  2 files changed, 55 insertions(+), 30 deletions(-)
>>>>>>  delete mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
>>>>>>  create mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
>>>>>>
>>>>>> diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
>>>>>> deleted file mode 100644
>>>>>> index a8934fe2ab4c..000000000000
>>>>>> --- a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
>>>>>> +++ /dev/null
>>>>>> @@ -1,30 +0,0 @@
>>>>>> -Haoyu Microelectronics HYM8563 Real Time Clock
>>>>>> -
>>>>>> -The HYM8563 provides basic rtc and alarm functionality
>>>>>> -as well as a clock output of up to 32kHz.
>>>>>> -
>>>>>> -Required properties:
>>>>>> -- compatible: should be: "haoyu,hym8563"
>>>>>> -- reg: i2c address
>>>>>> -- #clock-cells: the value should be 0
>>>>>> -
>>>>>> -Optional properties:
>>>>>> -- clock-output-names: From common clock binding
>>>>>> -- interrupts: rtc alarm/event interrupt
>>>>>> -
>>>>>> -Example:
>>>>>> -
>>>>>> -hym8563: hym8563@51 {
>>>>>> -	compatible = "haoyu,hym8563";
>>>>>> -	reg = <0x51>;
>>>>>> -
>>>>>> -	interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
>>>>>> -
>>>>>> -	#clock-cells = <0>;
>>>>>> -};
>>>>>> -
>>>>>> -device {
>>>>>> -...
>>>>>> -	clocks = <&hym8563>;
>>>>>> -...
>>>>>> -};
>>>>>> diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
>>>>>> new file mode 100644
>>>>>> index 000000000000..b0b6126b12dd
>>>>>> --- /dev/null
>>>>>> +++ b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
>>>>>> @@ -0,0 +1,55 @@
>>>>>> +# SPDX-License-Identifier: GPL-2.0
>>>>>
>>>>> Dual license please. I don't think you copied any content from original
>>>>> bindings... unless the example?
>>>>>
>>>>>> +%YAML 1.2
>>>>>> +---
>>>>>> +$id: http://devicetree.org/schemas/rtc/haoyu,hym8563.yaml#
>>>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>>>> +
>>>>>> +title: Haoyu Microelectronics HYM8563 RTC
>>>>>> +
>>>>>> +maintainers:
>>>>>> +  - Alexandre Belloni <alexandre.belloni@bootlin.com>
>>>>>> +
>>>>>> +properties:
>>>>>> +  compatible:
>>>>>> +    const: haoyu,hym8563
>>>>>> +
>>>>>> +  reg:
>>>>>> +    maxItems: 1
>>>>>> +
>>>>>> +  interrupts:
>>>>>> +    maxItems: 1
>>>>>> +
>>>>>> +  "#clock-cells":
>>>>>> +    const: 0
>>>>>> +
>>>>>> +  clock-output-names:
>>>>>> +    description: From common clock binding to override the default output clock name.
>>>>>
>>>>> You need maxItems for this.
>>>>>
>>>>>> +
>>>>>> +  wakeup-source:
>>>>>> +    description: Enables wake up of host system on alarm.
>>>>>> +
>>>>>> +allOf:
>>>>>> +  - $ref: rtc.yaml
>>>>>> +
>>>>>> +unevaluatedProperties: false
>>>>>> +
>>>>>
>>
>>>>> Would be great if you could also correct DTS using these bindings (see
>>>>> warning from Rob).
>>>>
>>>> It looked to me like 'clock-frequency' should be added to the schema.
>>>
>>> I've sent PATCHv2, which removes clock-frequency from all hym8563
>>> users. My reasoning is, that the old txt binding does not describe
>>> it and the current Linux driver does not handle it as far as I can
>>> see.
>>
>> Didn't note you were doing a conversion as well...
>> From my abandonment patch serie
>>
>>   clock-frequency:
>>     enum: [1, 32, 1024, 32768]
>>
>> The data sheet shows that it can generate 4 different frequencies.
>> Rockchip mostly uses 32768, but that doesn't mean someone else is
>> not alowed to set what he/she prefers.
> 
> As far as I can tell 32768 has been cargo copied by everyone, but
> the driver is not parsing this at all and I would expect the clock
> API to be used for requesting a specific frequency.

DT and Linux driver support are 2 different things.
What Linux currently doesn't support might be needed elsewhere.

Johan

> 
> -- Sebastian
  
Alexandre Belloni Oct. 28, 2022, 4:19 p.m. UTC | #8
On 27/10/2022 18:29:51+0200, Johan Jonker wrote:
> 
> 
> On 10/27/22 18:26, Sebastian Reichel wrote:
> > Hi,
> > 
> > On Thu, Oct 27, 2022 at 06:11:19PM +0200, Johan Jonker wrote:
> >> On 10/25/22 00:05, Sebastian Reichel wrote:
> >>> On Mon, Oct 24, 2022 at 01:50:49PM -0500, Rob Herring wrote:
> >>>> On Fri, Oct 21, 2022 at 07:59:26PM -0400, Krzysztof Kozlowski wrote:
> >>>>> On 21/10/2022 13:06, Sebastian Reichel wrote:
> >>>>>> Convert RTC binding for Haoyu Microelectronics HYM8563 to Device Tree
> >>>>>> Schema format.
> >>>>>>
> >>>>>> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> >>>>>> ---
> >>>>>>  .../devicetree/bindings/rtc/haoyu,hym8563.txt | 30 ----------
> >>>>>>  .../bindings/rtc/haoyu,hym8563.yaml           | 55 +++++++++++++++++++
> >>>>>>  2 files changed, 55 insertions(+), 30 deletions(-)
> >>>>>>  delete mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> >>>>>>  create mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> >>>>>>
> >>>>>> diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> >>>>>> deleted file mode 100644
> >>>>>> index a8934fe2ab4c..000000000000
> >>>>>> --- a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
> >>>>>> +++ /dev/null
> >>>>>> @@ -1,30 +0,0 @@
> >>>>>> -Haoyu Microelectronics HYM8563 Real Time Clock
> >>>>>> -
> >>>>>> -The HYM8563 provides basic rtc and alarm functionality
> >>>>>> -as well as a clock output of up to 32kHz.
> >>>>>> -
> >>>>>> -Required properties:
> >>>>>> -- compatible: should be: "haoyu,hym8563"
> >>>>>> -- reg: i2c address
> >>>>>> -- #clock-cells: the value should be 0
> >>>>>> -
> >>>>>> -Optional properties:
> >>>>>> -- clock-output-names: From common clock binding
> >>>>>> -- interrupts: rtc alarm/event interrupt
> >>>>>> -
> >>>>>> -Example:
> >>>>>> -
> >>>>>> -hym8563: hym8563@51 {
> >>>>>> -	compatible = "haoyu,hym8563";
> >>>>>> -	reg = <0x51>;
> >>>>>> -
> >>>>>> -	interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
> >>>>>> -
> >>>>>> -	#clock-cells = <0>;
> >>>>>> -};
> >>>>>> -
> >>>>>> -device {
> >>>>>> -...
> >>>>>> -	clocks = <&hym8563>;
> >>>>>> -...
> >>>>>> -};
> >>>>>> diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> >>>>>> new file mode 100644
> >>>>>> index 000000000000..b0b6126b12dd
> >>>>>> --- /dev/null
> >>>>>> +++ b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
> >>>>>> @@ -0,0 +1,55 @@
> >>>>>> +# SPDX-License-Identifier: GPL-2.0
> >>>>>
> >>>>> Dual license please. I don't think you copied any content from original
> >>>>> bindings... unless the example?
> >>>>>
> >>>>>> +%YAML 1.2
> >>>>>> +---
> >>>>>> +$id: http://devicetree.org/schemas/rtc/haoyu,hym8563.yaml#
> >>>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>>>>> +
> >>>>>> +title: Haoyu Microelectronics HYM8563 RTC
> >>>>>> +
> >>>>>> +maintainers:
> >>>>>> +  - Alexandre Belloni <alexandre.belloni@bootlin.com>
> >>>>>> +
> >>>>>> +properties:
> >>>>>> +  compatible:
> >>>>>> +    const: haoyu,hym8563
> >>>>>> +
> >>>>>> +  reg:
> >>>>>> +    maxItems: 1
> >>>>>> +
> >>>>>> +  interrupts:
> >>>>>> +    maxItems: 1
> >>>>>> +
> >>>>>> +  "#clock-cells":
> >>>>>> +    const: 0
> >>>>>> +
> >>>>>> +  clock-output-names:
> >>>>>> +    description: From common clock binding to override the default output clock name.
> >>>>>
> >>>>> You need maxItems for this.
> >>>>>
> >>>>>> +
> >>>>>> +  wakeup-source:
> >>>>>> +    description: Enables wake up of host system on alarm.
> >>>>>> +
> >>>>>> +allOf:
> >>>>>> +  - $ref: rtc.yaml
> >>>>>> +
> >>>>>> +unevaluatedProperties: false
> >>>>>> +
> >>>>>
> >>
> >>>>> Would be great if you could also correct DTS using these bindings (see
> >>>>> warning from Rob).
> >>>>
> >>>> It looked to me like 'clock-frequency' should be added to the schema.
> >>>
> >>> I've sent PATCHv2, which removes clock-frequency from all hym8563
> >>> users. My reasoning is, that the old txt binding does not describe
> >>> it and the current Linux driver does not handle it as far as I can
> >>> see.
> >>
> >> Didn't note you were doing a conversion as well...
> >> From my abandonment patch serie
> >>
> >>   clock-frequency:
> >>     enum: [1, 32, 1024, 32768]
> >>
> >> The data sheet shows that it can generate 4 different frequencies.
> >> Rockchip mostly uses 32768, but that doesn't mean someone else is
> >> not alowed to set what he/she prefers.
> > 
> > As far as I can tell 32768 has been cargo copied by everyone, but
> > the driver is not parsing this at all and I would expect the clock
> > API to be used for requesting a specific frequency.
> 
> DT and Linux driver support are 2 different things.
> What Linux currently doesn't support might be needed elsewhere.
> 

Yes but being a clock provider is enough for any OS.
  

Patch

diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
deleted file mode 100644
index a8934fe2ab4c..000000000000
--- a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
+++ /dev/null
@@ -1,30 +0,0 @@ 
-Haoyu Microelectronics HYM8563 Real Time Clock
-
-The HYM8563 provides basic rtc and alarm functionality
-as well as a clock output of up to 32kHz.
-
-Required properties:
-- compatible: should be: "haoyu,hym8563"
-- reg: i2c address
-- #clock-cells: the value should be 0
-
-Optional properties:
-- clock-output-names: From common clock binding
-- interrupts: rtc alarm/event interrupt
-
-Example:
-
-hym8563: hym8563@51 {
-	compatible = "haoyu,hym8563";
-	reg = <0x51>;
-
-	interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
-
-	#clock-cells = <0>;
-};
-
-device {
-...
-	clocks = <&hym8563>;
-...
-};
diff --git a/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
new file mode 100644
index 000000000000..b0b6126b12dd
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
@@ -0,0 +1,55 @@ 
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/haoyu,hym8563.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Haoyu Microelectronics HYM8563 RTC
+
+maintainers:
+  - Alexandre Belloni <alexandre.belloni@bootlin.com>
+
+properties:
+  compatible:
+    const: haoyu,hym8563
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 0
+
+  clock-output-names:
+    description: From common clock binding to override the default output clock name.
+
+  wakeup-source:
+    description: Enables wake up of host system on alarm.
+
+allOf:
+  - $ref: rtc.yaml
+
+unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - "#clock-cells"
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        rtc@51 {
+            compatible = "haoyu,hym8563";
+            reg = <0x51>;
+            interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
+            #clock-cells = <0>;
+        };
+    };