code:
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/fsl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale i.MX Platforms

maintainers:
  - Shawn Guo <shawnguo@kernel.org>
  - Li Yang <leoyang.li@nxp.com>

properties:
  $nodename:
    const: '/'
  compatible:
    oneOf:
      - description: i.MX1 based Boards
        items:
          - enum:
              - armadeus,imx1-apf9328
              - fsl,imx1ads
          - const: fsl,imx1

      - description: i.MX23 based Boards
        items:
          - enum:
              - fsl,imx23-evk
              - olimex,imx23-olinuxino
          - const: fsl,imx23

      - description: i.MX25 Product Development Kit
        items:
          - enum:
              - fsl,imx25-pdk
              - karo,imx25-tx25
          - const: fsl,imx25

      - description: i.MX25 Eukrea CPUIMX25 Boards
        items:
          - enum:
              - eukrea,mbimxsd25-baseboard   # Eukrea MBIMXSD25
          - const: eukrea,cpuimx25
          - const: fsl,imx25

      - description: i.MX25 Eukrea MBIMXSD25 Boards
        items:
          - enum:
              - eukrea,mbimxsd25-baseboard-cmo-qvga
              - eukrea,mbimxsd25-baseboard-dvi-svga
              - eukrea,mbimxsd25-baseboard-dvi-vga
          - const: eukrea,mbimxsd25-baseboard
          - const: eukrea,cpuimx25
          - const: fsl,imx25

      - description: i.MX27 based Boards
        items:
          - enum:
              - armadeus,imx27-apf27      # APF27 SoM
              - fsl,imx27-pdk
          - const: fsl,imx27

      - description: i.MX27 APF27 SoM Board
        items:
          - const: armadeus,imx27-apf27dev
          - const: armadeus,imx27-apf27
          - const: fsl,imx27

      - description: i.MX27 Eukrea CPUIMX27 SoM Board
        items:
          - const: eukrea,mbimxsd27-baseboard
          - const: eukrea,cpuimx27
          - const: fsl,imx27

      - description: i.MX27 Phytec pca100 Board
        items:
          - const: phytec,imx27-pca100-rdk
          - const: phytec,imx27-pca100
          - const: fsl,imx27

      - description: i.MX27 Phytec pcm970 Board
        items:
          - const: phytec,imx27-pcm970
          - const: phytec,imx27-pcm038
          - const: fsl,imx27

      - description: i.MX28 based Boards
        items:
          - enum:
              - armadeus,imx28-apf28      # APF28 SoM
              - armadeus,imx28-apf28dev   # APF28 SoM on APF28Dev board
              - fsl,imx28-evk
              - i2se,duckbill
              - i2se,duckbill-2
              - technologic,imx28-ts4600
          - const: fsl,imx28
      - description: i.MX28 Duckbill 2 based Boards
        items:
          - enum:
              - i2se,duckbill-2-485
              - i2se,duckbill-2-enocean
              - i2se,duckbill-2-spi
          - const: i2se,duckbill-2
          - const: fsl,imx28

      - description: i.MX31 based Boards
        items:
          - enum:
              - buglabs,imx31-bug
              - logicpd,imx31-lite
          - const: fsl,imx31

      - description: i.MX35 based Boards
        items:
          - enum:
              - fsl,imx35-pdk
          - const: fsl,imx35

      - description: i.MX35 Eukrea CPUIMX35 Board
        items:
          - const: eukrea,mbimxsd35-baseboard
          - const: eukrea,cpuimx35
          - const: fsl,imx35

      - description: i.MX50 based Boards
        items:
          - enum:
              - fsl,imx50-evk
              - kobo,aura
          - const: fsl,imx50

      - description: i.MX51 based Boards
        items:
          - enum:
              - armadeus,imx51-apf51      # Armadeus Systems APF51 module
              - fsl,imx51-babbage
              - technologic,imx51-ts4800
              - zii,imx51-scu3-esb
              - zii,imx51-scu2-mezz
              - zii,imx51-rdu1
          - const: fsl,imx51

      - description: i.MX51 based Armadeus Systems APF51Dev Board
        items:
          - const: armadeus,imx51-apf51dev
          - const: armadeus,imx51-apf51
          - const: fsl,imx51

      - description: i.MX51 based Digi ConnectCore CC(W)-MX51 JSK Board
        items:
          - const: digi,connectcore-ccxmx51-jsk
          - const: digi,connectcore-ccxmx51-som
          - const: fsl,imx51

      - description: i.MX51 based Eukrea CPUIMX51 Board
        items:
          - const: eukrea,mbimxsd51
          - const: eukrea,cpuimx51
          - const: fsl,imx51

      - description: i.MX53 based Boards
        items:
          - enum:
              - bhf,cx9020
              - fsl,imx53-ard
              - fsl,imx53-evk
              - fsl,imx53-qsb
              - fsl,imx53-qsrb                # Freescale i.MX53 Quick Start-R Board
              - fsl,imx53-smd
              - ge,imx53-cpuvo                # General Electric CS ONE
              - inversepath,imx53-usbarmory   # Inverse Path USB armory
              - karo,tx53                     # Ka-Ro electronics TX53 module
              - kiebackpeter,imx53-ddc        # K+P imx53 DDC
              - kiebackpeter,imx53-hsc        # K+P imx53 HSC
              - menlo,m53menlo                # i.MX53 Menlo board
              - voipac,imx53-dmm-668          # Voipac i.MX53 X53-DMM-668
          - const: fsl,imx53

      - description: i.MX53 based Aries/DENX M53EVK Board
        items:
          - const: aries,imx53-m53evk
          - const: denx,imx53-m53evk
          - const: fsl,imx53

      - description: i.MX53 based TQ MBa53 Board
        items:
          - const: tq,mba53
          - const: tq,tqma53
          - const: fsl,imx53

      - description: i.MX6Q based Boards
        items:
          - enum:
              - auvidea,h100              # Auvidea H100
              - bosch,imx6q-acc           # Bosch ACC i.MX6 Dual
              - boundary,imx6q-nitrogen6_max
              - boundary,imx6q-nitrogen6_som2
              - boundary,imx6q-nitrogen6x
              - compulab,cm-fx6           # CompuLab CM-FX6
              - dmo,imx6q-edmqmx6         # Data Modul eDM-QMX6 Board
              - ds,imx6q-sbc              # Da Sheng COM-9XX Modules
              - embest,imx6q-marsboard    # Embest MarS Board i.MX6Dual
              - emtrion,emcon-mx6         # emCON-MX6D or emCON-MX6Q SoM
              - emtrion,emcon-mx6-avari   # emCON-MX6D or emCON-MX6Q SoM on Avari Base
              - engicam,imx6-icore        # Engicam i.CoreM6 Starter Kit
              - engicam,imx6-icore-rqs    # Engicam i.CoreM6 RQS Starter Kit
              - fsl,imx6q-arm2
              - fsl,imx6q-sabreauto
              - fsl,imx6q-sabrelite
              - fsl,imx6q-sabresd
              - karo,imx6q-tx6q           # Ka-Ro electronics TX6Q Modules
              - kiebackpeter,imx6q-tpc    # K+P i.MX6 Quad TPC Board
              - kontron,imx6q-samx6i      # Kontron i.MX6 Dual/Quad SMARC Module
              - kosagi,imx6q-novena       # Kosagi Novena Dual/Quad
              - kvg,vicut1q               # Kverneland UT1Q board
              - logicpd,imx6q-logicpd
              - lwn,display5              # Liebherr Display5 i.MX6 Quad Board
              - lwn,mccmon6               # Liebherr Monitor6 i.MX6 Quad Board
              - nutsboard,imx6q-pistachio # NutsBoard i.MX6 Quad Pistachio
              - microsys,sbc6x            # MicroSys sbc6x board
              - poslab,imx6q-savageboard  # Poslab SavageBoard Quad
              - prt,prti6q                # Protonic PRTI6Q board
              - prt,prtwd2                # Protonic WD2 board
              - rex,imx6q-rex-pro         # Rex Pro i.MX6 Quad Board
              - skov,imx6q-skov-revc-lt2  # SKOV IMX6 CPU QuadCore lt2
              - skov,imx6q-skov-revc-lt6  # SKOV IMX6 CPU QuadCore lt6
              - skov,imx6q-skov-reve-mi1010ait-1cp1 # SKOV IMX6 CPU QuadCore mi1010ait-1cp1
              - solidrun,cubox-i/q        # SolidRun Cubox-i Dual/Quad
              - solidrun,hummingboard/q
              - solidrun,hummingboard2/q
              - solidrun,solidsense/q     # SolidRun SolidSense Dual/Quad
              - tbs,imx6q-tbs2910         # TBS2910 Matrix ARM mini PC
              - technexion,imx6q-pico-dwarf   # TechNexion i.MX6Q Pico-Dwarf
              - technexion,imx6q-pico-hobbit  # TechNexion i.MX6Q Pico-Hobbit
              - technexion,imx6q-pico-nymph   # TechNexion i.MX6Q Pico-Nymph
              - technexion,imx6q-pico-pi      # TechNexion i.MX6Q Pico-Pi
              - technologic,imx6q-ts4900
              - technologic,imx6q-ts7970
              - toradex,apalis_imx6q      # Apalis iMX6 Modules
              - udoo,imx6q-udoo           # Udoo i.MX6 Quad Board
              - uniwest,imx6q-evi         # Uniwest Evi
              - variscite,dt6customboard
              - wand,imx6q-wandboard      # Wandboard i.MX6 Quad Board
              - ysoft,imx6q-yapp4-crux    # i.MX6 Quad Y Soft IOTA Crux board
              - zealz,imx6q-gk802         # Zealz GK802
              - zii,imx6q-zii-rdu2        # ZII RDU2 Board
          - const: fsl,imx6q

      - description: i.MX6Q Advantech DMS-BA16 Boards
        items:
          - enum:
              - advantech,imx6q-dms-ba16  # Advantech DMS-BA16
              - ge,imx6q-b450v3           # General Electric B450v3
              - ge,imx6q-b650v3           # General Electric B650v3
              - ge,imx6q-b850v3           # General Electric B850v3
          - const: advantech,imx6q-ba16
          - const: fsl,imx6q

      - description: i.MX6Q Armadeus APF6 Boards
        items:
          - const: armadeus,imx6q-apf6dev
          - const: armadeus,imx6q-apf6
          - const: fsl,imx6q

      - description: i.MX6Q CompuLab Utilite Pro Board
        items:
          - const: compulab,utilite-pro
          - const: compulab,cm-fx6
          - const: fsl,imx6q

      - description: i.MX6Q DFI FS700-M60-6QD Board
        items:
          - const: dfi,fs700-m60-6qd
          - const: dfi,fs700e-m60
          - const: fsl,imx6q

      - description: i.MX6Q DHCOM Premium Developer Kit Board
        items:
          - const: dh,imx6q-dhcom-pdk2
          - const: dh,imx6q-dhcom-som
          - const: fsl,imx6q

      - description: i.MX6Q Gateworks Ventana Boards
        items:
          - enum:
              - gw,imx6q-gw51xx
              - gw,imx6q-gw52xx
              - gw,imx6q-gw53xx
              - gw,imx6q-gw5400-a
              - gw,imx6q-gw54xx
              - gw,imx6q-gw551x
              - gw,imx6q-gw552x
              - gw,imx6q-gw553x
              - gw,imx6q-gw560x
              - gw,imx6q-gw5903
              - gw,imx6q-gw5904
              - gw,imx6q-gw5907
              - gw,imx6q-gw5910
              - gw,imx6q-gw5912
              - gw,imx6q-gw5913
          - const: gw,ventana
          - const: fsl,imx6q

      - description: i.MX6Q PHYTEC phyBOARD-Mira
        items:
          - enum:
              - phytec,imx6q-pbac06-emmc  # PHYTEC phyBOARD-Mira eMMC RDK
              - phytec,imx6q-pbac06-nand  # PHYTEC phyBOARD-Mira NAND RDK
          - const: phytec,imx6q-pbac06    # PHYTEC phyBOARD-Mira
          - const: phytec,imx6qdl-pcm058  # PHYTEC phyCORE-i.MX6
          - const: fsl,imx6q

      - description: i.MX6Q PHYTEC phyFLEX-i.MX6
        items:
          - const: phytec,imx6q-pbab01    # PHYTEC phyFLEX carrier board
          - const: phytec,imx6q-pfla02    # PHYTEC phyFLEX-i.MX6 Quad
          - const: fsl,imx6q

      - description: i.MX6Q Boards with Toradex Apalis iMX6Q/D Modules
        items:
          - enum:
              - toradex,apalis_imx6q-ixora      # Apalis iMX6Q/D Module on Ixora Carrier Board
              - toradex,apalis_imx6q-ixora-v1.1 # Apalis iMX6Q/D Module on Ixora V1.1 Carrier Board
              - toradex,apalis_imx6q-ixora-v1.2 # Apalis iMX6Q/D Module on Ixora V1.2 Carrier Board
              - toradex,apalis_imx6q-eval       # Apalis iMX6Q/D Module on Apalis Evaluation Board
          - const: toradex,apalis_imx6q
          - const: fsl,imx6q

      - description: TQ-Systems TQMa6Q SoM (variant A) on MBa6x
        items:
          - const: tq,imx6q-mba6x-a
          - const: tq,mba6a               # Expected by bootloader, to be removed in the future
          - const: tq,imx6q-tqma6q-a
          - const: fsl,imx6q

      - description: TQ-Systems TQMa6Q SoM (variant B) on MBa6x
        items:
          - const: tq,imx6q-mba6x-b
          - const: tq,mba6b               # Expected by bootloader, to be removed in the future
          - const: tq,imx6q-tqma6q-b
          - const: fsl,imx6q

      - description: i.MX6QP based Boards
        items:
          - enum:
              - boundary,imx6qp-nitrogen6_max
              - boundary,imx6qp-nitrogen6_som2
              - fsl,imx6qp-sabreauto      # i.MX6 Quad Plus SABRE Automotive Board
              - fsl,imx6qp-sabresd        # i.MX6 Quad Plus SABRE Smart Device Board
              - karo,imx6qp-tx6qp         # Ka-Ro electronics TX6QP-8037 Module
              - kvg,vicutp                # Kverneland UT1P board
              - prt,prtwd3                # Protonic WD3 board
              - wand,imx6qp-wandboard     # Wandboard i.MX6 QuadPlus Board
              - ysoft,imx6qp-yapp4-crux-plus  # i.MX6 Quad Plus Y Soft IOTA Crux+ board
              - zii,imx6qp-zii-rdu2       # ZII RDU2+ Board
          - const: fsl,imx6qp

      - description: i.MX6QP PHYTEC phyBOARD-Mira
        items:
          - const: phytec,imx6qp-pbac06-nand
          - const: phytec,imx6qp-pbac06   # PHYTEC phyBOARD-Mira
          - const: phytec,imx6qdl-pcm058  # PHYTEC phyCORE-i.MX6
          - const: fsl,imx6qp

      - description: TQ-Systems TQMa6QP SoM on MBa6x
        items:
          - const: tq,imx6qp-mba6x-b
          - const: tq,mba6b               # Expected by bootloader, to be removed in the future
          - const: tq,imx6qp-tqma6qp-b
          - const: fsl,imx6qp

      - description: i.MX6DL based Boards
        items:
          - enum:
              - abb,aristainetos-imx6dl-4     # aristainetos i.MX6 Dual Lite Board 4
              - abb,aristainetos-imx6dl-7     # aristainetos i.MX6 Dual Lite Board 7
              - abb,aristainetos2-imx6dl-4    # aristainetos2 i.MX6 Dual Lite Board 4
              - abb,aristainetos2-imx6dl-7    # aristainetos2 i.MX6 Dual Lite Board 7
              - alt,alti6p                    # Altesco I6P Board
              - boundary,imx6dl-nit6xlite     # Boundary Devices Nitrogen6 Lite
              - boundary,imx6dl-nitrogen6x    # Boundary Devices Nitrogen6x
              - bticino,imx6dl-mamoj      # BTicino i.MX6DL Mamoj
              - eckelmann,imx6dl-ci4x10
              - emtrion,emcon-mx6         # emCON-MX6S or emCON-MX6DL SoM
              - emtrion,emcon-mx6-avari   # emCON-MX6S or emCON-MX6DL SoM on Avari Base
              - engicam,imx6-icore        # Engicam i.CoreM6 Starter Kit
              - engicam,imx6-icore-rqs    # Engicam i.CoreM6 RQS Starter Kit
              - fsl,imx6dl-sabreauto      # i.MX6 DualLite/Solo SABRE Automotive Board
              - fsl,imx6dl-sabrelite      # i.MX6 DualLite SABRE Lite Board
              - fsl,imx6dl-sabresd        # i.MX6 DualLite SABRE Smart Device Board
              - karo,imx6dl-tx6dl         # Ka-Ro electronics TX6U Modules
              - kontron,imx6dl-samx6i     # Kontron i.MX6 Solo SMARC Module
              - kvg,victgo                # Kverneland TGO
              - kvg,vicut1                # Kverneland UT1 board
              - ply,plybas                # Plymovent BAS board
              - ply,plym2m                # Plymovent M2M board
              - poslab,imx6dl-savageboard # Poslab SavageBoard Dual
              - prt,prtmvt                # Protonic MVT board
              - prt,prtrvt                # Protonic RVT board
              - prt,prtvt7                # Protonic VT7 board
              - rex,imx6dl-rex-basic      # Rex Basic i.MX6 Dual Lite Board
              - riot,imx6s-riotboard      # RIoTboard i.MX6S
              - skov,imx6dl-skov-revc-lt2 # SKOV IMX6 CPU SoloCore lt2
              - skov,imx6dl-skov-revc-lt6 # SKOV IMX6 CPU SoloCore lt6
              - solidrun,cubox-i/dl            # SolidRun Cubox-i Solo/DualLite
              - solidrun,hummingboard/dl
              - solidrun,hummingboard2/dl      # SolidRun HummingBoard2 Solo/DualLite
              - solidrun,solidsense/dl         # SolidRun SolidSense Solo/DualLite
              - technexion,imx6dl-pico-dwarf   # TechNexion i.MX6DL Pico-Dwarf
              - technexion,imx6dl-pico-hobbit  # TechNexion i.MX6DL Pico-Hobbit
              - technexion,imx6dl-pico-nymph   # TechNexion i.MX6DL Pico-Nymph
              - technexion,imx6dl-pico-pi      # TechNexion i.MX6DL Pico-Pi
              - technologic,imx6dl-ts4900
              - technologic,imx6dl-ts7970
              - toradex,colibri_imx6dl      # Colibri iMX6 Modules
              - udoo,imx6dl-udoo          # Udoo i.MX6 Dual-lite Board
              - vdl,lanmcu                # Van der Laan LANMCU board
              - wand,imx6dl-wandboard     # Wandboard i.MX6 Dual Lite Board
              - ysoft,imx6dl-yapp4-draco  # i.MX6 DualLite Y Soft IOTA Draco board
              - ysoft,imx6dl-yapp4-hydra  # i.MX6 DualLite Y Soft IOTA Hydra board
              - ysoft,imx6dl-yapp4-orion  # i.MX6 DualLite Y Soft IOTA Orion board
              - ysoft,imx6dl-yapp4-ursa   # i.MX6 Solo Y Soft IOTA Ursa board
          - const: fsl,imx6dl

      - description: i.MX6DL based Armadeus AFP6 Board
        items:
          - const: armadeus,imx6dl-apf6dev
          - const: armadeus,imx6dl-apf6         # APF6 (Solo) SoM
          - const: fsl,imx6dl

      - description: i.MX6DL based congatec QMX6 Boards
        items:
          - enum:
              - ge,imx6dl-b105v2          # General Electric B105v2
              - ge,imx6dl-b105pv2         # General Electric B105Pv2
              - ge,imx6dl-b125v2          # General Electric B125v2
              - ge,imx6dl-b125pv2         # General Electric B125Pv2
              - ge,imx6dl-b155v2          # General Electric B155v2
          - const: congatec,qmx6
          - const: fsl,imx6dl

      - description: i.MX6DL based DFI FS700-M60-6DL Board
        items:
          - const: dfi,fs700-m60-6dl
          - const: dfi,fs700e-m60
          - const: fsl,imx6dl

      - description: i.MX6DL DHCOM PicoITX Board
        items:
          - const: dh,imx6dl-dhcom-picoitx
          - const: dh,imx6dl-dhcom-som
          - const: fsl,imx6dl

      - description: i.MX6DL Gateworks Ventana Boards
        items:
          - enum:
              - gw,imx6dl-gw51xx
              - gw,imx6dl-gw52xx
              - gw,imx6dl-gw53xx
              - gw,imx6dl-gw54xx
              - gw,imx6dl-gw551x
              - gw,imx6dl-gw552x
              - gw,imx6dl-gw553x
              - gw,imx6dl-gw560x
              - gw,imx6dl-gw5903
              - gw,imx6dl-gw5904
              - gw,imx6dl-gw5907
              - gw,imx6dl-gw5910
              - gw,imx6dl-gw5912
              - gw,imx6dl-gw5913
          - const: gw,ventana
          - const: fsl,imx6dl

      - description: i.MX6DL PHYTEC phyBOARD-Mira
        items:
          - enum:
              - phytec,imx6dl-pbac06-emmc # PHYTEC phyBOARD-Mira eMMC RDK
              - phytec,imx6dl-pbac06-nand # PHYTEC phyBOARD-Mira NAND RDK
          - const: phytec,imx6dl-pbac06   # PHYTEC phyBOARD-Mira
          - const: phytec,imx6qdl-pcm058  # PHYTEC phyCORE-i.MX6
          - const: fsl,imx6dl

      - description: i.MX6DL PHYTEC phyFLEX-i.MX6
        items:
          - const: phytec,imx6dl-pbab01   # PHYTEC phyFLEX carrier board
          - const: phytec,imx6dl-pfla02   # PHYTEC phyFLEX-i.MX6 Quad
          - const: fsl,imx6dl

      - description: i.MX6DL Boards with Toradex Colibri iMX6DL/S Modules
        items:
          - enum:
              - toradex,colibri_imx6dl-aster        # Colibri iMX6DL/S Module on Aster Board
              - toradex,colibri_imx6dl-eval-v3      # Colibri iMX6DL/S Module on Colibri Evaluation Board V3
              - toradex,colibri_imx6dl-iris         # Colibri iMX6DL/S Module on Iris Board
              - toradex,colibri_imx6dl-iris-v2      # Colibri iMX6DL/S Module on Iris Board V2
          - const: toradex,colibri_imx6dl           # Colibri iMX6DL/S Module
          - const: fsl,imx6dl

      - description: i.MX6S DHCOM DRC02 Board
        items:
          - const: dh,imx6s-dhcom-drc02
          - const: dh,imx6s-dhcom-som
          - const: fsl,imx6dl

      - description: TQ-Systems TQMa6DL SoM (variant A) on MBa6x
        items:
          - const: tq,imx6dl-mba6x-a
          - const: tq,mba6a               # Expected by bootloader, to be removed in the future
          - const: tq,imx6dl-tqma6dl-a
          - const: fsl,imx6dl

      - description: TQ-Systems TQMa6DL SoM (variant B) on MBa6x
        items:
          - const: tq,imx6dl-mba6x-b
          - const: tq,mba6b               # Expected by bootloader, to be removed in the future
          - const: tq,imx6dl-tqma6dl-b
          - const: fsl,imx6dl

      - description: i.MX6SL based Boards
        items:
          - enum:
              - fsl,imx6sl-evk            # i.MX6 SoloLite EVK Board
              - kobo,aura2
              - kobo,tolino-shine2hd
              - kobo,tolino-shine3
              - kobo,tolino-vision5
              - revotics,imx6sl-warp      # Revotics WaRP Board
          - const: fsl,imx6sl

      - description: i.MX6SLL based Boards
        items:
          - enum:
              - fsl,imx6sll-evk
              - kobo,clarahd
              - kobo,librah2o
          - const: fsl,imx6sll

      - description: i.MX6SX based Boards
        items:
          - enum:
              - boundary,imx6sx-nitrogen6sx
              - fsl,imx6sx-sabreauto      # i.MX6 SoloX Sabre Auto Board
              - fsl,imx6sx-sdb            # i.MX6 SoloX SDB Board
              - fsl,imx6sx-sdb-reva       # i.MX6 SoloX SDB Rev-A Board
              - samtec,imx6sx-vining-2000 # Softing VIN|ING 2000 Board
              - udoo,neobasic             # UDOO Neo Basic Board
              - udoo,neoextended          # UDOO Neo Extended
              - udoo,neofull              # UDOO Neo Full
          - const: fsl,imx6sx

      - description: i.MX6UL based Boards
        items:
          - enum:
              - engicam,imx6ul-geam       # Engicam GEAM6UL Starter Kit
              - engicam,imx6ul-isiot      # Engicam Is.IoT MX6UL eMMC/NAND Starter kit
              - fsl,imx6ul-14x14-evk      # i.MX6 UltraLite 14x14 EVK Board
              - karo,imx6ul-tx6ul         # Ka-Ro electronics TXUL-0010 Module
              - kontron,sl-imx6ul         # Kontron SL i.MX6UL SoM
              - prt,prti6g                # Protonic PRTI6G Board
              - technexion,imx6ul-pico-dwarf   # TechNexion i.MX6UL Pico-Dwarf
              - technexion,imx6ul-pico-hobbit  # TechNexion i.MX6UL Pico-Hobbit
              - technexion,imx6ul-pico-pi      # TechNexion i.MX6UL Pico-Pi
          - const: fsl,imx6ul

      - description: i.MX6UL Armadeus Systems OPOS6UL SoM Board
        items:
          - const: armadeus,imx6ul-opos6uldev   # OPOS6UL (i.MX6UL) SoM on OPOS6ULDev board
          - const: armadeus,imx6ul-opos6ul      # OPOS6UL (i.MX6UL) SoM
          - const: fsl,imx6ul

      - description: i.MX6UL Digi International ConnectCore 6UL Boards
        items:
          - enum:
              - digi,ccimx6ulsbcexpress   # Digi International ConnectCore 6UL SBC Express
              - digi,ccimx6ulsbcpro       # Digi International ConnectCore 6UL SBC Pro
          - const: digi,ccimx6ulsom
          - const: fsl,imx6ul

      - description: i.MX6UL Grinn liteBoard
        items:
          - const: grinn,imx6ul-liteboard
          - const: grinn,imx6ul-litesom
          - const: fsl,imx6ul

      - description: i.MX6UL PHYTEC phyBOARD-Segin
        items:
          - enum:
              - phytec,imx6ul-pbacd10-emmc
              - phytec,imx6ul-pbacd10-nand
          - const: phytec,imx6ul-pbacd10  # PHYTEC phyBOARD-Segin with i.MX6 UL
          - const: phytec,imx6ul-pcl063   # PHYTEC phyCORE-i.MX 6UL
          - const: fsl,imx6ul

      - description: Kontron BL i.MX6UL (N631X S) Board
        items:
          - const: kontron,bl-imx6ul       # Kontron BL i.MX6UL Carrier Board
          - const: kontron,sl-imx6ul       # Kontron SL i.MX6UL SoM
          - const: fsl,imx6ul

      - description: Kontron BL i.MX6UL 43 (N631X S 43) Board
        items:
          - const: kontron,bl-imx6ul-43    # Kontron BL i.MX6UL Carrier Board with 4.3" Display
          - const: kontron,bl-imx6ul       # Kontron BL i.MX6UL Carrier Board
          - const: kontron,sl-imx6ul       # Kontron SL i.MX6UL SoM
          - const: fsl,imx6ul

      - description: TQ-Systems TQMa6UL1 SoM on MBa6ULx board
        items:
          - enum:
              - tq,imx6ul-tqma6ul1-mba6ulx
          - const: tq,imx6ul-tqma6ul1      # MCIMX6G1
          - const: fsl,imx6ul

      - description: TQ-Systems TQMa6UL2 SoM on MBa6ULx board
        items:
          - enum:
              - tq,imx6ul-tqma6ul2-mba6ulx
          - const: tq,imx6ul-tqma6ul2      # MCIMX6G2
          - const: fsl,imx6ul

      - description: TQ-Systems TQMa6ULxL SoM on MBa6ULx[L] board
        items:
          - enum:
              - tq,imx6ul-tqma6ul2l-mba6ulx # using LGA adapter
              - tq,imx6ul-tqma6ul2l-mba6ulxl
          - const: tq,imx6ul-tqma6ul2l      # MCIMX6G2, LGA SoM variant
          - const: fsl,imx6ul

      - description: i.MX6ULL based Boards
        items:
          - enum:
              - fsl,imx6ull-14x14-evk     # i.MX6 UltraLiteLite 14x14 EVK Board
              - joz,jozacp                # JOZ Access Point
              - kontron,sl-imx6ull        # Kontron SL i.MX6ULL SoM
              - myir,imx6ull-mys-6ulx-eval # MYiR Tech iMX6ULL Evaluation Board
              - toradex,colibri-imx6ull      # Colibri iMX6ULL Modules
              - toradex,colibri-imx6ull-emmc # Colibri iMX6ULL 1GB (eMMC) Module
              - toradex,colibri-imx6ull-wifi # Colibri iMX6ULL Wi-Fi / BT Modules
          - const: fsl,imx6ull

      - description: i.MX6ULL Armadeus Systems OPOS6ULDev Board
        items:
          - const: armadeus,imx6ull-opos6uldev  # OPOS6UL (i.MX6ULL) SoM on OPOS6ULDev board
          - const: armadeus,imx6ull-opos6ul     # OPOS6UL (i.MX6ULL) SoM
          - const: fsl,imx6ull

      - description: i.MX6ULL PHYTEC phyBOARD-Segin
        items:
          - enum:
              - phytec,imx6ull-pbacd10-emmc
              - phytec,imx6ull-pbacd10-nand
          - const: phytec,imx6ull-pbacd10 # PHYTEC phyBOARD-Segin with i.MX6 ULL
          - const: phytec,imx6ull-pcl063  # PHYTEC phyCORE-i.MX 6ULL
          - const: fsl,imx6ull

      - description: i.MX6ULL PHYTEC phyGATE-Tauri
        items:
          - enum:
              - phytec,imx6ull-phygate-tauri-emmc
              - phytec,imx6ull-phygate-tauri-nand
          - const: phytec,imx6ull-phygate-tauri # PHYTEC phyGATE-Tauri with i.MX6 ULL
          - const: phytec,imx6ull-pcl063        # PHYTEC phyCORE-i.MX 6ULL
          - const: fsl,imx6ull

      - description: i.MX6ULL Boards with Toradex Colibri iMX6ULL Modules
        items:
          - enum:
              - toradex,colibri-imx6ull-aster     # Aster Carrier Board
              - toradex,colibri-imx6ull-eval      # Colibri Evaluation Board V3
              - toradex,colibri-imx6ull-iris      # Iris Carrier Board
              - toradex,colibri-imx6ull-iris-v2   # Iris V2 Carrier Board
          - const: toradex,colibri-imx6ull        # Colibri iMX6ULL Module
          - const: fsl,imx6ull

      - description: i.MX6ULL Boards with Toradex Colibri iMX6ULL 1GB (eMMC) Module
        items:
          - enum:
              - toradex,colibri-imx6ull-emmc-aster     # Aster Carrier Board
              - toradex,colibri-imx6ull-emmc-eval      # Colibri Evaluation B. V3
              - toradex,colibri-imx6ull-emmc-iris      # Iris Carrier Board
              - toradex,colibri-imx6ull-emmc-iris-v2   # Iris V2 Carrier Board
          - const: toradex,colibri-imx6ull-emmc        # Colibri iMX6ULL 1GB (eMMC) Module
          - const: fsl,imx6ull

      - description: i.MX6ULL Boards with Toradex Colibri iMX6ULL Wi-Fi / BT Modules
        items:
          - enum:
              - toradex,colibri-imx6ull-wifi-eval     # Colibri Eval. B. V3
              - toradex,colibri-imx6ull-wifi-aster    # Aster Carrier Board
              - toradex,colibri-imx6ull-wifi-iris     # Iris Carrier Board
              - toradex,colibri-imx6ull-wifi-iris-v2  # Iris V2 Carrier Board
          - const: toradex,colibri-imx6ull-wifi       # Colibri iMX6ULL Wi-Fi / BT Module
          - const: fsl,imx6ull

      - description: Kontron BL i.MX6ULL (N6411 S) Board
        items:
          - const: kontron,bl-imx6ull   # Kontron BL i.MX6ULL Carrier Board
          - const: kontron,sl-imx6ull   # Kontron SL i.MX6ULL SoM
          - const: fsl,imx6ull

      - description: TQ Systems TQMa6ULLx SoM on MBa6ULx board
        items:
          - enum:
              - tq,imx6ull-tqma6ull2-mba6ulx
          - const: tq,imx6ull-tqma6ull2      # MCIMX6Y2
          - const: fsl,imx6ull

      - description: TQ Systems TQMa6ULLxL SoM on MBa6ULx[L] board
        items:
          - enum:
              - tq,imx6ull-tqma6ull2l-mba6ulx # using LGA adapter
              - tq,imx6ull-tqma6ull2l-mba6ulxl
          - const: tq,imx6ull-tqma6ull2l      # MCIMX6Y2, LGA SoM variant
          - const: fsl,imx6ull

      - description: i.MX6ULZ based Boards
        items:
          - enum:
              - bsh,imx6ulz-bsh-smm-m2    # i.MX6 ULZ BSH SystemMaster
              - fsl,imx6ulz-14x14-evk     # i.MX6 ULZ 14x14 EVK Board
          - const: fsl,imx6ull # This seems odd. Should be last?
          - const: fsl,imx6ulz

      - description: i.MX7S based Boards
        items:
          - enum:
              - element14,imx7s-warp      # Element14 Warp i.MX7 Board
              - toradex,colibri-imx7s     # Colibri iMX7S Module
          - const: fsl,imx7s

      - description: i.MX7S Boards with Toradex Colibri iMX7S Module
        items:
          - enum:
              - toradex,colibri-imx7s-aster     # Module on Aster Carrier Board
              - toradex,colibri-imx7s-eval-v3   # Module on Colibri Evaluation Board V3
              - toradex,colibri-imx7s-iris      # Module on Iris Carrier Board
              - toradex,colibri-imx7s-iris-v2   # Module on Iris Carrier Board V2
          - const: toradex,colibri-imx7s
          - const: fsl,imx7s

      - description: TQ-Systems TQMa7S SoM on MBa7x board
        items:
          - const: tq,imx7s-mba7
          - const: tq,imx7s-tqma7
          - const: fsl,imx7s

      - description: i.MX7D based Boards
        items:
          - enum:
              - boundary,imx7d-nitrogen7
              - compulab,cl-som-imx7      # CompuLab CL-SOM-iMX7
              - fsl,imx7d-sdb             # i.MX7 SabreSD Board
              - fsl,imx7d-sdb-reva        # i.MX7 SabreSD Rev-A Board
              - kam,imx7d-flex-concentrator       # Kamstrup OMNIA Flex Concentrator
              - kam,imx7d-flex-concentrator-mfg   # Kamstrup OMNIA Flex Concentrator in manufacturing mode
              - novtech,imx7d-meerkat96   # i.MX7 Meerkat96 Board
              - remarkable,imx7d-remarkable2  # i.MX7D ReMarkable 2 E-Ink Tablet
              - storopack,imx7d-smegw01       # Storopack i.MX7D SMEGW01
              - technexion,imx7d-pico-dwarf   # TechNexion i.MX7D Pico-Dwarf
              - technexion,imx7d-pico-hobbit  # TechNexion i.MX7D Pico-Hobbit
              - technexion,imx7d-pico-nymph   # TechNexion i.MX7D Pico-Nymph
              - technexion,imx7d-pico-pi      # TechNexion i.MX7D Pico-Pi
              - toradex,colibri-imx7d         # Colibri iMX7D Module
              - toradex,colibri-imx7d-emmc    # Colibri iMX7D 1GB (eMMC) Module
              - zii,imx7d-rmu2            # ZII RMU2 Board
              - zii,imx7d-rpu2            # ZII RPU2 Board
          - const: fsl,imx7d

      - description: TQ-Systems TQMa7D SoM on MBa7x board
        items:
          - const: tq,imx7d-mba7
          - const: tq,imx7d-tqma7
          - const: fsl,imx7d

      - description:
          Compulab SBC-iMX7 is a single board computer based on the
          Freescale i.MX7 system-on-chip. SBC-iMX7 is implemented with
          the CL-SOM-iMX7 System-on-Module providing most of the functions,
          and SB-SOM-iMX7 carrier board providing additional peripheral
          functions and connectors.
        items:
          - const: compulab,sbc-imx7
          - const: compulab,cl-som-imx7
          - const: fsl,imx7d

      - description: i.MX7D Boards with Toradex Colibri i.MX7D Module
        items:
          - enum:
              - toradex,colibri-imx7d-aster   # Aster Carrier Board
              - toradex,colibri-imx7d-eval-v3 # Colibri Evaluation Board V3
              - toradex,colibri-imx7d-iris    # Iris Carrier Board
              - toradex,colibri-imx7d-iris-v2 # Iris Carrier Board V2
          - const: toradex,colibri-imx7d
          - const: fsl,imx7d

      - description: i.MX7D Boards with Toradex Colibri i.MX7D 1GB (eMMC) Module
        items:
          - enum:
              - toradex,colibri-imx7d-emmc-aster    # Module on Aster Carrier Board
              - toradex,colibri-imx7d-emmc-eval-v3  # Module on Colibri Evaluation Board V3
              - toradex,colibri-imx7d-emmc-iris     # Module on Iris Carrier Board
              - toradex,colibri-imx7d-emmc-iris-v2  # Module on Iris Carrier Board V2
          - const: toradex,colibri-imx7d-emmc
          - const: fsl,imx7d

      - description: i.MX7ULP based Boards
        items:
          - enum:
              - ea,imx7ulp-com           # i.MX7ULP Embedded Artists COM Board
              - fsl,imx7ulp-evk           # i.MX7ULP Evaluation Kit
          - const: fsl,imx7ulp

      - description: i.MX8MM based Boards
        items:
          - enum:
              - beacon,imx8mm-beacon-kit  # i.MX8MM Beacon Development Kit
              - boundary,imx8mm-nitrogen8mm  # i.MX8MM Nitrogen Board
              - cloos,imx8mm-phg          # i.MX8MM Cloos PHG Board
              - dmo,imx8mm-data-modul-edm-sbc # i.MX8MM eDM SBC
              - emtrion,emcon-mx8mm-avari # emCON-MX8MM SoM on Avari Base
              - fsl,imx8mm-ddr4-evk       # i.MX8MM DDR4 EVK Board
              - fsl,imx8mm-evk            # i.MX8MM EVK Board
              - gateworks,imx8mm-gw7904
              - gw,imx8mm-gw71xx-0x       # i.MX8MM Gateworks Development Kit
              - gw,imx8mm-gw72xx-0x       # i.MX8MM Gateworks Development Kit
              - gw,imx8mm-gw73xx-0x       # i.MX8MM Gateworks Development Kit
              - gw,imx8mm-gw7901          # i.MX8MM Gateworks Board
              - gw,imx8mm-gw7902          # i.MX8MM Gateworks Board
              - gw,imx8mm-gw7903          # i.MX8MM Gateworks Board
              - innocomm,wb15-evk         # i.MX8MM Innocomm EVK board with WB15 SoM
              - kontron,imx8mm-sl         # i.MX8MM Kontron SL (N801X) SOM
              - kontron,imx8mm-osm-s      # i.MX8MM Kontron OSM-S (N802X) SOM
              - menlo,mx8menlo            # i.MX8MM Menlo board with Verdin SoM
              - toradex,verdin-imx8mm     # Verdin iMX8M Mini Modules
              - toradex,verdin-imx8mm-nonwifi  # Verdin iMX8M Mini Modules without Wi-Fi / BT
              - toradex,verdin-imx8mm-wifi  # Verdin iMX8M Mini Wi-Fi / BT Modules
              - variscite,var-som-mx8mm   # i.MX8MM Variscite VAR-SOM-MX8MM module
              - prt,prt8mm                # i.MX8MM Protonic PRT8MM Board
          - const: fsl,imx8mm

      - description: Engicam i.Core MX8M Mini SoM based boards
        items:
          - enum:
              - engicam,icore-mx8mm-ctouch2        # i.MX8MM Engicam i.Core MX8M Mini C.TOUCH 2.0
              - engicam,icore-mx8mm-edimm2.2       # i.MX8MM Engicam i.Core MX8M Mini EDIMM2.2 Starter Kit
          - const: engicam,icore-mx8mm             # i.MX8MM Engicam i.Core MX8M Mini SoM
          - const: fsl,imx8mm

      - description: Kontron BL i.MX8MM (N801X S) Board
        items:
          - const: kontron,imx8mm-bl
          - const: kontron,imx8mm-sl
          - const: fsl,imx8mm

      - description: Kontron BL i.MX8MM OSM-S (N802X S) Board
        items:
          - const: kontron,imx8mm-bl-osm-s
          - const: kontron,imx8mm-osm-s
          - const: fsl,imx8mm

      - description: Toradex Boards with Verdin iMX8M Mini Modules
        items:
          - enum:
              - toradex,verdin-imx8mm-nonwifi-dahlia # Verdin iMX8M Mini Module on Dahlia
              - toradex,verdin-imx8mm-nonwifi-dev    # Verdin iMX8M Mini Module on Verdin Development Board
          - const: toradex,verdin-imx8mm-nonwifi     # Verdin iMX8M Mini Module without Wi-Fi / BT
          - const: toradex,verdin-imx8mm             # Verdin iMX8M Mini Module
          - const: fsl,imx8mm

      - description: Toradex Boards with Verdin iMX8M Mini Wi-Fi / BT Modules
        items:
          - enum:
              - toradex,verdin-imx8mm-wifi-dahlia # Verdin iMX8M Mini Wi-Fi / BT Module on Dahlia
              - toradex,verdin-imx8mm-wifi-dev    # Verdin iMX8M Mini Wi-Fi / BT M. on Verdin Development B.
          - const: toradex,verdin-imx8mm-wifi     # Verdin iMX8M Mini Wi-Fi / BT Module
          - const: toradex,verdin-imx8mm          # Verdin iMX8M Mini Module
          - const: fsl,imx8mm

      - description: PHYTEC phyCORE-i.MX8MM SoM based boards
        items:
          - const: phytec,imx8mm-phyboard-polis-rdk # phyBOARD-Polis RDK
          - const: phytec,imx8mm-phycore-som        # phyCORE-i.MX8MM SoM
          - const: fsl,imx8mm

      - description: Variscite VAR-SOM-MX8MM based boards
        items:
          - const: variscite,var-som-mx8mm-symphony
          - const: variscite,var-som-mx8mm
          - const: fsl,imx8mm

      - description:
          TQMa8MxML is a series of SOM featuring NXP i.MX8MM system-on-chip
          variants. It is designed to be soldered on different carrier boards.
          All variants (TQMa8M[Q,D,S][L]ML) use the same device tree, hence only
          one compatible is needed.
        items:
          - enum:
              - tq,imx8mm-tqma8mqml-mba8mx # TQ-Systems GmbH i.MX8MM TQMa8MQML SOM on MBa8Mx
          - const: tq,imx8mm-tqma8mqml     # TQ-Systems GmbH i.MX8MM TQMa8MQML SOM
          - const: fsl,imx8mm

      - description: i.MX8MN based Boards
        items:
          - enum:
              - beacon,imx8mn-beacon-kit  # i.MX8MN Beacon Development Kit
              - bsh,imx8mn-bsh-smm-s2     # i.MX8MN BSH SystemMaster S2
              - bsh,imx8mn-bsh-smm-s2pro  # i.MX8MN BSH SystemMaster S2 PRO
              - fsl,imx8mn-ddr3l-evk      # i.MX8MN DDR3L EVK Board
              - fsl,imx8mn-ddr4-evk       # i.MX8MN DDR4 EVK Board
              - fsl,imx8mn-evk            # i.MX8MN LPDDR4 EVK Board
              - gw,imx8mn-gw7902          # i.MX8MM Gateworks Board
          - const: fsl,imx8mn

      - description: Variscite VAR-SOM-MX8MN based boards
        items:
          - const: variscite,var-som-mx8mn-symphony
          - const: variscite,var-som-mx8mn
          - const: fsl,imx8mn

      - description:
          TQMa8MxNL is a series of SOM featuring NXP i.MX8MN system-on-chip
          variants. It is designed to be soldered on different carrier boards.
          All variants (TQMa8M[Q,D,S][L]NL) use the same device tree, hence only
          one compatible is needed.
        items:
          - enum:
              - tq,imx8mn-tqma8mqnl-mba8mx # TQ-Systems GmbH i.MX8MN TQMa8MQNL SOM on MBa8Mx
          - const: tq,imx8mn-tqma8mqnl     # TQ-Systems GmbH i.MX8MN TQMa8MQNL SOM
          - const: fsl,imx8mn

      - description: i.MX8MP based Boards
        items:
          - enum:
              - dh,imx8mp-dhcom-som       # i.MX8MP DHCOM SoM
              - dh,imx8mp-dhcom-pdk2      # i.MX8MP DHCOM SoM on PDK2 board
              - fsl,imx8mp-evk            # i.MX8MP EVK Board
              - gateworks,imx8mp-gw74xx   # i.MX8MP Gateworks Board
              - toradex,verdin-imx8mp     # Verdin iMX8M Plus Modules
              - toradex,verdin-imx8mp-nonwifi  # Verdin iMX8M Plus Modules without Wi-Fi / BT
              - toradex,verdin-imx8mp-wifi  # Verdin iMX8M Plus Wi-Fi / BT Modules
          - const: fsl,imx8mp

      - description: Avnet (MSC Branded) Boards with SM2S i.MX8M Plus Modules
        items:
          - const: avnet,sm2s-imx8mp-14N0600E-ep1 # SM2S-IMX8PLUS-14N0600E on SM2-MB-EP1 Carrier Board
          - const: avnet,sm2s-imx8mp-14N0600E     # 14N0600E variant of SM2S-IMX8PLUS SoM
          - const: avnet,sm2s-imx8mp              # SM2S-IMX8PLUS SoM
          - const: fsl,imx8mp

      - description: Engicam i.Core MX8M Plus SoM based boards
        items:
          - enum:
              - engicam,icore-mx8mp-edimm2.2       # i.MX8MP Engicam i.Core MX8M Plus EDIMM2.2 Starter Kit
          - const: engicam,icore-mx8mp             # i.MX8MP Engicam i.Core MX8M Plus SoM
          - const: fsl,imx8mp

      - description: PHYTEC phyCORE-i.MX8MP SoM based boards
        items:
          - const: phytec,imx8mp-phyboard-pollux-rdk # phyBOARD-Pollux RDK
          - const: phytec,imx8mp-phycore-som         # phyCORE-i.MX8MP SoM
          - const: fsl,imx8mp

      - description: Toradex Boards with Verdin iMX8M Plus Modules
        items:
          - enum:
              - toradex,verdin-imx8mp-nonwifi-dahlia # Verdin iMX8M Plus Module on Dahlia
              - toradex,verdin-imx8mp-nonwifi-dev    # Verdin iMX8M Plus Module on Verdin Development Board
          - const: toradex,verdin-imx8mp-nonwifi     # Verdin iMX8M Plus Module without Wi-Fi / BT
          - const: toradex,verdin-imx8mp             # Verdin iMX8M Plus Module
          - const: fsl,imx8mp

      - description: Toradex Boards with Verdin iMX8M Plus Wi-Fi / BT Modules
        items:
          - enum:
              - toradex,verdin-imx8mp-wifi-dahlia # Verdin iMX8M Plus Wi-Fi / BT Module on Dahlia
              - toradex,verdin-imx8mp-wifi-dev    # Verdin iMX8M Plus Wi-Fi / BT M. on Verdin Development B.
          - const: toradex,verdin-imx8mp-wifi     # Verdin iMX8M Plus Wi-Fi / BT Module
          - const: toradex,verdin-imx8mp          # Verdin iMX8M Plus Module
          - const: fsl,imx8mp

      - description:
          TQMa8MPxL is a series of LGA SOM featuring NXP i.MX8MP system-on-chip
          variants. It is designed to be soldered on different carrier boards.
          All CPU variants use the same device tree hence only one compatible
          is needed. MBa8MPxL mainboard can be used as starterkit or in a boxed
          version as an industrial computing device.
        items:
          - enum:
              - tq,imx8mp-tqma8mpql-mba8mpxl # TQ-Systems GmbH i.MX8MP TQMa8MPQL SOM on MBa8MPxL
          - const: tq,imx8mp-tqma8mpql       # TQ-Systems GmbH i.MX8MP TQMa8MPQL SOM
          - const: fsl,imx8mp

      - description: i.MX8MQ based Boards
        items:
          - enum:
              - boundary,imx8mq-nitrogen8m # i.MX8MQ NITROGEN Board
              - boundary,imx8mq-nitrogen8m-som # i.MX8MQ NITROGEN SoM
              - einfochips,imx8mq-thor96  # i.MX8MQ Thor96 Board
              - fsl,imx8mq-evk            # i.MX8MQ EVK Board
              - google,imx8mq-phanbell    # Google Coral Edge TPU
              - kontron,pitx-imx8m        # Kontron pITX-imx8m Board
              - mntre,reform2             # MNT Reform2 Laptop
              - purism,librem5-devkit     # Purism Librem5 devkit
              - solidrun,hummingboard-pulse # SolidRun Hummingboard Pulse
              - technexion,pico-pi-imx8m  # TechNexion PICO-PI-8M evk
          - const: fsl,imx8mq

      - description: Purism Librem5 phones
        items:
          - enum:
              - purism,librem5r2          # Purism Librem5 phone "Chestnut"
              - purism,librem5r3          # Purism Librem5 phone "Dogwood"
              - purism,librem5r4          # Purism Librem5 phone "Evergreen"
          - const: purism,librem5
          - const: fsl,imx8mq

      - description:
          TQMa8Mx is a series of SOM featuring NXP i.MX8MQ system-on-chip
          variants. It is designed to be clicked on different carrier boards.
        items:
          - enum:
              - tq,imx8mq-tqma8mq-mba8mx # TQ-Systems GmbH i.MX8MQ TQMa8Mx SOM on MBa8Mx
          - const: tq,imx8mq-tqma8mq     # TQ-Systems GmbH i.MX8MQ TQMa8Mx SOM
          - const: fsl,imx8mq

      - description: Zodiac Inflight Innovations Ultra Boards
        items:
          - enum:
              - zii,imx8mq-ultra-rmb3
              - zii,imx8mq-ultra-zest
          - const: zii,imx8mq-ultra
          - const: fsl,imx8mq

      - description: i.MX8QM based Boards
        items:
          - enum:
              - fsl,imx8qm-mek           # i.MX8QM MEK Board
          - const: fsl,imx8qm

      - description: i.MX8QXP based Boards
        items:
          - enum:
              - einfochips,imx8qxp-ai_ml  # i.MX8QXP AI_ML Board
              - fsl,imx8qxp-mek           # i.MX8QXP MEK Board
              - toradex,colibri-imx8x     # Colibri iMX8X Modules
          - const: fsl,imx8qxp

      - description: i.MX8DXL based Boards
        items:
          - enum:
              - fsl,imx8dxl-evk           # i.MX8DXL EVK Board
          - const: fsl,imx8dxl

      - description: i.MX8QXP Boards with Toradex Coilbri iMX8X Modules
        items:
          - enum:
              - toradex,colibri-imx8x-eval-v3 # Colibri iMX8X Module on Colibri Evaluation Board V3
          - const: toradex,colibri-imx8x
          - const: fsl,imx8qxp

      - description: i.MX8ULP based Boards
        items:
          - enum:
              - fsl,imx8ulp-evk           # i.MX8ULP EVK Board
          - const: fsl,imx8ulp

      - description: i.MX93 based Boards
        items:
          - enum:
              - fsl,imx93-11x11-evk       # i.MX93 11x11 EVK Board
          - const: fsl,imx93

      - description: i.MXRT1050 based Boards
        items:
          - enum:
              - fsl,imxrt1050-evk         # i.MXRT1050 EVK Board
          - const: fsl,imxrt1050

      - description: i.MXRT1170 based Boards
        items:
          - enum:
              - fsl,imxrt1170-evk         # i.MXRT1170 EVK Board
          - const: fsl,imxrt1170

      - description:
          Freescale Vybrid Platform Device Tree Bindings

          For the Vybrid SoC familiy all variants with DDR controller are supported,
          which is the VF5xx and VF6xx series. Out of historical reasons, in most
          places the kernel uses vf610 to refer to the whole familiy.
          The compatible string "fsl,vf610m4" is used for the secondary Cortex-M4
          core support.
        items:
          - enum:
              - fsl,vf500
              - fsl,vf510
              - fsl,vf600
              - fsl,vf610
              - fsl,vf610m4

      - description: Toradex Colibri VF50 Module on Colibri Evaluation Board
        items:
          - const: toradex,vf500-colibri_vf50-on-eval
          - const: toradex,vf500-colibri_vf50
          - const: fsl,vf500

      - description: VF610 based Boards
        items:
          - enum:
              - fsl,vf610-twr             # VF610 Tower Board
              - lwn,bk4                   # Liebherr BK4 controller
              - phytec,vf610-cosmic       # PHYTEC Cosmic/Cosmic+ Board
              - toradex,vf610-colibri_vf61 # Colibri VF61 Modules
          - const: fsl,vf610

      - description: Toradex Colibri VF61 Module on Colibri Evaluation Board
        items:
          - const: toradex,vf610-colibri_vf61-on-eval
          - const: toradex,vf610-colibri_vf61
          - const: fsl,vf610

      - description: ZII's VF610 based Boards
        items:
          - enum:
              - zii,vf610cfu1      # ZII VF610 CFU1 Board
              - zii,vf610dev-c     # ZII VF610 Development Board, Rev C
              - zii,vf610dev-b     # ZII VF610 Development Board, Rev B
              - zii,vf610scu4-aib  # ZII VF610 SCU4 AIB
              - zii,vf610dtu       # ZII VF610 SSMB DTU Board
              - zii,vf610spu3      # ZII VF610 SSMB SPU3 Board
              - zii,vf610spb4      # ZII VF610 SPB4 Board
          - const: zii,vf610dev
          - const: fsl,vf610

      - description: LS1012A based Boards
        items:
          - enum:
              - ebs-systart,oxalis
              - fsl,ls1012a-rdb
              - fsl,ls1012a-frdm
              - fsl,ls1012a-frwy
              - fsl,ls1012a-qds
          - const: fsl,ls1012a

      - description: LS1021A based Boards
        items:
          - enum:
              - fsl,ls1021a-iot
              - fsl,ls1021a-moxa-uc-8410a
              - fsl,ls1021a-qds
              - fsl,ls1021a-tsn
              - fsl,ls1021a-twr
          - const: fsl,ls1021a

      - description: LS1028A based Boards
        items:
          - enum:
              - fsl,ls1028a-qds
              - fsl,ls1028a-rdb
          - const: fsl,ls1028a

      - description: Kontron KBox A-230-LS
        items:
          - const: kontron,kbox-a-230-ls
          - const: kontron,sl28-var4
          - const: kontron,sl28
          - const: fsl,ls1028a
      - description:
          Kontron SMARC-sAL28 board on the SMARC Eval Carrier 2.0
        items:
          - enum:
              - kontron,sl28-var1-ads2
              - kontron,sl28-var2-ads2
              - kontron,sl28-var3-ads2
              - kontron,sl28-var4-ads2
          - enum:
              - kontron,sl28-var1
              - kontron,sl28-var2
              - kontron,sl28-var3
              - kontron,sl28-var4
          - const: kontron,sl28
          - const: fsl,ls1028a

      - description:
          Kontron SMARC-sAL28 board (on a generic/undefined carrier)
        items:
          - enum:
              - kontron,sl28-var1
              - kontron,sl28-var2
              - kontron,sl28-var3
              - kontron,sl28-var4
          - const: kontron,sl28
          - const: fsl,ls1028a

      - description:
          Kontron SMARC-sAL28 board (base). This is used in the base device
          tree which is compatible with the overlays provided by the
          vendor.
        items:
          - const: kontron,sl28
          - const: fsl,ls1028a

      - description: LS1043A based Boards
        items:
          - enum:
              - fsl,ls1043a-rdb
              - fsl,ls1043a-qds
          - const: fsl,ls1043a

      - description: LS1046A based Boards
        items:
          - enum:
              - fsl,ls1046a-frwy
              - fsl,ls1046a-qds
              - fsl,ls1046a-rdb
          - const: fsl,ls1046a

      - description: LS1088A based Boards
        items:
          - enum:
              - fsl,ls1088a-qds
              - fsl,ls1088a-rdb
          - const: fsl,ls1088a

      - description: LS2080A based Boards
        items:
          - enum:
              - fsl,ls2080a-simu
              - fsl,ls2080a-qds
              - fsl,ls2080a-rdb
          - const: fsl,ls2080a

      - description: LS2088A based Boards
        items:
          - enum:
              - fsl,ls2088a-qds
              - fsl,ls2088a-rdb
          - const: fsl,ls2088a

      - description: LX2160A based Boards
        items:
          - enum:
              - fsl,lx2160a-bluebox3
              - fsl,lx2160a-bluebox3-rev-a
              - fsl,lx2160a-qds
              - fsl,lx2160a-rdb
              - fsl,lx2162a-qds
          - const: fsl,lx2160a

      - description: SolidRun LX2160A based Boards
        items:
          - enum:
              - solidrun,clearfog-cx
              - solidrun,honeycomb
          - const: solidrun,lx2160a-cex7
          - const: fsl,lx2160a

      - description: S32G2 based Boards
        items:
          - enum:
              - nxp,s32g274a-evb
              - nxp,s32g274a-rdb2
          - const: nxp,s32g2

      - description: S32V234 based Boards
        items:
          - enum:
              - fsl,s32v234-evb           # S32V234-EVB2 Customer Evaluation Board
          - const: fsl,s32v234

      - description: Traverse LS1088A based Boards
        items:
          - enum:
              - traverse,ten64            # Ten64 Networking Appliance / Board
          - const: fsl,ls1088a

