[v2,24/34] dt-bindings: arm: Convert Rockchip board/soc bindings to json-schema

Message ID 20181203213223.16986-25-robh@kernel.org
State New
Headers show
Series
  • [v2,01/34] kbuild: Add support for DT binding schema checks
Related show

Commit Message

Rob Herring Dec. 3, 2018, 9:32 p.m.
Convert Rockchip SoC bindings to DT schema format using json-schema.

Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Signed-off-by: Rob Herring <robh@kernel.org>

---
 .../devicetree/bindings/arm/rockchip.txt      | 240 -----------------
 .../devicetree/bindings/arm/rockchip.yaml     | 251 ++++++++++++++++++
 2 files changed, 251 insertions(+), 240 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/rockchip.txt
 create mode 100644 Documentation/devicetree/bindings/arm/rockchip.yaml

-- 
2.19.1

Comments

Rob Herring Dec. 4, 2018, 3:04 p.m. | #1
On Tue, Dec 4, 2018 at 8:16 AM Heiko Stuebner <heiko@sntech.de> wrote:
>

> Am Montag, 3. Dezember 2018, 22:32:13 CET schrieb Rob Herring:

> > Convert Rockchip SoC bindings to DT schema format using json-schema.

> >

> > Cc: Mark Rutland <mark.rutland@arm.com>

> > Cc: Heiko Stuebner <heiko@sntech.de>

> > Cc: devicetree@vger.kernel.org

> > Cc: linux-arm-kernel@lists.infradead.org

> > Cc: linux-rockchip@lists.infradead.org

> > Signed-off-by: Rob Herring <robh@kernel.org>

>

> > diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml

> > new file mode 100644

> > index 000000000000..3d30ec9adcd3

> > --- /dev/null

> > +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml

> > @@ -0,0 +1,251 @@

> > +# SPDX-License-Identifier: GPL-2.0

> > +%YAML 1.2

> > +---

> > +$id: http://devicetree.org/schemas/arm/rockchip.yaml#

> > +$schema: http://devicetree.org/meta-schemas/core.yaml#

> > +

> > +title: Rockchip platforms device tree bindings

> > +

> > +maintainers:

> > +  - Beniamino Galvani <b.galvani@gmail.com>

>

> # scripts/get_maintainer.pl -f Documentation/devicetree/bindings/arm/rockchip.txt

>

> doesn't list Beniamino at all and he hasn't been active on Rockchip stuff

> for a number of years, so I'm not really sure where this mention as

> maintainer comes from.


git history. get_maintainers.pl had too many cases where I ended up as
the maintainer.

I'll drop him.

> > +  - Heiko Stuebner <heiko@sntech.de>

> > +

> > +properties:

> > +  $nodename:

> > +    const: '/'

> > +  compatible:

> > +    oneOf:

> > +      - items:

> > +          - enum:

> > +              - amarula,vyasa-rk3288

> > +              - asus,rk3288-tinker

> > +              - asus,rk3288-tinker-s

> > +              - radxa,rock2-square

> > +              - chipspark,popmetal-rk3288

> > +              - netxeon,r89

> > +              - firefly,firefly-rk3288

> > +              - firefly,firefly-rk3288-beta

> > +              - firefly,firefly-rk3288-reload

> > +              - mqmaker,miqi

> > +              - rockchip,rk3288-fennec

> > +          - const: rockchip,rk3288

>

> [...]

>

> > +      - items:

> > +          - enum:

> > +              - firefly,firefly-rk3399

> > +              - firefly,roc-rk3399-pc

> > +              - pine64,rockpro64

> > +              - rockchip,rk3399-evb

> > +              - rockchip,rk3399-sapphire

> > +              - rockchip,rk3399-sapphire-excavator

> > +              - tsd,rk3399-q7-haikou

> > +              - vamrs,ficus

> > +              - vamrs,rock960 # 96boards RK3399 Rock960 (ROCK960 Consumer Edition)

> > +          - const: rockchip,rk3399

>

>

> as said before, loosing the description of the boards that get thrown

> into one listing really decreases the usability a lot.


Sorry, I thought I addressed these previous comments.

> Best example is maybe the rk3399 rock960, where the consumer-edition

> board is actually named "ficus" and the description actually brings the

> connection to the product-name.

>

> So here it may increase the machine-readability but definitly descreases

> the human readability of the file itself.

>

> I guess just using the format that all the Google-boards got for all boards

> would just be easiest, so for example the rock960 also would just become:

>

>       - description: 96boards RK3399 Ficus (ROCK960 Enterprise Edition)

>         items:

>           - const: vamrs,ficus

>           - const: rockchip,rk3399

>

>       - description: 96boards RK3399 Ficus (ROCK960 Consumer Edition)

>         items:

>           - const: vamrs,rock960

>           - const: rockchip,rk3399


Sure, you can do this if you like. I prefer the other way as it is a
one line change to add a board. The SoC maintainers can pick whatever
they like. You could split into a file per SoC too if you wanted.

> Looking at other socs, this is likely similar there. Like on Mediatek

> all the MT67xx eval boards loose the mapping to the

> socs marketing name "Helio Foobar" when the description is gone,

> which could've been helpful for people reading the binding.


Generally when we had just 'hello,foobar' with 'Hello Foobar' I
dropped the comment as I didn't think it added much.

Rob
Heiko Stuebner Dec. 10, 2018, 9:54 a.m. | #2
Am Sonntag, 9. Dezember 2018, 23:14:05 CET schrieb Heiko Stuebner:
Forgot the

From: Rob Herring <robh@kernel.org>


here, but if you're ok with how it looks I can apply it to my tree.


Heiko

> Convert Rockchip SoC bindings to DT schema format using json-schema.

> 

> Cc: Mark Rutland <mark.rutland@arm.com>

> Cc: Heiko Stuebner <heiko@sntech.de>

> Cc: devicetree@vger.kernel.org

> Cc: linux-arm-kernel@lists.infradead.org

> Cc: linux-rockchip@lists.infradead.org

> Signed-off-by: Rob Herring <robh@kernel.org>

> [move to per-board entries and added recently added boards]

> Signed-off-by: Heiko Stuebner <heiko@sntech.de>

> ---

> Hi Rob,

> 

> there are boards where the description adds much value and on others

> it is maybe less, but personally I'd like to keep things uniform,

> as that makes reading these things easier if the format stays the

> same all the time, so I've gone forward and just did the conversion

> 

> make dtbs_check did not complain about the schema it seems but I

> did end up with an error later on:

> 

> FATAL ERROR: Unknown output format "yaml"

> make[2]: *** [scripts/Makefile.lib:313: arch/arm/boot/dts/rk3036-evb.dt.yaml] Fehler 1

> 

> But I guess I did not mess up the schema yet.

> 

