diff mbox series

[28/36] dt-bindings: arm: Convert Rockchip board/soc bindings to json-schema

Message ID 20181005165848.3474-29-robh@kernel.org
State Superseded
Headers show
Series Devicetree schema | expand

Commit Message

Rob Herring Oct. 5, 2018, 4:58 p.m. UTC
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      | 220 ----------------
 .../devicetree/bindings/arm/rockchip.yaml     | 242 ++++++++++++++++++
 2 files changed, 242 insertions(+), 220 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/rockchip.txt
 create mode 100644 Documentation/devicetree/bindings/arm/rockchip.yaml

-- 
2.17.1

Comments

Heiko Stuebner Oct. 8, 2018, 9:45 a.m. UTC | #1
Hi Rob,

either I'm misunderstanding that, or something did go a bit wrong during
the conversion, as pointed out below:

Am Freitag, 5. Oktober 2018, 18:58:40 CEST 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>

> ---

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

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

>  2 files changed, 242 insertions(+), 220 deletions(-)

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

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

> 




> +properties:

> +  $nodename:

> +    const: '/'

> +  compatible:

> +    oneOf:

> +      - items:

> +          - enum:

> +              - amarula,vyasa-rk3288

> +              - asus,rk3288-tinker

> +              - 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


These are very much distinct boards, so shouldn't they also get
individual entries including their existing description like the phytec
or google boards below?

Similarly why is it an enum for those, while the Google boards get a
const for each compatible string?


Most non-google boards below also lost their description and where lumped
together into combined entries. Was that intentional?


Thanks
Heiko

> +

> +      - 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

> +              - rockchip,rk3399-evb

> +              - rockchip,rk3399-sapphire

> +              - rockchip,rk3399-sapphire-excavator

> +              - tsd,rk3399-q7-haikou

> +              - vamrs,ficus

> +          - 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,rv1108-evb

> +          - const: rockchip,rv1108

> +

> +      - items:

> +          - enum:

> +              - rockchip,rk3228-evb

> +          - const: rockchip,rk3228

> +

> +      - items:

> +          - enum:

> +              - rockchip,rk3229-evb

> +          - const: rockchip,rk3229

> +...

>
Rob Herring Oct. 8, 2018, 1:46 p.m. UTC | #2
On Mon, Oct 8, 2018 at 4:45 AM Heiko Stuebner <heiko@sntech.de> wrote:
>

> Hi Rob,

>

> either I'm misunderstanding that, or something did go a bit wrong during

> the conversion, as pointed out below:

>

> Am Freitag, 5. Oktober 2018, 18:58:40 CEST 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>

> > ---

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

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

> >  2 files changed, 242 insertions(+), 220 deletions(-)

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

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

> >

>

>

>

> > +properties:

> > +  $nodename:

> > +    const: '/'

> > +  compatible:

> > +    oneOf:

> > +      - items:

> > +          - enum:

> > +              - amarula,vyasa-rk3288

> > +              - asus,rk3288-tinker

> > +              - 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

>

> These are very much distinct boards, so shouldn't they also get

> individual entries including their existing description like the phytec

> or google boards below?


It is grouped by SoC compatible and # of compatible strings. So this
one is all the cases that have 2 compatible strings. It is simply
saying the 1st compatible string must be one of the enums and the 2nd
compatible string must be "rockchip,rk3288".

>

> Similarly why is it an enum for those, while the Google boards get a

> const for each compatible string?


Because each Google board is a fixed list of strings.

> Most non-google boards below also lost their description and where lumped

> together into combined entries. Was that intentional?


If the description was just repeating the compatible string with
spaces and capitalization, then yes it was intentional. If your
description matches what you have for 'model', then I'd prefer to see
model added as a property schema.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt
deleted file mode 100644
index acfd3c773dd0..000000000000
--- a/Documentation/devicetree/bindings/arm/rockchip.txt
+++ /dev/null
@@ -1,220 +0,0 @@ 
-Rockchip platforms device tree bindings
----------------------------------------
-
-- 96boards RK3399 Ficus (ROCK960 Enterprise Edition)
-    Required root node properties:
-      - compatible = "vamrs,ficus", "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";
-
-- 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";
-
-- 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";
-
-- 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 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..4b4b892e5af7
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
@@ -0,0 +1,242 @@ 
+# SPDX-License-Identifier: None
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bindings/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
+              - 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
+              - rockchip,rk3399-evb
+              - rockchip,rk3399-sapphire
+              - rockchip,rk3399-sapphire-excavator
+              - tsd,rk3399-q7-haikou
+              - vamrs,ficus
+          - 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,rv1108-evb
+          - const: rockchip,rv1108
+
+      - items:
+          - enum:
+              - rockchip,rk3228-evb
+          - const: rockchip,rk3228
+
+      - items:
+          - enum:
+              - rockchip,rk3229-evb
+          - const: rockchip,rk3229
+...