additionalProperties: true

...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/gemini.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cortina systems Gemini platforms

description: |
  The Gemini SoC is the project name for an ARMv4 FA525-based SoC originally
  produced by Storlink Semiconductor around 2005. The company was renamed
  later renamed Storm Semiconductor. The chip product name is Storlink SL3516.
  It was derived from earlier products from Storm named SL3316 (Centroid) and
  SL3512 (Bulverde).

  Storm Semiconductor was acquired by Cortina Systems in 2008 and the SoC was
  produced and used for NAS and similar usecases. In 2014 Cortina Systems was
  in turn acquired by Inphi, who seem to have discontinued this product family.

  Many of the IP blocks used in the SoC comes from Faraday Technology.

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>

properties:
  $nodename:
    const: '/'
  compatible:
    oneOf:

      - description: Storlink Semiconductor Gemini324 EV-Board also known
          as Storm Semiconductor SL93512R_BRD
        items:
          - const: storlink,gemini324
          - const: storm,sl93512r
          - const: cortina,gemini

      - description: D-Link DIR-685 Xtreme N Storage Router
        items:
          - const: dlink,dir-685
          - const: cortina,gemini

      - description: D-Link DNS-313 1-Bay Network Storage Enclosure
        items:
          - const: dlink,dns-313
          - const: cortina,gemini

      - description: Edimax NS-2502
        items:
          - const: edimax,ns-2502
          - const: cortina,gemini

      - description: ITian Square One SQ201
        items:
          - const: itian,sq201
          - const: cortina,gemini

      - description: Raidsonic NAS IB-4220-B
        items:
          - const: raidsonic,ib-4220-b
          - const: cortina,gemini

      - description: SSI 1328
        items:
          - const: ssi,1328
          - const: cortina,gemini

      - description: Teltonika RUT1xx Mobile Router
        items:
          - const: teltonika,rut1xx
          - const: cortina,gemini

      - description: Wiligear Wiliboard WBD-111
        items:
          - const: wiligear,wiliboard-wbd111
          - const: cortina,gemini

      - description: Wiligear Wiliboard WBD-222
        items:
          - const: wiligear,wiliboard-wbd222
          - const: cortina,gemini

      - description: Wiligear Wiliboard WBD-111 - old incorrect binding
        items:
          - const: wiliboard,wbd111
          - const: cortina,gemini
        deprecated: true

      - description: Wiligear Wiliboard WBD-222 - old incorrect binding
        items:
          - const: wiliboard,wbd222
          - const: cortina,gemini
        deprecated: true