> So does it look ok that way?

> Heiko

> 

>  .../devicetree/bindings/arm/rockchip.txt      | 240 ----------

>  .../devicetree/bindings/arm/rockchip.yaml     | 419 ++++++++++++++++++

>  2 files changed, 419 insertions(+), 240 deletions(-)

>  delete mode 100644 Documentation/devicetree/bindings/arm/rockchip.txt

>  create mode 100644 Documentation/devicetree/bindings/arm/rockchip.yaml

> 

> diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt

> deleted file mode 100644

> index 0cc71236d639..000000000000

> --- a/Documentation/devicetree/bindings/arm/rockchip.txt

> +++ /dev/null

> @@ -1,240 +0,0 @@

> -Rockchip platforms device tree bindings

> ----------------------------------------

> -

> -- 96boards RK3399 Ficus (ROCK960 Enterprise Edition)

> -    Required root node properties:

> -      - compatible = "vamrs,ficus", "rockchip,rk3399";

> -

> -- 96boards RK3399 Rock960 (ROCK960 Consumer Edition)

> -    Required root node properties:

> -      - compatible = "vamrs,rock960", "rockchip,rk3399";

> -

> -- Amarula Vyasa RK3288 board

> -    Required root node properties:

> -      - compatible = "amarula,vyasa-rk3288", "rockchip,rk3288";

> -

> -- Asus Tinker board

> -    Required root node properties:

> -      - compatible = "asus,rk3288-tinker", "rockchip,rk3288";

> -

> -- Asus Tinker board S

> -    Required root node properties:

> -      - compatible = "asus,rk3288-tinker-s", "rockchip,rk3288";

> -

> -- Kylin RK3036 board:

> -    Required root node properties:

> -      - compatible = "rockchip,kylin-rk3036", "rockchip,rk3036";

> -

> -- MarsBoard RK3066 board:

> -    Required root node properties:

> -      - compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a";

> -

> -- bq Curie 2 tablet:

> -    Required root node properties:

> -      - compatible = "mundoreader,bq-curie2", "rockchip,rk3066a";

> -

> -- ChipSPARK Rayeager PX2 board:

> -    Required root node properties:

> -      - compatible = "chipspark,rayeager-px2", "rockchip,rk3066a";

> -

> -- Radxa Rock board:

> -    Required root node properties:

> -      - compatible = "radxa,rock", "rockchip,rk3188";

> -

> -- Radxa Rock2 Square board:

> -    Required root node properties:

> -      - compatible = "radxa,rock2-square", "rockchip,rk3288";

> -

> -- Rikomagic MK808 v1 board:

> -    Required root node properties:

> -      - compatible = "rikomagic,mk808", "rockchip,rk3066a";

> -

> -- Firefly Firefly-RK3288 board:

> -    Required root node properties:

> -      - compatible = "firefly,firefly-rk3288", "rockchip,rk3288";

> -    or

> -      - compatible = "firefly,firefly-rk3288-beta", "rockchip,rk3288";

> -

> -- Firefly Firefly-RK3288 Reload board:

> -    Required root node properties:

> -      - compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288";

> -

> -- Firefly Firefly-RK3399 board:

> -    Required root node properties:

> -      - compatible = "firefly,firefly-rk3399", "rockchip,rk3399";

> -

> -- Firefly roc-rk3328-cc board:

> -    Required root node properties:

> -      - compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328";

> -

> -- Firefly ROC-RK3399-PC board:

> -    Required root node properties:

> -      - compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";

> -

> -- ChipSPARK PopMetal-RK3288 board:

> -    Required root node properties:

> -      - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";

> -

> -- Netxeon R89 board:

> -    Required root node properties:

> -      - compatible = "netxeon,r89", "rockchip,rk3288";

> -

> -- GeekBuying GeekBox:

> -    Required root node properties:

> -      - compatible = "geekbuying,geekbox", "rockchip,rk3368";

> -

> -- Google Bob (Asus Chromebook Flip C101PA):

> -    Required root node properties:

> -	compatible = "google,bob-rev13", "google,bob-rev12",

> -		     "google,bob-rev11", "google,bob-rev10",

> -		     "google,bob-rev9", "google,bob-rev8",

> -		     "google,bob-rev7", "google,bob-rev6",

> -		     "google,bob-rev5", "google,bob-rev4",

> -		     "google,bob", "google,gru", "rockchip,rk3399";

> -

> -- Google Brain (dev-board):

> -    Required root node properties:

> -      - compatible = "google,veyron-brain-rev0", "google,veyron-brain",

> -		     "google,veyron", "rockchip,rk3288";

> -

> -- Google Gru (dev-board):

> -    Required root node properties:

> -      - compatible = "google,gru-rev15", "google,gru-rev14",

> -		     "google,gru-rev13", "google,gru-rev12",

> -		     "google,gru-rev11", "google,gru-rev10",

> -		     "google,gru-rev9", "google,gru-rev8",

> -		     "google,gru-rev7", "google,gru-rev6",

> -		     "google,gru-rev5", "google,gru-rev4",

> -		     "google,gru-rev3", "google,gru-rev2",

> -		     "google,gru", "rockchip,rk3399";

> -

> -- Google Jaq (Haier Chromebook 11 and more):

> -    Required root node properties:

> -      - compatible = "google,veyron-jaq-rev5", "google,veyron-jaq-rev4",

> -		     "google,veyron-jaq-rev3", "google,veyron-jaq-rev2",

> -		     "google,veyron-jaq-rev1", "google,veyron-jaq",

> -		     "google,veyron", "rockchip,rk3288";

> -

> -- Google Jerry (Hisense Chromebook C11 and more):

> -    Required root node properties:

> -      - compatible = "google,veyron-jerry-rev7", "google,veyron-jerry-rev6",

> -		     "google,veyron-jerry-rev5", "google,veyron-jerry-rev4",

> -		     "google,veyron-jerry-rev3", "google,veyron-jerry",

> -		     "google,veyron", "rockchip,rk3288";

> -

> -- Google Kevin (Samsung Chromebook Plus):

> -    Required root node properties:

> -      - compatible = "google,kevin-rev15", "google,kevin-rev14",

> -		     "google,kevin-rev13", "google,kevin-rev12",

> -		     "google,kevin-rev11", "google,kevin-rev10",

> -		     "google,kevin-rev9", "google,kevin-rev8",

> -		     "google,kevin-rev7", "google,kevin-rev6",

> -		     "google,kevin", "google,gru", "rockchip,rk3399";

> -

> -- Google Mickey (Asus Chromebit CS10):

> -    Required root node properties:

> -      - compatible = "google,veyron-mickey-rev8", "google,veyron-mickey-rev7",

> -		     "google,veyron-mickey-rev6", "google,veyron-mickey-rev5",

