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