additionalProperties: true

repo_name: angery/linux


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/hisilicon/controller/cpuctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Hisilicon CPU controller

maintainers:
  - Wei Xu <xuwei5@hisilicon.com>

description: |
  The clock registers and power registers of secondary cores are defined
  in CPU controller, especially in HIX5HD2 SoC.

properties:
  compatible:
    items:
      - const: hisilicon,cpuctrl

  reg:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 1

  ranges: true

required:
  - compatible
  - reg

additionalProperties:
  type: object

examples:
  - |
    cpuctrl@a22000 {
        compatible = "hisilicon,cpuctrl";
        #address-cells = <1>;
        #size-cells = <1>;
        reg = <0x00a22000 0x2000>;
        ranges = <0 0x00a22000 0x2000>;

        clock: clock@0 {
            compatible = "hisilicon,hix5hd2-clock";
            reg = <0 0x2000>;
            #clock-cells = <1>;
        };
    };
...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/hisilicon/controller/hi3798cv200-perictrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Hisilicon Hi3798CV200 Peripheral Controller

maintainers:
  - Wei Xu <xuwei5@hisilicon.com>

description: |
  The Hi3798CV200 Peripheral Controller controls peripherals, queries
  their status, and configures some functions of peripherals.

properties:
  compatible:
    items:
      - const: hisilicon,hi3798cv200-perictrl
      - const: syscon
      - const: simple-mfd

  reg:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 1

  ranges: true