> -		     "google,veyron-mickey-rev4", "google,veyron-mickey-rev3",

> -		     "google,veyron-mickey-rev2", "google,veyron-mickey-rev1",

> -		     "google,veyron-mickey-rev0", "google,veyron-mickey",

> -		     "google,veyron", "rockchip,rk3288";

> -

> -- Google Minnie (Asus Chromebook Flip C100P):

> -    Required root node properties:

> -      - compatible = "google,veyron-minnie-rev4", "google,veyron-minnie-rev3",

> -		     "google,veyron-minnie-rev2", "google,veyron-minnie-rev1",

> -		     "google,veyron-minnie-rev0", "google,veyron-minnie",

> -		     "google,veyron", "rockchip,rk3288";

> -

> -- Google Pinky (dev-board):

> -    Required root node properties:

> -      - compatible = "google,veyron-pinky-rev2", "google,veyron-pinky",

> -		     "google,veyron", "rockchip,rk3288";

> -

> -- Google Speedy (Asus C201 Chromebook):

> -    Required root node properties:

> -      - compatible = "google,veyron-speedy-rev9", "google,veyron-speedy-rev8",

> -		     "google,veyron-speedy-rev7", "google,veyron-speedy-rev6",

> -		     "google,veyron-speedy-rev5", "google,veyron-speedy-rev4",

> -		     "google,veyron-speedy-rev3", "google,veyron-speedy-rev2",

> -		     "google,veyron-speedy", "google,veyron", "rockchip,rk3288";

> -

> -- mqmaker MiQi:

> -    Required root node properties:

> -      - compatible = "mqmaker,miqi", "rockchip,rk3288";

> -

> -- Phytec phyCORE-RK3288: Rapid Development Kit

> -    Required root node properties:

> -     - compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";

> -

> -- Pine64 Rock64 board:

> -    Required root node properties:

> -    - compatible = "pine64,rock64", "rockchip,rk3328";

> -

> -- Pine64 RockPro64 board:

> -    Required root node properties:

> -    - compatible = "pine64,rockpro64", "rockchip,rk3399";

> -

> -- Rockchip PX3 Evaluation board:

> -    Required root node properties:

> -      - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188";

> -

> -- Rockchip PX5 Evaluation board:

> -    Required root node properties:

> -      - compatible = "rockchip,px5-evb", "rockchip,px5", "rockchip,rk3368";

> -

> -- Rockchip PX30 Evaluation board:

> -    Required root node properties:

> -      - compatible = "rockchip,px30-evb", "rockchip,px30";

> -

> -- Rockchip RV1108 Evaluation board

> -    Required root node properties:

> -      - compatible = "rockchip,rv1108-evb", "rockchip,rv1108";

> -

> -- Rockchip RK3368 evb:

> -    Required root node properties:

> -      - compatible = "rockchip,rk3368-evb-act8846", "rockchip,rk3368";

> -

> -- Rockchip R88 board:

> -    Required root node properties:

> -      - compatible = "rockchip,r88", "rockchip,rk3368";

> -

> -- Rockchip RK3228 Evaluation board:

> -    Required root node properties:

> -     - compatible = "rockchip,rk3228-evb", "rockchip,rk3228";

> -

> -- Rockchip RK3229 Evaluation board:

> -     - compatible = "rockchip,rk3229-evb", "rockchip,rk3229";

> -

> -- Rockchip RK3288 Fennec board:

> -    Required root node properties:

> -     - compatible = "rockchip,rk3288-fennec", "rockchip,rk3288";

> -

> -- Rockchip RK3328 evb:

> -    Required root node properties:

> -      - compatible = "rockchip,rk3328-evb", "rockchip,rk3328";

> -

> -- Rockchip RK3399 evb:

> -    Required root node properties:

> -      - compatible = "rockchip,rk3399-evb", "rockchip,rk3399";

> -

> -- Rockchip RK3399 Sapphire board standalone:

> -    Required root node properties:

> -      - compatible = "rockchip,rk3399-sapphire", "rockchip,rk3399";

> -

> -- Rockchip RK3399 Sapphire Excavator board:

> -    Required root node properties:

> -      - compatible = "rockchip,rk3399-sapphire-excavator", "rockchip,rk3399";

> -

> -- Theobroma Systems RK3368-uQ7 Haikou Baseboard:

> -    Required root node properties:

> -      - compatible = "tsd,rk3368-uq7-haikou", "rockchip,rk3368";

> -

> -- Theobroma Systems RK3399-Q7 Haikou Baseboard:

> -    Required root node properties:

> -      - compatible = "tsd,rk3399-q7-haikou", "rockchip,rk3399";

> -

> -- Tronsmart Orion R68 Meta

> -    Required root node properties:

> -      - compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368";

> diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml

> new file mode 100644

> index 000000000000..36f4bf4b445c

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml

> @@ -0,0 +1,419 @@

> +# SPDX-License-Identifier: GPL-2.0

> +%YAML 1.2

> +---

> +$id: http://devicetree.org/schemas/arm/rockchip.yaml#

> +$schema: http://devicetree.org/meta-schemas/core.yaml#

> +

> +title: Rockchip platforms device tree bindings

> +

> +maintainers:

> +  - Heiko Stuebner <heiko@sntech.de>

> +

> +properties:

> +  $nodename:

> +    const: '/'

> +  compatible:

> +    oneOf:

> +

> +      - description: 96boards RK3399 Ficus (ROCK960 Enterprise Edition)

> +        items:

> +          - const: vamrs,ficus

> +          - const: rockchip,rk3399

> +

> +      - description: 96boards RK3399 Rock960 (ROCK960 Consumer Edition)

> +        items:

> +          - const: vamrs,rock960

> +          - const: rockchip,rk3399

> +

> +      - description: Amarula Vyasa RK3288

> +        items:

> +          - const: amarula,vyasa-rk3288

> +          - const: rockchip,rk3288

> +

> +      - description: Asus Tinker board

> +        items:

> +          - const: asus,rk3288-tinker

> +          - const: rockchip,rk3288

> +

> +      - description: Asus Tinker board S

> +        items:

> +          - const: asus,rk3288-tinker-s

> +          - const: rockchip,rk3288

> +

> +      - description: bq Curie 2 tablet

> +        items:

> +          - const: mundoreader,bq-curie2

> +          - const: rockchip,rk3066a

> +

> +      - description: bq Edison 2 Quad-Core tablet

> +        items:

> +          - const: mundoreader,bq-edison2qc

> +          - const: rockchip,rk3188

> +

> +      - description: ChipSPARK PopMetal-RK3288

> +        items:

> +          - const: chipspark,popmetal-rk3288

> +          - const: rockchip,rk3288

> +

> +      - description: ChipSPARK Rayeager PX2

