Hi Liang, On 4/30/21 2:57 AM, cl@xxxxxxxxxxxxxx wrote: > From: Liang Chen <cl@xxxxxxxxxxxxxx> > > Current dts files with 'grf' nodes are manually verified. In order to > automate this process grf.txt has to be converted to YAML. > > Add new descriptions for: > "rockchip,rk3568-grf", "syscon", "simple-mfd" > "rockchip,rk3568-pmugrf", "syscon", "simple-mfd" "rockchip,rv1108-pmugrf", "syscon" > > Signed-off-by: Liang Chen <cl@xxxxxxxxxxxxxx> > --- > .../devicetree/bindings/soc/rockchip/grf.txt | 61 ------------------- > .../devicetree/bindings/soc/rockchip/grf.yaml | 60 ++++++++++++++++++ > 2 files changed, 60 insertions(+), 61 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt > create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml > > diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt > deleted file mode 100644 > index f96511aa3897..000000000000 > --- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt > +++ /dev/null > @@ -1,61 +0,0 @@ > -* Rockchip General Register Files (GRF) > - > -The general register file will be used to do static set by software, which > -is composed of many registers for system control. > - > -From RK3368 SoCs, the GRF is divided into two sections, > -- GRF, used for general non-secure system, > -- SGRF, used for general secure system, > -- PMUGRF, used for always on system > - > -On RK3328 SoCs, the GRF adds a section for USB2PHYGRF, > - > -ON RK3308 SoC, the GRF is divided into four sections: > -- GRF, used for general non-secure system, > -- SGRF, used for general secure system, > -- DETECTGRF, used for audio codec system, > -- COREGRF, used for pvtm, > - > -Required Properties: > - > -- compatible: GRF should be one of the following: > - - "rockchip,px30-grf", "syscon": for px30 > - - "rockchip,rk3036-grf", "syscon": for rk3036 > - - "rockchip,rk3066-grf", "syscon": for rk3066 > - - "rockchip,rk3188-grf", "syscon": for rk3188 > - - "rockchip,rk3228-grf", "syscon": for rk3228 > - - "rockchip,rk3288-grf", "syscon": for rk3288 > - - "rockchip,rk3308-grf", "syscon": for rk3308 > - - "rockchip,rk3328-grf", "syscon": for rk3328 > - - "rockchip,rk3368-grf", "syscon": for rk3368 > - - "rockchip,rk3399-grf", "syscon": for rk3399 > - - "rockchip,rv1108-grf", "syscon": for rv1108 > -- compatible: DETECTGRF should be one of the following: > - - "rockchip,rk3308-detect-grf", "syscon": for rk3308 > -- compatilbe: COREGRF should be one of the following: > - - "rockchip,rk3308-core-grf", "syscon": for rk3308 > -- compatible: PMUGRF should be one of the following: > - - "rockchip,px30-pmugrf", "syscon": for px30 > - - "rockchip,rk3368-pmugrf", "syscon": for rk3368 > - - "rockchip,rk3399-pmugrf", "syscon": for rk3399 > -- compatible: SGRF should be one of the following: > - - "rockchip,rk3288-sgrf", "syscon": for rk3288 > -- compatible: USB2PHYGRF should be one of the following: > - - "rockchip,px30-usb2phy-grf", "syscon": for px30 > - - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328 > -- compatible: USBGRF should be one of the following: > - - "rockchip,rv1108-usbgrf", "syscon": for rv1108 > -- reg: physical base address of the controller and length of memory mapped > - region. > - > -Example: GRF and PMUGRF of RK3399 SoCs > - > - pmugrf: syscon@ff320000 { > - compatible = "rockchip,rk3399-pmugrf", "syscon"; > - reg = <0x0 0xff320000 0x0 0x1000>; > - }; > - > - grf: syscon@ff770000 { > - compatible = "rockchip,rk3399-grf", "syscon"; > - reg = <0x0 0xff770000 0x0 0x10000>; > - }; > diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml > new file mode 100644 > index 000000000000..21a67b9ae59c > --- /dev/null > +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml > @@ -0,0 +1,60 @@ > +# SPDX-License-Identifier: GPL-2.0 > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Rockchip General Register Files > + > +maintainers: > + - Heiko Stuebner <heiko@xxxxxxxxx> > + syscon.yaml uses select if compatible contains "syscon", so use select here too ?? > +properties: > + compatible: > + items: When there are no other combinations then with syscon and simple-mfd then there's no need for "oneOf", but a look in the build log shows there are 2 (3) exceptions: #cat build-dtbs-1471909.log | grep short rv1108-elgin-r1.dt.yaml: syscon@202a0000: compatible: ['rockchip,rv1108-usbgrf', 'syscon'] is too short rk3288-evb-act8846.dt.yaml: syscon@ff740000: compatible: ['rockchip,rk3288-sgrf', 'syscon'] is too short https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20210430005708.1821-1-cl@xxxxxxxxxxxxxx/ === pmugrf: syscon@20060000 { compatible = "rockchip,rv1108-pmugrf", "syscon"; rockchip,rv1108-pmugrf was never added to a document. reg = <0x20060000 0x1000>; }; usbgrf: syscon@202a0000 { compatible = "rockchip,rv1108-usbgrf", "syscon"; reg = <0x202a0000 0x1000>; }; === compatible: oneOf: - items: - enum: - rockchip,rk3288-sgrf === - rockchip,rv1108-pmugrf === - rockchip,rv1108-usbgrf - const: syscon - items: - enum: - rockchip,px30-grf - rockchip,px30-pmugrf - rockchip,px30-usb2phy-grf - rockchip,rk3036-grf - rockchip,rk3066-grf - rockchip,rk3188-grf - rockchip,rk3228-grf - rockchip,rk3288-grf - rockchip,rk3308-core-grf - rockchip,rk3308-detect-grf - rockchip,rk3308-grf - rockchip,rk3328-grf - rockchip,rk3328-usb2phy-grf - rockchip,rk3368-grf - rockchip,rk3368-pmugrf - rockchip,rk3399-grf - rockchip,rk3399-pmugrf - rockchip,rk3568-grf - rockchip,rk3568-pmugrf - rockchip,rv1108-grf - const: syscon - const: simple-mfd > + - enum: > + - rockchip,px30-grf > + - rockchip,px30-pmugrf > + - rockchip,px30-usb2phy-grf > + - rockchip,rk3036-grf > + - rockchip,rk3066-grf > + - rockchip,rk3188-grf > + - rockchip,rk3228-grf > + - rockchip,rk3288-grf > + - rockchip,rk3288-sgrf > + - rockchip,rk3308-core-grf > + - rockchip,rk3308-detect-grf > + - rockchip,rk3308-grf > + - rockchip,rk3328-grf > + - rockchip,rk3328-usb2phy-grf > + - rockchip,rk3368-grf > + - rockchip,rk3368-pmugrf > + - rockchip,rk3399-grf > + - rockchip,rk3399-pmugrf > + - rockchip,rk3568-grf > + - rockchip,rk3568-pmugrf > + - rockchip,rv1108-grf > + - rockchip,rv1108-usbgrf > + - const: syscon > + - const: simple-mfd > + > + reg:> + maxItems: 1 "#address-cells": const: 1 "#size-cells": const: 1 rk3228-evb.dt.yaml: syscon@11000000: '#address-cells', '#size-cells', 'io-domains', 'usb2-phy@760', 'usb2-phy@800' do not match any of the regexes: 'pinctrl-[0-9]+' > + > +required: > + - compatible > + - reg > + > +additionalProperties: false additionalProperties: true > + > +examples: > + - | > + pmugrf: syscon@ff320000 { > + compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd"; > + reg = <0xff320000 0x1000>; > + }; > + > + grf: syscon@ff770000 { > + compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd"; > + reg = <0xff770000 0x10000>; > + }; >