required:
  - compatible
  - reg
  - "#address-cells"
  - "#size-cells"
  - ranges

additionalProperties:
  type: object

examples:
  - |
    peripheral-controller@8a20000 {
        compatible = "hisilicon,hi3798cv200-perictrl", "syscon", "simple-mfd";
        reg = <0x8a20000 0x1000>;
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0x0 0x8a20000 0x1000>;

        phy@850 {
            compatible = "hisilicon,hi3798cv200-combphy";
            reg = <0x850 0x8>;
            #phy-cells = <1>;
            clocks = <&crg 42>;
            resets = <&crg 0x188 4>;
            assigned-clocks = <&crg 42>;
            assigned-clock-rates = <100000000>;
            hisilicon,fixed-mode = <4>;
        };
    };
...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/hisilicon/controller/hi6220-domain-ctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Hisilicon Hi6220 domain controller

maintainers:
  - Wei Xu <xuwei5@hisilicon.com>

description: |
  Hisilicon designs some special domain controllers for mobile platform,
  such as: the power Always On domain controller, the Media domain
  controller(e.g. codec, G3D ...) and the Power Management domain
  controller.

  The compatible names of each domain controller are as follows:
  Power Always ON domain controller  --> hisilicon,hi6220-aoctrl
  Media domain controller            --> hisilicon,hi6220-mediactrl
  Power Management domain controller --> hisilicon,hi6220-pmctrl