> +        items:

> +          - const: chipspark,rayeager-px2

> +          - const: rockchip,rk3066a

> +

> +      - description: Firefly Firefly-RK3288

> +        items:

> +          - const: firefly,firefly-rk3288

> +          - const: rockchip,rk3288

> +

> +      - description: Firefly Firefly-RK3288 (beta board)

> +        items:

> +          - const: firefly,firefly-rk3288-beta

> +          - const: rockchip,rk3288

> +

> +      - description: Firefly Firefly-RK3288 Reload

> +        items:

> +          - const: firefly,firefly-rk3288-reload

> +          - const: rockchip,rk3288

> +

> +      - description: Firefly Firefly-RK3399

> +        items:

> +          - const: firefly,firefly-rk3399

> +          - const: rockchip,rk3399

> +

> +      - description: Firefly roc-rk3328-cc

> +        items:

> +          - const: firefly,roc-rk3328-cc

> +          - const: rockchip,rk3328

> +

> +      - description: Firefly ROC-RK3399-PC

> +        items:

> +          - const: firefly,roc-rk3399-pc

> +          - const: rockchip,rk3399

> +

> +      - description: GeekBuying GeekBox

> +        items:

> +          - const: geekbuying,geekbox

> +          - const: rockchip,rk3368

> +

> +      - description: Google Bob (Asus Chromebook Flip C101PA)

> +        items:

> +          - const: google,bob-rev13

> +          - const: google,bob-rev12

> +          - const: google,bob-rev11

> +          - const: google,bob-rev10

> +          - const: google,bob-rev9

> +          - const: google,bob-rev8

> +          - const: google,bob-rev7

> +          - const: google,bob-rev6

> +          - const: google,bob-rev5

> +          - const: google,bob-rev4

> +          - const: google,bob

> +          - const: google,gru

> +          - const: rockchip,rk3399

> +

> +      - description: Google Brain (dev-board)

> +        items:

> +          - const: google,veyron-brain-rev0

> +          - const: google,veyron-brain

> +          - const: google,veyron

> +          - const: rockchip,rk3288

> +

> +      - description: Google Gru (dev-board)

> +        items:

> +          - const: google,gru-rev15

> +          - const: google,gru-rev14

> +          - const: google,gru-rev13

> +          - const: google,gru-rev12

> +          - const: google,gru-rev11

> +          - const: google,gru-rev10

> +          - const: google,gru-rev9

> +          - const: google,gru-rev8

> +          - const: google,gru-rev7

> +          - const: google,gru-rev6

> +          - const: google,gru-rev5

> +          - const: google,gru-rev4

> +          - const: google,gru-rev3

> +          - const: google,gru-rev2

> +          - const: google,gru

> +          - const: rockchip,rk3399

> +

> +      - description: Google Jaq (Haier Chromebook 11 and more)

> +        items:

> +          - const: google,veyron-jaq-rev5

> +          - const: google,veyron-jaq-rev4

> +          - const: google,veyron-jaq-rev3

> +          - const: google,veyron-jaq-rev2

> +          - const: google,veyron-jaq-rev1

> +          - const: google,veyron-jaq

> +          - const: google,veyron

> +          - const: rockchip,rk3288

> +

> +      - description: Google Jerry (Hisense Chromebook C11 and more)

> +        items:

> +          - const: google,veyron-jerry-rev7

> +          - const: google,veyron-jerry-rev6

> +          - const: google,veyron-jerry-rev5

> +          - const: google,veyron-jerry-rev4

> +          - const: google,veyron-jerry-rev3

> +          - const: google,veyron-jerry

> +          - const: google,veyron

> +          - const: rockchip,rk3288

> +

> +      - description: Google Kevin (Samsung Chromebook Plus)

> +        items:

> +          - const: google,kevin-rev15

> +          - const: google,kevin-rev14

> +          - const: google,kevin-rev13

> +          - const: google,kevin-rev12

> +          - const: google,kevin-rev11

> +          - const: google,kevin-rev10

> +          - const: google,kevin-rev9

> +          - const: google,kevin-rev8

> +          - const: google,kevin-rev7

> +          - const: google,kevin-rev6

> +          - const: google,kevin

> +          - const: google,gru

> +          - const: rockchip,rk3399

> +

> +      - description: Google Mickey (Asus Chromebit CS10)

> +        items:

> +          - const: google,veyron-mickey-rev8

> +          - const: google,veyron-mickey-rev7

> +          - const: google,veyron-mickey-rev6

> +          - const: google,veyron-mickey-rev5

> +          - const: google,veyron-mickey-rev4

> +          - const: google,veyron-mickey-rev3

> +          - const: google,veyron-mickey-rev2

> +          - const: google,veyron-mickey-rev1

> +          - const: google,veyron-mickey-rev0

> +          - const: google,veyron-mickey

> +          - const: google,veyron

> +          - const: rockchip,rk3288

> +

> +      - description: Google Minnie (Asus Chromebook Flip C100P)

> +        items:

> +          - const: google,veyron-minnie-rev4

> +          - const: google,veyron-minnie-rev3

> +          - const: google,veyron-minnie-rev2

> +          - const: google,veyron-minnie-rev1

> +          - const: google,veyron-minnie-rev0

> +          - const: google,veyron-minnie

> +          - const: google,veyron

> +          - const: rockchip,rk3288

> +

> +      - description: Google Pinky (dev-board)

> +        items:

> +          - const: google,veyron-pinky-rev2

> +          - const: google,veyron-pinky

> +          - const: google,veyron

> +          - const: rockchip,rk3288

> +

> +      - description: Google Scarlet - Kingdisplay (Acer Chromebook Tab 10)

> +        items:

> +          - const: google,scarlet-rev15-sku7

> +          - const: google,scarlet-rev15

> +          - const: google,scarlet-rev14-sku7

> +          - const: google,scarlet-rev14

> +          - const: google,scarlet-rev13-sku7

> +          - const: google,scarlet-rev13

> +          - const: google,scarlet-rev12-sku7

> +          - const: google,scarlet-rev12

> +          - const: google,scarlet-rev11-sku7

> +          - const: google,scarlet-rev11

> +          - const: google,scarlet-rev10-sku7

> +          - const: google,scarlet-rev10

> +          - const: google,scarlet-rev9-sku7

> +          - const: google,scarlet-rev9

> +          - const: google,scarlet-rev8-sku7

> +          - const: google,scarlet-rev8

> +          - const: google,scarlet-rev7-sku7

> +          - const: google,scarlet-rev7

> +          - const: google,scarlet-rev6-sku7

> +          - const: google,scarlet-rev6

> +          - const: google,scarlet-rev5-sku7

> +          - const: google,scarlet-rev5

> +          - const: google,scarlet-rev4-sku7

> +          - const: google,scarlet-rev4

