xref: /linux/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml (revision 8a7c601e14576a22c2bbf7f67455ccf3f3d2737f)
1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/arm/bcm/raspberrypi,bcm2835-firmware.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Raspberry Pi VideoCore firmware driver
8
9maintainers:
10  - Eric Anholt <eric@anholt.net>
11  - Stefan Wahren <wahrenst@gmx.net>
12
13select:
14  properties:
15    compatible:
16      contains:
17        const: raspberrypi,bcm2835-firmware
18
19  required:
20    - compatible
21
22properties:
23  compatible:
24    items:
25      - const: raspberrypi,bcm2835-firmware
26      - const: simple-mfd
27
28  mboxes:
29    maxItems: 1
30
31  clocks:
32    type: object
33    additionalProperties: false
34
35    properties:
36      compatible:
37        const: raspberrypi,firmware-clocks
38
39      "#clock-cells":
40        const: 1
41        description: >
42          The argument is the ID of the clocks contained by the
43          firmware messages.
44
45    required:
46      - compatible
47      - "#clock-cells"
48
49  gpio:
50    type: object
51    additionalProperties: false
52
53    properties:
54      compatible:
55        const: raspberrypi,firmware-gpio
56
57      gpio-controller: true
58
59      "#gpio-cells":
60        const: 2
61        description:
62          The first cell is the pin number, and the second cell is used to
63          specify the gpio polarity (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW).
64
65      gpio-line-names:
66        minItems: 8
67
68    required:
69      - compatible
70      - gpio-controller
71      - "#gpio-cells"
72
73  reset:
74    type: object
75    additionalProperties: false
76
77    properties:
78      compatible:
79        const: raspberrypi,firmware-reset
80
81      "#reset-cells":
82        const: 1
83        description: >
84          The argument is the ID of the firmware reset line to affect.
85
86    required:
87      - compatible
88      - "#reset-cells"
89
90  pwm:
91    type: object
92    additionalProperties: false
93
94    properties:
95      compatible:
96        const: raspberrypi,firmware-poe-pwm
97
98      "#pwm-cells":
99        # See pwm.yaml in this directory for a description of the cells format.
100        const: 2
101
102    required:
103      - compatible
104      - "#pwm-cells"
105
106  touchscreen:
107    type: object
108    $ref: /schemas/input/touchscreen/touchscreen.yaml#
109    additionalProperties: false
110
111    properties:
112      compatible:
113        const: raspberrypi,firmware-ts
114
115      firmware:
116        deprecated: true
117        description: Phandle to RPi's firmware device node.
118
119      touchscreen-size-x: true
120      touchscreen-size-y: true
121      touchscreen-inverted-x: true
122      touchscreen-inverted-y: true
123      touchscreen-swapped-x-y: true
124
125    required:
126      - compatible
127
128required:
129  - compatible
130  - mboxes
131
132additionalProperties: false
133
134examples:
135  - |
136    firmware {
137        compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
138        mboxes = <&mailbox>;
139
140        firmware_clocks: clocks {
141            compatible = "raspberrypi,firmware-clocks";
142            #clock-cells = <1>;
143        };
144
145        expgpio: gpio {
146            compatible = "raspberrypi,firmware-gpio";
147            gpio-controller;
148            #gpio-cells = <2>;
149        };
150
151        reset: reset {
152            compatible = "raspberrypi,firmware-reset";
153            #reset-cells = <1>;
154        };
155
156        pwm: pwm {
157            compatible = "raspberrypi,firmware-poe-pwm";
158            #pwm-cells = <2>;
159        };
160
161        ts: touchscreen {
162            compatible = "raspberrypi,firmware-ts";
163            touchscreen-size-x = <800>;
164            touchscreen-size-y = <480>;
165        };
166    };
167...
168