properties:
  compatible:
    items:
      - enum:
          - hisilicon,hi6220-aoctrl
          - hisilicon,hi6220-mediactrl
          - hisilicon,hi6220-pmctrl
      - const: syscon

  reg:
    maxItems: 1

  '#clock-cells':
    const: 1

  '#reset-cells':
    const: 1

required:
  - compatible
  - reg
  - '#clock-cells'

additionalProperties: false

examples:
  - |
    ao_ctrl@f7800000 {
        compatible = "hisilicon,hi6220-aoctrl", "syscon";
        reg = <0xf7800000 0x2000>;
        #clock-cells = <1>;
        #reset-cells = <1>;
    };

    media_ctrl@f4410000 {
        compatible = "hisilicon,hi6220-mediactrl", "syscon";
        reg = <0xf4410000 0x1000>;
        #clock-cells = <1>;
    };

    pm_ctrl@f7032000 {
        compatible = "hisilicon,hi6220-pmctrl", "syscon";
        reg = <0xf7032000 0x1000>;
        #clock-cells = <1>;
    };
...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/hisilicon/controller/hip04-bootwrapper.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Bootwrapper boot method

maintainers:
  - Wei Xu <xuwei5@hisilicon.com>

description: Bootwrapper boot method (software protocol on SMP)