> +          - const: google,scarlet-rev3-sku7

> +          - const: google,scarlet-rev3

> +          - const: google,scarlet

> +          - const: google,gru

> +          - const: rockchip,rk3399

> +

> +      - description: Google Scarlet - Innolux display (Acer Chromebook Tab 10)

> +        items:

> +          - const: google,scarlet-rev15-sku6

> +          - const: google,scarlet-rev15

> +          - const: google,scarlet-rev14-sku6

> +          - const: google,scarlet-rev14

> +          - const: google,scarlet-rev13-sku6

> +          - const: google,scarlet-rev13

> +          - const: google,scarlet-rev12-sku6

> +          - const: google,scarlet-rev12

> +          - const: google,scarlet-rev11-sku6

> +          - const: google,scarlet-rev11

> +          - const: google,scarlet-rev10-sku6

> +          - const: google,scarlet-rev10

> +          - const: google,scarlet-rev9-sku6

> +          - const: google,scarlet-rev9

> +          - const: google,scarlet-rev8-sku6

> +          - const: google,scarlet-rev8

> +          - const: google,scarlet-rev7-sku6

> +          - const: google,scarlet-rev7

> +          - const: google,scarlet-rev6-sku6

> +          - const: google,scarlet-rev6

> +          - const: google,scarlet-rev5-sku6

> +          - const: google,scarlet-rev5

> +          - const: google,scarlet-rev4-sku6

> +          - const: google,scarlet-rev4

> +          - const: google,scarlet

> +          - const: google,gru

> +          - const: rockchip,rk3399

> +

> +      - description: Google Speedy (Asus C201 Chromebook)

> +        items:

> +          - const: google,veyron-speedy-rev9

> +          - const: google,veyron-speedy-rev8

> +          - const: google,veyron-speedy-rev7

> +          - const: google,veyron-speedy-rev6

> +          - const: google,veyron-speedy-rev5

> +          - const: google,veyron-speedy-rev4

> +          - const: google,veyron-speedy-rev3

> +          - const: google,veyron-speedy-rev2

> +          - const: google,veyron-speedy

> +          - const: google,veyron

> +          - const: rockchip,rk3288

> +

> +      - description: Haoyu MarsBoard RK3066

> +        items:

> +          - const: haoyu,marsboard-rk3066

> +          - const: rockchip,rk3066a

> +

> +      - description: mqmaker MiQi

> +        items:

> +          - const: mqmaker,miqi

> +          - const: rockchip,rk3288

> +

> +      - description: Netxeon R89 board

> +        items:

> +          - const: netxeon,r89

> +          - const: rockchip,rk3288

> +

> +      - description: Phytec phyCORE-RK3288 Rapid Development Kit

> +        items:

> +          - const: phytec,rk3288-pcm-947

> +          - const: phytec,rk3288-phycore-som

> +          - const: rockchip,rk3288

> +

> +      - description: Pine64 Rock64

> +        items:

> +          - const: pine64,rock64

> +          - const: rockchip,rk3328

> +

> +      - description: Pine64 RockPro64

> +        items:

> +          - const: pine64,rockpro64

> +          - const: rockchip,rk3399

> +

> +      - description: Radxa Rock

> +        items:

> +          - const: radxa,rock

> +          - const: rockchip,rk3188

> +

> +      - description: Radxa Rock2 Square

> +        items:

> +          - const: radxa,rock2-square

> +          - const: rockchip,rk3288

> +

> +      - description: Rikomagic MK808 v1

> +        items:

> +          - const: rikomagic,mk808

> +          - const: rockchip,rk3066a

> +

> +      - description: Rockchip Kylin

> +        items:

> +          - const: rockchip,kylin-rk3036

> +          - const: rockchip,rk3036

> +

> +      - description: Rockchip PX3 Evaluation board

> +        items:

> +          - const: rockchip,px3-evb

> +          - const: rockchip,px3

> +          - const: rockchip,rk3188

> +

> +      - description: Rockchip PX30 Evaluation board

> +        items:

> +          - const: rockchip,px30-evb

> +          - const: rockchip,px30

> +

> +      - description: Rockchip PX5 Evaluation board

> +        items:

> +          - const: rockchip,px5-evb

> +          - const: rockchip,px5

> +          - const: rockchip,rk3368

> +

> +      - description: Rockchip R88

> +        items:

> +          - const: rockchip,r88

> +          - const: rockchip,rk3368

> +

> +      - description: Rockchip RK3228 Evaluation board

> +        items:

> +          - const: rockchip,rk3228-evb

> +          - const: rockchip,rk3228

> +

> +      - description: Rockchip RK3288 Fennec

> +        items:

> +          - const: rockchip,rk3288-fennec

> +          - const: rockchip,rk3288

> +

> +      - description: Rockchip RK3229 Evaluation board

> +        items:

> +          - const: rockchip,rk3229-evb

> +          - const: rockchip,rk3229

> +

> +      - description: Rockchip RK3328 Evaluation board

> +        items:

> +          - const: rockchip,rk3328-evb

> +          - const: rockchip,rk3328

> +

> +      - description: Rockchip RK3368 Evaluation board (act8846 pmic)

> +        items:

> +          - const: rockchip,rk3368-evb-act8846

> +          - const: rockchip,rk3368

> +

> +      - description: Rockchip RK3399 Evaluation board

> +        items:

> +          - const: rockchip,rk3399-evb

> +          - const: rockchip,rk3399

> +

> +      - description: Rockchip RK3399 Sapphire standalone

> +        items:

> +          - const: rockchip,rk3399-sapphire

> +          - const: rockchip,rk3399

> +

> +      - description: Rockchip RK3399 Sapphire with Excavator Baseboard

> +        items:

> +          - const: rockchip,rk3399-sapphire-excavator

> +          - const: rockchip,rk3399

> +

> +      - description: Rockchip RV1108 Evaluation board

> +        items:

> +          - const: rockchip,rv1108-evb

> +          - const: rockchip,rv1108

> +

> +      - description: Theobroma Systems RK3368-uQ7 with Haikou baseboard

> +        items:

> +          - const: tsd,rk3368-uq7-haikou

> +          - const: rockchip,rk3368

> +

> +      - description: Theobroma Systems RK3399-Q7 with Haikou baseboard

> +        items:

> +          - const: tsd,rk3399-q7-haikou

> +          - const: rockchip,rk3399

> +

> +      - description: Tronsmart Orion R68 Meta

> +        items:

> +          - const: tronsmart,orion-r68-meta

> +          - const: rockchip,rk3368

> +...

>
Rob Herring Dec. 10, 2018, 3:13 p.m. | #3
On Sun, Dec 9, 2018 at 4:14 PM Heiko Stuebner <heiko@sntech.de> wrote:
>

