18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/arm/cpus.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: ARM CPUs bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |+
138c2ecf20Sopenharmony_ci  The device tree allows to describe the layout of CPUs in a system through
148c2ecf20Sopenharmony_ci  the "cpus" node, which in turn contains a number of subnodes (ie "cpu")
158c2ecf20Sopenharmony_ci  defining properties for every cpu.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci  Bindings for CPU nodes follow the Devicetree Specification, available from:
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci  https://www.devicetree.org/specifications/
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci  with updates for 32-bit and 64-bit ARM systems provided in this document.
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci  ================================
248c2ecf20Sopenharmony_ci  Convention used in this document
258c2ecf20Sopenharmony_ci  ================================
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci  This document follows the conventions described in the Devicetree
288c2ecf20Sopenharmony_ci  Specification, with the addition:
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci  - square brackets define bitfields, eg reg[7:0] value of the bitfield in
318c2ecf20Sopenharmony_ci    the reg property contained in bits 7 down to 0
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci  =====================================
348c2ecf20Sopenharmony_ci  cpus and cpu node bindings definition
358c2ecf20Sopenharmony_ci  =====================================
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci  The ARM architecture, in accordance with the Devicetree Specification,
388c2ecf20Sopenharmony_ci  requires the cpus and cpu nodes to be present and contain the properties
398c2ecf20Sopenharmony_ci  described below.
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ciproperties:
428c2ecf20Sopenharmony_ci  reg:
438c2ecf20Sopenharmony_ci    maxItems: 1
448c2ecf20Sopenharmony_ci    description: |
458c2ecf20Sopenharmony_ci      Usage and definition depend on ARM architecture version and
468c2ecf20Sopenharmony_ci      configuration:
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci      On uniprocessor ARM architectures previous to v7
498c2ecf20Sopenharmony_ci      this property is required and must be set to 0.
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci      On ARM 11 MPcore based systems this property is
528c2ecf20Sopenharmony_ci        required and matches the CPUID[11:0] register bits.
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci        Bits [11:0] in the reg cell must be set to
558c2ecf20Sopenharmony_ci        bits [11:0] in CPU ID register.
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci        All other bits in the reg cell must be set to 0.
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci      On 32-bit ARM v7 or later systems this property is
608c2ecf20Sopenharmony_ci        required and matches the CPU MPIDR[23:0] register
618c2ecf20Sopenharmony_ci        bits.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci        Bits [23:0] in the reg cell must be set to
648c2ecf20Sopenharmony_ci        bits [23:0] in MPIDR.
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci        All other bits in the reg cell must be set to 0.
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci      On ARM v8 64-bit systems this property is required
698c2ecf20Sopenharmony_ci        and matches the MPIDR_EL1 register affinity bits.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci        * If cpus node's #address-cells property is set to 2
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci          The first reg cell bits [7:0] must be set to
748c2ecf20Sopenharmony_ci          bits [39:32] of MPIDR_EL1.
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci          The second reg cell bits [23:0] must be set to
778c2ecf20Sopenharmony_ci          bits [23:0] of MPIDR_EL1.
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci        * If cpus node's #address-cells property is set to 1
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci          The reg cell bits [23:0] must be set to bits [23:0]
828c2ecf20Sopenharmony_ci          of MPIDR_EL1.
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci      All other bits in the reg cells must be set to 0.
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci  compatible:
878c2ecf20Sopenharmony_ci    enum:
888c2ecf20Sopenharmony_ci      - arm,arm710t
898c2ecf20Sopenharmony_ci      - arm,arm720t
908c2ecf20Sopenharmony_ci      - arm,arm740t
918c2ecf20Sopenharmony_ci      - arm,arm7ej-s
928c2ecf20Sopenharmony_ci      - arm,arm7tdmi
938c2ecf20Sopenharmony_ci      - arm,arm7tdmi-s
948c2ecf20Sopenharmony_ci      - arm,arm9es
958c2ecf20Sopenharmony_ci      - arm,arm9ej-s
968c2ecf20Sopenharmony_ci      - arm,arm920t
978c2ecf20Sopenharmony_ci      - arm,arm922t
988c2ecf20Sopenharmony_ci      - arm,arm925
998c2ecf20Sopenharmony_ci      - arm,arm926e-s
1008c2ecf20Sopenharmony_ci      - arm,arm926ej-s
1018c2ecf20Sopenharmony_ci      - arm,arm940t
1028c2ecf20Sopenharmony_ci      - arm,arm946e-s
1038c2ecf20Sopenharmony_ci      - arm,arm966e-s
1048c2ecf20Sopenharmony_ci      - arm,arm968e-s
1058c2ecf20Sopenharmony_ci      - arm,arm9tdmi
1068c2ecf20Sopenharmony_ci      - arm,arm1020e
1078c2ecf20Sopenharmony_ci      - arm,arm1020t
1088c2ecf20Sopenharmony_ci      - arm,arm1022e
1098c2ecf20Sopenharmony_ci      - arm,arm1026ej-s
1108c2ecf20Sopenharmony_ci      - arm,arm1136j-s
1118c2ecf20Sopenharmony_ci      - arm,arm1136jf-s
1128c2ecf20Sopenharmony_ci      - arm,arm1156t2-s
1138c2ecf20Sopenharmony_ci      - arm,arm1156t2f-s
1148c2ecf20Sopenharmony_ci      - arm,arm1176jzf
1158c2ecf20Sopenharmony_ci      - arm,arm1176jz-s
1168c2ecf20Sopenharmony_ci      - arm,arm1176jzf-s
1178c2ecf20Sopenharmony_ci      - arm,arm11mpcore
1188c2ecf20Sopenharmony_ci      - arm,armv8 # Only for s/w models
1198c2ecf20Sopenharmony_ci      - arm,cortex-a5
1208c2ecf20Sopenharmony_ci      - arm,cortex-a7
1218c2ecf20Sopenharmony_ci      - arm,cortex-a8
1228c2ecf20Sopenharmony_ci      - arm,cortex-a9
1238c2ecf20Sopenharmony_ci      - arm,cortex-a12
1248c2ecf20Sopenharmony_ci      - arm,cortex-a15
1258c2ecf20Sopenharmony_ci      - arm,cortex-a17
1268c2ecf20Sopenharmony_ci      - arm,cortex-a32
1278c2ecf20Sopenharmony_ci      - arm,cortex-a34
1288c2ecf20Sopenharmony_ci      - arm,cortex-a35
1298c2ecf20Sopenharmony_ci      - arm,cortex-a53
1308c2ecf20Sopenharmony_ci      - arm,cortex-a55
1318c2ecf20Sopenharmony_ci      - arm,cortex-a57
1328c2ecf20Sopenharmony_ci      - arm,cortex-a65
1338c2ecf20Sopenharmony_ci      - arm,cortex-a72
1348c2ecf20Sopenharmony_ci      - arm,cortex-a73
1358c2ecf20Sopenharmony_ci      - arm,cortex-a75
1368c2ecf20Sopenharmony_ci      - arm,cortex-a76
1378c2ecf20Sopenharmony_ci      - arm,cortex-a77
1388c2ecf20Sopenharmony_ci      - arm,cortex-m0
1398c2ecf20Sopenharmony_ci      - arm,cortex-m0+
1408c2ecf20Sopenharmony_ci      - arm,cortex-m1
1418c2ecf20Sopenharmony_ci      - arm,cortex-m3
1428c2ecf20Sopenharmony_ci      - arm,cortex-m4
1438c2ecf20Sopenharmony_ci      - arm,cortex-r4
1448c2ecf20Sopenharmony_ci      - arm,cortex-r5
1458c2ecf20Sopenharmony_ci      - arm,cortex-r7
1468c2ecf20Sopenharmony_ci      - arm,neoverse-e1
1478c2ecf20Sopenharmony_ci      - arm,neoverse-n1
1488c2ecf20Sopenharmony_ci      - brcm,brahma-b15
1498c2ecf20Sopenharmony_ci      - brcm,brahma-b53
1508c2ecf20Sopenharmony_ci      - brcm,vulcan
1518c2ecf20Sopenharmony_ci      - cavium,thunder
1528c2ecf20Sopenharmony_ci      - cavium,thunder2
1538c2ecf20Sopenharmony_ci      - faraday,fa526
1548c2ecf20Sopenharmony_ci      - intel,sa110
1558c2ecf20Sopenharmony_ci      - intel,sa1100
1568c2ecf20Sopenharmony_ci      - marvell,feroceon
1578c2ecf20Sopenharmony_ci      - marvell,mohawk
1588c2ecf20Sopenharmony_ci      - marvell,pj4a
1598c2ecf20Sopenharmony_ci      - marvell,pj4b
1608c2ecf20Sopenharmony_ci      - marvell,sheeva-v5
1618c2ecf20Sopenharmony_ci      - marvell,sheeva-v7
1628c2ecf20Sopenharmony_ci      - nvidia,tegra132-denver
1638c2ecf20Sopenharmony_ci      - nvidia,tegra186-denver
1648c2ecf20Sopenharmony_ci      - nvidia,tegra194-carmel
1658c2ecf20Sopenharmony_ci      - qcom,krait
1668c2ecf20Sopenharmony_ci      - qcom,kryo
1678c2ecf20Sopenharmony_ci      - qcom,kryo260
1688c2ecf20Sopenharmony_ci      - qcom,kryo280
1698c2ecf20Sopenharmony_ci      - qcom,kryo385
1708c2ecf20Sopenharmony_ci      - qcom,kryo468
1718c2ecf20Sopenharmony_ci      - qcom,kryo485
1728c2ecf20Sopenharmony_ci      - qcom,scorpion
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ci  enable-method:
1758c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/string'
1768c2ecf20Sopenharmony_ci    oneOf:
1778c2ecf20Sopenharmony_ci      # On ARM v8 64-bit this property is required
1788c2ecf20Sopenharmony_ci      - enum:
1798c2ecf20Sopenharmony_ci          - psci
1808c2ecf20Sopenharmony_ci          - spin-table
1818c2ecf20Sopenharmony_ci      # On ARM 32-bit systems this property is optional
1828c2ecf20Sopenharmony_ci      - enum:
1838c2ecf20Sopenharmony_ci          - actions,s500-smp
1848c2ecf20Sopenharmony_ci          - allwinner,sun6i-a31
1858c2ecf20Sopenharmony_ci          - allwinner,sun8i-a23
1868c2ecf20Sopenharmony_ci          - allwinner,sun9i-a80-smp
1878c2ecf20Sopenharmony_ci          - allwinner,sun8i-a83t-smp
1888c2ecf20Sopenharmony_ci          - amlogic,meson8-smp
1898c2ecf20Sopenharmony_ci          - amlogic,meson8b-smp
1908c2ecf20Sopenharmony_ci          - arm,realview-smp
1918c2ecf20Sopenharmony_ci          - aspeed,ast2600-smp
1928c2ecf20Sopenharmony_ci          - brcm,bcm11351-cpu-method
1938c2ecf20Sopenharmony_ci          - brcm,bcm23550
1948c2ecf20Sopenharmony_ci          - brcm,bcm2836-smp
1958c2ecf20Sopenharmony_ci          - brcm,bcm63138
1968c2ecf20Sopenharmony_ci          - brcm,bcm-nsp-smp
1978c2ecf20Sopenharmony_ci          - brcm,brahma-b15
1988c2ecf20Sopenharmony_ci          - marvell,armada-375-smp
1998c2ecf20Sopenharmony_ci          - marvell,armada-380-smp
2008c2ecf20Sopenharmony_ci          - marvell,armada-390-smp
2018c2ecf20Sopenharmony_ci          - marvell,armada-xp-smp
2028c2ecf20Sopenharmony_ci          - marvell,98dx3236-smp
2038c2ecf20Sopenharmony_ci          - marvell,mmp3-smp
2048c2ecf20Sopenharmony_ci          - mediatek,mt6589-smp
2058c2ecf20Sopenharmony_ci          - mediatek,mt81xx-tz-smp
2068c2ecf20Sopenharmony_ci          - qcom,gcc-msm8660
2078c2ecf20Sopenharmony_ci          - qcom,kpss-acc-v1
2088c2ecf20Sopenharmony_ci          - qcom,kpss-acc-v2
2098c2ecf20Sopenharmony_ci          - renesas,apmu
2108c2ecf20Sopenharmony_ci          - renesas,r9a06g032-smp
2118c2ecf20Sopenharmony_ci          - rockchip,rk3036-smp
2128c2ecf20Sopenharmony_ci          - rockchip,rk3066-smp
2138c2ecf20Sopenharmony_ci          - socionext,milbeaut-m10v-smp
2148c2ecf20Sopenharmony_ci          - ste,dbx500-smp
2158c2ecf20Sopenharmony_ci          - ti,am3352
2168c2ecf20Sopenharmony_ci          - ti,am4372
2178c2ecf20Sopenharmony_ci
2188c2ecf20Sopenharmony_ci  cpu-release-addr:
2198c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/uint64'
2208c2ecf20Sopenharmony_ci
2218c2ecf20Sopenharmony_ci    description:
2228c2ecf20Sopenharmony_ci      Required for systems that have an "enable-method"
2238c2ecf20Sopenharmony_ci        property value of "spin-table".
2248c2ecf20Sopenharmony_ci      On ARM v8 64-bit systems must be a two cell
2258c2ecf20Sopenharmony_ci        property identifying a 64-bit zero-initialised
2268c2ecf20Sopenharmony_ci        memory location.
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci  cpu-idle-states:
2298c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/phandle-array'
2308c2ecf20Sopenharmony_ci    description: |
2318c2ecf20Sopenharmony_ci      List of phandles to idle state nodes supported
2328c2ecf20Sopenharmony_ci      by this cpu (see ./idle-states.yaml).
2338c2ecf20Sopenharmony_ci
2348c2ecf20Sopenharmony_ci  capacity-dmips-mhz:
2358c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/uint32'
2368c2ecf20Sopenharmony_ci    description:
2378c2ecf20Sopenharmony_ci      u32 value representing CPU capacity (see ./cpu-capacity.txt) in
2388c2ecf20Sopenharmony_ci      DMIPS/MHz, relative to highest capacity-dmips-mhz
2398c2ecf20Sopenharmony_ci      in the system.
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci  dynamic-power-coefficient:
2428c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/uint32'
2438c2ecf20Sopenharmony_ci    description:
2448c2ecf20Sopenharmony_ci      A u32 value that represents the running time dynamic
2458c2ecf20Sopenharmony_ci      power coefficient in units of uW/MHz/V^2. The
2468c2ecf20Sopenharmony_ci      coefficient can either be calculated from power
2478c2ecf20Sopenharmony_ci      measurements or derived by analysis.
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ci      The dynamic power consumption of the CPU  is
2508c2ecf20Sopenharmony_ci      proportional to the square of the Voltage (V) and
2518c2ecf20Sopenharmony_ci      the clock frequency (f). The coefficient is used to
2528c2ecf20Sopenharmony_ci      calculate the dynamic power as below -
2538c2ecf20Sopenharmony_ci
2548c2ecf20Sopenharmony_ci      Pdyn = dynamic-power-coefficient * V^2 * f
2558c2ecf20Sopenharmony_ci
2568c2ecf20Sopenharmony_ci      where voltage is in V, frequency is in MHz.
2578c2ecf20Sopenharmony_ci
2588c2ecf20Sopenharmony_ci  power-domains:
2598c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/phandle-array'
2608c2ecf20Sopenharmony_ci    description:
2618c2ecf20Sopenharmony_ci      List of phandles and PM domain specifiers, as defined by bindings of the
2628c2ecf20Sopenharmony_ci      PM domain provider (see also ../power_domain.txt).
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ci  power-domain-names:
2658c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/string-array'
2668c2ecf20Sopenharmony_ci    description:
2678c2ecf20Sopenharmony_ci      A list of power domain name strings sorted in the same order as the
2688c2ecf20Sopenharmony_ci      power-domains property.
2698c2ecf20Sopenharmony_ci
2708c2ecf20Sopenharmony_ci      For PSCI based platforms, the name corresponding to the index of the PSCI
2718c2ecf20Sopenharmony_ci      PM domain provider, must be "psci".
2728c2ecf20Sopenharmony_ci
2738c2ecf20Sopenharmony_ci  qcom,saw:
2748c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/phandle'
2758c2ecf20Sopenharmony_ci    description: |
2768c2ecf20Sopenharmony_ci      Specifies the SAW* node associated with this CPU.
2778c2ecf20Sopenharmony_ci
2788c2ecf20Sopenharmony_ci      Required for systems that have an "enable-method" property
2798c2ecf20Sopenharmony_ci      value of "qcom,kpss-acc-v1" or "qcom,kpss-acc-v2"
2808c2ecf20Sopenharmony_ci
2818c2ecf20Sopenharmony_ci      * arm/msm/qcom,saw2.txt
2828c2ecf20Sopenharmony_ci
2838c2ecf20Sopenharmony_ci  qcom,acc:
2848c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/phandle'
2858c2ecf20Sopenharmony_ci    description: |
2868c2ecf20Sopenharmony_ci      Specifies the ACC* node associated with this CPU.
2878c2ecf20Sopenharmony_ci
2888c2ecf20Sopenharmony_ci      Required for systems that have an "enable-method" property
2898c2ecf20Sopenharmony_ci      value of "qcom,kpss-acc-v1" or "qcom,kpss-acc-v2"
2908c2ecf20Sopenharmony_ci
2918c2ecf20Sopenharmony_ci      * arm/msm/qcom,kpss-acc.txt
2928c2ecf20Sopenharmony_ci
2938c2ecf20Sopenharmony_ci  rockchip,pmu:
2948c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/phandle'
2958c2ecf20Sopenharmony_ci    description: |
2968c2ecf20Sopenharmony_ci      Specifies the syscon node controlling the cpu core power domains.
2978c2ecf20Sopenharmony_ci
2988c2ecf20Sopenharmony_ci      Optional for systems that have an "enable-method"
2998c2ecf20Sopenharmony_ci      property value of "rockchip,rk3066-smp"
3008c2ecf20Sopenharmony_ci      While optional, it is the preferred way to get access to
3018c2ecf20Sopenharmony_ci      the cpu-core power-domains.
3028c2ecf20Sopenharmony_ci
3038c2ecf20Sopenharmony_ci  secondary-boot-reg:
3048c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/uint32'
3058c2ecf20Sopenharmony_ci    description: |
3068c2ecf20Sopenharmony_ci      Required for systems that have an "enable-method" property value of
3078c2ecf20Sopenharmony_ci      "brcm,bcm11351-cpu-method", "brcm,bcm23550" or "brcm,bcm-nsp-smp".
3088c2ecf20Sopenharmony_ci
3098c2ecf20Sopenharmony_ci      This includes the following SoCs: |
3108c2ecf20Sopenharmony_ci      BCM11130, BCM11140, BCM11351, BCM28145, BCM28155, BCM21664, BCM23550
3118c2ecf20Sopenharmony_ci      BCM58522, BCM58525, BCM58535, BCM58622, BCM58623, BCM58625, BCM88312
3128c2ecf20Sopenharmony_ci
3138c2ecf20Sopenharmony_ci      The secondary-boot-reg property is a u32 value that specifies the
3148c2ecf20Sopenharmony_ci      physical address of the register used to request the ROM holding pen
3158c2ecf20Sopenharmony_ci      code release a secondary CPU. The value written to the register is
3168c2ecf20Sopenharmony_ci      formed by encoding the target CPU id into the low bits of the
3178c2ecf20Sopenharmony_ci      physical start address it should jump to.
3188c2ecf20Sopenharmony_ci
3198c2ecf20Sopenharmony_ciif:
3208c2ecf20Sopenharmony_ci  # If the enable-method property contains one of those values
3218c2ecf20Sopenharmony_ci  properties:
3228c2ecf20Sopenharmony_ci    enable-method:
3238c2ecf20Sopenharmony_ci      contains:
3248c2ecf20Sopenharmony_ci        enum:
3258c2ecf20Sopenharmony_ci          - brcm,bcm11351-cpu-method
3268c2ecf20Sopenharmony_ci          - brcm,bcm23550
3278c2ecf20Sopenharmony_ci          - brcm,bcm-nsp-smp
3288c2ecf20Sopenharmony_ci  # and if enable-method is present
3298c2ecf20Sopenharmony_ci  required:
3308c2ecf20Sopenharmony_ci    - enable-method
3318c2ecf20Sopenharmony_ci
3328c2ecf20Sopenharmony_cithen:
3338c2ecf20Sopenharmony_ci  required:
3348c2ecf20Sopenharmony_ci    - secondary-boot-reg
3358c2ecf20Sopenharmony_ci
3368c2ecf20Sopenharmony_cirequired:
3378c2ecf20Sopenharmony_ci  - device_type
3388c2ecf20Sopenharmony_ci  - reg
3398c2ecf20Sopenharmony_ci  - compatible
3408c2ecf20Sopenharmony_ci
3418c2ecf20Sopenharmony_cidependencies:
3428c2ecf20Sopenharmony_ci  rockchip,pmu: [enable-method]
3438c2ecf20Sopenharmony_ci
3448c2ecf20Sopenharmony_ciadditionalProperties: true
3458c2ecf20Sopenharmony_ci
3468c2ecf20Sopenharmony_ciexamples:
3478c2ecf20Sopenharmony_ci  - |
3488c2ecf20Sopenharmony_ci    cpus {
3498c2ecf20Sopenharmony_ci      #size-cells = <0>;
3508c2ecf20Sopenharmony_ci      #address-cells = <1>;
3518c2ecf20Sopenharmony_ci
3528c2ecf20Sopenharmony_ci      cpu@0 {
3538c2ecf20Sopenharmony_ci        device_type = "cpu";
3548c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a15";
3558c2ecf20Sopenharmony_ci        reg = <0x0>;
3568c2ecf20Sopenharmony_ci      };
3578c2ecf20Sopenharmony_ci
3588c2ecf20Sopenharmony_ci      cpu@1 {
3598c2ecf20Sopenharmony_ci        device_type = "cpu";
3608c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a15";
3618c2ecf20Sopenharmony_ci        reg = <0x1>;
3628c2ecf20Sopenharmony_ci      };
3638c2ecf20Sopenharmony_ci
3648c2ecf20Sopenharmony_ci      cpu@100 {
3658c2ecf20Sopenharmony_ci        device_type = "cpu";
3668c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a7";
3678c2ecf20Sopenharmony_ci        reg = <0x100>;
3688c2ecf20Sopenharmony_ci      };
3698c2ecf20Sopenharmony_ci
3708c2ecf20Sopenharmony_ci      cpu@101 {
3718c2ecf20Sopenharmony_ci        device_type = "cpu";
3728c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a7";
3738c2ecf20Sopenharmony_ci        reg = <0x101>;
3748c2ecf20Sopenharmony_ci      };
3758c2ecf20Sopenharmony_ci    };
3768c2ecf20Sopenharmony_ci
3778c2ecf20Sopenharmony_ci  - |
3788c2ecf20Sopenharmony_ci    // Example 2 (Cortex-A8 uniprocessor 32-bit system):
3798c2ecf20Sopenharmony_ci    cpus {
3808c2ecf20Sopenharmony_ci      #size-cells = <0>;
3818c2ecf20Sopenharmony_ci      #address-cells = <1>;
3828c2ecf20Sopenharmony_ci
3838c2ecf20Sopenharmony_ci      cpu@0 {
3848c2ecf20Sopenharmony_ci        device_type = "cpu";
3858c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a8";
3868c2ecf20Sopenharmony_ci        reg = <0x0>;
3878c2ecf20Sopenharmony_ci      };
3888c2ecf20Sopenharmony_ci    };
3898c2ecf20Sopenharmony_ci
3908c2ecf20Sopenharmony_ci  - |
3918c2ecf20Sopenharmony_ci    // Example 3 (ARM 926EJ-S uniprocessor 32-bit system):
3928c2ecf20Sopenharmony_ci    cpus {
3938c2ecf20Sopenharmony_ci      #size-cells = <0>;
3948c2ecf20Sopenharmony_ci      #address-cells = <1>;
3958c2ecf20Sopenharmony_ci
3968c2ecf20Sopenharmony_ci      cpu@0 {
3978c2ecf20Sopenharmony_ci        device_type = "cpu";
3988c2ecf20Sopenharmony_ci        compatible = "arm,arm926ej-s";
3998c2ecf20Sopenharmony_ci        reg = <0x0>;
4008c2ecf20Sopenharmony_ci      };
4018c2ecf20Sopenharmony_ci    };
4028c2ecf20Sopenharmony_ci
4038c2ecf20Sopenharmony_ci  - |
4048c2ecf20Sopenharmony_ci    //  Example 4 (ARM Cortex-A57 64-bit system):
4058c2ecf20Sopenharmony_ci    cpus {
4068c2ecf20Sopenharmony_ci      #size-cells = <0>;
4078c2ecf20Sopenharmony_ci      #address-cells = <2>;
4088c2ecf20Sopenharmony_ci
4098c2ecf20Sopenharmony_ci      cpu@0 {
4108c2ecf20Sopenharmony_ci        device_type = "cpu";
4118c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
4128c2ecf20Sopenharmony_ci        reg = <0x0 0x0>;
4138c2ecf20Sopenharmony_ci        enable-method = "spin-table";
4148c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
4158c2ecf20Sopenharmony_ci      };
4168c2ecf20Sopenharmony_ci
4178c2ecf20Sopenharmony_ci      cpu@1 {
4188c2ecf20Sopenharmony_ci        device_type = "cpu";
4198c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
4208c2ecf20Sopenharmony_ci        reg = <0x0 0x1>;
4218c2ecf20Sopenharmony_ci        enable-method = "spin-table";
4228c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
4238c2ecf20Sopenharmony_ci      };
4248c2ecf20Sopenharmony_ci
4258c2ecf20Sopenharmony_ci      cpu@100 {
4268c2ecf20Sopenharmony_ci        device_type = "cpu";
4278c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
4288c2ecf20Sopenharmony_ci        reg = <0x0 0x100>;
4298c2ecf20Sopenharmony_ci        enable-method = "spin-table";
4308c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
4318c2ecf20Sopenharmony_ci      };
4328c2ecf20Sopenharmony_ci
4338c2ecf20Sopenharmony_ci      cpu@101 {
4348c2ecf20Sopenharmony_ci        device_type = "cpu";
4358c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
4368c2ecf20Sopenharmony_ci        reg = <0x0 0x101>;
4378c2ecf20Sopenharmony_ci        enable-method = "spin-table";
4388c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
4398c2ecf20Sopenharmony_ci      };
4408c2ecf20Sopenharmony_ci
4418c2ecf20Sopenharmony_ci      cpu@10000 {
4428c2ecf20Sopenharmony_ci        device_type = "cpu";
4438c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
4448c2ecf20Sopenharmony_ci        reg = <0x0 0x10000>;
4458c2ecf20Sopenharmony_ci        enable-method = "spin-table";
4468c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
4478c2ecf20Sopenharmony_ci      };
4488c2ecf20Sopenharmony_ci
4498c2ecf20Sopenharmony_ci      cpu@10001 {
4508c2ecf20Sopenharmony_ci        device_type = "cpu";
4518c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
4528c2ecf20Sopenharmony_ci        reg = <0x0 0x10001>;
4538c2ecf20Sopenharmony_ci        enable-method = "spin-table";
4548c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
4558c2ecf20Sopenharmony_ci      };
4568c2ecf20Sopenharmony_ci
4578c2ecf20Sopenharmony_ci      cpu@10100 {
4588c2ecf20Sopenharmony_ci        device_type = "cpu";
4598c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
4608c2ecf20Sopenharmony_ci        reg = <0x0 0x10100>;
4618c2ecf20Sopenharmony_ci        enable-method = "spin-table";
4628c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
4638c2ecf20Sopenharmony_ci      };
4648c2ecf20Sopenharmony_ci
4658c2ecf20Sopenharmony_ci      cpu@10101 {
4668c2ecf20Sopenharmony_ci        device_type = "cpu";
4678c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
4688c2ecf20Sopenharmony_ci        reg = <0x0 0x10101>;
4698c2ecf20Sopenharmony_ci        enable-method = "spin-table";
4708c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
4718c2ecf20Sopenharmony_ci      };
4728c2ecf20Sopenharmony_ci
4738c2ecf20Sopenharmony_ci      cpu@100000000 {
4748c2ecf20Sopenharmony_ci        device_type = "cpu";
4758c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
4768c2ecf20Sopenharmony_ci        reg = <0x1 0x0>;
4778c2ecf20Sopenharmony_ci        enable-method = "spin-table";
4788c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
4798c2ecf20Sopenharmony_ci      };
4808c2ecf20Sopenharmony_ci
4818c2ecf20Sopenharmony_ci      cpu@100000001 {
4828c2ecf20Sopenharmony_ci        device_type = "cpu";
4838c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
4848c2ecf20Sopenharmony_ci        reg = <0x1 0x1>;
4858c2ecf20Sopenharmony_ci        enable-method = "spin-table";
4868c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
4878c2ecf20Sopenharmony_ci      };
4888c2ecf20Sopenharmony_ci
4898c2ecf20Sopenharmony_ci      cpu@100000100 {
4908c2ecf20Sopenharmony_ci        device_type = "cpu";
4918c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
4928c2ecf20Sopenharmony_ci        reg = <0x1 0x100>;
4938c2ecf20Sopenharmony_ci        enable-method = "spin-table";
4948c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
4958c2ecf20Sopenharmony_ci      };
4968c2ecf20Sopenharmony_ci
4978c2ecf20Sopenharmony_ci      cpu@100000101 {
4988c2ecf20Sopenharmony_ci        device_type = "cpu";
4998c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
5008c2ecf20Sopenharmony_ci        reg = <0x1 0x101>;
5018c2ecf20Sopenharmony_ci        enable-method = "spin-table";
5028c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
5038c2ecf20Sopenharmony_ci      };
5048c2ecf20Sopenharmony_ci
5058c2ecf20Sopenharmony_ci      cpu@100010000 {
5068c2ecf20Sopenharmony_ci        device_type = "cpu";
5078c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
5088c2ecf20Sopenharmony_ci        reg = <0x1 0x10000>;
5098c2ecf20Sopenharmony_ci        enable-method = "spin-table";
5108c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
5118c2ecf20Sopenharmony_ci      };
5128c2ecf20Sopenharmony_ci
5138c2ecf20Sopenharmony_ci      cpu@100010001 {
5148c2ecf20Sopenharmony_ci        device_type = "cpu";
5158c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
5168c2ecf20Sopenharmony_ci        reg = <0x1 0x10001>;
5178c2ecf20Sopenharmony_ci        enable-method = "spin-table";
5188c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
5198c2ecf20Sopenharmony_ci      };
5208c2ecf20Sopenharmony_ci
5218c2ecf20Sopenharmony_ci      cpu@100010100 {
5228c2ecf20Sopenharmony_ci        device_type = "cpu";
5238c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
5248c2ecf20Sopenharmony_ci        reg = <0x1 0x10100>;
5258c2ecf20Sopenharmony_ci        enable-method = "spin-table";
5268c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
5278c2ecf20Sopenharmony_ci      };
5288c2ecf20Sopenharmony_ci
5298c2ecf20Sopenharmony_ci      cpu@100010101 {
5308c2ecf20Sopenharmony_ci        device_type = "cpu";
5318c2ecf20Sopenharmony_ci        compatible = "arm,cortex-a57";
5328c2ecf20Sopenharmony_ci        reg = <0x1 0x10101>;
5338c2ecf20Sopenharmony_ci        enable-method = "spin-table";
5348c2ecf20Sopenharmony_ci        cpu-release-addr = <0 0x20000000>;
5358c2ecf20Sopenharmony_ci      };
5368c2ecf20Sopenharmony_ci    };
5378c2ecf20Sopenharmony_ci...
538