properties:
  compatible:
    items:
      - const: hisilicon,hip04-bootwrapper

  boot-method:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: |
      Address and size of boot method.
      [0]: bootwrapper physical address
      [1]: bootwrapper size
      [2]: relocation physical address
      [3]: relocation size
    minItems: 2
    maxItems: 4

required:
  - compatible
  - boot-method

additionalProperties: false
...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/hisilicon/controller/hip04-fabric.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Hisilicon Fabric controller

maintainers:
  - Wei Xu <xuwei5@hisilicon.com>

description: Hisilicon Fabric controller

properties:
  compatible:
    items:
      - const: hisilicon,hip04-fabric

  reg:
    maxItems: 1

required:
  - compatible
  - reg

additionalProperties: false
...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/hisilicon/controller/pctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Peripheral misc control register

maintainers:
  - Wei Xu <xuwei5@hisilicon.com>

description: Peripheral misc control register

properties:
  compatible:
    items:
      - const: hisilicon,pctrl

  reg:
    maxItems: 1

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    pctrl@fca09000 {
        compatible = "hisilicon,pctrl";
        reg = <0xfca09000 0x1000>;
    };
...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/hisilicon/controller/sysctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Hisilicon system controller

maintainers:
  - Wei Xu <xuwei5@hisilicon.com>

description: |
  The Hisilicon system controller is used on many Hisilicon boards, it can be
  used to assist the slave core startup, reboot the system, etc.

  There are some variants of the Hisilicon system controller, such as HiP01,
  Hi3519, Hi6220 system controller, each of them is mostly compatible with the
  Hisilicon system controller, but some same registers located at different
  offset. In addition, the HiP01 system controller has some specific control
  registers for HIP01 SoC family, such as slave core boot.

  The compatible names of each system controller are as follows:
  Hisilicon system controller   --> hisilicon,sysctrl
  HiP01     system controller   --> hisilicon,hip01-sysctrl
  Hi6220    system controller   --> hisilicon,hi6220-sysctrl
  Hi3519    system controller   --> hisilicon,hi3519-sysctrl

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: hisilicon,hi6220-sysctrl
    then:
      required:
        - '#clock-cells'

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - hisilicon,sysctrl
              - hisilicon,hi6220-sysctrl
              - hisilicon,hi3519-sysctrl
          - const: syscon
      - items:
          - const: hisilicon,hip01-sysctrl
          - const: hisilicon,sysctrl

  reg:
    maxItems: 1

  smp-offset:
    description: |
      offset in sysctrl for notifying slave cpu booting
      cpu 1, reg;
      cpu 2, reg + 0x4;
      cpu 3, reg + 0x8;
      If reg value is not zero, cpun exit wfi and go
    $ref: /schemas/types.yaml#/definitions/uint32

  resume-offset:
    description: offset in sysctrl for notifying cpu0 when resume
    $ref: /schemas/types.yaml#/definitions/uint32

  reboot-offset:
    description: offset in sysctrl for system reboot
    $ref: /schemas/types.yaml#/definitions/uint32

  '#clock-cells':
    const: 1

  '#reset-cells':
    const: 1

  '#address-cells':
    const: 1

  '#size-cells':
    const: 1

  ranges: true

required:
  - compatible
  - reg

additionalProperties:
  type: object

examples:
  - |
    /* Hisilicon system controller */
    system-controller@802000 {
        compatible = "hisilicon,sysctrl", "syscon";
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0 0x802000 0x1000>;
        reg = <0x802000 0x1000>;

        smp-offset = <0x31c>;
        resume-offset = <0x308>;
        reboot-offset = <0x4>;

        clock: clock@0 {
            compatible = "hisilicon,hi3620-clock";
            reg = <0 0x10000>;
            #clock-cells = <1>;
        };
    };

    /* HiP01 system controller */
    system-controller@10000000 {
        compatible = "hisilicon,hip01-sysctrl", "hisilicon,sysctrl";
        reg = <0x10000000 0x1000>;
        reboot-offset = <0x4>;
    };

    /* Hi6220 system controller */
    system-controller@f7030000 {
        compatible = "hisilicon,hi6220-sysctrl", "syscon";
        reg = <0xf7030000 0x2000>;
        #clock-cells = <1>;
    };

    /* Hi3519 system controller */
    system-controller@12010000 {
        compatible = "hisilicon,hi3519-sysctrl", "syscon";
        reg = <0x12010000 0x1000>;
    };
...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/hisilicon/hisilicon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Hisilicon Platforms Device Tree Bindings

maintainers:
  - Wei Xu <xuwei5@hisilicon.com>

properties:
  $nodename:
    const: '/'

  compatible:
    oneOf:
      - description: Hi3660 based boards.
        items:
          - const: hisilicon,hi3660-hikey960
          - const: hisilicon,hi3660

      - description: Hi3670 based boards.
        items:
          - const: hisilicon,hi3670-hikey970
          - const: hisilicon,hi3670

      - description: Hi3798cv200 based boards.
        items:
          - const: hisilicon,hi3798cv200-poplar
          - const: hisilicon,hi3798cv200

      - description: Hi4511 Board
        items:
          - const: hisilicon,hi3620-hi4511

      - description: Hi6220 based boards.
        items:
          - const: hisilicon,hi6220-hikey
          - const: hisilicon,hi6220

      - description: HiP01 based boards.
        items:
          - const: hisilicon,hip01-ca9x2
          - const: hisilicon,hip01

      - description: HiP04 D01 Board
        items:
          - const: hisilicon,hip04-d01

      - description: HiP05 D02 Board
        items:
          - const: hisilicon,hip05-d02

      - description: HiP06 D03 Board
        items:
          - const: hisilicon,hip06-d03

      - description: HiP07 D05 Board
        items:
          - const: hisilicon,hip07-d05

      - description: SD5203 based boards
        items:
          - const: H836ASDJ
          - const: hisilicon,sd5203

additionalProperties: true

...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/hisilicon/low-pin-count.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Hisilicon HiP06 Low Pin Count device

maintainers:
  - Wei Xu <xuwei5@hisilicon.com>

description: |
  Hisilicon HiP06 SoCs implement a Low Pin Count (LPC) controller, which
  provides I/O access to some legacy ISA devices.
  HiP06 is based on arm64 architecture where there is no I/O space. So, the
  I/O ports here are not CPU addresses, and there is no 'ranges' property in
  LPC device node.

properties:
  $nodename:
    pattern: '^isa@[0-9a-f]+$'
    description: |
      The node name before '@' must be "isa" to represent the binding stick
      to the ISA/EISA binding specification.

  compatible:
    enum:
      - hisilicon,hip06-lpc
      - hisilicon,hip07-lpc

  reg:
    maxItems: 1

  '#address-cells':
    const: 2

  '#size-cells':
    const: 1

required:
  - compatible
  - reg

additionalProperties:
  type: object

examples:
  - |
    isa@a01b0000 {
        compatible = "hisilicon,hip06-lpc";
        #address-cells = <2>;
        #size-cells = <1>;
        reg = <0xa01b0000 0x1000>;

        ipmi0: bt@e4 {
            compatible = "ipmi-bt";
            device_type = "ipmi";
            reg = <0x01 0xe4 0x04>;
        };
    };
...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/hpe,gxp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: HPE BMC GXP platforms

maintainers:
  - Nick Hawkins <nick.hawkins@hpe.com>
  - Jean-Marie Verdun <verdun@hpe.com>

properties:
  compatible:
    oneOf:
      - description: GXP Based Boards
        items:
          - enum:
              - hpe,gxp-dl360gen10
          - const: hpe,gxp

required:
  - compatible

additionalProperties: true

...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/intel,keembay.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Keem Bay platform

maintainers:
  - Paul J. Murphy <paul.j.murphy@intel.com>
  - Daniele Alessandrelli <daniele.alessandrelli@intel.com>

properties:
  $nodename:
    const: '/'
  compatible:
    items:
      - enum:
          - intel,keembay-evm
      - const: intel,keembay

additionalProperties: true

...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/intel,socfpga.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Intel SoCFPGA platform

maintainers:
  - Dinh Nguyen <dinguyen@kernel.org>

properties:
  $nodename:
    const: "/"
  compatible:
    oneOf:
      - description: AgileX boards
        items:
          - enum:
              - intel,n5x-socdk
              - intel,socfpga-agilex-n6000
              - intel,socfpga-agilex-socdk
          - const: intel,socfpga-agilex

additionalProperties: true

...


code:
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/intel-ixp4xx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Intel IXP4xx

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>

properties:
  $nodename:
    const: "/"
  compatible:
    oneOf:
      - items:
          - enum:
              - linksys,nslu2
              - welltech,epbx100
          - const: intel,ixp42x
      - items:
          - enum:
              - gateworks,gw2358
          - const: intel,ixp43x

additionalProperties: true


code:
TI Keystone Platforms Device Tree Bindings
-----------------------------------------------

Boards with Keystone2 based devices (TCI66xxK2H) SOC shall have the
following properties.

Required properties:
 - compatible: All TI specific devices present in Keystone SOC should be in
   the form "ti,keystone-*". Generic devices like gic, arch_timers, ns16550
   type UART should use the specified compatible for those devices.

SoC families:

- Keystone 2 generic SoC:
   compatible = "ti,keystone"

SoCs:

- Keystone 2 Hawking/Kepler
   compatible = "ti,k2hk", "ti,keystone"
- Keystone 2 Lamarr
   compatible = "ti,k2l", "ti,keystone"
- Keystone 2 Edison
   compatible = "ti,k2e", "ti,keystone"
- K2G
   compatible = "ti,k2g", "ti,keystone"

Boards:
-  Keystone 2 Hawking/Kepler EVM
   compatible = "ti,k2hk-evm", "ti,k2hk", "ti,keystone"

-  Keystone 2 Lamarr EVM
   compatible = "ti,k2l-evm", "ti, k2l", "ti,keystone"

-  Keystone 2 Edison EVM
   compatible = "ti,k2e-evm", "ti,k2e", "ti,keystone"

-  K2G EVM
   compatible = "ti,k2g-evm", "ti,k2g", "ti-keystone"