> Convert Rockchip SoC bindings to DT schema format using json-schema.

>

> Cc: Mark Rutland <mark.rutland@arm.com>

> Cc: Heiko Stuebner <heiko@sntech.de>

> Cc: devicetree@vger.kernel.org

> Cc: linux-arm-kernel@lists.infradead.org

> Cc: linux-rockchip@lists.infradead.org

> Signed-off-by: Rob Herring <robh@kernel.org>

> [move to per-board entries and added recently added boards]

> Signed-off-by: Heiko Stuebner <heiko@sntech.de>

> ---

> Hi Rob,

>

> there are boards where the description adds much value and on others

> it is maybe less, but personally I'd like to keep things uniform,

> as that makes reading these things easier if the format stays the

> same all the time, so I've gone forward and just did the conversion

>

> make dtbs_check did not complain about the schema it seems but I

> did end up with an error later on:

>

> FATAL ERROR: Unknown output format "yaml"

> make[2]: *** [scripts/Makefile.lib:313: arch/arm/boot/dts/rk3036-evb.dt.yaml] Fehler 1


You need libyaml and its headers installed so dtc can output yaml, but
that's not needed for checking the schema against the meta-schema.

> But I guess I did not mess up the schema yet.

>

> So does it look ok that way?


Yes, but one comment...

> +      - description: Firefly Firefly-RK3288

> +        items:

> +          - const: firefly,firefly-rk3288

> +          - const: rockchip,rk3288

> +

> +      - description: Firefly Firefly-RK3288 (beta board)

> +        items:

> +          - const: firefly,firefly-rk3288-beta

> +          - const: rockchip,rk3288

> +

> +      - description: Firefly Firefly-RK3288 Reload


Seems like combining these 3 (or first 2?) would make sense if this is
just revs of the same board.

But either way is fine.

> +        items:

> +          - const: firefly,firefly-rk3288-reload

> +          - const: rockchip,rk3288

Patch

diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt
deleted file mode 100644
index 0cc71236d639..000000000000
--- a/Documentation/devicetree/bindings/arm/rockchip.txt
+++ /dev/null
@@ -1,240 +0,0 @@ 
-Rockchip platforms device tree bindings
----------------------------------------
-
-- 96boards RK3399 Ficus (ROCK960 Enterprise Edition)
-    Required root node properties:
-      - compatible = "vamrs,ficus", "rockchip,rk3399";
-
-- 96boards RK3399 Rock960 (ROCK960 Consumer Edition)
-    Required root node properties:
-      - compatible = "vamrs,rock960", "rockchip,rk3399";
-
-- Amarula Vyasa RK3288 board
-    Required root node properties:
-      - compatible = "amarula,vyasa-rk3288", "rockchip,rk3288";
-
-- Asus Tinker board
-    Required root node properties:
-      - compatible = "asus,rk3288-tinker", "rockchip,rk3288";
-
-- Asus Tinker board S
-    Required root node properties:
-      - compatible = "asus,rk3288-tinker-s", "rockchip,rk3288";
-
-- Kylin RK3036 board:
-    Required root node properties:
-      - compatible = "rockchip,kylin-rk3036", "rockchip,rk3036";
-
-- MarsBoard RK3066 board:
-    Required root node properties:
-      - compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a";
-
-- bq Curie 2 tablet:
-    Required root node properties:
-      - compatible = "mundoreader,bq-curie2", "rockchip,rk3066a";
-
-- ChipSPARK Rayeager PX2 board:
-    Required root node properties:
-      - compatible = "chipspark,rayeager-px2", "rockchip,rk3066a";
-
-- Radxa Rock board:
-    Required root node properties:
-      - compatible = "radxa,rock", "rockchip,rk3188";
-
-- Radxa Rock2 Square board:
-    Required root node properties:
-      - compatible = "radxa,rock2-square", "rockchip,rk3288";
-
-- Rikomagic MK808 v1 board:
-    Required root node properties:
-      - compatible = "rikomagic,mk808", "rockchip,rk3066a";
-
-- Firefly Firefly-RK3288 board:
-    Required root node properties:
-      - compatible = "firefly,firefly-rk3288", "rockchip,rk3288";
-    or
-      - compatible = "firefly,firefly-rk3288-beta", "rockchip,rk3288";
-
-- Firefly Firefly-RK3288 Reload board:
-    Required root node properties:
-      - compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288";
-
-- Firefly Firefly-RK3399 board:
-    Required root node properties:
-      - compatible = "firefly,firefly-rk3399", "rockchip,rk3399";
-
-- Firefly roc-rk3328-cc board:
-    Required root node properties:
-      - compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328";
-
-- Firefly ROC-RK3399-PC board:
-    Required root node properties:
-      - compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
-
-- ChipSPARK PopMetal-RK3288 board:
-    Required root node properties:
-      - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
-
-- Netxeon R89 board:
-    Required root node properties:
-      - compatible = "netxeon,r89", "rockchip,rk3288";
-
-- GeekBuying GeekBox:
-    Required root node properties:
-      - compatible = "geekbuying,geekbox", "rockchip,rk3368";
-
-- Google Bob (Asus Chromebook Flip C101PA):
-    Required root node properties:
-	compatible = "google,bob-rev13", "google,bob-rev12",
-		     "google,bob-rev11", "google,bob-rev10",
-		     "google,bob-rev9", "google,bob-rev8",
-		     "google,bob-rev7", "google,bob-rev6",
-		     "google,bob-rev5", "google,bob-rev4",
-		     "google,bob", "google,gru", "rockchip,rk3399";
-
-- Google Brain (dev-board):
-    Required root node properties:
-      - compatible = "google,veyron-brain-rev0", "google,veyron-brain",
-		     "google,veyron", "rockchip,rk3288";
-
-- Google Gru (dev-board):
-    Required root node properties:
-      - compatible = "google,gru-rev15", "google,gru-rev14",
-		     "google,gru-rev13", "google,gru-rev12",
-		     "google,gru-rev11", "google,gru-rev10",
-		     "google,gru-rev9", "google,gru-rev8",
-		     "google,gru-rev7", "google,gru-rev6",
-		     "google,gru-rev5", "google,gru-rev4",
-		     "google,gru-rev3", "google,gru-rev2",
-		     "google,gru", "rockchip,rk3399";
-
-- Google Jaq (Haier Chromebook 11 and more):
-    Required root node properties:
-      - compatible = "google,veyron-jaq-rev5", "google,veyron-jaq-rev4",
-		     "google,veyron-jaq-rev3", "google,veyron-jaq-rev2",
-		     "google,veyron-jaq-rev1", "google,veyron-jaq",
-		     "google,veyron", "rockchip,rk3288";
-
-- Google Jerry (Hisense Chromebook C11 and more):
-    Required root node properties:
-      - compatible = "google,veyron-jerry-rev7", "google,veyron-jerry-rev6",
-		     "google,veyron-jerry-rev5", "google,veyron-jerry-rev4",
-		     "google,veyron-jerry-rev3", "google,veyron-jerry",
-		     "google,veyron", "rockchip,rk3288";
-
-- Google Kevin (Samsung Chromebook Plus):
-    Required root node properties:
-      - compatible = "google,kevin-rev15", "google,kevin-rev14",
-		     "google,kevin-rev13", "google,kevin-rev12",
-		     "google,kevin-rev11", "google,kevin-rev10",
-		     "google,kevin-rev9", "google,kevin-rev8",
-		     "google,kevin-rev7", "google,kevin-rev6",
-		     "google,kevin", "google,gru", "rockchip,rk3399";
-
-- Google Mickey (Asus Chromebit CS10):
-    Required root node properties:
-      - compatible = "google,veyron-mickey-rev8", "google,veyron-mickey-rev7",
-		     "google,veyron-mickey-rev6", "google,veyron-mickey-rev5",
-		     "google,veyron-mickey-rev4", "google,veyron-mickey-rev3",
-		     "google,veyron-mickey-rev2", "google,veyron-mickey-rev1",
-		     "google,veyron-mickey-rev0", "google,veyron-mickey",
-		     "google,veyron", "rockchip,rk3288";
-
-- Google Minnie (Asus Chromebook Flip C100P):
-    Required root node properties:
-      - compatible = "google,veyron-minnie-rev4", "google,veyron-minnie-rev3",
-		     "google,veyron-minnie-rev2", "google,veyron-minnie-rev1",
-		     "google,veyron-minnie-rev0", "google,veyron-minnie",
-		     "google,veyron", "rockchip,rk3288";
-
-- Google Pinky (dev-board):
-    Required root node properties:
-      - compatible = "google,veyron-pinky-rev2", "google,veyron-pinky",
-		     "google,veyron", "rockchip,rk3288";
-
-- Google Speedy (Asus C201 Chromebook):
-    Required root node properties:
-      - compatible = "google,veyron-speedy-rev9", "google,veyron-speedy-rev8",
-		     "google,veyron-speedy-rev7", "google,veyron-speedy-rev6",
-		     "google,veyron-speedy-rev5", "google,veyron-speedy-rev4",
-		     "google,veyron-speedy-rev3", "google,veyron-speedy-rev2",
-		     "google,veyron-speedy", "google,veyron", "rockchip,rk3288";
-
-- mqmaker MiQi:
-    Required root node properties:
-      - compatible = "mqmaker,miqi", "rockchip,rk3288";
-
-- Phytec phyCORE-RK3288: Rapid Development Kit
-    Required root node properties:
-     - compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";
-
-- Pine64 Rock64 board:
-    Required root node properties:
-    - compatible = "pine64,rock64", "rockchip,rk3328";
-
-- Pine64 RockPro64 board:
-    Required root node properties:
-    - compatible = "pine64,rockpro64", "rockchip,rk3399";
-
-- Rockchip PX3 Evaluation board:
-    Required root node properties:
-      - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188";
-
-- Rockchip PX5 Evaluation board:
-    Required root node properties:
-      - compatible = "rockchip,px5-evb", "rockchip,px5", "rockchip,rk3368";
-
-- Rockchip PX30 Evaluation board:
-    Required root node properties:
-      - compatible = "rockchip,px30-evb", "rockchip,px30";
-
-- Rockchip RV1108 Evaluation board
-    Required root node properties:
-      - compatible = "rockchip,rv1108-evb", "rockchip,rv1108";
-
-- Rockchip RK3368 evb:
-    Required root node properties:
-      - compatible = "rockchip,rk3368-evb-act8846", "rockchip,rk3368";
-
-- Rockchip R88 board:
-    Required root node properties:
-      - compatible = "rockchip,r88", "rockchip,rk3368";
-
-- Rockchip RK3228 Evaluation board:
-    Required root node properties:
-     - compatible = "rockchip,rk3228-evb", "rockchip,rk3228";
-
-- Rockchip RK3229 Evaluation board:
-     - compatible = "rockchip,rk3229-evb", "rockchip,rk3229";
-
-- Rockchip RK3288 Fennec board:
-    Required root node properties:
-     - compatible = "rockchip,rk3288-fennec", "rockchip,rk3288";
-
-- Rockchip RK3328 evb:
-    Required root node properties:
-      - compatible = "rockchip,rk3328-evb", "rockchip,rk3328";
-
-- Rockchip RK3399 evb:
-    Required root node properties:
-      - compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
-
-- Rockchip RK3399 Sapphire board standalone:
-    Required root node properties:
-      - compatible = "rockchip,rk3399-sapphire", "rockchip,rk3399";
-
-- Rockchip RK3399 Sapphire Excavator board:
-    Required root node properties:
-      - compatible = "rockchip,rk3399-sapphire-excavator", "rockchip,rk3399";
-
-- Theobroma Systems RK3368-uQ7 Haikou Baseboard:
-    Required root node properties:
-      - compatible = "tsd,rk3368-uq7-haikou", "rockchip,rk3368";
-
-- Theobroma Systems RK3399-Q7 Haikou Baseboard:
-    Required root node properties:
-      - compatible = "tsd,rk3399-q7-haikou", "rockchip,rk3399";
-
-- Tronsmart Orion R68 Meta
-    Required root node properties:
-      - compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368";
diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
new file mode 100644
index 000000000000..3d30ec9adcd3
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
@@ -0,0 +1,251 @@ 
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/rockchip.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip platforms device tree bindings
+
+maintainers:
+  - Beniamino Galvani <b.galvani@gmail.com>
+  - Heiko Stuebner <heiko@sntech.de>
+
+properties:
+  $nodename:
+    const: '/'
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - amarula,vyasa-rk3288
+              - asus,rk3288-tinker
+              - asus,rk3288-tinker-s
+              - radxa,rock2-square
+              - chipspark,popmetal-rk3288
+              - netxeon,r89
+              - firefly,firefly-rk3288
+              - firefly,firefly-rk3288-beta
+              - firefly,firefly-rk3288-reload
+              - mqmaker,miqi
+              - rockchip,rk3288-fennec
+          - const: rockchip,rk3288
+
+      - description: Phytec phyCORE-RK3288 Rapid Development Kit
+        items:
+          - const: phytec,rk3288-pcm-947
+          - const: phytec,rk3288-phycore-som
+          - const: rockchip,rk3288
+
+      - description: Google Mickey (Asus Chromebit CS10)
+        items:
+          - const: google,veyron-mickey-rev8
+          - const: google,veyron-mickey-rev7
+          - const: google,veyron-mickey-rev6
+          - const: google,veyron-mickey-rev5
+          - const: google,veyron-mickey-rev4
+          - const: google,veyron-mickey-rev3
+          - const: google,veyron-mickey-rev2
+          - const: google,veyron-mickey-rev1
+          - const: google,veyron-mickey-rev0
+          - const: google,veyron-mickey
+          - const: google,veyron
+          - const: rockchip,rk3288
+
+      - description: Google Minnie (Asus Chromebook Flip C100P)
+        items:
+          - const: google,veyron-minnie-rev4
+          - const: google,veyron-minnie-rev3
+          - const: google,veyron-minnie-rev2
+          - const: google,veyron-minnie-rev1
+          - const: google,veyron-minnie-rev0
+          - const: google,veyron-minnie
+          - const: google,veyron
+          - const: rockchip,rk3288
+
+      - description: Google Pinky (dev-board)
+        items:
+          - const: google,veyron-pinky-rev2
+          - const: google,veyron-pinky
+          - const: google,veyron
+          - const: rockchip,rk3288
+
+      - description: Google Speedy (Asus C201 Chromebook)
+        items:
+          - const: google,veyron-speedy-rev9
+          - const: google,veyron-speedy-rev8
+          - const: google,veyron-speedy-rev7
+          - const: google,veyron-speedy-rev6
+          - const: google,veyron-speedy-rev5
+          - const: google,veyron-speedy-rev4
+          - const: google,veyron-speedy-rev3
+          - const: google,veyron-speedy-rev2
+          - const: google,veyron-speedy
+          - const: google,veyron
+          - const: rockchip,rk3288
+
+      - description: Google Jaq (Haier Chromebook 11 and more)
+        items:
+          - const: google,veyron-jaq-rev5
+          - const: google,veyron-jaq-rev4
+          - const: google,veyron-jaq-rev3
+          - const: google,veyron-jaq-rev2
+          - const: google,veyron-jaq-rev1
+          - const: google,veyron-jaq
+          - const: google,veyron
+          - const: rockchip,rk3288
+
+      - description: Google Jerry (Hisense Chromebook C11 and more)
+        items:
+          - const: google,veyron-jerry-rev7
+          - const: google,veyron-jerry-rev6
+          - const: google,veyron-jerry-rev5
+          - const: google,veyron-jerry-rev4
+          - const: google,veyron-jerry-rev3
+          - const: google,veyron-jerry
+          - const: google,veyron
+          - const: rockchip,rk3288
+
+      - description: Google Brain (dev-board)
+        items:
+          - const: google,veyron-brain-rev0
+          - const: google,veyron-brain
+          - const: google,veyron
+          - const: rockchip,rk3288
+
+      - items:
+          - enum:
+              - rockchip,kylin-rk3036
+          - const: rockchip,rk3036
+
+      - items:
+          - enum:
+              - haoyu,marsboard-rk3066
+              - mundoreader,bq-curie2
+              - chipspark,rayeager-px2
+              - rikomagic,mk80
+          - const: rockchip,rk3066a
+
+      - items:
+          - enum:
+              - radxa,rock
+          - const: rockchip,rk3188
+
+      - items:
+          - const: rockchip,px3-evb
+          - const: rockchip,px3
+          - const: rockchip,rk3188
+
+      - items:
+          - enum:
+              - firefly,roc-rk3328-cc
+              - pine64,rock64
+              - rockchip,rk3328-evb
+          - const: rockchip,rk3328
+
+      - items:
+          - enum:
+              - geekbuying,geekbox
+              - rockchip,rk3368-evb-act8846
+              - rockchip,r88
+              - tsd,rk3368-uq7-haikou
+              - tronsmart,orion-r68-meta
+          - const: rockchip,rk3368
+
+      - items:
+          - enum:
+              - geekbuying,geekbox
+              - rockchip,rk3368-evb-act8846
+              - rockchip,r88
+              - tsd,rk3368-uq7-haikou
+              - tronsmart,orion-r68-meta
+          - const: rockchip,rk3368
+
+      - items:
+          - const: rockchip,px5-evb
+          - const: rockchip,px5
+          - const: rockchip,rk3368
+
+      - items:
+          - enum:
+              - firefly,firefly-rk3399
+              - firefly,roc-rk3399-pc
+              - pine64,rockpro64
+              - rockchip,rk3399-evb
+              - rockchip,rk3399-sapphire
+              - rockchip,rk3399-sapphire-excavator
+              - tsd,rk3399-q7-haikou
+              - vamrs,ficus
+              - vamrs,rock960 # 96boards RK3399 Rock960 (ROCK960 Consumer Edition)
+          - const: rockchip,rk3399
+
+      - description: Google Bob (Asus Chromebook Flip C101PA)
+        items:
+          - const: google,bob-rev13
+          - const: google,bob-rev12
+          - const: google,bob-rev11
+          - const: google,bob-rev10
+          - const: google,bob-rev9
+          - const: google,bob-rev8
+          - const: google,bob-rev7
+          - const: google,bob-rev6
+          - const: google,bob-rev5
+          - const: google,bob-rev4
+          - const: google,bob
+          - const: google,gru
+          - const: rockchip,rk3399
+
+      - description: Google Gru (dev-board)
+        items:
+          - const: google,gru-rev15
+          - const: google,gru-rev14
+          - const: google,gru-rev13
+          - const: google,gru-rev12
+          - const: google,gru-rev11
+          - const: google,gru-rev10
+          - const: google,gru-rev9
+          - const: google,gru-rev8
+          - const: google,gru-rev7
+          - const: google,gru-rev6
+          - const: google,gru-rev5
+          - const: google,gru-rev4
+          - const: google,gru-rev3
+          - const: google,gru-rev2
+          - const: google,gru
+          - const: rockchip,rk3399
+
+      - description: Google Kevin (Samsung Chromebook Plus)
+        items:
+          - const: google,kevin-rev15
+          - const: google,kevin-rev14
+          - const: google,kevin-rev13
+          - const: google,kevin-rev12
+          - const: google,kevin-rev11
+          - const: google,kevin-rev10
+          - const: google,kevin-rev9
+          - const: google,kevin-rev8
+          - const: google,kevin-rev7
+          - const: google,kevin-rev6
+          - const: google,kevin
+          - const: google,gru
+          - const: rockchip,rk3399
+
+      - items:
+          - enum:
+              - rockchip,px30-evb
+          - const: rockchip,px30
+
+      - items:
+          - enum:
+              - rockchip,rv1108-evb
+          - const: rockchip,rv1108
+
+      - items:
+          - enum:
+              - rockchip,rk3228-evb
+          - const: rockchip,rk3228
+
+      - items:
+          - enum:
+              - rockchip,rk3229-evb
+          - const: rockchip,rk3229
+...