aboutsummaryrefslogtreecommitdiff
path: root/Bindings/mips/brcm/soc.yaml
blob: 0cc634482a6a8337d6551433029a8721e7be66a4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mips/brcm/soc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom cable/DSL/settop platforms

maintainers:
  - Florian Fainelli <f.fainelli@gmail.com>

description: |
    Boards Broadcom cable/DSL/settop SoC shall have the following properties.
    The experimental -viper variants are for running Linux on the 3384's
    BMIPS4355 cable modem CPU instead of the BMIPS5000 application processor.

properties:
  $nodename:
    const: '/'

  compatible:
    enum:
      - brcm,bcm3368
      - brcm,bcm3384
      - brcm,bcm33843
      - brcm,bcm3384-viper
      - brcm,bcm33843-viper
      - brcm,bcm6328
      - brcm,bcm6358
      - brcm,bcm6362
      - brcm,bcm6368
      - brcm,bcm63168
      - brcm,bcm63268
      - brcm,bcm7125
      - brcm,bcm7346
      - brcm,bcm7358
      - brcm,bcm7360
      - brcm,bcm7362
      - brcm,bcm7420
      - brcm,bcm7425

  cpus:
    type: object
    additionalProperties: false
    properties:
      '#address-cells':
        const: 1

      '#size-cells':
        const: 0

      mips-hpt-frequency:
        description: MIPS counter high precision timer frequency.
         This is common to all CPUs in the system so it lives
         under the "cpus" node.
        $ref: /schemas/types.yaml#/definitions/uint32

      brcm,bmips-cbr-reg:
        description: Reference address of the CBR.
          Some SoC suffer from a BUG where CBR(Core Base Register)
          address might be badly or never initialized by the Bootloader
          or reading it from co-processor registers, if the system boots
          from secondary CPU, results in invalid address.
          The CBR address is always the same on the SoC hence it
          can be provided in DT to handle these broken case.
        $ref: /schemas/types.yaml#/definitions/uint32

    patternProperties:
      "^cpu@[0-9]$":
        type: object
        $ref: /schemas/mips/cpus.yaml#
        unevaluatedProperties: false

    required:
      - mips-hpt-frequency

if:
  properties:
    compatible:
      contains:
        enum:
          - brcm,bcm6358
          - brcm,bcm6368

then:
  properties:
    cpus:
      required:
        - brcm,bmips-cbr-reg

additionalProperties: true

examples:
  - |
     / {
         compatible = "brcm,bcm3368";
         #address-cells = <1>;
         #size-cells = <1>;
         model = "Broadcom 3368";

         cpus {
           #address-cells = <1>;
           #size-cells = <0>;

           mips-hpt-frequency = <150000000>;

           cpu@0 {
             compatible = "brcm,bmips4350";
             device_type = "cpu";
             reg = <0>;
           };

           cpu@1 {
             compatible = "brcm,bmips4350";
             device_type = "cpu";
             reg = <1>;
           };
         };
       };
...