-  K2G Industrial Communication Engine EVM
   compatible = "ti,k2g-ice", "ti,k2g", "ti-keystone"


code:
# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/keystone/ti,k3-sci-common.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Common K3 TI-SCI bindings

maintainers:
  - Nishanth Menon <nm@ti.com>

description: |
  The TI K3 family of SoCs usually have a central System Controller Processor
  that is responsible for managing various SoC-level resources like clocks,
  resets, interrupts etc. The communication with that processor is performed
  through the TI-SCI protocol.

  Each specific device management node like a clock controller node, a reset
  controller node or an interrupt-controller node should define a common set
  of properties that enables them to implement the corresponding functionality
  over the TI-SCI protocol. The following are some of the common properties
  needed by such individual nodes. The required properties for each device
  management node is defined in the respective binding.

properties:
  ti,sci:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Should be a phandle to the TI-SCI System Controller node

  ti,sci-dev-id:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
      Should contain the TI-SCI device id corresponding to the device. Please
      refer to the corresponding System Controller documentation for valid
      values for the desired device.

  ti,sci-proc-ids:
    description: Should contain a single tuple of <proc_id host_id>.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    items:
      - description: TI-SCI processor id for the remote processor device
      - description: TI-SCI host id to which processor control ownership
                     should be transferred to

additionalProperties: true


code:
# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/keystone/ti,sci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI-SCI controller device node bindings

maintainers:
  - Nishanth Menon <nm@ti.com>

description: |
  Texas Instrument's processors including those belonging to Keystone generation
  of processors have separate hardware entity which is now responsible for the
  management of the System on Chip (SoC) system. These include various system
  level functions as well.

  An example of such an SoC is K2G, which contains the system control hardware
  block called Power Management Micro Controller (PMMC). This hardware block is
  initialized early into boot process and provides services to Operating Systems
  on multiple processors including ones running Linux.

  See http://processors.wiki.ti.com/index.php/TISCI for protocol definition.

  The TI-SCI node describes the Texas Instrument's System Controller entity node.
  This parent node may optionally have additional children nodes which describe
  specific functionality such as clocks, power domain, reset or additional
  functionality as may be required for the SoC. This hierarchy also describes the
  relationship between the TI-SCI parent node to the child node.

properties:
  $nodename:
    pattern: "^system-controller@[0-9a-f]+$"

  compatible:
    oneOf:
      - description: System controller on TI 66AK2G SoC and other K3 SoCs
        items:
          - const: ti,k2g-sci
      - description: System controller on TI AM654 SoC
        items:
          - const: ti,am654-sci

  reg-names:
    description: |
      Specifies the debug messages memory mapped region that is optionally
      made available from TI-SCI controller.
    const: debug_messages

  reg:
    minItems: 1

  mbox-names:
    description: |
      Specifies the mailboxes used to communicate with TI-SCI Controller
      made available from TI-SCI controller.
    items:
      - const: rx
      - const: tx

  mboxes:
    minItems: 2

  ti,system-reboot-controller:
    description: Determines If system reboot can be triggered by SoC reboot
    type: boolean

  ti,host-id:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
      Value corresponding to the host ID assigned by Firmware
      for identification of host processing entities such as virtual machines.

  power-controller:
    type: object
    $ref: /schemas/soc/ti/sci-pm-domain.yaml#

  clock-controller:
    type: object
    $ref: /schemas/clock/ti,sci-clk.yaml#

  reset-controller:
    type: object
    $ref: /schemas/reset/ti,sci-reset.yaml#

required:
  - compatible
  - mbox-names
  - mboxes

additionalProperties: false

examples:
  - |
    pmmc: system-controller@2921800 {
      compatible = "ti,k2g-sci";
      ti,system-reboot-controller;
      mbox-names = "rx", "tx";
      mboxes= <&msgmgr 5 2>,
              <&msgmgr 0 0>;
      reg-names = "debug_messages";
      reg = <0x02921800 0x800>;
    };

  - |
    dmsc: system-controller@44083000 {
      compatible = "ti,k2g-sci";
      ti,host-id = <12>;
      mbox-names = "rx", "tx";
      mboxes= <&secure_proxy_main 11>,
              <&secure_proxy_main 13>;
      reg-names = "debug_messages";
      reg = <0x44083000 0x1000>;

      k3_pds: power-controller {
        compatible = "ti,sci-pm-domain";
        #power-domain-cells = <2>;
      };

      k3_clks: clock-controller {
        compatible = "ti,k2g-sci-clk";
        #clock-cells = <2>;
      };

      k3_reset: reset-controller {
        compatible = "ti,sci-reset";
        #reset-cells = <2>;
      };
    };


code:
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/l2c2x0.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ARM L2 Cache Controller

maintainers:
  - Rob Herring <robh@kernel.org>

description: |+
  ARM cores often have a separate L2C210/L2C220/L2C310 (also known as PL210/
  PL220/PL310 and variants) based level 2 cache controller. All these various
  implementations of the L2 cache controller have compatible programming
  models (Note 1). Some of the properties that are just prefixed "cache-*" are
  taken from section 3.7.3 of the Devicetree Specification which can be found
  at:
  https://www.devicetree.org/specifications/

  Note 1: The description in this document doesn't apply to integrated L2
    cache controllers as found in e.g. Cortex-A15/A7/A57/A53. These
    integrated L2 controllers are assumed to be all preconfigured by
    early secure boot code. Thus no need to deal with their configuration
    in the kernel at all.

allOf:
  - $ref: /schemas/cache-controller.yaml#

properties:
  compatible:
    oneOf:
      - enum:
          - arm,pl310-cache
          - arm,l220-cache
          - arm,l210-cache
            # DEPRECATED by "brcm,bcm11351-a2-pl310-cache"
          - bcm,bcm11351-a2-pl310-cache
            # For Broadcom bcm11351 chipset where an
            # offset needs to be added to the address before passing down to the L2
            # cache controller
          - brcm,bcm11351-a2-pl310-cache
            # Marvell Controller designed to be
            # compatible with the ARM one, with system cache mode (meaning
            # maintenance operations on L1 are broadcasted to the L2 and L2
            # performs the same operation).
          - marvell,aurora-system-cache
            # Marvell Controller designed to be
            # compatible with the ARM one with outer cache mode.
          - marvell,aurora-outer-cache
      - items:
           # Marvell Tauros3 cache controller, compatible
           # with arm,pl310-cache controller.
          - const: marvell,tauros3-cache
          - const: arm,pl310-cache

  cache-level:
    const: 2

  cache-unified: true
  cache-size: true
  cache-sets: true
  cache-block-size: true
  cache-line-size: true

  reg:
    maxItems: 1

  arm,data-latency:
    description: Cycles of latency for Data RAM accesses. Specifies 3 cells of
      read, write and setup latencies. Minimum valid values are 1. Controllers
      without setup latency control should use a value of 0.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 2
    maxItems: 3
    items:
      minimum: 0
      maximum: 8

  arm,tag-latency:
    description: Cycles of latency for Tag RAM accesses. Specifies 3 cells of
      read, write and setup latencies. Controllers without setup latency control
      should use 0. Controllers without separate read and write Tag RAM latency
      values should only use the first cell.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 1
    maxItems: 3
    items:
      minimum: 0
      maximum: 8

  arm,dirty-latency:
    description: Cycles of latency for Dirty RAMs. This is a single cell.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 1
    maximum: 8

  arm,filter-ranges:
    description: <start length> Starting address and length of window to
      filter. Addresses in the filter window are directed to the M1 port. Other
      addresses will go to the M0 port.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    items:
      minItems: 2
      maxItems: 2

  arm,io-coherent:
    description: indicates that the system is operating in an hardware
      I/O coherent mode. Valid only when the arm,pl310-cache compatible
      string is used.
    type: boolean

  interrupts:
    # Either a single combined interrupt or up to 9 individual interrupts
    minItems: 1
    maxItems: 9

  cache-id-part:
    description: cache id part number to be used if it is not present
      on hardware
    $ref: /schemas/types.yaml#/definitions/uint32

  wt-override:
    description: If present then L2 is forced to Write through mode
    type: boolean

  arm,double-linefill:
    description: Override double linefill enable setting. Enable if
      non-zero, disable if zero.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1]

  arm,double-linefill-incr:
    description: Override double linefill on INCR read. Enable
      if non-zero, disable if zero.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1]

  arm,double-linefill-wrap:
    description: Override double linefill on WRAP read. Enable
      if non-zero, disable if zero.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1]

  arm,prefetch-drop:
    description: Override prefetch drop enable setting. Enable if non-zero,
      disable if zero.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1]

  arm,prefetch-offset:
    description: Override prefetch offset value.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3, 4, 5, 6, 7, 15, 23, 31]

  arm,shared-override:
    description: The default behavior of the L220 or PL310 cache
      controllers with respect to the shareable attribute is to transform "normal
      memory non-cacheable transactions" into "cacheable no allocate" (for reads)
      or "write through no write allocate" (for writes).
      On systems where this may cause DMA buffer corruption, this property must
      be specified to indicate that such transforms are precluded.
    type: boolean

  arm,parity-enable:
    description: enable parity checking on the L2 cache (L220 or PL310).
    type: boolean

  arm,parity-disable:
    description: disable parity checking on the L2 cache (L220 or PL310).
    type: boolean

  marvell,ecc-enable:
    description: enable ECC protection on the L2 cache
    type: boolean

  arm,outer-sync-disable:
    description: disable the outer sync operation on the L2 cache.
      Some core tiles, especially ARM PB11MPCore have a faulty L220 cache that
      will randomly hang unless outer sync operations are disabled.
    type: boolean

  prefetch-data:
    description: |
      Data prefetch. Value: <0> (forcibly disable), <1>
      (forcibly enable), property absent (retain settings set by firmware)
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1]

  prefetch-instr:
    description: |
      Instruction prefetch. Value: <0> (forcibly disable),
      <1> (forcibly enable), property absent (retain settings set by
      firmware)
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1]

  arm,dynamic-clock-gating:
    description: |
      L2 dynamic clock gating. Value: <0> (forcibly
      disable), <1> (forcibly enable), property absent (OS specific behavior,
      preferably retain firmware settings)
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1]

  arm,standby-mode:
    description: L2 standby mode enable. Value <0> (forcibly disable),
      <1> (forcibly enable), property absent (OS specific behavior,
      preferably retain firmware settings)
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1]

  arm,early-bresp-disable:
    description: Disable the CA9 optimization Early BRESP (PL310)
    type: boolean

  arm,full-line-zero-disable:
    description: Disable the CA9 optimization Full line of zero
      write (PL310)
    type: boolean

required:
  - compatible
  - cache-unified
  - reg

additionalProperties: false

examples:
  - |
    cache-controller@fff12000 {
        compatible = "arm,pl310-cache";
        reg = <0xfff12000 0x1000>;
        arm,data-latency = <1 1 1>;
        arm,tag-latency = <2 2 2>;
        arm,filter-ranges = <0x80000000 0x8000000>;
        cache-unified;
        cache-level = <2>;
        interrupts = <45>;
    };

...


code:
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/linux,dummy-virt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: QEMU virt machine

maintainers:
  - Rob Herring <robh@kernel.org>

properties:
  $nodename:
    const: "/"
  compatible:
    const: linux,dummy-virt

additionalProperties: true

...


code:
Resume Control
--------------
Available on Marvell SOCs: 98DX3336 and 98DX4251

Required properties:

- compatible: must be "marvell,98dx3336-resume-ctrl"

- reg: Should contain resume control registers location and length

Example:

resume@20980 {
	compatible = "marvell,98dx3336-resume-ctrl";
	reg = <0x20980 0x10>;
};


code:
Marvell 98DX3236, 98DX3336 and 98DX4251 Platforms Device Tree Bindings
----------------------------------------------------------------------

Boards with a SoC of the Marvell 98DX3236, 98DX3336 and 98DX4251 families
shall have the following property:

Required root node property:

compatible: must contain "marvell,armadaxp-98dx3236"

In addition, boards using the Marvell 98DX3336 SoC shall have the
following property:

Required root node property:

compatible: must contain "marvell,armadaxp-98dx3336"

In addition, boards using the Marvell 98DX4251 SoC shall have the
following property:

Required root node property:

compatible: must contain "marvell,armadaxp-98dx4251"


code:
Marvell Armada AP80x System Controller
======================================

The AP806/AP807 is one of the two core HW blocks of the Marvell Armada
7K/8K/931x SoCs. It contains system controllers, which provide several
registers giving access to numerous features: clocks, pin-muxing and
many other SoC configuration items. This DT binding allows to describe
these system controllers.

