1c8dabef8SSergio Paracuellos# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c8dabef8SSergio Paracuellos%YAML 1.2
3c8dabef8SSergio Paracuellos---
4c8dabef8SSergio Paracuellos$id: http://devicetree.org/schemas/mips/cpus.yaml#
5c8dabef8SSergio Paracuellos$schema: http://devicetree.org/meta-schemas/core.yaml#
6c8dabef8SSergio Paracuellos
7*84e85359SKrzysztof Kozlowskititle: MIPS CPUs
8c8dabef8SSergio Paracuellos
9c8dabef8SSergio Paracuellosmaintainers:
10c8dabef8SSergio Paracuellos  - Thomas Bogendoerfer <tsbogend@alpha.franken.de>
11c8dabef8SSergio Paracuellos  - 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
12c8dabef8SSergio Paracuellos
13c8dabef8SSergio Paracuellosdescription: |
14c8dabef8SSergio Paracuellos  The device tree allows to describe the layout of CPUs in a system through
15c8dabef8SSergio Paracuellos  the "cpus" node, which in turn contains a number of subnodes (ie "cpu")
16c8dabef8SSergio Paracuellos  defining properties for every CPU.
17c8dabef8SSergio Paracuellos
18c8dabef8SSergio Paracuellosproperties:
19c8dabef8SSergio Paracuellos  compatible:
20c8dabef8SSergio Paracuellos    enum:
21c8dabef8SSergio Paracuellos      - brcm,bmips3300
22c8dabef8SSergio Paracuellos      - brcm,bmips4350
23c8dabef8SSergio Paracuellos      - brcm,bmips4380
24c8dabef8SSergio Paracuellos      - brcm,bmips5000
25c8dabef8SSergio Paracuellos      - brcm,bmips5200
26c8dabef8SSergio Paracuellos      - ingenic,xburst-mxu1.0
27c8dabef8SSergio Paracuellos      - ingenic,xburst-fpu1.0-mxu1.1
28c8dabef8SSergio Paracuellos      - ingenic,xburst-fpu2.0-mxu2.0
29c8dabef8SSergio Paracuellos      - ingenic,xburst2-fpu2.1-mxu2.1-smt
30c8dabef8SSergio Paracuellos      - loongson,gs264
31c8dabef8SSergio Paracuellos      - mips,m14Kc
32c8dabef8SSergio Paracuellos      - mips,mips4Kc
33c8dabef8SSergio Paracuellos      - mips,mips4KEc
34c8dabef8SSergio Paracuellos      - mips,mips24Kc
35c8dabef8SSergio Paracuellos      - mips,mips24KEc
36c8dabef8SSergio Paracuellos      - mips,mips74Kc
37c8dabef8SSergio Paracuellos      - mips,mips1004Kc
38c8dabef8SSergio Paracuellos      - mti,interaptiv
39c8dabef8SSergio Paracuellos      - mti,mips24KEc
40c8dabef8SSergio Paracuellos      - mti,mips14KEc
41c8dabef8SSergio Paracuellos      - mti,mips14Kc
42c8dabef8SSergio Paracuellos
43c8dabef8SSergio Paracuellos  reg:
44c8dabef8SSergio Paracuellos    maxItems: 1
45c8dabef8SSergio Paracuellos
46c8dabef8SSergio Paracuellos  clocks:
47c8dabef8SSergio Paracuellos    maxItems: 1
48c8dabef8SSergio Paracuellos
49c8dabef8SSergio Paracuellos  device_type: true
50c8dabef8SSergio Paracuellos
51c8dabef8SSergio ParacuellosallOf:
52c8dabef8SSergio Paracuellos  - if:
53c8dabef8SSergio Paracuellos      properties:
54c8dabef8SSergio Paracuellos        compatible:
55c8dabef8SSergio Paracuellos          contains:
56c8dabef8SSergio Paracuellos            enum:
57c8dabef8SSergio Paracuellos              - ingenic,xburst-mxu1.0
58c8dabef8SSergio Paracuellos              - ingenic,xburst-fpu1.0-mxu1.1
59c8dabef8SSergio Paracuellos              - ingenic,xburst-fpu2.0-mxu2.0
60c8dabef8SSergio Paracuellos              - ingenic,xburst2-fpu2.1-mxu2.1-smt
61c8dabef8SSergio Paracuellos    then:
62c8dabef8SSergio Paracuellos      required:
63c8dabef8SSergio Paracuellos        - device_type
64c8dabef8SSergio Paracuellos        - clocks
65c8dabef8SSergio Paracuellos
66c8dabef8SSergio Paracuellosrequired:
67c8dabef8SSergio Paracuellos  - compatible
68c8dabef8SSergio Paracuellos  - reg
69c8dabef8SSergio Paracuellos
70c8dabef8SSergio ParacuellosadditionalProperties: false
71c8dabef8SSergio Paracuellos
72c8dabef8SSergio Paracuellosexamples:
73c8dabef8SSergio Paracuellos  - |
74c8dabef8SSergio Paracuellos    cpus {
75c8dabef8SSergio Paracuellos      #size-cells = <0>;
76c8dabef8SSergio Paracuellos      #address-cells = <1>;
77c8dabef8SSergio Paracuellos
78c8dabef8SSergio Paracuellos      cpu@0 {
79c8dabef8SSergio Paracuellos        compatible = "mips,mips1004Kc";
80c8dabef8SSergio Paracuellos        device_type = "cpu";
81c8dabef8SSergio Paracuellos        reg = <0>;
82c8dabef8SSergio Paracuellos      };
83c8dabef8SSergio Paracuellos
84c8dabef8SSergio Paracuellos      cpu@1 {
85c8dabef8SSergio Paracuellos        compatible = "mips,mips1004Kc";
86c8dabef8SSergio Paracuellos        device_type = "cpu";
87c8dabef8SSergio Paracuellos        reg = <1>;
88c8dabef8SSergio Paracuellos      };
89c8dabef8SSergio Paracuellos    };
90c8dabef8SSergio Paracuellos
91c8dabef8SSergio Paracuellos  - |
92c8dabef8SSergio Paracuellos    // Example 2 (Ingenic CPU)
93c8dabef8SSergio Paracuellos    #include <dt-bindings/clock/ingenic,jz4780-cgu.h>
94c8dabef8SSergio Paracuellos
95c8dabef8SSergio Paracuellos    cpus {
96c8dabef8SSergio Paracuellos      #address-cells = <1>;
97c8dabef8SSergio Paracuellos      #size-cells = <0>;
98c8dabef8SSergio Paracuellos
99c8dabef8SSergio Paracuellos      cpu@0 {
100c8dabef8SSergio Paracuellos        compatible = "ingenic,xburst-fpu1.0-mxu1.1";
101c8dabef8SSergio Paracuellos        device_type = "cpu";
102c8dabef8SSergio Paracuellos        reg = <0>;
103c8dabef8SSergio Paracuellos
104c8dabef8SSergio Paracuellos        clocks = <&cgu JZ4780_CLK_CPU>;
105c8dabef8SSergio Paracuellos      };
106c8dabef8SSergio Paracuellos
107c8dabef8SSergio Paracuellos      cpu@1 {
108c8dabef8SSergio Paracuellos        compatible = "ingenic,xburst-fpu1.0-mxu1.1";
109c8dabef8SSergio Paracuellos        device_type = "cpu";
110c8dabef8SSergio Paracuellos        reg = <1>;
111c8dabef8SSergio Paracuellos
112c8dabef8SSergio Paracuellos        clocks = <&cgu JZ4780_CLK_CORE1>;
113c8dabef8SSergio Paracuellos      };
114c8dabef8SSergio Paracuellos    };
115c8dabef8SSergio Paracuellos...
116