For the top level node:
 - compatible: must be: "syscon", "simple-mfd";
 - reg: register area of the AP80x system controller

SYSTEM CONTROLLER 0
===================

Clocks:
-------

The Device Tree node representing the AP806/AP807 system controller
provides a number of clocks:

 - 0: reference clock of CPU cluster 0
 - 1: reference clock of CPU cluster 1
 - 2: fixed PLL at 1200 Mhz
 - 3: MSS clock, derived from the fixed PLL

Required properties:

 - compatible: must be one of:
   * "marvell,ap806-clock"
   * "marvell,ap807-clock"
 - #clock-cells: must be set to 1

Pinctrl:
--------

For common binding part and usage, refer to
Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt.

Required properties:
- compatible must be "marvell,ap806-pinctrl",

Available mpp pins/groups and functions:
Note: brackets (x) are not part of the mpp name for marvell,function and given
only for more detailed description in this document.

name	pins	functions
================================================================================
mpp0	0	gpio, sdio(clk), spi0(clk)
mpp1	1	gpio, sdio(cmd), spi0(miso)
mpp2	2	gpio, sdio(d0), spi0(mosi)
mpp3	3	gpio, sdio(d1), spi0(cs0n)
mpp4	4	gpio, sdio(d2), i2c0(sda)
mpp5	5	gpio, sdio(d3), i2c0(sdk)
mpp6	6	gpio, sdio(ds)
mpp7	7	gpio, sdio(d4), uart1(rxd)
mpp8	8	gpio, sdio(d5), uart1(txd)
mpp9	9	gpio, sdio(d6), spi0(cs1n)
mpp10	10	gpio, sdio(d7)
mpp11	11	gpio, uart0(txd)
mpp12	12	gpio, sdio(pw_off), sdio(hw_rst)
mpp13	13	gpio
mpp14	14	gpio
mpp15	15	gpio
mpp16	16	gpio
mpp17	17	gpio
mpp18	18	gpio
mpp19	19	gpio, uart0(rxd), sdio(pw_off)

GPIO:
-----
For common binding part and usage, refer to
Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml.

Required properties:

- compatible: "marvell,armada-8k-gpio"

- offset: offset address inside the syscon block

Optional properties:

- marvell,pwm-offset: offset address of PWM duration control registers inside
  the syscon block

Example:
ap_syscon: system-controller@6f4000 {
	compatible = "syscon", "simple-mfd";
	reg = <0x6f4000 0x1000>;

	ap_clk: clock {
		compatible = "marvell,ap806-clock";
		#clock-cells = <1>;
	};

	ap_pinctrl: pinctrl {
		compatible = "marvell,ap806-pinctrl";
	};

	ap_gpio: gpio {
		compatible = "marvell,armada-8k-gpio";
		offset = <0x1040>;
		ngpios = <19>;
		gpio-controller;
		#gpio-cells = <2>;
		gpio-ranges = <&ap_pinctrl 0 0 19>;
		marvell,pwm-offset = <0x10c0>;
		#pwm-cells = <2>;
		clocks = <&ap_clk 3>;
	};
};

SYSTEM CONTROLLER 1
===================

Thermal:
--------

For common binding part and usage, refer to
Documentation/devicetree/bindings/thermal/thermal*.yaml

The thermal IP can probe the temperature all around the processor. It
may feature several channels, each of them wired to one sensor.

It is possible to setup an overheat interrupt by giving at least one
critical point to any subnode of the thermal-zone node.

Required properties:
- compatible: must be one of:
  * marvell,armada-ap806-thermal
- reg: register range associated with the thermal functions.

Optional properties:
- interrupts: overheat interrupt handle. Should point to line 18 of the
  SEI irqchip. See interrupt-controller/interrupts.txt
- #thermal-sensor-cells: shall be <1> when thermal-zones subnodes refer
  to this IP and represents the channel ID. There is one sensor per
  channel. O refers to the thermal IP internal channel, while positive
  IDs refer to each CPU.

Example:
ap_syscon1: system-controller@6f8000 {
	compatible = "syscon", "simple-mfd";
	reg = <0x6f8000 0x1000>;

	ap_thermal: thermal-sensor@80 {
		compatible = "marvell,armada-ap806-thermal";
		reg = <0x80 0x10>;
		interrupt-parent = <&sei>;
		interrupts = <18>;
		#thermal-sensor-cells = <1>;
	};
};

Cluster clocks:
---------------

Device Tree Clock bindings for cluster clock of Marvell
AP806/AP807. Each cluster contain up to 2 CPUs running at the same
frequency.

Required properties:
 - compatible: must be one of:
   * "marvell,ap806-cpu-clock"
   * "marvell,ap807-cpu-clock"
- #clock-cells : should be set to 1.

- clocks : shall be the input parent clock(s) phandle for the clock
           (one per cluster)

- reg: register range associated with the cluster clocks

ap_syscon1: system-controller@6f8000 {
	compatible = "marvell,armada-ap806-syscon1", "syscon", "simple-mfd";
	reg = <0x6f8000 0x1000>;

	cpu_clk: clock-cpu@278 {
		compatible = "marvell,ap806-cpu-clock";
		clocks = <&ap_clk 0>, <&ap_clk 1>;
		#clock-cells = <1>;
		reg = <0x278 0xa30>;
	};
};


code:
Power Management Service Unit(PMSU)
-----------------------------------
Available on Marvell SOCs: Armada 370, Armada 38x and Armada XP

Required properties:

- compatible: should be one of:
  - "marvell,armada-370-pmsu" for Armada 370 or Armada XP
  - "marvell,armada-380-pmsu" for Armada 38x
  - "marvell,armada-370-xp-pmsu" was used for Armada 370/XP but is now
    deprecated and will be removed

- reg: Should contain PMSU registers location and length.

Example:

armada-370-xp-pmsu@22000 {
	compatible = "marvell,armada-370-pmsu";
	reg = <0x22000 0x1000>;
};


code:
Marvell Armada 370 and Armada XP Platforms Device Tree Bindings
---------------------------------------------------------------

Boards with a SoC of the Marvell Armada 370 and Armada XP families
shall have the following property:

Required root node property:

compatible: must contain "marvell,armada-370-xp"

In addition, boards using the Marvell Armada 370 SoC shall have the
following property:

Required root node property:

compatible: must contain "marvell,armada370"

In addition, boards using the Marvell Armada XP SoC shall have the
following property:

Required root node property:

compatible: must contain "marvell,armadaxp"


code:
Marvell Armada 375 Platforms Device Tree Bindings
-------------------------------------------------

Boards with a SoC of the Marvell Armada 375 family shall have the
following property:

Required root node property:

compatible: must contain "marvell,armada375"


code:
Power management
----------------

For power management (particularly DVFS and AVS), the North Bridge
Power Management component is needed:

Required properties:
- compatible     : should contain "marvell,armada-3700-nb-pm", "syscon";
- reg            : the register start and length for the North Bridge
		    Power Management

Example:

nb_pm: syscon@14000 {
	compatible = "marvell,armada-3700-nb-pm", "syscon";
	reg = <0x14000 0x60>;
}

AVS
---

For AVS an other component is needed:

Required properties:
- compatible     : should contain "marvell,armada-3700-avs", "syscon";
- reg            : the register start and length for the AVS

Example:
avs: avs@11500 {
	compatible = "marvell,armada-3700-avs", "syscon";
	reg = <0x11500 0x40>;
}


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/marvell/armada-37xx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Marvell Armada 37xx Platforms

maintainers:
  - Robert Marko <robert.marko@sartura.hr>

properties:
  $nodename:
    const: '/'
  compatible:
    oneOf:
      - description: Armada 3720 SoC boards
        items:
          - enum:
              - cznic,turris-mox
              - globalscale,espressobin
              - marvell,armada-3720-db
              - methode,edpu
              - methode,udpu
          - const: marvell,armada3720
          - const: marvell,armada3710

      - description: Globalscale Espressobin boards
        items:
          - enum:
              - globalscale,espressobin-emmc
              - globalscale,espressobin-ultra
              - globalscale,espressobin-v7
          - const: globalscale,espressobin
          - const: marvell,armada3720
          - const: marvell,armada3710

      - description: Globalscale Espressobin V7 boards
        items:
          - enum:
              - globalscale,espressobin-v7-emmc
          - const: globalscale,espressobin-v7
          - const: globalscale,espressobin
          - const: marvell,armada3720
          - const: marvell,armada3710

additionalProperties: true


code:
Marvell Armada 38x CA9 MPcore SoC Controller
============================================

Required properties:

- compatible: Should be "marvell,armada-380-mpcore-soc-ctrl".

- reg: should be the register base and length as documented in the
  datasheet for the CA9 MPcore SoC Control registers

mpcore-soc-ctrl@20d20 {
	compatible = "marvell,armada-380-mpcore-soc-ctrl";
	reg = <0x20d20 0x6c>;
};


code:
Marvell Armada 38x Platforms Device Tree Bindings
-------------------------------------------------

Boards with a SoC of the Marvell Armada 38x family shall have the
following property:

Required root node property:

 - compatible: must contain "marvell,armada380"

In addition, boards using the Marvell Armada 385 SoC shall have the
following property before the previous one:

Required root node property:

compatible: must contain "marvell,armada385"

In addition, boards using the Marvell Armada 388 SoC shall have the
following property before the previous one:

Required root node property:

compatible: must contain "marvell,armada388"

Example:

compatible = "marvell,a385-rd", "marvell,armada385", "marvell,armada380";


code:
Marvell Armada 39x Platforms Device Tree Bindings
-------------------------------------------------

Boards with a SoC of the Marvell Armada 39x family shall have the
following property:

Required root node property:

 - compatible: must contain "marvell,armada390"

In addition, boards using the Marvell Armada 395 SoC shall have the
following property before the common "marvell,armada390" one:

Required root node property:

compatible: must contain "marvell,armada395"

Example:

compatible = "marvell,a395-gp", "marvell,armada395", "marvell,armada390";

Boards using the Marvell Armada 398 SoC shall have the following
property before the common "marvell,armada390" one:

Required root node property:

compatible: must contain "marvell,armada398"

Example:

compatible = "marvell,a398-db", "marvell,armada398", "marvell,armada390";


code:
# SPDX-License-Identifier: (GPL-2.0+ OR X11)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/marvell/armada-7k-8k.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Marvell Armada 7K/8K Platforms Device Tree Bindings

maintainers:
  - Gregory CLEMENT <gregory.clement@bootlin.com>

properties:
  $nodename:
    const: '/'
  compatible:
    oneOf:

      - description: Armada 7020 SoC
        items:
          - const: marvell,armada7020
          - const: marvell,armada-ap806-dual
          - const: marvell,armada-ap806

      - description: Armada 7040 SoC
        items:
          - const: marvell,armada7040
          - const: marvell,armada-ap806-quad
          - const: marvell,armada-ap806

      - description: Armada 8020 SoC
        items:
          - const: marvell,armada8020
          - const: marvell,armada-ap806-dual
          - const: marvell,armada-ap806

      - description: Armada 8040 SoC
        items:
          - const: marvell,armada8040
          - const: marvell,armada-ap806-quad
          - const: marvell,armada-ap806

      - description: Armada CN9130 SoC with no external CP
        items:
          - const: marvell,cn9130
          - const: marvell,armada-ap807-quad
          - const: marvell,armada-ap807

      - description: Armada CN9131 SoC with one external CP
        items:
          - const: marvell,cn9131
          - const: marvell,cn9130
          - const: marvell,armada-ap807-quad
          - const: marvell,armada-ap807

      - description: Armada CN9132 SoC with two external CPs
        items:
          - const: marvell,cn9132
          - const: marvell,cn9131
          - const: marvell,cn9130
          - const: marvell,armada-ap807-quad
          - const: marvell,armada-ap807

additionalProperties: true


code:
Marvell Armada 8KPlus Platforms Device Tree Bindings
----------------------------------------------------

Boards using a SoC of the Marvell Armada 8KP families must carry
the following root node property:

 - compatible, with one of the following values:

   - "marvell,armada-8080", "marvell,armada-ap810-octa", "marvell,armada-ap810"
     when the SoC being used is the Armada 8080

Example:

compatible = "marvell,armada-8080-db", "marvell,armada-8080",
	     "marvell,armada-ap810-octa", "marvell,armada-ap810"


code:
Marvell Armada CPU reset controller
===================================

Required properties:

- compatible: Should be "marvell,armada-370-cpu-reset".

- reg: should be register base and length as documented in the
  datasheet for the CPU reset registers

cpurst: cpurst@20800 {
       compatible = "marvell,armada-370-cpu-reset";
       reg = <0x20800 0x20>;
};