1 From d04105f6d48f160f4b7ab874ed7f878c2b84b466 Mon Sep 17 00:00:00 2001
2 From: notro <notro@tronnes.org>
3 Date: Wed, 9 Jul 2014 14:46:08 +0200
4 Subject: [PATCH] BCM2708: Add core Device Tree support
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
9 Add the bare minimum needed to boot BCM2708 from a Device Tree.
11 Signed-off-by: Noralf Tronnes <notro@tronnes.org>
13 BCM2708: DT: change 'axi' nodename to 'soc'
15 Change DT node named 'axi' to 'soc' so it matches ARCH_BCM2835.
16 The VC4 bootloader fills in certain properties in the 'axi' subtree,
17 but since this is part of an upstreaming effort, the name is changed.
19 Signed-off-by: Noralf Tronnes notro@tronnes.org
21 BCM2708_DT: Correct length of the peripheral space
23 Use dts-dirs feature for overlays.
25 The kernel makefiles have a dts-dirs target that is for vendor subdirectories.
27 Using this fixes the install_dtbs target, which previously did not install the overlays.
29 BCM270X_DT: configure I2S DMA channels
31 Signed-off-by: Matthias Reichl <hias@horus.com>
33 BCM270X_DT: switch to bcm2835-i2s
35 I2S soundcard drivers with proper devicetree support (i.e. not linking
36 to the cpu_dai/platform via name but to cpu/platform via of_node)
37 will work out of the box without any modifications.
39 When the kernel is compiled without devicetree support the platform
40 code will instantiate the bcm2708-i2s driver and I2S soundcard drivers
41 will link to it via name, as before.
43 Signed-off-by: Matthias Reichl <hias@horus.com>
45 SDIO-overlay: add poll_once-boolean parameter
47 Add paramter to toggle sdio-device-polling
48 done every second or once at boot-time.
50 Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
52 BCM270X_DT: Make mmc overlay compatible with current firmware
54 The original DT overlay logic followed a merge-then-patch procedure,
55 i.e. parameters are applied to the loaded overlay before the overlay
56 is merged into the base DTB. This sequence has been changed to
57 patch-then-merge, in order to support parameterised node names, and
58 to protect against bad overlays. As a result, overrides (parameters)
59 must only target labels in the overlay, but the overlay can obviously target nodes in the base DTB.
61 mmc-overlay.dts (that switches back to the original mmc sdcard
62 driver) is the only overlay violating that rule, and this patch
65 bcm270x_dt: Use the sdhost MMC controller by default
67 The "mmc" overlay reverts to using the other controller.
69 squash: Add cprman to dt
71 BCM270X_DT: Use clk_core for I2C interfaces
73 BCM270X_DT: Use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi
75 The mainline Device Tree files are quite close to downstream now.
76 Let's use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi as base files
79 Mainline dts files are based on these files:
82 bcm2835.dtsi bcm2836.dtsi
85 Current downstream are based on these:
87 bcm2708.dtsi bcm2709.dtsi bcm2710.dtsi
90 This patch introduces this dependency:
92 bcm2708.dtsi bcm2709.dtsi
95 bcm2835.dtsi bcm2836.dtsi
104 bcm270x.dtsi contains the downstream bcm283x.dtsi diff.
105 bcm2708-rpi.dtsi is the downstream version of bcm2835-rpi.dtsi.
108 - The led node has moved from /soc/leds to /leds. This is not a problem
109 since the label is used to reference it.
110 - The clk_osc reg property changes from 6 to 3.
111 - The gpu nodes has their interrupt property set in the base file.
112 - the clocks label does not point to the /clocks node anymore, but
113 points to the cprman node. This is not a problem since the overlays
114 that use the clock node refer to it directly: target-path = "/clocks";
115 - some nodes now have 2 labels since mainline and downstream differs in
116 this respect: cprman/clocks, spi0/spi, gpu/vc4.
117 - some nodes doesn't have an explicit status = "okay" since they're not
118 disabled in the base file: watchdog and random.
119 - gpiomem doesn't need an explicit status = "okay".
120 - bcm2708-rpi-cm.dts got the hpd-gpios property from bcm2708_common.dtsi,
121 it's now set directly in that file.
122 - bcm2709-rpi-2-b.dts has the timer node moved from /soc/timer to /timer.
123 - Removed clock-frequency property on the bcm{2709,2710}.dtsi timer nodes.
125 Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
127 BCM270X_DT: Use raspberrypi-power to turn on USB power
129 Use the raspberrypi-power driver to turn on USB power.
131 Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
133 BCM270X_DT: Add a .dtbo target, use for overlays
135 Change the filenames and extensions to keep the pre-DDT style of
136 overlay (<name>-overlay.dtb) distinct from new ones that use a
137 different style of local fixups (<name>.dtbo), and to match other
140 The RPi firmware uses the DDTK trailer atom to choose which type of
141 overlay to use for each kernel.
143 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
145 BCM270X_DT: Don't generate "linux,phandle" props
147 The EPAPR standard says to use "phandle" properties to store phandles,
148 rather than the deprecated "linux,phandle" version. By default, dtc
149 generates both, but adding "-H epapr" causes it to only generate
150 "phandle"s, saving some space and clutter.
152 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
154 BCM270X_DT: Add overlay for enc28j60 on SPI2
156 Works on SPI2 for compute module
158 BCM270X_DT: Add midi-uart0 overlay
160 MIDI requires 31.25kbaud, a baudrate unsupported by Linux. The
161 midi-uart0 overlay configures uart0 (ttyAMA0) to use a fake clock
162 so that requesting 38.4kbaud actually gets 31.25kbaud.
164 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
166 BCM270X_DT: Add i2c-sensor overlay
168 The i2c-sensor overlay is a container for various pressure and
169 temperature sensors, currently bmp085 and bmp280. The standalone
170 bmp085_i2c-sensor overlay is now deprecated.
172 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
174 BCM270X_DT: overlays/*-overlay.dtb -> overlays/*.dtbo (#1752)
176 We now create overlays as .dtbo files.
178 build: support for .dtbo files for dtb overlays
180 Kernel 4.4.6+ on RaspberryPi support .dtbo files for overlays, instead of .dtb.
181 Patch the kernel, which has faulty rules to generate .dtbo the way yocto does
183 Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
184 Signed-off-by: Khem Raj <raj.khem@gmail.com>
186 BCM270X: Drop position requirement for CMA in VC4 overlay.
188 No longer necessary since 2aefcd576195a739a7a256099571c9c4a401005f,
189 and will probably let peeople that want to choose a larger CMA
190 allocation (particularly on pi0/1).
192 Signed-off-by: Eric Anholt <eric@anholt.net>
194 BCM270X_DT: RPi Device Tree tidy
196 Use the upstream sdhost node, add thermal-zones, and factor out some
199 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
201 kbuild: Silence unhelpful DTC warnings
203 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
206 arch/arm/Makefile | 2 +
207 arch/arm/boot/dts/Makefile | 21 +
208 arch/arm/boot/dts/bcm2708-rpi-0-w.dts | 166 ++
209 arch/arm/boot/dts/bcm2708-rpi-b-plus.dts | 122 ++
210 arch/arm/boot/dts/bcm2708-rpi-b.dts | 112 +
211 arch/arm/boot/dts/bcm2708-rpi-cm.dts | 95 +
212 arch/arm/boot/dts/bcm2708-rpi-cm.dtsi | 17 +
213 arch/arm/boot/dts/bcm2708-rpi.dtsi | 159 ++
214 arch/arm/boot/dts/bcm2708.dtsi | 11 +
215 arch/arm/boot/dts/bcm2709-rpi-2-b.dts | 123 ++
216 arch/arm/boot/dts/bcm2709.dtsi | 19 +
217 arch/arm/boot/dts/bcm270x.dtsi | 152 ++
218 arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts | 183 ++
219 arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 191 ++
220 arch/arm/boot/dts/bcm2710-rpi-cm3.dts | 129 ++
221 arch/arm/boot/dts/bcm2710.dtsi | 29 +
222 arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 +-
223 arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi | 17 +
224 arch/arm/boot/dts/overlays/Makefile | 145 ++
225 arch/arm/boot/dts/overlays/README | 1952 +++++++++++++++++
226 .../dts/overlays/adau1977-adc-overlay.dts | 40 +
227 .../dts/overlays/adau7002-simple-overlay.dts | 52 +
228 .../arm/boot/dts/overlays/ads1015-overlay.dts | 98 +
229 .../arm/boot/dts/overlays/ads1115-overlay.dts | 103 +
230 .../arm/boot/dts/overlays/ads7846-overlay.dts | 89 +
231 .../overlays/akkordion-iqdacplus-overlay.dts | 49 +
232 .../allo-boss-dac-pcm512x-audio-overlay.dts | 59 +
233 .../dts/overlays/allo-digione-overlay.dts | 44 +
234 .../allo-katana-dac-audio-overlay.dts | 57 +
235 .../allo-piano-dac-pcm512x-audio-overlay.dts | 54 +
236 ...o-piano-dac-plus-pcm512x-audio-overlay.dts | 55 +
237 .../boot/dts/overlays/applepi-dac-overlay.dts | 57 +
238 .../boot/dts/overlays/at86rf233-overlay.dts | 57 +
239 .../overlays/audioinjector-addons-overlay.dts | 59 +
240 .../audioinjector-wm8731-audio-overlay.dts | 39 +
241 .../boot/dts/overlays/audremap-overlay.dts | 19 +
242 .../boot/dts/overlays/balena-fin-overlay.dts | 79 +
243 .../overlays/bmp085_i2c-sensor-overlay.dts | 23 +
244 arch/arm/boot/dts/overlays/dht11-overlay.dts | 39 +
245 .../dts/overlays/dionaudio-loco-overlay.dts | 39 +
246 .../overlays/dionaudio-loco-v2-overlay.dts | 49 +
247 arch/arm/boot/dts/overlays/dpi18-overlay.dts | 31 +
248 arch/arm/boot/dts/overlays/dpi24-overlay.dts | 31 +
249 .../arm/boot/dts/overlays/dwc-otg-overlay.dts | 20 +
250 arch/arm/boot/dts/overlays/dwc2-overlay.dts | 28 +
251 .../boot/dts/overlays/enc28j60-overlay.dts | 53 +
252 .../dts/overlays/enc28j60-spi2-overlay.dts | 47 +
253 .../arm/boot/dts/overlays/exc3000-overlay.dts | 48 +
254 .../boot/dts/overlays/fe-pi-audio-overlay.dts | 70 +
255 arch/arm/boot/dts/overlays/goodix-overlay.dts | 46 +
256 .../googlevoicehat-soundcard-overlay.dts | 49 +
257 .../arm/boot/dts/overlays/gpio-ir-overlay.dts | 48 +
258 .../boot/dts/overlays/gpio-ir-tx-overlay.dts | 36 +
259 .../boot/dts/overlays/gpio-key-overlay.dts | 48 +
260 .../boot/dts/overlays/gpio-no-irq-overlay.dts | 14 +
261 .../dts/overlays/gpio-poweroff-overlay.dts | 36 +
262 .../dts/overlays/gpio-shutdown-overlay.dts | 80 +
263 .../dts/overlays/hifiberry-amp-overlay.dts | 39 +
264 .../dts/overlays/hifiberry-dac-overlay.dts | 34 +
265 .../overlays/hifiberry-dacplus-overlay.dts | 59 +
266 .../dts/overlays/hifiberry-digi-overlay.dts | 41 +
267 .../overlays/hifiberry-digi-pro-overlay.dts | 43 +
268 arch/arm/boot/dts/overlays/hy28a-overlay.dts | 93 +
269 arch/arm/boot/dts/overlays/hy28b-overlay.dts | 148 ++
270 .../boot/dts/overlays/i2c-bcm2708-overlay.dts | 13 +
271 .../boot/dts/overlays/i2c-gpio-overlay.dts | 43 +
272 .../arm/boot/dts/overlays/i2c-mux-overlay.dts | 139 ++
273 .../dts/overlays/i2c-pwm-pca9685a-overlay.dts | 26 +
274 .../dts/overlays/i2c-rtc-gpio-overlay.dts | 183 ++
275 .../arm/boot/dts/overlays/i2c-rtc-overlay.dts | 181 ++
276 .../boot/dts/overlays/i2c-sensor-overlay.dts | 223 ++
277 .../dts/overlays/i2c0-bcm2708-overlay.dts | 69 +
278 .../dts/overlays/i2c1-bcm2708-overlay.dts | 43 +
279 .../dts/overlays/i2s-gpio28-31-overlay.dts | 18 +
280 .../boot/dts/overlays/iqaudio-dac-overlay.dts | 46 +
281 .../dts/overlays/iqaudio-dacplus-overlay.dts | 49 +
282 .../iqaudio-digi-wm8804-audio-overlay.dts | 47 +
283 .../dts/overlays/jedec-spi-nor-overlay.dts | 309 +++
284 .../dts/overlays/justboom-dac-overlay.dts | 46 +
285 .../dts/overlays/justboom-digi-overlay.dts | 41 +
286 .../boot/dts/overlays/lirc-rpi-overlay.dts | 57 +
287 .../arm/boot/dts/overlays/ltc294x-overlay.dts | 86 +
288 .../boot/dts/overlays/mbed-dac-overlay.dts | 64 +
289 .../boot/dts/overlays/mcp23017-overlay.dts | 54 +
290 .../boot/dts/overlays/mcp23s17-overlay.dts | 732 +++++++
291 .../dts/overlays/mcp2515-can0-overlay.dts | 73 +
292 .../dts/overlays/mcp2515-can1-overlay.dts | 73 +
293 .../arm/boot/dts/overlays/mcp3008-overlay.dts | 205 ++
294 .../arm/boot/dts/overlays/mcp3202-overlay.dts | 205 ++
295 .../dts/overlays/media-center-overlay.dts | 134 ++
296 .../boot/dts/overlays/midi-uart0-overlay.dts | 36 +
297 .../boot/dts/overlays/midi-uart1-overlay.dts | 43 +
298 arch/arm/boot/dts/overlays/mmc-overlay.dts | 39 +
299 .../arm/boot/dts/overlays/mpu6050-overlay.dts | 28 +
300 .../arm/boot/dts/overlays/mz61581-overlay.dts | 117 +
301 .../arm/boot/dts/overlays/papirus-overlay.dts | 89 +
302 .../boot/dts/overlays/pi3-act-led-overlay.dts | 27 +
303 .../dts/overlays/pi3-disable-bt-overlay.dts | 46 +
304 .../dts/overlays/pi3-disable-wifi-overlay.dts | 13 +
305 .../dts/overlays/pi3-miniuart-bt-overlay.dts | 74 +
306 arch/arm/boot/dts/overlays/pibell-overlay.dts | 81 +
307 .../boot/dts/overlays/piscreen-overlay.dts | 102 +
308 .../boot/dts/overlays/piscreen2r-overlay.dts | 106 +
309 .../arm/boot/dts/overlays/pisound-overlay.dts | 120 +
310 .../arm/boot/dts/overlays/pitft22-overlay.dts | 69 +
311 .../overlays/pitft28-capacitive-overlay.dts | 91 +
312 .../overlays/pitft28-resistive-overlay.dts | 121 +
313 .../overlays/pitft35-resistive-overlay.dts | 121 +
314 .../boot/dts/overlays/pps-gpio-overlay.dts | 38 +
315 .../boot/dts/overlays/pwm-2chan-overlay.dts | 47 +
316 .../boot/dts/overlays/pwm-ir-tx-overlay.dts | 40 +
317 arch/arm/boot/dts/overlays/pwm-overlay.dts | 43 +
318 .../arm/boot/dts/overlays/qca7000-overlay.dts | 52 +
319 .../dts/overlays/rotary-encoder-overlay.dts | 59 +
320 .../dts/overlays/rpi-backlight-overlay.dts | 21 +
321 .../overlays/rpi-cirrus-wm5102-overlay.dts | 146 ++
322 .../arm/boot/dts/overlays/rpi-dac-overlay.dts | 34 +
323 .../boot/dts/overlays/rpi-display-overlay.dts | 91 +
324 .../boot/dts/overlays/rpi-ft5406-overlay.dts | 30 +
325 .../boot/dts/overlays/rpi-proto-overlay.dts | 39 +
326 .../boot/dts/overlays/rpi-sense-overlay.dts | 47 +
327 arch/arm/boot/dts/overlays/rpi-tv-overlay.dts | 31 +
328 .../rra-digidac1-wm8741-audio-overlay.dts | 49 +
329 .../dts/overlays/sc16is750-i2c-overlay.dts | 37 +
330 .../dts/overlays/sc16is752-i2c-overlay.dts | 40 +
331 .../dts/overlays/sc16is752-spi1-overlay.dts | 61 +
332 arch/arm/boot/dts/overlays/sdhost-overlay.dts | 31 +
333 .../boot/dts/overlays/sdio-1bit-overlay.dts | 63 +
334 arch/arm/boot/dts/overlays/sdio-overlay.dts | 63 +
335 .../arm/boot/dts/overlays/sdtweak-overlay.dts | 25 +
336 .../arm/boot/dts/overlays/smi-dev-overlay.dts | 18 +
337 .../boot/dts/overlays/smi-nand-overlay.dts | 69 +
338 arch/arm/boot/dts/overlays/smi-overlay.dts | 37 +
339 .../dts/overlays/spi-gpio35-39-overlay.dts | 31 +
340 .../arm/boot/dts/overlays/spi-rtc-overlay.dts | 33 +
341 .../arm/boot/dts/overlays/spi0-cs-overlay.dts | 29 +
342 .../boot/dts/overlays/spi0-hw-cs-overlay.dts | 26 +
343 .../boot/dts/overlays/spi1-1cs-overlay.dts | 57 +
344 .../boot/dts/overlays/spi1-2cs-overlay.dts | 69 +
345 .../boot/dts/overlays/spi1-3cs-overlay.dts | 81 +
346 .../boot/dts/overlays/spi2-1cs-overlay.dts | 57 +
347 .../boot/dts/overlays/spi2-2cs-overlay.dts | 69 +
348 .../boot/dts/overlays/spi2-3cs-overlay.dts | 81 +
349 .../dts/overlays/superaudioboard-overlay.dts | 73 +
350 arch/arm/boot/dts/overlays/sx150x-overlay.dts | 1706 ++++++++++++++
351 .../boot/dts/overlays/tinylcd35-overlay.dts | 224 ++
352 arch/arm/boot/dts/overlays/uart0-overlay.dts | 32 +
353 arch/arm/boot/dts/overlays/uart1-overlay.dts | 38 +
354 .../upstream-aux-interrupt-overlay.dts | 33 +
355 .../boot/dts/overlays/upstream-overlay.dts | 154 ++
356 .../dts/overlays/vc4-fkms-v3d-overlay.dts | 89 +
357 .../boot/dts/overlays/vc4-kms-v3d-overlay.dts | 151 ++
358 arch/arm/boot/dts/overlays/vga666-overlay.dts | 30 +
359 .../arm/boot/dts/overlays/w1-gpio-overlay.dts | 41 +
360 .../dts/overlays/w1-gpio-pullup-overlay.dts | 43 +
361 .../arm/boot/dts/overlays/wittypi-overlay.dts | 44 +
362 scripts/Makefile.dtbinst | 8 +-
363 scripts/Makefile.lib | 13 +
364 159 files changed, 14852 insertions(+), 4 deletions(-)
365 create mode 100644 arch/arm/boot/dts/bcm2708-rpi-0-w.dts
366 create mode 100644 arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
367 create mode 100644 arch/arm/boot/dts/bcm2708-rpi-b.dts
368 create mode 100644 arch/arm/boot/dts/bcm2708-rpi-cm.dts
369 create mode 100644 arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
370 create mode 100644 arch/arm/boot/dts/bcm2708-rpi.dtsi
371 create mode 100644 arch/arm/boot/dts/bcm2708.dtsi
372 create mode 100644 arch/arm/boot/dts/bcm2709-rpi-2-b.dts
373 create mode 100644 arch/arm/boot/dts/bcm2709.dtsi
374 create mode 100644 arch/arm/boot/dts/bcm270x.dtsi
375 create mode 100644 arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
376 create mode 100644 arch/arm/boot/dts/bcm2710-rpi-3-b.dts
377 create mode 100644 arch/arm/boot/dts/bcm2710-rpi-cm3.dts
378 create mode 100644 arch/arm/boot/dts/bcm2710.dtsi
379 create mode 100644 arch/arm/boot/dts/overlays/Makefile
380 create mode 100644 arch/arm/boot/dts/overlays/README
381 create mode 100644 arch/arm/boot/dts/overlays/adau1977-adc-overlay.dts
382 create mode 100644 arch/arm/boot/dts/overlays/adau7002-simple-overlay.dts
383 create mode 100644 arch/arm/boot/dts/overlays/ads1015-overlay.dts
384 create mode 100644 arch/arm/boot/dts/overlays/ads1115-overlay.dts
385 create mode 100644 arch/arm/boot/dts/overlays/ads7846-overlay.dts
386 create mode 100644 arch/arm/boot/dts/overlays/akkordion-iqdacplus-overlay.dts
387 create mode 100644 arch/arm/boot/dts/overlays/allo-boss-dac-pcm512x-audio-overlay.dts
388 create mode 100644 arch/arm/boot/dts/overlays/allo-digione-overlay.dts
389 create mode 100644 arch/arm/boot/dts/overlays/allo-katana-dac-audio-overlay.dts
390 create mode 100644 arch/arm/boot/dts/overlays/allo-piano-dac-pcm512x-audio-overlay.dts
391 create mode 100644 arch/arm/boot/dts/overlays/allo-piano-dac-plus-pcm512x-audio-overlay.dts
392 create mode 100644 arch/arm/boot/dts/overlays/applepi-dac-overlay.dts
393 create mode 100644 arch/arm/boot/dts/overlays/at86rf233-overlay.dts
394 create mode 100644 arch/arm/boot/dts/overlays/audioinjector-addons-overlay.dts
395 create mode 100644 arch/arm/boot/dts/overlays/audioinjector-wm8731-audio-overlay.dts
396 create mode 100644 arch/arm/boot/dts/overlays/audremap-overlay.dts
397 create mode 100644 arch/arm/boot/dts/overlays/balena-fin-overlay.dts
398 create mode 100644 arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts
399 create mode 100644 arch/arm/boot/dts/overlays/dht11-overlay.dts
400 create mode 100644 arch/arm/boot/dts/overlays/dionaudio-loco-overlay.dts
401 create mode 100644 arch/arm/boot/dts/overlays/dionaudio-loco-v2-overlay.dts
402 create mode 100644 arch/arm/boot/dts/overlays/dpi18-overlay.dts
403 create mode 100644 arch/arm/boot/dts/overlays/dpi24-overlay.dts
404 create mode 100644 arch/arm/boot/dts/overlays/dwc-otg-overlay.dts
405 create mode 100644 arch/arm/boot/dts/overlays/dwc2-overlay.dts
406 create mode 100644 arch/arm/boot/dts/overlays/enc28j60-overlay.dts
407 create mode 100644 arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts
408 create mode 100644 arch/arm/boot/dts/overlays/exc3000-overlay.dts
409 create mode 100644 arch/arm/boot/dts/overlays/fe-pi-audio-overlay.dts
410 create mode 100644 arch/arm/boot/dts/overlays/goodix-overlay.dts
411 create mode 100644 arch/arm/boot/dts/overlays/googlevoicehat-soundcard-overlay.dts
412 create mode 100644 arch/arm/boot/dts/overlays/gpio-ir-overlay.dts
413 create mode 100644 arch/arm/boot/dts/overlays/gpio-ir-tx-overlay.dts
414 create mode 100644 arch/arm/boot/dts/overlays/gpio-key-overlay.dts
415 create mode 100644 arch/arm/boot/dts/overlays/gpio-no-irq-overlay.dts
416 create mode 100644 arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts
417 create mode 100644 arch/arm/boot/dts/overlays/gpio-shutdown-overlay.dts
418 create mode 100644 arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts
419 create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts
420 create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
421 create mode 100644 arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts
422 create mode 100644 arch/arm/boot/dts/overlays/hifiberry-digi-pro-overlay.dts
423 create mode 100644 arch/arm/boot/dts/overlays/hy28a-overlay.dts
424 create mode 100644 arch/arm/boot/dts/overlays/hy28b-overlay.dts
425 create mode 100644 arch/arm/boot/dts/overlays/i2c-bcm2708-overlay.dts
426 create mode 100644 arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts
427 create mode 100644 arch/arm/boot/dts/overlays/i2c-mux-overlay.dts
428 create mode 100644 arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
429 create mode 100644 arch/arm/boot/dts/overlays/i2c-rtc-gpio-overlay.dts
430 create mode 100644 arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts
431 create mode 100644 arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
432 create mode 100644 arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts
433 create mode 100644 arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts
434 create mode 100644 arch/arm/boot/dts/overlays/i2s-gpio28-31-overlay.dts
435 create mode 100644 arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts
436 create mode 100644 arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts
437 create mode 100644 arch/arm/boot/dts/overlays/iqaudio-digi-wm8804-audio-overlay.dts
438 create mode 100644 arch/arm/boot/dts/overlays/jedec-spi-nor-overlay.dts
439 create mode 100644 arch/arm/boot/dts/overlays/justboom-dac-overlay.dts
440 create mode 100644 arch/arm/boot/dts/overlays/justboom-digi-overlay.dts
441 create mode 100644 arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts
442 create mode 100644 arch/arm/boot/dts/overlays/ltc294x-overlay.dts
443 create mode 100644 arch/arm/boot/dts/overlays/mbed-dac-overlay.dts
444 create mode 100644 arch/arm/boot/dts/overlays/mcp23017-overlay.dts
445 create mode 100644 arch/arm/boot/dts/overlays/mcp23s17-overlay.dts
446 create mode 100755 arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts
447 create mode 100644 arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts
448 create mode 100755 arch/arm/boot/dts/overlays/mcp3008-overlay.dts
449 create mode 100755 arch/arm/boot/dts/overlays/mcp3202-overlay.dts
450 create mode 100644 arch/arm/boot/dts/overlays/media-center-overlay.dts
451 create mode 100644 arch/arm/boot/dts/overlays/midi-uart0-overlay.dts
452 create mode 100644 arch/arm/boot/dts/overlays/midi-uart1-overlay.dts
453 create mode 100644 arch/arm/boot/dts/overlays/mmc-overlay.dts
454 create mode 100644 arch/arm/boot/dts/overlays/mpu6050-overlay.dts
455 create mode 100644 arch/arm/boot/dts/overlays/mz61581-overlay.dts
456 create mode 100644 arch/arm/boot/dts/overlays/papirus-overlay.dts
457 create mode 100644 arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts
458 create mode 100644 arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts
459 create mode 100644 arch/arm/boot/dts/overlays/pi3-disable-wifi-overlay.dts
460 create mode 100644 arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts
461 create mode 100644 arch/arm/boot/dts/overlays/pibell-overlay.dts
462 create mode 100644 arch/arm/boot/dts/overlays/piscreen-overlay.dts
463 create mode 100644 arch/arm/boot/dts/overlays/piscreen2r-overlay.dts
464 create mode 100644 arch/arm/boot/dts/overlays/pisound-overlay.dts
465 create mode 100644 arch/arm/boot/dts/overlays/pitft22-overlay.dts
466 create mode 100644 arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts
467 create mode 100644 arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts
468 create mode 100644 arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts
469 create mode 100644 arch/arm/boot/dts/overlays/pps-gpio-overlay.dts
470 create mode 100644 arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts
471 create mode 100644 arch/arm/boot/dts/overlays/pwm-ir-tx-overlay.dts
472 create mode 100644 arch/arm/boot/dts/overlays/pwm-overlay.dts
473 create mode 100644 arch/arm/boot/dts/overlays/qca7000-overlay.dts
474 create mode 100644 arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts
475 create mode 100644 arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts
476 create mode 100644 arch/arm/boot/dts/overlays/rpi-cirrus-wm5102-overlay.dts
477 create mode 100644 arch/arm/boot/dts/overlays/rpi-dac-overlay.dts
478 create mode 100644 arch/arm/boot/dts/overlays/rpi-display-overlay.dts
479 create mode 100644 arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts
480 create mode 100644 arch/arm/boot/dts/overlays/rpi-proto-overlay.dts
481 create mode 100644 arch/arm/boot/dts/overlays/rpi-sense-overlay.dts
482 create mode 100644 arch/arm/boot/dts/overlays/rpi-tv-overlay.dts
483 create mode 100644 arch/arm/boot/dts/overlays/rra-digidac1-wm8741-audio-overlay.dts
484 create mode 100644 arch/arm/boot/dts/overlays/sc16is750-i2c-overlay.dts
485 create mode 100644 arch/arm/boot/dts/overlays/sc16is752-i2c-overlay.dts
486 create mode 100644 arch/arm/boot/dts/overlays/sc16is752-spi1-overlay.dts
487 create mode 100644 arch/arm/boot/dts/overlays/sdhost-overlay.dts
488 create mode 100644 arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts
489 create mode 100644 arch/arm/boot/dts/overlays/sdio-overlay.dts
490 create mode 100644 arch/arm/boot/dts/overlays/sdtweak-overlay.dts
491 create mode 100644 arch/arm/boot/dts/overlays/smi-dev-overlay.dts
492 create mode 100644 arch/arm/boot/dts/overlays/smi-nand-overlay.dts
493 create mode 100644 arch/arm/boot/dts/overlays/smi-overlay.dts
494 create mode 100644 arch/arm/boot/dts/overlays/spi-gpio35-39-overlay.dts
495 create mode 100644 arch/arm/boot/dts/overlays/spi-rtc-overlay.dts
496 create mode 100644 arch/arm/boot/dts/overlays/spi0-cs-overlay.dts
497 create mode 100644 arch/arm/boot/dts/overlays/spi0-hw-cs-overlay.dts
498 create mode 100644 arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts
499 create mode 100644 arch/arm/boot/dts/overlays/spi1-2cs-overlay.dts
500 create mode 100644 arch/arm/boot/dts/overlays/spi1-3cs-overlay.dts
501 create mode 100644 arch/arm/boot/dts/overlays/spi2-1cs-overlay.dts
502 create mode 100644 arch/arm/boot/dts/overlays/spi2-2cs-overlay.dts
503 create mode 100644 arch/arm/boot/dts/overlays/spi2-3cs-overlay.dts
504 create mode 100755 arch/arm/boot/dts/overlays/superaudioboard-overlay.dts
505 create mode 100644 arch/arm/boot/dts/overlays/sx150x-overlay.dts
506 create mode 100644 arch/arm/boot/dts/overlays/tinylcd35-overlay.dts
507 create mode 100755 arch/arm/boot/dts/overlays/uart0-overlay.dts
508 create mode 100644 arch/arm/boot/dts/overlays/uart1-overlay.dts
509 create mode 100644 arch/arm/boot/dts/overlays/upstream-aux-interrupt-overlay.dts
510 create mode 100644 arch/arm/boot/dts/overlays/upstream-overlay.dts
511 create mode 100644 arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts
512 create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts
513 create mode 100644 arch/arm/boot/dts/overlays/vga666-overlay.dts
514 create mode 100644 arch/arm/boot/dts/overlays/w1-gpio-overlay.dts
515 create mode 100644 arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts
516 create mode 100644 arch/arm/boot/dts/overlays/wittypi-overlay.dts
529 --- a/arch/arm/Makefile
530 +++ b/arch/arm/Makefile
531 @@ -341,6 +341,8 @@ $(INSTALL_TARGETS):
534 $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
536 + $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
538 PHONY += dtbs dtbs_install
540 --- a/arch/arm/boot/dts/Makefile
541 +++ b/arch/arm/boot/dts/Makefile
543 # SPDX-License-Identifier: GPL-2.0
545 +dtb-$(CONFIG_ARCH_BCM2835) += \
546 + bcm2708-rpi-b.dtb \
547 + bcm2708-rpi-b-plus.dtb \
548 + bcm2708-rpi-cm.dtb \
549 + bcm2708-rpi-0-w.dtb \
550 + bcm2709-rpi-2-b.dtb \
551 + bcm2710-rpi-3-b.dtb \
552 + bcm2710-rpi-3-b-plus.dtb \
553 + bcm2710-rpi-cm3.dtb
555 dtb-$(CONFIG_ARCH_ALPINE) += \
557 dtb-$(CONFIG_MACH_ARTPEC6) += \
558 @@ -1207,3 +1218,13 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
559 aspeed-bmc-opp-zaius.dtb \
560 aspeed-bmc-portwell-neptune.dtb \
561 aspeed-bmc-quanta-q71l.dtb
563 +targets += dtbs dtbs_install
566 +subdir-y := overlays
568 +# Enable fixups to support overlays on BCM2835 platforms
569 +ifeq ($(CONFIG_ARCH_BCM2835),y)
573 +++ b/arch/arm/boot/dts/bcm2708-rpi-0-w.dts
577 +#include "bcm2708.dtsi"
580 + compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
581 + model = "Raspberry Pi Zero W";
584 + bootargs = "8250.nr_uarts=1";
594 + spi0_pins: spi0_pins {
595 + brcm,pins = <9 10 11>;
596 + brcm,function = <4>; /* alt0 */
599 + spi0_cs_pins: spi0_cs_pins {
601 + brcm,function = <1>; /* output */
606 + brcm,function = <4>;
611 + brcm,function = <4>;
615 + brcm,pins = <18 19 20 21>;
616 + brcm,function = <4>; /* alt0 */
619 + sdio_pins: sdio_pins {
620 + brcm,pins = <34 35 36 37 38 39>;
621 + brcm,function = <7>; /* ALT3 = SD1 */
622 + brcm,pull = <0 2 2 2 2 2>;
627 + brcm,function = <4>; /* alt0:GPCLK2 */
628 + brcm,pull = <0>; /* none */
631 + uart0_pins: uart0_pins {
632 + brcm,pins = <30 31 32 33>;
633 + brcm,function = <7>; /* alt3=UART0 */
634 + brcm,pull = <2 0 0 2>; /* up none none up */
637 + uart1_pins: uart1_pins {
643 + audio_pins: audio_pins {
645 + brcm,function = <>;
650 + pinctrl-names = "default";
651 + pinctrl-0 = <&sdio_pins>;
658 + pinctrl-names = "default";
659 + pinctrl-0 = <&uart0_pins &bt_pins>;
664 + pinctrl-names = "default";
665 + pinctrl-0 = <&uart1_pins>;
670 + pinctrl-names = "default";
671 + pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
672 + cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
675 + compatible = "spidev";
676 + reg = <0>; /* CE0 */
677 + #address-cells = <1>;
679 + spi-max-frequency = <125000000>;
683 + compatible = "spidev";
684 + reg = <1>; /* CE1 */
685 + #address-cells = <1>;
687 + spi-max-frequency = <125000000>;
692 + pinctrl-names = "default";
693 + pinctrl-0 = <&i2c0_pins>;
694 + clock-frequency = <100000>;
698 + pinctrl-names = "default";
699 + pinctrl-0 = <&i2c1_pins>;
700 + clock-frequency = <100000>;
704 + clock-frequency = <100000>;
708 + #sound-dai-cells = <0>;
709 + pinctrl-names = "default";
710 + pinctrl-0 = <&i2s_pins>;
720 + linux,default-trigger = "mmc0";
721 + gpios = <&gpio 47 0>;
726 + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
730 + pinctrl-names = "default";
731 + pinctrl-0 = <&audio_pins>;
736 + act_led_gpio = <&act_led>,"gpios:4";
737 + act_led_activelow = <&act_led>,"gpios:8";
738 + act_led_trigger = <&act_led>,"linux,default-trigger";
742 +++ b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
746 +#include "bcm2708.dtsi"
747 +#include "bcm283x-rpi-smsc9514.dtsi"
750 + model = "Raspberry Pi Model B+";
754 + spi0_pins: spi0_pins {
755 + brcm,pins = <9 10 11>;
756 + brcm,function = <4>; /* alt0 */
759 + spi0_cs_pins: spi0_cs_pins {
761 + brcm,function = <1>; /* output */
766 + brcm,function = <4>;
771 + brcm,function = <4>;
775 + brcm,pins = <18 19 20 21>;
776 + brcm,function = <4>; /* alt0 */
779 + audio_pins: audio_pins {
780 + brcm,pins = <40 45>;
781 + brcm,function = <4>;
790 + pinctrl-names = "default";
791 + pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
792 + cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
795 + compatible = "spidev";
796 + reg = <0>; /* CE0 */
797 + #address-cells = <1>;
799 + spi-max-frequency = <125000000>;
803 + compatible = "spidev";
804 + reg = <1>; /* CE1 */
805 + #address-cells = <1>;
807 + spi-max-frequency = <125000000>;
812 + pinctrl-names = "default";
813 + pinctrl-0 = <&i2c0_pins>;
814 + clock-frequency = <100000>;
818 + pinctrl-names = "default";
819 + pinctrl-0 = <&i2c1_pins>;
820 + clock-frequency = <100000>;
824 + clock-frequency = <100000>;
828 + pinctrl-names = "default";
829 + pinctrl-0 = <&i2s_pins>;
835 + linux,default-trigger = "mmc0";
836 + gpios = <&gpio 47 0>;
841 + linux,default-trigger = "input";
842 + gpios = <&gpio 35 0>;
847 + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
851 + pinctrl-names = "default";
852 + pinctrl-0 = <&audio_pins>;
857 + act_led_gpio = <&act_led>,"gpios:4";
858 + act_led_activelow = <&act_led>,"gpios:8";
859 + act_led_trigger = <&act_led>,"linux,default-trigger";
861 + pwr_led_gpio = <&pwr_led>,"gpios:4";
862 + pwr_led_activelow = <&pwr_led>,"gpios:8";
863 + pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
867 +++ b/arch/arm/boot/dts/bcm2708-rpi-b.dts
871 +#include "bcm2708.dtsi"
872 +#include "bcm283x-rpi-smsc9512.dtsi"
875 + model = "Raspberry Pi Model B";
879 + spi0_pins: spi0_pins {
880 + brcm,pins = <9 10 11>;
881 + brcm,function = <4>; /* alt0 */
884 + spi0_cs_pins: spi0_cs_pins {
886 + brcm,function = <1>; /* output */
891 + brcm,function = <4>;
896 + brcm,function = <4>;
900 + brcm,pins = <28 29 30 31>;
901 + brcm,function = <6>; /* alt2 */
904 + audio_pins: audio_pins {
905 + brcm,pins = <40 45>;
906 + brcm,function = <4>;
915 + pinctrl-names = "default";
916 + pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
917 + cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
920 + compatible = "spidev";
921 + reg = <0>; /* CE0 */
922 + #address-cells = <1>;
924 + spi-max-frequency = <125000000>;
928 + compatible = "spidev";
929 + reg = <1>; /* CE1 */
930 + #address-cells = <1>;
932 + spi-max-frequency = <125000000>;
937 + pinctrl-names = "default";
938 + pinctrl-0 = <&i2c0_pins>;
939 + clock-frequency = <100000>;
943 + pinctrl-names = "default";
944 + pinctrl-0 = <&i2c1_pins>;
945 + clock-frequency = <100000>;
949 + clock-frequency = <100000>;
953 + pinctrl-names = "default";
954 + pinctrl-0 = <&i2s_pins>;
960 + linux,default-trigger = "mmc0";
961 + gpios = <&gpio 16 1>;
966 + hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
970 + pinctrl-names = "default";
971 + pinctrl-0 = <&audio_pins>;
976 + act_led_gpio = <&act_led>,"gpios:4";
977 + act_led_activelow = <&act_led>,"gpios:8";
978 + act_led_trigger = <&act_led>,"linux,default-trigger";
982 +++ b/arch/arm/boot/dts/bcm2708-rpi-cm.dts
986 +#include "bcm2708-rpi-cm.dtsi"
989 + model = "Raspberry Pi Compute Module";
997 + spi0_pins: spi0_pins {
998 + brcm,pins = <9 10 11>;
999 + brcm,function = <4>; /* alt0 */
1002 + spi0_cs_pins: spi0_cs_pins {
1003 + brcm,pins = <8 7>;
1004 + brcm,function = <1>; /* output */
1008 + brcm,pins = <0 1>;
1009 + brcm,function = <4>;
1013 + brcm,pins = <2 3>;
1014 + brcm,function = <4>;
1018 + brcm,pins = <18 19 20 21>;
1019 + brcm,function = <4>; /* alt0 */
1022 + audio_pins: audio_pins {
1029 + pinctrl-names = "default";
1030 + pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
1031 + cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
1033 + spidev0: spidev@0{
1034 + compatible = "spidev";
1035 + reg = <0>; /* CE0 */
1036 + #address-cells = <1>;
1037 + #size-cells = <0>;
1038 + spi-max-frequency = <125000000>;
1041 + spidev1: spidev@1{
1042 + compatible = "spidev";
1043 + reg = <1>; /* CE1 */
1044 + #address-cells = <1>;
1045 + #size-cells = <0>;
1046 + spi-max-frequency = <125000000>;
1051 + pinctrl-names = "default";
1052 + pinctrl-0 = <&i2c0_pins>;
1053 + clock-frequency = <100000>;
1057 + pinctrl-names = "default";
1058 + pinctrl-0 = <&i2c1_pins>;
1059 + clock-frequency = <100000>;
1063 + clock-frequency = <100000>;
1067 + pinctrl-names = "default";
1068 + pinctrl-0 = <&i2s_pins>;
1072 + pinctrl-names = "default";
1073 + pinctrl-0 = <&audio_pins>;
1077 + hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
1080 +++ b/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
1082 +#include "bcm2708.dtsi"
1087 + linux,default-trigger = "mmc0";
1088 + gpios = <&gpio 47 0>;
1094 + act_led_gpio = <&act_led>,"gpios:4";
1095 + act_led_activelow = <&act_led>,"gpios:8";
1096 + act_led_trigger = <&act_led>,"linux,default-trigger";
1100 +++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi
1102 +/* Downstream version of bcm2835-rpi.dtsi */
1104 +#include <dt-bindings/power/raspberrypi-power.h>
1108 + device_type = "memory";
1119 + watchdog = &watchdog;
1121 + mailbox = &mailbox;
1139 + thermal = &thermal;
1140 + axiperf = &axiperf;
1144 + compatible = "gpio-leds";
1149 + compatible = "brcm,bcm2835-gpiomem";
1150 + reg = <0x7e200000 0x1000>;
1153 + firmware: firmware {
1154 + compatible = "raspberrypi,bcm2835-firmware";
1155 + mboxes = <&mailbox>;
1159 + compatible = "raspberrypi,bcm2835-power";
1160 + firmware = <&firmware>;
1161 + #power-domain-cells = <1>;
1165 + compatible = "brcm,bcm2708-fb";
1166 + firmware = <&firmware>;
1167 + status = "disabled";
1170 + mailbox@7e00b840 {
1171 + compatible = "brcm,bcm2835-vchiq";
1172 + reg = <0x7e00b840 0x3c>;
1173 + interrupts = <0 2>;
1177 + compatible = "raspberrypi,bcm2835-vcsm";
1178 + firmware = <&firmware>;
1182 + /* Onboard audio */
1184 + compatible = "brcm,bcm2835-audio";
1185 + brcm,pwm-channels = <8>;
1186 + status = "disabled";
1189 + /* External sound card */
1191 + status = "disabled";
1198 + uart0 = <&uart0>,"status";
1199 + uart1 = <&uart1>,"status";
1200 + i2s = <&i2s>,"status";
1201 + spi = <&spi0>,"status";
1202 + i2c0 = <&i2c0>,"status";
1203 + i2c1 = <&i2c1>,"status";
1204 + i2c2_iknowwhatimdoing = <&i2c2>,"status";
1205 + i2c0_baudrate = <&i2c0>,"clock-frequency:0";
1206 + i2c1_baudrate = <&i2c1>,"clock-frequency:0";
1207 + i2c2_baudrate = <&i2c2>,"clock-frequency:0";
1209 + audio = <&audio>,"status";
1210 + watchdog = <&watchdog>,"status";
1211 + random = <&random>,"status";
1212 + sd_overclock = <&sdhost>,"brcm,overclock-50:0";
1213 + sd_force_pio = <&sdhost>,"brcm,force-pio?";
1214 + sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
1215 + sd_debug = <&sdhost>,"brcm,debug";
1216 + sdio_overclock = <&mmc>,"brcm,overclock-50:0";
1217 + axiperf = <&axiperf>,"status";
1222 + brcm,dma-channel-mask = <0x7f34>;
1226 + power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
1230 + power-domains = <&power RPI_POWER_DOMAIN_USB>;
1234 + firmware = <&firmware>;
1237 +sdhost_pins: &sdhost_gpio48 {
1242 + pinctrl-names = "default";
1243 + pinctrl-0 = <&sdhost_gpio48>;
1245 + brcm,overclock-50 = <0>;
1246 + brcm,pio-limit = <1>;
1255 + /delete-node/ trips;
1259 + status = "disabled";
1262 +++ b/arch/arm/boot/dts/bcm2708.dtsi
1264 +#include "bcm2835.dtsi"
1265 +#include "bcm270x.dtsi"
1266 +#include "bcm2708-rpi.dtsi"
1269 + /delete-node/ cpus;
1276 +++ b/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
1280 +#include "bcm2709.dtsi"
1281 +#include "bcm283x-rpi-smsc9514.dtsi"
1284 + compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
1285 + model = "Raspberry Pi 2 Model B";
1289 + spi0_pins: spi0_pins {
1290 + brcm,pins = <9 10 11>;
1291 + brcm,function = <4>; /* alt0 */
1294 + spi0_cs_pins: spi0_cs_pins {
1295 + brcm,pins = <8 7>;
1296 + brcm,function = <1>; /* output */
1300 + brcm,pins = <0 1>;
1301 + brcm,function = <4>;
1305 + brcm,pins = <2 3>;
1306 + brcm,function = <4>;
1310 + brcm,pins = <18 19 20 21>;
1311 + brcm,function = <4>; /* alt0 */
1314 + audio_pins: audio_pins {
1315 + brcm,pins = <40 45>;
1316 + brcm,function = <4>;
1325 + pinctrl-names = "default";
1326 + pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
1327 + cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
1329 + spidev0: spidev@0{
1330 + compatible = "spidev";
1331 + reg = <0>; /* CE0 */
1332 + #address-cells = <1>;
1333 + #size-cells = <0>;
1334 + spi-max-frequency = <125000000>;
1337 + spidev1: spidev@1{
1338 + compatible = "spidev";
1339 + reg = <1>; /* CE1 */
1340 + #address-cells = <1>;
1341 + #size-cells = <0>;
1342 + spi-max-frequency = <125000000>;
1347 + pinctrl-names = "default";
1348 + pinctrl-0 = <&i2c0_pins>;
1349 + clock-frequency = <100000>;
1353 + pinctrl-names = "default";
1354 + pinctrl-0 = <&i2c1_pins>;
1355 + clock-frequency = <100000>;
1359 + clock-frequency = <100000>;
1363 + pinctrl-names = "default";
1364 + pinctrl-0 = <&i2s_pins>;
1370 + linux,default-trigger = "mmc0";
1371 + gpios = <&gpio 47 0>;
1376 + linux,default-trigger = "input";
1377 + gpios = <&gpio 35 0>;
1382 + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
1386 + pinctrl-names = "default";
1387 + pinctrl-0 = <&audio_pins>;
1392 + act_led_gpio = <&act_led>,"gpios:4";
1393 + act_led_activelow = <&act_led>,"gpios:8";
1394 + act_led_trigger = <&act_led>,"linux,default-trigger";
1396 + pwr_led_gpio = <&pwr_led>,"gpios:4";
1397 + pwr_led_activelow = <&pwr_led>,"gpios:8";
1398 + pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
1402 +++ b/arch/arm/boot/dts/bcm2709.dtsi
1404 +#include "bcm2836.dtsi"
1405 +#include "bcm270x.dtsi"
1406 +#include "bcm2708-rpi.dtsi"
1410 + ranges = <0x7e000000 0x3f000000 0x01000000>,
1411 + <0x40000000 0x40000000 0x00040000>;
1413 + /delete-node/ timer@7e003000;
1417 + arm_freq = <&v7_cpu0>, "clock-frequency:0",
1418 + <&v7_cpu1>, "clock-frequency:0",
1419 + <&v7_cpu2>, "clock-frequency:0",
1420 + <&v7_cpu3>, "clock-frequency:0";
1424 +++ b/arch/arm/boot/dts/bcm270x.dtsi
1426 +/* Downstream bcm283x.dtsi diff */
1427 +#include <dt-bindings/power/raspberrypi-power.h>
1432 + /delete-property/ stdout-path;
1437 + watchdog: watchdog@7e100000 {
1441 + random: rng@7e104000 {
1445 + gpio@7e200000 { /* gpio */
1446 + interrupts = <2 17>, <2 18>;
1449 + serial@7e201000 { /* uart0 */
1450 + /* Enable CTS bug workaround */
1451 + cts-event-workaround;
1454 + i2s@7e203000 { /* i2s */
1455 + #sound-dai-cells = <0>;
1456 + reg = <0x7e203000 0x24>;
1457 + clocks = <&clocks BCM2835_CLOCK_PCM>;
1460 + spi0: spi@7e204000 {
1462 + dmas = <&dma 6>, <&dma 7>;
1463 + dma-names = "tx", "rx";
1466 + pixelvalve0: pixelvalve@7e206000 {
1468 + status = "disabled";
1471 + pixelvalve1: pixelvalve@7e207000 {
1473 + status = "disabled";
1476 + dpi: dpi@7e208000 {
1477 + compatible = "brcm,bcm2835-dpi";
1478 + reg = <0x7e208000 0x8c>;
1479 + clocks = <&clocks BCM2835_CLOCK_VPU>,
1480 + <&clocks BCM2835_CLOCK_DPI>;
1481 + clock-names = "core", "pixel";
1482 + #address-cells = <1>;
1483 + #size-cells = <0>;
1484 + status = "disabled";
1487 + /delete-node/ sdhci@7e300000;
1489 + mmc: mmc@7e300000 {
1490 + compatible = "brcm,bcm2835-mmc", "brcm,bcm2835-sdhci";
1491 + reg = <0x7e300000 0x100>;
1492 + interrupts = <2 30>;
1493 + clocks = <&clocks BCM2835_CLOCK_EMMC>;
1495 + dma-names = "rx-tx";
1496 + brcm,overclock-50 = <0>;
1497 + status = "disabled";
1500 + hvs: hvs@7e400000 {
1502 + status = "disabled";
1505 + firmwarekms: firmwarekms@7e600000 {
1506 + compatible = "raspberrypi,rpi-firmware-kms";
1507 + /* SMI interrupt reg */
1508 + reg = <0x7e600000 0x100>;
1509 + interrupts = <2 16>;
1510 + brcm,firmware = <&firmware>;
1511 + status = "disabled";
1514 + smi: smi@7e600000 {
1515 + compatible = "brcm,bcm2835-smi";
1516 + reg = <0x7e600000 0x100>;
1517 + interrupts = <2 16>;
1518 + clocks = <&clocks BCM2835_CLOCK_SMI>;
1519 + assigned-clocks = <&clocks BCM2835_CLOCK_SMI>;
1520 + assigned-clock-rates = <125000000>;
1522 + dma-names = "rx-tx";
1523 + status = "disabled";
1526 + pixelvalve2: pixelvalve@7e807000 {
1528 + status = "disabled";
1531 + hdmi@7e902000 { /* hdmi */
1532 + status = "disabled";
1535 + usb@7e980000 { /* usb */
1536 + compatible = "brcm,bcm2708-usb";
1537 + reg = <0x7e980000 0x10000>,
1538 + <0x7e006000 0x1000>;
1539 + interrupts = <2 0>,
1543 + v3d@7ec00000 { /* vd3 */
1544 + compatible = "brcm,vc4-v3d";
1545 + power-domains = <&power RPI_POWER_DOMAIN_V3D>;
1546 + status = "disabled";
1549 + axiperf: axiperf {
1550 + compatible = "brcm,bcm2835-axiperf";
1551 + reg = <0x7e009800 0x100>,
1552 + <0x7ee08000 0x100>;
1553 + firmware = <&firmware>;
1554 + status = "disabled";
1558 + vdd_5v0_reg: fixedregulator_5v0 {
1559 + compatible = "regulator-fixed";
1560 + regulator-name = "5v0";
1561 + regulator-min-microvolt = <5000000>;
1562 + regulator-max-microvolt = <5000000>;
1563 + regulator-always-on;
1566 + vdd_3v3_reg: fixedregulator_3v3 {
1567 + compatible = "regulator-fixed";
1568 + regulator-name = "3v3";
1569 + regulator-min-microvolt = <3300000>;
1570 + regulator-max-microvolt = <3300000>;
1571 + regulator-always-on;
1576 + status = "disabled";
1579 +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
1583 +#include "bcm2710.dtsi"
1584 +#include "bcm283x-rpi-lan7515.dtsi"
1587 + compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";
1588 + model = "Raspberry Pi 3 Model B+";
1591 + bootargs = "8250.nr_uarts=1";
1601 + spi0_pins: spi0_pins {
1602 + brcm,pins = <9 10 11>;
1603 + brcm,function = <4>; /* alt0 */
1606 + spi0_cs_pins: spi0_cs_pins {
1607 + brcm,pins = <8 7>;
1608 + brcm,function = <1>; /* output */
1612 + brcm,pins = <0 1>;
1613 + brcm,function = <4>;
1617 + brcm,pins = <2 3>;
1618 + brcm,function = <4>;
1622 + brcm,pins = <18 19 20 21>;
1623 + brcm,function = <4>; /* alt0 */
1626 + sdio_pins: sdio_pins {
1627 + brcm,pins = <34 35 36 37 38 39>;
1628 + brcm,function = <7>; // alt3 = SD1
1629 + brcm,pull = <0 2 2 2 2 2>;
1632 + bt_pins: bt_pins {
1634 + brcm,function = <4>; /* alt0:GPCLK2 */
1638 + uart0_pins: uart0_pins {
1639 + brcm,pins = <32 33>;
1640 + brcm,function = <7>; /* alt3=UART0 */
1641 + brcm,pull = <0 2>;
1644 + uart1_pins: uart1_pins {
1650 + audio_pins: audio_pins {
1651 + brcm,pins = <40 41>;
1652 + brcm,function = <4>;
1657 + pinctrl-names = "default";
1658 + pinctrl-0 = <&sdio_pins>;
1662 + brcm,overclock-50 = <0>;
1666 + expgpio: expgpio {
1667 + compatible = "brcm,bcm2835-expgpio";
1669 + #gpio-cells = <2>;
1670 + firmware = <&firmware>;
1676 + pinctrl-names = "default";
1677 + pinctrl-0 = <&uart0_pins &bt_pins>;
1682 + pinctrl-names = "default";
1683 + pinctrl-0 = <&uart1_pins>;
1688 + pinctrl-names = "default";
1689 + pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
1690 + cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
1692 + spidev0: spidev@0{
1693 + compatible = "spidev";
1694 + reg = <0>; /* CE0 */
1695 + #address-cells = <1>;
1696 + #size-cells = <0>;
1697 + spi-max-frequency = <125000000>;
1700 + spidev1: spidev@1{
1701 + compatible = "spidev";
1702 + reg = <1>; /* CE1 */
1703 + #address-cells = <1>;
1704 + #size-cells = <0>;
1705 + spi-max-frequency = <125000000>;
1710 + pinctrl-names = "default";
1711 + pinctrl-0 = <&i2c0_pins>;
1712 + clock-frequency = <100000>;
1716 + pinctrl-names = "default";
1717 + pinctrl-0 = <&i2c1_pins>;
1718 + clock-frequency = <100000>;
1722 + clock-frequency = <100000>;
1726 + pinctrl-names = "default";
1727 + pinctrl-0 = <&i2s_pins>;
1733 + linux,default-trigger = "mmc0";
1734 + gpios = <&gpio 29 0>;
1739 + linux,default-trigger = "default-on";
1740 + gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
1745 + hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
1749 + pinctrl-names = "default";
1750 + pinctrl-0 = <&audio_pins>;
1755 + act_led_gpio = <&act_led>,"gpios:4";
1756 + act_led_activelow = <&act_led>,"gpios:8";
1757 + act_led_trigger = <&act_led>,"linux,default-trigger";
1759 + pwr_led_gpio = <&pwr_led>,"gpios:4";
1760 + pwr_led_activelow = <&pwr_led>,"gpios:8";
1761 + pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
1765 +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
1769 +#include "bcm2710.dtsi"
1770 +#include "bcm283x-rpi-smsc9514.dtsi"
1773 + compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
1774 + model = "Raspberry Pi 3 Model B";
1777 + bootargs = "8250.nr_uarts=1";
1787 + spi0_pins: spi0_pins {
1788 + brcm,pins = <9 10 11>;
1789 + brcm,function = <4>; /* alt0 */
1792 + spi0_cs_pins: spi0_cs_pins {
1793 + brcm,pins = <8 7>;
1794 + brcm,function = <1>; /* output */
1798 + brcm,pins = <0 1>;
1799 + brcm,function = <4>;
1803 + brcm,pins = <2 3>;
1804 + brcm,function = <4>;
1808 + brcm,pins = <18 19 20 21>;
1809 + brcm,function = <4>; /* alt0 */
1812 + sdio_pins: sdio_pins {
1813 + brcm,pins = <34 35 36 37 38 39>;
1814 + brcm,function = <7>; // alt3 = SD1
1815 + brcm,pull = <0 2 2 2 2 2>;
1818 + bt_pins: bt_pins {
1820 + brcm,function = <4>; /* alt0:GPCLK2 */
1824 + uart0_pins: uart0_pins {
1825 + brcm,pins = <32 33>;
1826 + brcm,function = <7>; /* alt3=UART0 */
1827 + brcm,pull = <0 2>;
1830 + uart1_pins: uart1_pins {
1836 + audio_pins: audio_pins {
1837 + brcm,pins = <40 41>;
1838 + brcm,function = <4>;
1843 + pinctrl-names = "default";
1844 + pinctrl-0 = <&sdio_pins>;
1848 + brcm,overclock-50 = <0>;
1852 + virtgpio: virtgpio {
1853 + compatible = "brcm,bcm2835-virtgpio";
1855 + #gpio-cells = <2>;
1856 + firmware = <&firmware>;
1860 + expgpio: expgpio {
1861 + compatible = "brcm,bcm2835-expgpio";
1863 + #gpio-cells = <2>;
1864 + firmware = <&firmware>;
1870 + pinctrl-names = "default";
1871 + pinctrl-0 = <&uart0_pins &bt_pins>;
1876 + pinctrl-names = "default";
1877 + pinctrl-0 = <&uart1_pins>;
1882 + pinctrl-names = "default";
1883 + pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
1884 + cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
1886 + spidev0: spidev@0{
1887 + compatible = "spidev";
1888 + reg = <0>; /* CE0 */
1889 + #address-cells = <1>;
1890 + #size-cells = <0>;
1891 + spi-max-frequency = <125000000>;
1894 + spidev1: spidev@1{
1895 + compatible = "spidev";
1896 + reg = <1>; /* CE1 */
1897 + #address-cells = <1>;
1898 + #size-cells = <0>;
1899 + spi-max-frequency = <125000000>;
1904 + pinctrl-names = "default";
1905 + pinctrl-0 = <&i2c0_pins>;
1906 + clock-frequency = <100000>;
1910 + pinctrl-names = "default";
1911 + pinctrl-0 = <&i2c1_pins>;
1912 + clock-frequency = <100000>;
1916 + clock-frequency = <100000>;
1920 + pinctrl-names = "default";
1921 + pinctrl-0 = <&i2s_pins>;
1927 + linux,default-trigger = "mmc0";
1928 + gpios = <&virtgpio 0 0>;
1933 + linux,default-trigger = "input";
1934 + gpios = <&expgpio 7 0>;
1939 + hpd-gpios = <&expgpio 4 GPIO_ACTIVE_LOW>;
1943 + pinctrl-names = "default";
1944 + pinctrl-0 = <&audio_pins>;
1949 + act_led_gpio = <&act_led>,"gpios:4";
1950 + act_led_activelow = <&act_led>,"gpios:8";
1951 + act_led_trigger = <&act_led>,"linux,default-trigger";
1953 + pwr_led_gpio = <&pwr_led>,"gpios:4";
1954 + pwr_led_activelow = <&pwr_led>,"gpios:8";
1955 + pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
1959 +++ b/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
1963 +#include "bcm2710.dtsi"
1966 + model = "Raspberry Pi Compute Module 3";
1974 + spi0_pins: spi0_pins {
1975 + brcm,pins = <9 10 11>;
1976 + brcm,function = <4>; /* alt0 */
1979 + spi0_cs_pins: spi0_cs_pins {
1980 + brcm,pins = <8 7>;
1981 + brcm,function = <1>; /* output */
1985 + brcm,pins = <0 1>;
1986 + brcm,function = <4>;
1990 + brcm,pins = <2 3>;
1991 + brcm,function = <4>;
1995 + brcm,pins = <18 19 20 21>;
1996 + brcm,function = <4>; /* alt0 */
1999 + audio_pins: audio_pins {
2006 + virtgpio: virtgpio {
2007 + compatible = "brcm,bcm2835-virtgpio";
2009 + #gpio-cells = <2>;
2010 + firmware = <&firmware>;
2014 + expgpio: expgpio {
2015 + compatible = "brcm,bcm2835-expgpio";
2017 + #gpio-cells = <2>;
2018 + firmware = <&firmware>;
2024 + pinctrl-names = "default";
2025 + pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
2026 + cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
2028 + spidev0: spidev@0{
2029 + compatible = "spidev";
2030 + reg = <0>; /* CE0 */
2031 + #address-cells = <1>;
2032 + #size-cells = <0>;
2033 + spi-max-frequency = <125000000>;
2036 + spidev1: spidev@1{
2037 + compatible = "spidev";
2038 + reg = <1>; /* CE1 */
2039 + #address-cells = <1>;
2040 + #size-cells = <0>;
2041 + spi-max-frequency = <125000000>;
2046 + pinctrl-names = "default";
2047 + pinctrl-0 = <&i2c0_pins>;
2048 + clock-frequency = <100000>;
2052 + pinctrl-names = "default";
2053 + pinctrl-0 = <&i2c1_pins>;
2054 + clock-frequency = <100000>;
2058 + clock-frequency = <100000>;
2062 + pinctrl-names = "default";
2063 + pinctrl-0 = <&i2s_pins>;
2069 + linux,default-trigger = "mmc0";
2070 + gpios = <&virtgpio 0 0>;
2075 + hpd-gpios = <&expgpio 0 GPIO_ACTIVE_LOW>;
2079 + pinctrl-names = "default";
2080 + pinctrl-0 = <&audio_pins>;
2085 + act_led_gpio = <&act_led>,"gpios:4";
2086 + act_led_activelow = <&act_led>,"gpios:8";
2087 + act_led_trigger = <&act_led>,"linux,default-trigger";
2091 +++ b/arch/arm/boot/dts/bcm2710.dtsi
2093 +#include "bcm2837.dtsi"
2094 +#include "bcm270x.dtsi"
2095 +#include "bcm2708-rpi.dtsi"
2098 + compatible = "brcm,bcm2837", "brcm,bcm2836";
2104 + compatible = "arm,armv8-pmuv3", "arm,cortex-a7-pmu";
2106 + compatible = "arm,cortex-a7-pmu";
2108 + interrupt-parent = <&local_intc>;
2109 + interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
2112 + /delete-node/ timer@7e003000;
2116 + arm_freq = <&cpu0>, "clock-frequency:0",
2117 + <&cpu1>, "clock-frequency:0",
2118 + <&cpu2>, "clock-frequency:0",
2119 + <&cpu3>, "clock-frequency:0";
2122 --- a/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
2123 +++ b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
2125 ethernet: ethernet@1 {
2126 compatible = "usb424,7800";
2128 + microchip,eee-enabled;
2129 + microchip,tx-lpi-timer = <600>; /* non-aggressive*/
2131 + * led0 = 1:link1000/activity
2132 + * led1 = 6:link10/100/activity
2134 + microchip,led-modes = <1 6>;
2143 + eee = <ðernet>,"microchip,eee-enabled?";
2144 + tx_lpi_timer = <ðernet>,"microchip,tx-lpi-timer:0";
2145 + eth_led0 = <ðernet>,"microchip,led-modes:0";
2146 + eth_led1 = <ðernet>,"microchip,led-modes:4";
2150 +++ b/arch/arm/boot/dts/overlays/Makefile
2152 +# Overlays for the Raspberry Pi platform
2154 +dtbo-$(CONFIG_ARCH_BCM2835) += \
2155 + adau1977-adc.dtbo \
2156 + adau7002-simple.dtbo \
2160 + akkordion-iqdacplus.dtbo \
2161 + allo-boss-dac-pcm512x-audio.dtbo \
2162 + allo-digione.dtbo \
2163 + allo-katana-dac-audio.dtbo \
2164 + allo-piano-dac-pcm512x-audio.dtbo \
2165 + allo-piano-dac-plus-pcm512x-audio.dtbo \
2166 + applepi-dac.dtbo \
2168 + audioinjector-addons.dtbo \
2169 + audioinjector-wm8731-audio.dtbo \
2172 + bmp085_i2c-sensor.dtbo \
2174 + dionaudio-loco.dtbo \
2175 + dionaudio-loco-v2.dtbo \
2181 + enc28j60-spi2.dtbo \
2183 + fe-pi-audio.dtbo \
2185 + googlevoicehat-soundcard.dtbo \
2189 + gpio-no-irq.dtbo \
2190 + gpio-poweroff.dtbo \
2191 + gpio-shutdown.dtbo \
2192 + hifiberry-amp.dtbo \
2193 + hifiberry-dac.dtbo \
2194 + hifiberry-dacplus.dtbo \
2195 + hifiberry-digi.dtbo \
2196 + hifiberry-digi-pro.dtbo \
2199 + i2c-bcm2708.dtbo \
2202 + i2c-pwm-pca9685a.dtbo \
2204 + i2c-rtc-gpio.dtbo \
2206 + i2c0-bcm2708.dtbo \
2207 + i2c1-bcm2708.dtbo \
2208 + i2s-gpio28-31.dtbo \
2209 + iqaudio-dac.dtbo \
2210 + iqaudio-dacplus.dtbo \
2211 + iqaudio-digi-wm8804-audio.dtbo \
2212 + jedec-spi-nor.dtbo \
2213 + justboom-dac.dtbo \
2214 + justboom-digi.dtbo \
2220 + mcp2515-can0.dtbo \
2221 + mcp2515-can1.dtbo \
2224 + media-center.dtbo \
2231 + pi3-act-led.dtbo \
2232 + pi3-disable-bt.dtbo \
2233 + pi3-disable-wifi.dtbo \
2234 + pi3-miniuart-bt.dtbo \
2240 + pitft28-capacitive.dtbo \
2241 + pitft28-resistive.dtbo \
2242 + pitft35-resistive.dtbo \
2248 + rotary-encoder.dtbo \
2249 + rpi-backlight.dtbo \
2250 + rpi-cirrus-wm5102.dtbo \
2252 + rpi-display.dtbo \
2257 + rra-digidac1-wm8741-audio.dtbo \
2258 + sc16is750-i2c.dtbo \
2259 + sc16is752-i2c.dtbo \
2260 + sc16is752-spi1.dtbo \
2268 + spi-gpio35-39.dtbo \
2278 + superaudioboard.dtbo \
2284 + upstream-aux-interrupt.dtbo \
2285 + vc4-fkms-v3d.dtbo \
2286 + vc4-kms-v3d.dtbo \
2289 + w1-gpio-pullup.dtbo \
2292 +targets += dtbs dtbs_install
2293 +targets += $(dtbo-y)
2295 +always := $(dtbo-y)
2296 +clean-files := *.dtbo
2298 +++ b/arch/arm/boot/dts/overlays/README
2303 +This directory contains Device Tree overlays. Device Tree makes it possible
2304 +to support many hardware configurations with a single kernel and without the
2305 +need to explicitly load or blacklist kernel modules. Note that this isn't a
2306 +"pure" Device Tree configuration (c.f. MACH_BCM2835) - some on-board devices
2307 +are still configured by the board support code, but the intention is to
2308 +eventually reach that goal.
2310 +On Raspberry Pi, Device Tree usage is controlled from /boot/config.txt. By
2311 +default, the Raspberry Pi kernel boots with device tree enabled. You can
2312 +completely disable DT usage (for now) by adding:
2316 +to your config.txt, which should cause your Pi to revert to the old way of
2317 +doing things after a reboot.
2319 +In /boot you will find a .dtb for each base platform. This describes the
2320 +hardware that is part of the Raspberry Pi board. The loader (start.elf and its
2321 +siblings) selects the .dtb file appropriate for the platform by name, and reads
2322 +it into memory. At this point, all of the optional interfaces (i2c, i2s, spi)
2323 +are disabled, but they can be enabled using Device Tree parameters:
2325 + dtparam=i2c=on,i2s=on,spi=on
2327 +However, this shouldn't be necessary in many use cases because loading an
2328 +overlay that requires one of those interfaces will cause it to be enabled
2329 +automatically, and it is advisable to only enable interfaces if they are
2332 +Configuring additional, optional hardware is done using Device Tree overlays
2335 +GPIO numbering uses the hardware pin numbering scheme (aka BCM scheme) and
2336 +not the physical pin numbers.
2341 +The Advanced Options section of the raspi-config utility can enable and disable
2342 +Device Tree use, as well as toggling the I2C and SPI interfaces. Note that it
2343 +is possible to both enable an interface and blacklist the driver, if for some
2344 +reason you should want to defer the loading.
2349 +As well as describing the hardware, Device Tree also gives enough information
2350 +to allow suitable driver modules to be located and loaded, with the corollary
2351 +that unneeded modules are not loaded. As a result it should be possible to
2352 +remove lines from /etc/modules, and /etc/modprobe.d/raspi-blacklist.conf can
2353 +have its contents deleted (or commented out).
2358 +Overlays are loaded using the "dtoverlay" directive. As an example, consider
2359 +the popular lirc-rpi module, the Linux Infrared Remote Control driver. In the
2360 +pre-DT world this would be loaded from /etc/modules, with an explicit
2361 +"modprobe lirc-rpi" command, or programmatically by lircd. With DT enabled,
2362 +this becomes a line in config.txt:
2364 + dtoverlay=lirc-rpi
2366 +This causes the file /boot/overlays/lirc-rpi.dtbo to be loaded. By
2367 +default it will use GPIOs 17 (out) and 18 (in), but this can be modified using
2370 + dtoverlay=lirc-rpi,gpio_out_pin=17,gpio_in_pin=13
2372 +Parameters always have default values, although in some cases (e.g. "w1-gpio")
2373 +it is necessary to provided multiple overlays in order to get the desired
2374 +behaviour. See the list of overlays below for a description of the parameters
2375 +and their defaults.
2377 +The Overlay and Parameter Reference
2378 +===================================
2380 +N.B. When editing this file, please preserve the indentation levels to make it
2381 +simple to parse programmatically. NO HARD TABS.
2384 +Name: <The base DTB>
2385 +Info: Configures the base Raspberry Pi hardware
2386 +Load: <loaded automatically>
2388 + audio Set to "on" to enable the onboard ALSA audio
2389 + interface (default "off")
2391 + eee Enable Energy Efficient Ethernet support for
2392 + compatible devices (default "on"). See also
2395 + eth_led0 Set mode of LED0 (usually orange) (default
2396 + "1"). The legal values are:
2397 + 0=link/activity 1=link1000/activity
2398 + 2=link100/activity 3=link10/activity
2399 + 4=link100/1000/activity 5=link10/1000/activity
2400 + 6=link10/100/activity 14=off 15=on
2402 + eth_led1 Set mode of LED1 (usually green) (default
2403 + "6"). See eth_led0 for legal values.
2405 + i2c_arm Set to "on" to enable the ARM's i2c interface
2408 + i2c_vc Set to "on" to enable the i2c interface
2409 + usually reserved for the VideoCore processor
2412 + i2c An alias for i2c_arm
2414 + i2c_arm_baudrate Set the baudrate of the ARM's i2c interface
2415 + (default "100000")
2417 + i2c_vc_baudrate Set the baudrate of the VideoCore i2c interface
2418 + (default "100000")
2420 + i2c_baudrate An alias for i2c_arm_baudrate
2422 + i2s Set to "on" to enable the i2s interface
2425 + spi Set to "on" to enable the spi interfaces
2428 + random Set to "on" to enable the hardware random
2429 + number generator (default "on")
2431 + sd_overclock Clock (in MHz) to use when the MMC framework
2434 + sd_force_pio Disable DMA support for SD driver (default off)
2436 + sd_pio_limit Number of blocks above which to use DMA for
2437 + SD card (default 1)
2439 + sd_debug Enable debug output from SD driver (default off)
2441 + sdio_overclock Clock (in MHz) to use when the MMC framework
2442 + requests 50MHz for the SDIO/WiFi interface.
2444 + tx_lpi_timer Set the delay in microseconds between going idle
2445 + and entering the low power state (default 600).
2446 + Requires EEE to be enabled - see "eee".
2448 + uart0 Set to "off" to disable uart0 (default "on")
2450 + uart1 Set to "on" or "off" to enable or disable uart1
2453 + watchdog Set to "on" to enable the hardware watchdog
2456 + act_led_trigger Choose which activity the LED tracks.
2457 + Use "heartbeat" for a nice load indicator.
2460 + act_led_activelow Set to "on" to invert the sense of the LED
2462 + N.B. For Pi3 see pi3-act-led overlay.
2464 + act_led_gpio Set which GPIO to use for the activity LED
2465 + (in case you want to connect it to an external
2467 + (default "16" on a non-Plus board, "47" on a
2469 + N.B. For Pi3 see pi3-act-led overlay.
2474 + As for act_led_*, but using the PWR LED.
2475 + Not available on Model A/B boards.
2477 + N.B. It is recommended to only enable those interfaces that are needed.
2478 + Leaving all interfaces enabled can lead to unwanted behaviour (i2c_vc
2479 + interfering with Pi Camera, I2S and SPI hogging GPIO pins, etc.)
2480 + Note also that i2c, i2c_arm and i2c_vc are aliases for the physical
2481 + interfaces i2c0 and i2c1. Use of the numeric variants is still possible
2482 + but deprecated because the ARM/VC assignments differ between board
2483 + revisions. The same board-specific mapping applies to i2c_baudrate,
2484 + and the other i2c baudrate parameters.
2488 +Info: Overlay for activation of ADAU1977 ADC codec over I2C for control
2490 +Load: dtoverlay=adau1977-adc
2494 +Name: adau7002-simple
2495 +Info: Overlay for the activation of ADAU7002 stereo PDM to I2S converter.
2496 +Load: dtoverlay=adau7002-simple,<param>=<val>
2497 +Params: card-name Override the default, "adau7002", card name.
2501 +Info: Overlay for activation of Texas Instruments ADS1015 ADC over I2C
2502 +Load: dtoverlay=ads1015,<param>=<val>
2503 +Params: addr I2C bus address of device. Set based on how the
2504 + addr pin is wired. (default=0x48 assumes addr
2506 + cha_enable Enable virtual channel a. (default=true)
2507 + cha_cfg Set the configuration for virtual channel a.
2508 + (default=4 configures this channel for the
2509 + voltage at A0 with respect to GND)
2510 + cha_datarate Set the datarate (samples/sec) for this channel.
2511 + (default=4 sets 1600 sps)
2512 + cha_gain Set the gain of the Programmable Gain
2513 + Amplifier for this channel. (default=2 sets the
2514 + full scale of the channel to 2.048 Volts)
2516 + Channel (ch) parameters can be set for each enabled channel.
2517 + A maximum of 4 channels can be enabled (letters a thru d).
2518 + For more information refer to the device datasheet at:
2519 + http://www.ti.com/lit/ds/symlink/ads1015.pdf
2523 +Info: Texas Instruments ADS1115 ADC
2524 +Load: dtoverlay=ads1115,<param>[=<val>]
2525 +Params: addr I2C bus address of device. Set based on how the
2526 + addr pin is wired. (default=0x48 assumes addr
2528 + cha_enable Enable virtual channel a.
2529 + cha_cfg Set the configuration for virtual channel a.
2530 + (default=4 configures this channel for the
2531 + voltage at A0 with respect to GND)
2532 + cha_datarate Set the datarate (samples/sec) for this channel.
2533 + (default=7 sets 860 sps)
2534 + cha_gain Set the gain of the Programmable Gain
2535 + Amplifier for this channel. (Default 1 sets the
2536 + full scale of the channel to 4.096 Volts)
2538 + Channel parameters can be set for each enabled channel.
2539 + A maximum of 4 channels can be enabled (letters a thru d).
2540 + For more information refer to the device datasheet at:
2541 + http://www.ti.com/lit/ds/symlink/ads1115.pdf
2545 +Info: ADS7846 Touch controller
2546 +Load: dtoverlay=ads7846,<param>=<val>
2547 +Params: cs SPI bus Chip Select (default 1)
2548 + speed SPI bus speed (default 2MHz, max 3.25MHz)
2549 + penirq GPIO used for PENIRQ. REQUIRED
2550 + penirq_pull Set GPIO pull (default 0=none, 2=pullup)
2551 + swapxy Swap x and y axis
2552 + xmin Minimum value on the X axis (default 0)
2553 + ymin Minimum value on the Y axis (default 0)
2554 + xmax Maximum value on the X axis (default 4095)
2555 + ymax Maximum value on the Y axis (default 4095)
2556 + pmin Minimum reported pressure value (default 0)
2557 + pmax Maximum reported pressure value (default 65535)
2558 + xohms Touchpanel sensitivity (X-plate resistance)
2561 + penirq is required and usually xohms (60-100) has to be set as well.
2562 + Apart from that, pmax (255) and swapxy are also common.
2563 + The rest of the calibration can be done with xinput-calibrator.
2564 + See: github.com/notro/fbtft/wiki/FBTFT-on-Raspian
2565 + Device Tree binding document:
2566 + www.kernel.org/doc/Documentation/devicetree/bindings/input/ads7846.txt
2569 +Name: akkordion-iqdacplus
2570 +Info: Configures the Digital Dreamtime Akkordion Music Player (based on the
2571 + OEM IQAudIO DAC+ or DAC Zero module).
2572 +Load: dtoverlay=akkordion-iqdacplus,<param>=<val>
2573 +Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
2574 + Digital volume control. Enable with
2575 + dtoverlay=akkordion-iqdacplus,24db_digital_gain
2576 + (The default behaviour is that the Digital
2577 + volume control is limited to a maximum of
2578 + 0dB. ie. it can attenuate but not provide
2579 + gain. For most users, this will be desired
2580 + as it will prevent clipping. By appending
2581 + the 24db_digital_gain parameter, the Digital
2582 + volume control will allow up to 24dB of
2583 + gain. If this parameter is enabled, it is the
2584 + responsibility of the user to ensure that
2585 + the Digital volume control is set to a value
2586 + that does not result in clipping/distortion!)
2589 +Name: allo-boss-dac-pcm512x-audio
2590 +Info: Configures the Allo Boss DAC audio cards.
2591 +Load: dtoverlay=allo-boss-dac-pcm512x-audio,<param>
2592 +Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
2593 + Digital volume control. Enable with
2594 + "dtoverlay=allo-boss-dac-pcm512x-audio,
2595 + 24db_digital_gain"
2596 + (The default behaviour is that the Digital
2597 + volume control is limited to a maximum of
2598 + 0dB. ie. it can attenuate but not provide
2599 + gain. For most users, this will be desired
2600 + as it will prevent clipping. By appending
2601 + the 24db_digital_gain parameter, the Digital
2602 + volume control will allow up to 24dB of
2603 + gain. If this parameter is enabled, it is the
2604 + responsibility of the user to ensure that
2605 + the Digital volume control is set to a value
2606 + that does not result in clipping/distortion!)
2607 + slave Force Boss DAC into slave mode, using Pi a
2608 + master for bit clock and frame clock. Enable
2609 + with "dtoverlay=allo-boss-dac-pcm512x-audio,
2614 +Info: Configures the Allo Digione audio card
2615 +Load: dtoverlay=allo-digione
2619 +Name: allo-katana-dac-audio
2620 +Info: Configures the Allo Katana DAC audio card
2621 +Load: dtoverlay=allo-katana-dac-audio
2625 +Name: allo-piano-dac-pcm512x-audio
2626 +Info: Configures the Allo Piano DAC (2.0/2.1) audio cards.
2627 + (NB. This initial support is for 2.0 channel audio ONLY! ie. stereo.
2628 + The subwoofer outputs on the Piano 2.1 are not currently supported!)
2629 +Load: dtoverlay=allo-piano-dac-pcm512x-audio,<param>
2630 +Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
2631 + Digital volume control.
2632 + (The default behaviour is that the Digital
2633 + volume control is limited to a maximum of
2634 + 0dB. ie. it can attenuate but not provide
2635 + gain. For most users, this will be desired
2636 + as it will prevent clipping. By appending
2637 + the 24db_digital_gain parameter, the Digital
2638 + volume control will allow up to 24dB of
2639 + gain. If this parameter is enabled, it is the
2640 + responsibility of the user to ensure that
2641 + the Digital volume control is set to a value
2642 + that does not result in clipping/distortion!)
2645 +Name: allo-piano-dac-plus-pcm512x-audio
2646 +Info: Configures the Allo Piano DAC (2.1) audio cards.
2647 +Load: dtoverlay=allo-piano-dac-plus-pcm512x-audio,<param>
2648 +Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
2649 + Digital volume control.
2650 + (The default behaviour is that the Digital
2651 + volume control is limited to a maximum of
2652 + 0dB. ie. it can attenuate but not provide
2653 + gain. For most users, this will be desired
2654 + as it will prevent clipping. By appending
2655 + the 24db_digital_gain parameter, the Digital
2656 + volume control will allow up to 24dB of
2657 + gain. If this parameter is enabled, it is the
2658 + responsibility of the user to ensure that
2659 + the Digital volume control is set to a value
2660 + that does not result in clipping/distortion!)
2661 + glb_mclk This option is only with Kali board. If enabled,
2662 + MCLK for Kali is used and PLL is disabled for
2663 + better voice quality. (default Off)
2667 +Info: Configures the Orchard Audio ApplePi-DAC audio card
2668 +Load: dtoverlay=applepi-dac
2673 +Info: Configures the Atmel AT86RF233 802.15.4 low-power WPAN transceiver,
2674 + connected to spi0.0
2675 +Load: dtoverlay=at86rf233,<param>=<val>
2676 +Params: interrupt GPIO used for INT (default 23)
2677 + reset GPIO used for Reset (default 24)
2678 + sleep GPIO used for Sleep (default 25)
2679 + speed SPI bus speed in Hz (default 3000000)
2680 + trim Fine tuning of the internal capacitance
2681 + arrays (0=+0pF, 15=+4.5pF, default 15)
2684 +Name: audioinjector-addons
2685 +Info: Configures the audioinjector.net audio add on soundcards
2686 +Load: dtoverlay=audioinjector-addons,<param>=<val>
2687 +Params: non-stop-clocks Keeps the clocks running even when the stream
2688 + is paused or stopped (default off)
2691 +Name: audioinjector-wm8731-audio
2692 +Info: Configures the audioinjector.net audio add on soundcard
2693 +Load: dtoverlay=audioinjector-wm8731-audio
2698 +Info: Switches PWM sound output to pins 12 (Right) & 13 (Left)
2699 +Load: dtoverlay=audremap,<param>=<val>
2700 +Params: swap_lr Reverse the channel allocation, which will also
2701 + swap the audio jack outputs (default off)
2702 + enable_jack Don't switch off the audio jack output
2707 +Info: Overlay that enables WiFi, Bluetooth and the GPIO expander on the
2709 +Load: dtoverlay=balena-fin
2713 +Name: bmp085_i2c-sensor
2714 +Info: This overlay is now deprecated - see i2c-sensor
2715 +Load: dtoverlay=bmp085_i2c-sensor
2720 +Info: Overlay for the DHT11/DHT21/DHT22 humidity/temperature sensors
2721 + Also sometimes found with the part number(s) AM230x.
2722 +Load: dtoverlay=dht11,<param>=<val>
2723 +Params: gpiopin GPIO connected to the sensor's DATA output.
2727 +Name: dionaudio-loco
2728 +Info: Configures the Dion Audio LOCO DAC-AMP
2729 +Load: dtoverlay=dionaudio-loco
2733 +Name: dionaudio-loco-v2
2734 +Info: Configures the Dion Audio LOCO-V2 DAC-AMP
2735 +Load: dtoverlay=dionaudio-loco-v2,<param>=<val>
2736 +Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
2737 + Digital volume control. Enable with
2738 + "dtoverlay=hifiberry-dacplus,24db_digital_gain"
2739 + (The default behaviour is that the Digital
2740 + volume control is limited to a maximum of
2741 + 0dB. ie. it can attenuate but not provide
2742 + gain. For most users, this will be desired
2743 + as it will prevent clipping. By appending
2744 + the 24dB_digital_gain parameter, the Digital
2745 + volume control will allow up to 24dB of
2746 + gain. If this parameter is enabled, it is the
2747 + responsibility of the user to ensure that
2748 + the Digital volume control is set to a value
2749 + that does not result in clipping/distortion!)
2753 +Info: Overlay for a generic 18-bit DPI display
2754 + This uses GPIOs 0-21 (so no I2C, uart etc.), and activates the output
2755 + 2-3 seconds after the kernel has started.
2756 +Load: dtoverlay=dpi18
2761 +Info: Overlay for a generic 24-bit DPI display
2762 + This uses GPIOs 0-27 (so no I2C, uart etc.), and activates the output
2763 + 2-3 seconds after the kernel has started.
2764 +Load: dtoverlay=dpi24
2769 +Info: Selects the dwc_otg USB controller driver which has fiq support. This
2770 + is the default on all except the Pi Zero which defaults to dwc2.
2771 +Load: dtoverlay=dwc-otg
2776 +Info: Selects the dwc2 USB controller driver
2777 +Load: dtoverlay=dwc2,<param>=<val>
2778 +Params: dr_mode Dual role mode: "host", "peripheral" or "otg"
2780 + g-rx-fifo-size Size of rx fifo size in gadget mode
2782 + g-np-tx-fifo-size Size of non-periodic tx fifo size in gadget
2786 +[ The ds1307-rtc overlay has been deleted. See i2c-rtc. ]
2790 +Info: Overlay for the Microchip ENC28J60 Ethernet Controller on SPI0
2791 +Load: dtoverlay=enc28j60,<param>=<val>
2792 +Params: int_pin GPIO used for INT (default 25)
2794 + speed SPI bus speed (default 12000000)
2797 +Name: enc28j60-spi2
2798 +Info: Overlay for the Microchip ENC28J60 Ethernet Controller on SPI2
2799 +Load: dtoverlay=enc28j60-spi2,<param>=<val>
2800 +Params: int_pin GPIO used for INT (default 39)
2802 + speed SPI bus speed (default 12000000)
2806 +Info: Enables I2C connected EETI EXC3000 multiple touch controller using
2807 + GPIO 4 (pin 7 on GPIO header) for interrupt.
2808 +Load: dtoverlay=exc3000,<param>=<val>
2809 +Params: interrupt GPIO used for interrupt (default 4)
2810 + sizex Touchscreen size x (default 4096)
2811 + sizey Touchscreen size y (default 4096)
2812 + invx Touchscreen inverted x axis
2813 + invy Touchscreen inverted y axis
2814 + swapxy Touchscreen swapped x y axis
2818 +Info: Configures the Fe-Pi Audio Sound Card
2819 +Load: dtoverlay=fe-pi-audio
2824 +Info: Enables I2C connected Goodix gt9271 multiple touch controller using
2825 + GPIOs 4 and 17 (pins 7 and 11 on GPIO header) for interrupt and reset.
2826 +Load: dtoverlay=goodix,<param>=<val>
2827 +Params: interrupt GPIO used for interrupt (default 4)
2828 + reset GPIO used for reset (default 17)
2831 +Name: googlevoicehat-soundcard
2832 +Info: Configures the Google voiceHAT soundcard
2833 +Load: dtoverlay=googlevoicehat-soundcard
2838 +Info: Use GPIO pin as rc-core style infrared receiver input. The rc-core-
2839 + based gpio_ir_recv driver maps received keys directly to a
2840 + /dev/input/event* device, all decoding is done by the kernel - LIRC is
2841 + not required! The key mapping and other decoding parameters can be
2842 + configured by "ir-keytable" tool.
2843 +Load: dtoverlay=gpio-ir,<param>=<val>
2844 +Params: gpio_pin Input pin number. Default is 18.
2846 + gpio_pull Desired pull-up/down state (off, down, up)
2847 + Default is "down".
2849 + rc-map-name Default rc keymap (can also be changed by
2850 + ir-keytable), defaults to "rc-rc6-mce"
2854 +Info: Use GPIO pin as bit-banged infrared transmitter output.
2855 + This is an alternative to "pwm-ir-tx". gpio-ir-tx doesn't require
2856 + a PWM so it can be used together with onboard analog audio.
2857 +Load: dtoverlay=gpio-ir-tx,<param>=<val>
2858 +Params: gpio_pin Output GPIO (default 18)
2860 + invert "1" = invert the output (make it active-low).
2861 + Default is "0" (active-high).
2865 +Info: This is a generic overlay for activating GPIO keypresses using
2866 + the gpio-keys library and this dtoverlay. Multiple keys can be
2867 + set up using multiple calls to the overlay for configuring
2868 + additional buttons or joysticks. You can see available keycodes
2869 + at https://github.com/torvalds/linux/blob/v4.12/include/uapi/
2870 + linux/input-event-codes.h#L64
2871 +Load: dtoverlay=gpio-key,<param>=<val>
2872 +Params: gpio GPIO pin to trigger on (default 3)
2873 + active_low When this is 1 (active low), a falling
2874 + edge generates a key down event and a
2875 + rising edge generates a key up event.
2876 + When this is 0 (active high), this is
2877 + reversed. The default is 1 (active low)
2878 + gpio_pull Desired pull-up/down state (off, down, up)
2879 + Default is "up". Note that the default pin
2880 + (GPIO3) has an external pullup
2881 + label Set a label for the key
2882 + keycode Set the key code for the button
2886 +Info: Use this overlay to disable all GPIO interrupts, which can be useful
2887 + for user-space GPIO edge detection systems.
2888 +Load: dtoverlay=gpio-no-irq
2892 +Name: gpio-poweroff
2893 +Info: Drives a GPIO high or low on poweroff (including halt). Enabling this
2894 + overlay will prevent the ability to boot by driving GPIO3 low.
2895 +Load: dtoverlay=gpio-poweroff,<param>=<val>
2896 +Params: gpiopin GPIO for signalling (default 26)
2898 + active_low Set if the power control device requires a
2899 + high->low transition to trigger a power-down.
2900 + Note that this will require the support of a
2901 + custom dt-blob.bin to prevent a power-down
2902 + during the boot process, and that a reboot
2903 + will also cause the pin to go low.
2904 + input Set if the gpio pin should be configured as
2906 + export Set to export the configured pin to sysfs
2909 +Name: gpio-shutdown
2910 +Info: Initiates a shutdown when GPIO pin changes. The given GPIO pin
2911 + is configured as an input key that generates KEY_POWER events.
2912 + This event is handled by systemd-logind by initiating a
2913 + shutdown. Systemd versions older than 225 need an udev rule
2914 + enable listening to the input device:
2916 + ACTION!="REMOVE", SUBSYSTEM=="input", KERNEL=="event*", \
2917 + SUBSYSTEMS=="platform", DRIVERS=="gpio-keys", \
2918 + ATTRS{keys}=="116", TAG+="power-switch"
2920 + This overlay only handles shutdown. After shutdown, the system
2921 + can be powered up again by driving GPIO3 low. The default
2922 + configuration uses GPIO3 with a pullup, so if you connect a
2923 + button between GPIO3 and GND (pin 5 and 6 on the 40-pin header),
2924 + you get a shutdown and power-up button.
2925 +Load: dtoverlay=gpio-shutdown,<param>=<val>
2926 +Params: gpio_pin GPIO pin to trigger on (default 3)
2928 + active_low When this is 1 (active low), a falling
2929 + edge generates a key down event and a
2930 + rising edge generates a key up event.
2931 + When this is 0 (active high), this is
2932 + reversed. The default is 1 (active low).
2934 + gpio_pull Desired pull-up/down state (off, down, up)
2937 + Note that the default pin (GPIO3) has an
2941 +Name: hifiberry-amp
2942 +Info: Configures the HifiBerry Amp and Amp+ audio cards
2943 +Load: dtoverlay=hifiberry-amp
2947 +Name: hifiberry-dac
2948 +Info: Configures the HifiBerry DAC audio card
2949 +Load: dtoverlay=hifiberry-dac
2953 +Name: hifiberry-dacplus
2954 +Info: Configures the HifiBerry DAC+ audio card
2955 +Load: dtoverlay=hifiberry-dacplus,<param>=<val>
2956 +Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
2957 + Digital volume control. Enable with
2958 + "dtoverlay=hifiberry-dacplus,24db_digital_gain"
2959 + (The default behaviour is that the Digital
2960 + volume control is limited to a maximum of
2961 + 0dB. ie. it can attenuate but not provide
2962 + gain. For most users, this will be desired
2963 + as it will prevent clipping. By appending
2964 + the 24dB_digital_gain parameter, the Digital
2965 + volume control will allow up to 24dB of
2966 + gain. If this parameter is enabled, it is the
2967 + responsibility of the user to ensure that
2968 + the Digital volume control is set to a value
2969 + that does not result in clipping/distortion!)
2970 + slave Force DAC+ Pro into slave mode, using Pi as
2971 + master for bit clock and frame clock.
2974 +Name: hifiberry-digi
2975 +Info: Configures the HifiBerry Digi and Digi+ audio card
2976 +Load: dtoverlay=hifiberry-digi
2980 +Name: hifiberry-digi-pro
2981 +Info: Configures the HifiBerry Digi+ Pro audio card
2982 +Load: dtoverlay=hifiberry-digi-pro
2987 +Info: HY28A - 2.8" TFT LCD Display Module by HAOYU Electronics
2988 + Default values match Texy's display shield
2989 +Load: dtoverlay=hy28a,<param>=<val>
2990 +Params: speed Display SPI bus speed
2992 + rotate Display rotation {0,90,180,270}
2994 + fps Delay between frame updates
2996 + debug Debug output level {0-7}
2998 + xohms Touchpanel sensitivity (X-plate resistance)
3000 + resetgpio GPIO used to reset controller
3002 + ledgpio GPIO used to control backlight
3006 +Info: HY28B - 2.8" TFT LCD Display Module by HAOYU Electronics
3007 + Default values match Texy's display shield
3008 +Load: dtoverlay=hy28b,<param>=<val>
3009 +Params: speed Display SPI bus speed
3011 + rotate Display rotation {0,90,180,270}
3013 + fps Delay between frame updates
3015 + debug Debug output level {0-7}
3017 + xohms Touchpanel sensitivity (X-plate resistance)
3019 + resetgpio GPIO used to reset controller
3021 + ledgpio GPIO used to control backlight
3025 +Info: Fall back to the i2c_bcm2708 driver for the i2c_arm bus.
3026 +Load: dtoverlay=i2c-bcm2708
3031 +Info: Adds support for software i2c controller on gpio pins
3032 +Load: dtoverlay=i2c-gpio,<param>=<val>
3033 +Params: i2c_gpio_sda GPIO used for I2C data (default "23")
3035 + i2c_gpio_scl GPIO used for I2C clock (default "24")
3037 + i2c_gpio_delay_us Clock delay in microseconds
3038 + (default "2" = ~100kHz)
3040 + bus Set to a unique, non-zero value if wanting
3041 + multiple i2c-gpio busses. If set, will be used
3042 + as the preferred bus number (/dev/i2c-<n>). If
3043 + not set, the default value is 0, but the bus
3044 + number will be dynamically assigned - probably
3049 +Info: Adds support for a number of I2C bus multiplexers on i2c_arm
3050 +Load: dtoverlay=i2c-mux,<param>=<val>
3051 +Params: pca9542 Select the NXP PCA9542 device
3053 + pca9545 Select the NXP PCA9545 device
3055 + pca9548 Select the NXP PCA9548 device
3057 + addr Change I2C address of the device (default 0x70)
3060 +[ The i2c-mux-pca9548a overlay has been deleted. See i2c-mux. ]
3063 +Name: i2c-pwm-pca9685a
3064 +Info: Adds support for an NXP PCA9685A I2C PWM controller on i2c_arm
3065 +Load: dtoverlay=i2c-pwm-pca9685a,<param>=<val>
3066 +Params: addr I2C address of PCA9685A (default 0x40)
3070 +Info: Adds support for a number of I2C Real Time Clock devices
3071 +Load: dtoverlay=i2c-rtc,<param>=<val>
3072 +Params: abx80x Select one of the ABx80x family:
3073 + AB0801, AB0803, AB0804, AB0805,
3074 + AB1801, AB1803, AB1804, AB1805
3076 + ds1307 Select the DS1307 device
3078 + ds1339 Select the DS1339 device
3080 + ds3231 Select the DS3231 device
3082 + m41t62 Select the M41T62 device
3084 + mcp7940x Select the MCP7940x device
3086 + mcp7941x Select the MCP7941x device
3088 + pcf2127 Select the PCF2127 device
3090 + pcf8523 Select the PCF8523 device
3092 + pcf8563 Select the PCF8563 device
3094 + trickle-diode-type Diode type for trickle charge - "standard" or
3095 + "schottky" (ABx80x only)
3097 + trickle-resistor-ohms Resistor value for trickle charge (DS1339,
3100 + wakeup-source Specify that the RTC can be used as a wakeup
3105 +Info: Adds support for a number of I2C Real Time Clock devices
3106 + using the software i2c controller
3107 +Load: dtoverlay=i2c-rtc-gpio,<param>=<val>
3108 +Params: abx80x Select one of the ABx80x family:
3109 + AB0801, AB0803, AB0804, AB0805,
3110 + AB1801, AB1803, AB1804, AB1805
3112 + ds1307 Select the DS1307 device
3114 + ds1339 Select the DS1339 device
3116 + ds3231 Select the DS3231 device
3118 + mcp7940x Select the MCP7940x device
3120 + mcp7941x Select the MCP7941x device
3122 + pcf2127 Select the PCF2127 device
3124 + pcf8523 Select the PCF8523 device
3126 + pcf8563 Select the PCF8563 device
3128 + trickle-diode-type Diode type for trickle charge - "standard" or
3129 + "schottky" (ABx80x only)
3131 + trickle-resistor-ohms Resistor value for trickle charge (DS1339,
3134 + wakeup-source Specify that the RTC can be used as a wakeup
3137 + i2c_gpio_sda GPIO used for I2C data (default "23")
3139 + i2c_gpio_scl GPIO used for I2C clock (default "24")
3141 + i2c_gpio_delay_us Clock delay in microseconds
3142 + (default "2" = ~100kHz)
3146 +Info: Adds support for a number of I2C barometric pressure and temperature
3147 + sensors on i2c_arm
3148 +Load: dtoverlay=i2c-sensor,<param>=<val>
3149 +Params: addr Set the address for the BME280, BMP280, DS1621,
3150 + HDC100X, LM75, SHT3x or TMP102
3152 + bme280 Select the Bosch Sensortronic BME280
3153 + Valid addresses 0x76-0x77, default 0x76
3155 + bmp085 Select the Bosch Sensortronic BMP085
3157 + bmp180 Select the Bosch Sensortronic BMP180
3159 + bmp280 Select the Bosch Sensortronic BMP280
3160 + Valid addresses 0x76-0x77, default 0x76
3162 + ds1621 Select the Dallas Semiconductors DS1621 temp
3163 + sensor. Valid addresses 0x48-0x4f, default 0x48
3165 + hdc100x Select the Texas Instruments HDC100x temp sensor
3166 + Valid addresses 0x40-0x43, default 0x40
3168 + htu21 Select the HTU21 temperature and humidity sensor
3170 + lm75 Select the Maxim LM75 temperature sensor
3171 + Valid addresses 0x48-0x4f, default 0x4f
3173 + lm75addr Deprecated - use addr parameter instead
3175 + sht3x Select the Sensiron SHT3x temperature and
3176 + humidity sensor. Valid addresses 0x44-0x45,
3179 + si7020 Select the Silicon Labs Si7013/20/21 humidity/
3180 + temperature sensor
3182 + tmp102 Select the Texas Instruments TMP102 temp sensor
3183 + Valid addresses 0x48-0x4b, default 0x48
3185 + tsl4531 Select the AMS TSL4531 digital ambient light
3188 + veml6070 Select the Vishay VEML6070 ultraviolet light
3193 +Info: Change i2c0 pin usage. Not all pin combinations are usable on all
3194 + platforms - platforms other then Compute Modules can only use this
3195 + to disable transaction combining.
3196 +Load: dtoverlay=i2c0-bcm2708,<param>=<val>
3197 +Params: sda0_pin GPIO pin for SDA0 (deprecated - use pins_*)
3198 + scl0_pin GPIO pin for SCL0 (deprecated - use pins_*)
3199 + pins_0_1 Use pins 0 and 1 (default)
3200 + pins_28_29 Use pins 28 and 29
3201 + pins_44_45 Use pins 44 and 45
3202 + pins_46_47 Use pins 46 and 47
3203 + combine Allow transactions to be combined (default
3208 +Info: Change i2c1 pin usage. Not all pin combinations are usable on all
3209 + platforms - platforms other then Compute Modules can only use this
3210 + to disable transaction combining.
3211 +Info: Enable the i2c_bcm2708 driver for the i2c1 bus
3212 +Load: dtoverlay=i2c1-bcm2708,<param>=<val>
3213 +Params: sda1_pin GPIO pin for SDA1 (2 or 44 - default 2)
3214 + scl1_pin GPIO pin for SCL1 (3 or 45 - default 3)
3215 + pin_func Alternative pin function (4 (alt0), 6 (alt2) -
3217 + combine Allow transactions to be combined (default
3221 +Name: i2s-gpio28-31
3222 +Info: move I2S function block to GPIO 28 to 31
3223 +Load: dtoverlay=i2s-gpio28-31
3228 +Info: Configures the IQaudio DAC audio card
3229 +Load: dtoverlay=iqaudio-dac,<param>
3230 +Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
3231 + Digital volume control. Enable with
3232 + "dtoverlay=iqaudio-dac,24db_digital_gain"
3233 + (The default behaviour is that the Digital
3234 + volume control is limited to a maximum of
3235 + 0dB. ie. it can attenuate but not provide
3236 + gain. For most users, this will be desired
3237 + as it will prevent clipping. By appending
3238 + the 24db_digital_gain parameter, the Digital
3239 + volume control will allow up to 24dB of
3240 + gain. If this parameter is enabled, it is the
3241 + responsibility of the user to ensure that
3242 + the Digital volume control is set to a value
3243 + that does not result in clipping/distortion!)
3246 +Name: iqaudio-dacplus
3247 +Info: Configures the IQaudio DAC+ audio card
3248 +Load: dtoverlay=iqaudio-dacplus,<param>=<val>
3249 +Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
3250 + Digital volume control. Enable with
3251 + "dtoverlay=iqaudio-dacplus,24db_digital_gain"
3252 + (The default behaviour is that the Digital
3253 + volume control is limited to a maximum of
3254 + 0dB. ie. it can attenuate but not provide
3255 + gain. For most users, this will be desired
3256 + as it will prevent clipping. By appending
3257 + the 24db_digital_gain parameter, the Digital
3258 + volume control will allow up to 24dB of
3259 + gain. If this parameter is enabled, it is the
3260 + responsibility of the user to ensure that
3261 + the Digital volume control is set to a value
3262 + that does not result in clipping/distortion!)
3263 + auto_mute_amp If specified, unmute/mute the IQaudIO amp when
3264 + starting/stopping audio playback.
3265 + unmute_amp If specified, unmute the IQaudIO amp once when
3266 + the DAC driver module loads.
3269 +Name: iqaudio-digi-wm8804-audio
3270 +Info: Configures the IQAudIO Digi WM8804 audio card
3271 +Load: dtoverlay=iqaudio-digi-wm8804-audio,<param>=<val>
3272 +Params: card_name Override the default, "IQAudIODigi", card name.
3273 + dai_name Override the default, "IQAudIO Digi", dai name.
3274 + dai_stream_name Override the default, "IQAudIO Digi HiFi",
3278 +Name: jedec-spi-nor
3279 +Info: Adds support for JEDEC-compliant SPI NOR flash devices. (Note: The
3280 + "jedec,spi-nor" kernel driver was formerly known as "m25p80".)
3281 +Load: dtoverlay=jedec-spi-nor,<param>=<val>
3282 +Params: flash-spi<n>-<m> Enables flash device on SPI<n>, CS#<m>.
3283 + flash-fastr-spi<n>-<m> Enables flash device with fast read capability
3284 + on SPI<n>, CS#<m>.
3288 +Info: Configures the JustBoom DAC HAT, Amp HAT, DAC Zero and Amp Zero audio
3290 +Load: dtoverlay=justboom-dac,<param>=<val>
3291 +Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
3292 + Digital volume control. Enable with
3293 + "dtoverlay=justboom-dac,24db_digital_gain"
3294 + (The default behaviour is that the Digital
3295 + volume control is limited to a maximum of
3296 + 0dB. ie. it can attenuate but not provide
3297 + gain. For most users, this will be desired
3298 + as it will prevent clipping. By appending
3299 + the 24dB_digital_gain parameter, the Digital
3300 + volume control will allow up to 24dB of
3301 + gain. If this parameter is enabled, it is the
3302 + responsibility of the user to ensure that
3303 + the Digital volume control is set to a value
3304 + that does not result in clipping/distortion!)
3307 +Name: justboom-digi
3308 +Info: Configures the JustBoom Digi HAT and Digi Zero audio cards
3309 +Load: dtoverlay=justboom-digi
3314 +Info: Configures lirc-rpi (Linux Infrared Remote Control for Raspberry Pi)
3315 + Consult the module documentation for more details.
3316 +Load: dtoverlay=lirc-rpi,<param>=<val>
3317 +Params: gpio_out_pin GPIO for output (default "17")
3319 + gpio_in_pin GPIO for input (default "18")
3321 + gpio_in_pull Pull up/down/off on the input pin
3324 + sense Override the IR receive auto-detection logic:
3325 + "0" = force active-high
3326 + "1" = force active-low
3327 + "-1" = use auto-detection
3330 + softcarrier Turn the software carrier "on" or "off"
3333 + invert "on" = invert the output pin (default "off")
3335 + debug "on" = enable additional debug messages
3340 +Info: Adds support for the ltc294x family of battery gauges
3341 +Load: dtoverlay=ltc294x,<param>=<val>
3342 +Params: ltc2941 Select the ltc2941 device
3344 + ltc2942 Select the ltc2942 device
3346 + ltc2943 Select the ltc2943 device
3348 + ltc2944 Select the ltc2944 device
3350 + resistor-sense The sense resistor value in milli-ohms.
3351 + Can be a 32-bit negative value when the battery
3352 + has been connected to the wrong end of the
3355 + prescaler-exponent Range and accuracy of the gauge. The value is
3356 + programmed into the chip only if it differs
3357 + from the current setting.
3359 + - Default value is 128
3360 + - the exponent is in the range 0-7 (default 7)
3361 + See the datasheet for more information.
3365 +Info: Configures the mbed AudioCODEC (TLV320AIC23B)
3366 +Load: dtoverlay=mbed-dac
3371 +Info: Configures the MCP23017 I2C GPIO expander
3372 +Load: dtoverlay=mcp23017,<param>=<val>
3373 +Params: gpiopin Gpio pin connected to the INTA output of the
3374 + MCP23017 (default: 4)
3376 + addr I2C address of the MCP23017 (default: 0x20)
3380 +Info: Configures the MCP23S08/17 SPI GPIO expanders.
3381 + If devices are present on SPI1 or SPI2, those interfaces must be enabled
3382 + with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
3383 + If interrupts are enabled for a device on a given CS# on a SPI bus, that
3384 + device must be the only one present on that SPI bus/CS#.
3385 +Load: dtoverlay=mcp23s17,<param>=<val>
3386 +Params: s08-spi<n>-<m>-present 4-bit integer, bitmap indicating MCP23S08
3387 + devices present on SPI<n>, CS#<m>
3389 + s17-spi<n>-<m>-present 8-bit integer, bitmap indicating MCP23S17
3390 + devices present on SPI<n>, CS#<m>
3392 + s08-spi<n>-<m>-int-gpio integer, enables interrupts on a single
3393 + MCP23S08 device on SPI<n>, CS#<m>, specifies
3394 + the GPIO pin to which INT output of MCP23S08
3397 + s17-spi<n>-<m>-int-gpio integer, enables mirrored interrupts on a
3398 + single MCP23S17 device on SPI<n>, CS#<m>,
3399 + specifies the GPIO pin to which either INTA
3400 + or INTB output of MCP23S17 is connected.
3404 +Info: Configures the MCP2515 CAN controller on spi0.0
3405 +Load: dtoverlay=mcp2515-can0,<param>=<val>
3406 +Params: oscillator Clock frequency for the CAN controller (Hz)
3408 + spimaxfrequency Maximum SPI frequence (Hz)
3410 + interrupt GPIO for interrupt signal
3414 +Info: Configures the MCP2515 CAN controller on spi0.1
3415 +Load: dtoverlay=mcp2515-can1,<param>=<val>
3416 +Params: oscillator Clock frequency for the CAN controller (Hz)
3418 + spimaxfrequency Maximum SPI frequence (Hz)
3420 + interrupt GPIO for interrupt signal
3424 +Info: Configures MCP3008 A/D converters
3425 + For devices on spi1 or spi2, the interfaces should be enabled
3426 + with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
3427 +Load: dtoverlay=mcp3008,<param>[=<val>]
3428 +Params: spi<n>-<m>-present boolean, configure device at spi<n>, cs<m>
3429 + spi<n>-<m>-speed integer, set the spi bus speed for this device
3433 +Info: Configures MCP3202 A/D converters
3434 + For devices on spi1 or spi2, the interfaces should be enabled
3435 + with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
3436 +Load: dtoverlay=mcp3202,<param>[=<val>]
3437 +Params: spi<n>-<m>-present boolean, configure device at spi<n>, cs<m>
3438 + spi<n>-<m>-speed integer, set the spi bus speed for this device
3442 +Info: Media Center HAT - 2.83" Touch Display + extras by Pi Supply
3443 +Load: dtoverlay=media-center,<param>=<val>
3444 +Params: speed Display SPI bus speed
3445 + rotate Display rotation {0,90,180,270}
3446 + fps Delay between frame updates
3447 + xohms Touchpanel sensitivity (X-plate resistance)
3448 + swapxy Swap x and y axis
3449 + backlight Change backlight GPIO pin {e.g. 12, 18}
3450 + gpio_out_pin GPIO for output (default "17")
3451 + gpio_in_pin GPIO for input (default "18")
3452 + gpio_in_pull Pull up/down/off on the input pin
3454 + sense Override the IR receive auto-detection logic:
3455 + "0" = force active-high
3456 + "1" = force active-low
3457 + "-1" = use auto-detection
3459 + softcarrier Turn the software carrier "on" or "off"
3461 + invert "on" = invert the output pin (default "off")
3462 + debug "on" = enable additional debug messages
3467 +Info: Configures UART0 (ttyAMA0) so that a requested 38.4kbaud actually gets
3468 + 31.25kbaud, the frequency required for MIDI
3469 +Load: dtoverlay=midi-uart0
3474 +Info: Configures UART1 (ttyS0) so that a requested 38.4kbaud actually gets
3475 + 31.25kbaud, the frequency required for MIDI
3476 +Load: dtoverlay=midi-uart1
3481 +Info: Selects the bcm2835-mmc SD/MMC driver, optionally with overclock
3482 +Load: dtoverlay=mmc,<param>=<val>
3483 +Params: overclock_50 Clock (in MHz) to use when the MMC framework
3488 +Info: Overlay for i2c connected mpu6050 imu
3489 +Load: dtoverlay=mpu6050,<param>=<val>
3490 +Params: interrupt GPIO pin for interrupt (default 4)
3494 +Info: MZ61581 display by Tontec
3495 +Load: dtoverlay=mz61581,<param>=<val>
3496 +Params: speed Display SPI bus speed
3498 + rotate Display rotation {0,90,180,270}
3500 + fps Delay between frame updates
3502 + txbuflen Transmit buffer length (default 32768)
3504 + debug Debug output level {0-7}
3506 + xohms Touchpanel sensitivity (X-plate resistance)
3510 +Info: PaPiRus ePaper Screen by Pi Supply (both HAT and pHAT)
3511 +Load: dtoverlay=papirus,<param>=<val>
3512 +Params: panel Display panel (required):
3517 + speed Display SPI bus speed
3520 +[ The pcf2127-rtc overlay has been deleted. See i2c-rtc. ]
3523 +[ The pcf8523-rtc overlay has been deleted. See i2c-rtc. ]
3526 +[ The pcf8563-rtc overlay has been deleted. See i2c-rtc. ]
3530 +Info: Pi3 uses a GPIO expander to drive the LEDs which can only be accessed
3531 + from the VPU. There is a special driver for this with a separate DT
3532 + node, which has the unfortunate consequence of breaking the
3533 + act_led_gpio and act_led_activelow dtparams.
3534 + This overlay changes the GPIO controller back to the standard one and
3535 + restores the dtparams.
3536 +Load: dtoverlay=pi3-act-led,<param>=<val>
3537 +Params: activelow Set to "on" to invert the sense of the LED
3540 + gpio Set which GPIO to use for the activity LED
3541 + (in case you want to connect it to an external
3546 +Name: pi3-disable-bt
3547 +Info: Disable Pi3 Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15
3548 + N.B. To disable the systemd service that initialises the modem so it
3549 + doesn't use the UART, use 'sudo systemctl disable hciuart'.
3550 +Load: dtoverlay=pi3-disable-bt
3554 +Name: pi3-disable-wifi
3555 +Info: Disable Pi3 onboard WiFi
3556 +Load: dtoverlay=pi3-disable-wifi
3560 +Name: pi3-miniuart-bt
3561 +Info: Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore
3562 + UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum
3564 + N.B. It is also necessary to edit /lib/systemd/system/hciuart.service
3565 + and replace ttyAMA0 with ttyS0, unless you have a system with udev rules
3566 + that create /dev/serial0 and /dev/serial1, in which case use
3567 + /dev/serial1 instead because it will always be correct. Furthermore,
3568 + you must also set core_freq=250 in config.txt or the miniuart will not
3570 +Load: dtoverlay=pi3-miniuart-bt
3575 +Info: Configures the pibell audio card.
3576 +Load: dtoverlay=pibell,<param>=<val>
3577 +Params: alsaname Set the name as it appears in ALSA (default
3582 +Info: PiScreen display by OzzMaker.com
3583 +Load: dtoverlay=piscreen,<param>=<val>
3584 +Params: speed Display SPI bus speed
3586 + rotate Display rotation {0,90,180,270}
3588 + fps Delay between frame updates
3590 + debug Debug output level {0-7}
3592 + xohms Touchpanel sensitivity (X-plate resistance)
3596 +Info: PiScreen 2 with resistive TP display by OzzMaker.com
3597 +Load: dtoverlay=piscreen2r,<param>=<val>
3598 +Params: speed Display SPI bus speed
3600 + rotate Display rotation {0,90,180,270}
3602 + fps Delay between frame updates
3604 + debug Debug output level {0-7}
3606 + xohms Touchpanel sensitivity (X-plate resistance)
3610 +Info: Configures the Blokas Labs pisound card
3611 +Load: dtoverlay=pisound
3616 +Info: Adafruit PiTFT 2.2" screen
3617 +Load: dtoverlay=pitft22,<param>=<val>
3618 +Params: speed Display SPI bus speed
3620 + rotate Display rotation {0,90,180,270}
3622 + fps Delay between frame updates
3624 + debug Debug output level {0-7}
3627 +Name: pitft28-capacitive
3628 +Info: Adafruit PiTFT 2.8" capacitive touch screen
3629 +Load: dtoverlay=pitft28-capacitive,<param>=<val>
3630 +Params: speed Display SPI bus speed
3632 + rotate Display rotation {0,90,180,270}
3634 + fps Delay between frame updates
3636 + debug Debug output level {0-7}
3638 + touch-sizex Touchscreen size x (default 240)
3640 + touch-sizey Touchscreen size y (default 320)
3642 + touch-invx Touchscreen inverted x axis
3644 + touch-invy Touchscreen inverted y axis
3646 + touch-swapxy Touchscreen swapped x y axis
3649 +Name: pitft28-resistive
3650 +Info: Adafruit PiTFT 2.8" resistive touch screen
3651 +Load: dtoverlay=pitft28-resistive,<param>=<val>
3652 +Params: speed Display SPI bus speed
3654 + rotate Display rotation {0,90,180,270}
3656 + fps Delay between frame updates
3658 + debug Debug output level {0-7}
3661 +Name: pitft35-resistive
3662 +Info: Adafruit PiTFT 3.5" resistive touch screen
3663 +Load: dtoverlay=pitft35-resistive,<param>=<val>
3664 +Params: speed Display SPI bus speed
3666 + rotate Display rotation {0,90,180,270}
3668 + fps Delay between frame updates
3670 + debug Debug output level {0-7}
3674 +Info: Configures the pps-gpio (pulse-per-second time signal via GPIO).
3675 +Load: dtoverlay=pps-gpio,<param>=<val>
3676 +Params: gpiopin Input GPIO (default "18")
3677 + assert_falling_edge When present, assert is indicated by a falling
3678 + edge, rather than by a rising edge (default
3680 + capture_clear Generate clear events on the trailing edge
3685 +Info: Configures a single PWM channel
3686 + Legal pin,function combinations for each channel:
3687 + PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1)
3688 + PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
3690 + 1) Pin 18 is the only one available on all platforms, and
3691 + it is the one used by the I2S audio interface.
3692 + Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
3693 + 2) The onboard analogue audio output uses both PWM channels.
3694 + 3) So be careful mixing audio and PWM.
3695 + 4) Currently the clock must have been enabled and configured
3697 +Load: dtoverlay=pwm,<param>=<val>
3698 +Params: pin Output pin (default 18) - see table
3699 + func Pin function (default 2 = Alt5) - see above
3700 + clock PWM clock frequency (informational)
3704 +Info: Configures both PWM channels
3705 + Legal pin,function combinations for each channel:
3706 + PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1)
3707 + PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
3709 + 1) Pin 18 is the only one available on all platforms, and
3710 + it is the one used by the I2S audio interface.
3711 + Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
3712 + 2) The onboard analogue audio output uses both PWM channels.
3713 + 3) So be careful mixing audio and PWM.
3714 + 4) Currently the clock must have been enabled and configured
3716 +Load: dtoverlay=pwm-2chan,<param>=<val>
3717 +Params: pin Output pin (default 18) - see table
3718 + pin2 Output pin for other channel (default 19)
3719 + func Pin function (default 2 = Alt5) - see above
3720 + func2 Function for pin2 (default 2 = Alt5)
3721 + clock PWM clock frequency (informational)
3725 +Info: Use GPIO pin as pwm-assisted infrared transmitter output.
3726 + This is an alternative to "gpio-ir-tx". pwm-ir-tx makes use
3727 + of PWM0 to reduce the CPU load during transmission compared to
3728 + gpio-ir-tx which uses bit-banging.
3729 + Legal pin,function combinations are:
3730 + 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1)
3731 +Load: dtoverlay=pwm-ir-tx,<param>=<val>
3732 +Params: gpio_pin Output GPIO (default 18)
3734 + func Pin function (default 2 = Alt5)
3738 +Info: I2SE's Evaluation Board for PLC Stamp micro
3739 +Load: dtoverlay=qca7000,<param>=<val>
3740 +Params: int_pin GPIO pin for interrupt signal (default 23)
3742 + speed SPI bus speed (default 12 MHz)
3745 +Name: rotary-encoder
3746 +Info: Overlay for GPIO connected rotary encoder.
3747 +Load: dtoverlay=rotary-encoder,<param>=<val>
3748 +Params: pin_a GPIO connected to rotary encoder channel A
3750 + pin_b GPIO connected to rotary encoder channel B
3752 + relative_axis register a relative axis rather than an
3753 + absolute one. Relative axis will only
3754 + generate +1/-1 events on the input device,
3755 + hence no steps need to be passed.
3756 + linux_axis the input subsystem axis to map to this
3757 + rotary encoder. Defaults to 0 (ABS_X / REL_X)
3758 + rollover Automatic rollover when the rotary value
3759 + becomes greater than the specified steps or
3760 + smaller than 0. For absolute axis only.
3761 + steps-per-period Number of steps (stable states) per period.
3762 + The values have the following meaning:
3763 + 1: Full-period mode (default)
3764 + 2: Half-period mode
3765 + 4: Quarter-period mode
3766 + steps Number of steps in a full turnaround of the
3767 + encoder. Only relevant for absolute axis.
3768 + Defaults to 24 which is a typical value for
3770 + wakeup Boolean, rotary encoder can wake up the
3772 + encoding String, the method used to encode steps.
3773 + Supported are "gray" (the default and more
3774 + common) and "binary".
3777 +Name: rpi-backlight
3778 +Info: Raspberry Pi official display backlight driver
3779 +Load: dtoverlay=rpi-backlight
3783 +Name: rpi-cirrus-wm5102
3784 +Info: Configures the Cirrus Logic Audio Card
3785 +Load: dtoverlay=rpi-cirrus-wm5102
3790 +Info: Configures the RPi DAC audio card
3791 +Load: dtoverlay=rpi-dac
3796 +Info: RPi-Display - 2.8" Touch Display by Watterott
3797 +Load: dtoverlay=rpi-display,<param>=<val>
3798 +Params: speed Display SPI bus speed
3799 + rotate Display rotation {0,90,180,270}
3800 + fps Delay between frame updates
3801 + debug Debug output level {0-7}
3802 + xohms Touchpanel sensitivity (X-plate resistance)
3803 + swapxy Swap x and y axis
3804 + backlight Change backlight GPIO pin {e.g. 12, 18}
3808 +Info: Official Raspberry Pi display touchscreen
3809 +Load: dtoverlay=rpi-ft5406,<param>=<val>
3810 +Params: touchscreen-size-x Touchscreen X resolution (default 800)
3811 + touchscreen-size-y Touchscreen Y resolution (default 600);
3812 + touchscreen-inverted-x Invert touchscreen X coordinates (default 0);
3813 + touchscreen-inverted-y Invert touchscreen Y coordinates (default 0);
3814 + touchscreen-swapped-x-y Swap X and Y cordinates (default 0);
3818 +Info: Configures the RPi Proto audio card
3819 +Load: dtoverlay=rpi-proto
3824 +Info: Raspberry Pi Sense HAT
3825 +Load: dtoverlay=rpi-sense
3830 +Info: Raspberry Pi TV HAT
3831 +Load: dtoverlay=rpi-tv
3835 +Name: rra-digidac1-wm8741-audio
3836 +Info: Configures the Red Rocks Audio DigiDAC1 soundcard
3837 +Load: dtoverlay=rra-digidac1-wm8741-audio
3841 +Name: sc16is750-i2c
3842 +Info: Overlay for the NXP SC16IS750 UART with I2C Interface
3843 + Enables the chip on I2C1 at 0x48 (or the "addr" parameter value). To
3844 + select another address, please refer to table 10 in reference manual.
3845 +Load: dtoverlay=sc16is750-i2c,<param>=<val>
3846 +Params: int_pin GPIO used for IRQ (default 24)
3847 + addr Address (default 0x48)
3850 +Name: sc16is752-i2c
3851 +Info: Overlay for the NXP SC16IS752 dual UART with I2C Interface
3852 + Enables the chip on I2C1 at 0x48 (or the "addr" parameter value). To
3853 + select another address, please refer to table 10 in reference manual.
3854 +Load: dtoverlay=sc16is752-i2c,<param>=<val>
3855 +Params: int_pin GPIO used for IRQ (default 24)
3856 + addr Address (default 0x48)
3857 + xtal On-board crystal frequency (default 14745600)
3860 +Name: sc16is752-spi1
3861 +Info: Overlay for the NXP SC16IS752 Dual UART with SPI Interface
3862 + Enables the chip on SPI1.
3863 + N.B.: spi1 is only accessible on devices with a 40pin header, eg:
3864 + A+, B+, Zero and PI2 B; as well as the Compute Module.
3866 +Load: dtoverlay=sc16is752-spi1,<param>=<val>
3867 +Params: int_pin GPIO used for IRQ (default 24)
3871 +Info: Selects the bcm2835-sdhost SD/MMC driver, optionally with overclock.
3872 + N.B. This overlay is designed for situations where the mmc driver is
3873 + the default, so it disables the other (mmc) interface - this will kill
3874 + WiFi on a Pi3. If this isn't what you want, either use the sdtweak
3875 + overlay or the new sd_* dtparams of the base DTBs.
3876 +Load: dtoverlay=sdhost,<param>=<val>
3877 +Params: overclock_50 Clock (in MHz) to use when the MMC framework
3880 + force_pio Disable DMA support (default off)
3882 + pio_limit Number of blocks above which to use DMA
3885 + debug Enable debug output (default off)
3889 +Info: Selects the bcm2835-sdhost SD/MMC driver, optionally with overclock,
3890 + and enables SDIO via GPIOs 22-27.
3891 +Load: dtoverlay=sdio,<param>=<val>
3892 +Params: sdio_overclock SDIO Clock (in MHz) to use when the MMC
3893 + framework requests 50MHz
3895 + poll_once Disable SDIO-device polling every second
3896 + (default on: polling once at boot-time)
3898 + bus_width Set the SDIO host bus width (default 4 bits)
3902 +Info: Selects the bcm2835-sdhost SD/MMC driver, optionally with overclock,
3903 + and enables 1-bit SDIO via GPIOs 22-25.
3904 +Load: dtoverlay=sdio-1bit,<param>=<val>
3905 +Params: sdio_overclock SDIO Clock (in MHz) to use when the MMC
3906 + framework requests 50MHz
3908 + poll_once Disable SDIO-device polling every second
3909 + (default on: polling once at boot-time)
3913 +Info: Tunes the bcm2835-sdhost SD/MMC driver
3914 + N.B. This functionality is now available via the sd_* dtparams in the
3916 +Load: dtoverlay=sdtweak,<param>=<val>
3917 +Params: overclock_50 Clock (in MHz) to use when the MMC framework
3920 + force_pio Disable DMA support (default off)
3922 + pio_limit Number of blocks above which to use DMA
3925 + debug Enable debug output (default off)
3927 + poll_once Looks for a card once after booting. Useful
3928 + for network booting scenarios to avoid the
3929 + overhead of continuous polling. N.B. Using
3930 + this option restricts the system to using a
3931 + single card per boot (or none at all).
3934 + enable Set to off to completely disable the interface
3939 +Info: Enables the Secondary Memory Interface peripheral. Uses GPIOs 2-25!
3940 +Load: dtoverlay=smi
3945 +Info: Enables the userspace interface for the SMI driver
3946 +Load: dtoverlay=smi-dev
3951 +Info: Enables access to NAND flash via the SMI interface
3952 +Load: dtoverlay=smi-nand
3956 +Name: spi-gpio35-39
3957 +Info: Move SPI function block to GPIO 35 to 39
3958 +Load: dtoverlay=spi-gpio35-39
3963 +Info: Adds support for a number of SPI Real Time Clock devices
3964 +Load: dtoverlay=spi-rtc,<param>=<val>
3965 +Params: pcf2123 Select the PCF2123 device
3969 +Info: Allows the (software) CS pins for SPI0 to be changed
3970 +Load: dtoverlay=spi0-cs,<param>=<val>
3971 +Params: cs0_pin GPIO pin for CS0 (default 8)
3972 + cs1_pin GPIO pin for CS1 (default 7)
3976 +Info: Re-enables hardware CS/CE (chip selects) for SPI0
3977 +Load: dtoverlay=spi0-hw-cs
3982 +Info: Enables spi1 with a single chip select (CS) line and associated spidev
3983 + dev node. The gpio pin number for the CS line and spidev device node
3984 + creation are configurable.
3985 + N.B.: spi1 is only accessible on devices with a 40pin header, eg:
3986 + A+, B+, Zero and PI2 B; as well as the Compute Module.
3987 +Load: dtoverlay=spi1-1cs,<param>=<val>
3988 +Params: cs0_pin GPIO pin for CS0 (default 18 - BCM SPI1_CE0).
3989 + cs0_spidev Set to 'disabled' to stop the creation of a
3990 + userspace device node /dev/spidev1.0 (default
3991 + is 'okay' or enabled).
3995 +Info: Enables spi1 with two chip select (CS) lines and associated spidev
3996 + dev nodes. The gpio pin numbers for the CS lines and spidev device node
3997 + creation are configurable.
3998 + N.B.: spi1 is only accessible on devices with a 40pin header, eg:
3999 + A+, B+, Zero and PI2 B; as well as the Compute Module.
4000 +Load: dtoverlay=spi1-2cs,<param>=<val>
4001 +Params: cs0_pin GPIO pin for CS0 (default 18 - BCM SPI1_CE0).
4002 + cs1_pin GPIO pin for CS1 (default 17 - BCM SPI1_CE1).
4003 + cs0_spidev Set to 'disabled' to stop the creation of a
4004 + userspace device node /dev/spidev1.0 (default
4005 + is 'okay' or enabled).
4006 + cs1_spidev Set to 'disabled' to stop the creation of a
4007 + userspace device node /dev/spidev1.1 (default
4008 + is 'okay' or enabled).
4012 +Info: Enables spi1 with three chip select (CS) lines and associated spidev
4013 + dev nodes. The gpio pin numbers for the CS lines and spidev device node
4014 + creation are configurable.
4015 + N.B.: spi1 is only accessible on devices with a 40pin header, eg:
4016 + A+, B+, Zero and PI2 B; as well as the Compute Module.
4017 +Load: dtoverlay=spi1-3cs,<param>=<val>
4018 +Params: cs0_pin GPIO pin for CS0 (default 18 - BCM SPI1_CE0).
4019 + cs1_pin GPIO pin for CS1 (default 17 - BCM SPI1_CE1).
4020 + cs2_pin GPIO pin for CS2 (default 16 - BCM SPI1_CE2).
4021 + cs0_spidev Set to 'disabled' to stop the creation of a
4022 + userspace device node /dev/spidev1.0 (default
4023 + is 'okay' or enabled).
4024 + cs1_spidev Set to 'disabled' to stop the creation of a
4025 + userspace device node /dev/spidev1.1 (default
4026 + is 'okay' or enabled).
4027 + cs2_spidev Set to 'disabled' to stop the creation of a
4028 + userspace device node /dev/spidev1.2 (default
4029 + is 'okay' or enabled).
4033 +Info: Enables spi2 with a single chip select (CS) line and associated spidev
4034 + dev node. The gpio pin number for the CS line and spidev device node
4035 + creation are configurable.
4036 + N.B.: spi2 is only accessible with the Compute Module.
4037 +Load: dtoverlay=spi2-1cs,<param>=<val>
4038 +Params: cs0_pin GPIO pin for CS0 (default 43 - BCM SPI2_CE0).
4039 + cs0_spidev Set to 'disabled' to stop the creation of a
4040 + userspace device node /dev/spidev2.0 (default
4041 + is 'okay' or enabled).
4045 +Info: Enables spi2 with two chip select (CS) lines and associated spidev
4046 + dev nodes. The gpio pin numbers for the CS lines and spidev device node
4047 + creation are configurable.
4048 + N.B.: spi2 is only accessible with the Compute Module.
4049 +Load: dtoverlay=spi2-2cs,<param>=<val>
4050 +Params: cs0_pin GPIO pin for CS0 (default 43 - BCM SPI2_CE0).
4051 + cs1_pin GPIO pin for CS1 (default 44 - BCM SPI2_CE1).
4052 + cs0_spidev Set to 'disabled' to stop the creation of a
4053 + userspace device node /dev/spidev2.0 (default
4054 + is 'okay' or enabled).
4055 + cs1_spidev Set to 'disabled' to stop the creation of a
4056 + userspace device node /dev/spidev2.1 (default
4057 + is 'okay' or enabled).
4061 +Info: Enables spi2 with three chip select (CS) lines and associated spidev
4062 + dev nodes. The gpio pin numbers for the CS lines and spidev device node
4063 + creation are configurable.
4064 + N.B.: spi2 is only accessible with the Compute Module.
4065 +Load: dtoverlay=spi2-3cs,<param>=<val>
4066 +Params: cs0_pin GPIO pin for CS0 (default 43 - BCM SPI2_CE0).
4067 + cs1_pin GPIO pin for CS1 (default 44 - BCM SPI2_CE1).
4068 + cs2_pin GPIO pin for CS2 (default 45 - BCM SPI2_CE2).
4069 + cs0_spidev Set to 'disabled' to stop the creation of a
4070 + userspace device node /dev/spidev2.0 (default
4071 + is 'okay' or enabled).
4072 + cs1_spidev Set to 'disabled' to stop the creation of a
4073 + userspace device node /dev/spidev2.1 (default
4074 + is 'okay' or enabled).
4075 + cs2_spidev Set to 'disabled' to stop the creation of a
4076 + userspace device node /dev/spidev2.2 (default
4077 + is 'okay' or enabled).
4080 +Name: superaudioboard
4081 +Info: Configures the SuperAudioBoard sound card
4082 +Load: dtoverlay=superaudioboard,<param>=<val>
4083 +Params: gpiopin GPIO pin for codec reset
4087 +Info: Configures the Semtech SX150X I2C GPIO expanders.
4088 +Load: dtoverlay=sx150x,<param>=<val>
4089 +Params: sx150<x>-<n>-<m> Enables SX150X device on I2C#<n> with slave
4090 + address <m>. <x> may be 1-9. <n> may be 0 or 1.
4091 + Permissible values of <m> (which is denoted in
4092 + hex) depend on the device variant. For SX1501,
4093 + SX1502, SX1504 and SX1505, <m> may be 20 or 21.
4094 + For SX1503 and SX1506, <m> may be 20. For
4095 + SX1507 and SX1509, <m> may be 3E, 3F, 70 or 71.
4096 + For SX1508, <m> may be 20, 21, 22 or 23.
4098 + sx150<x>-<n>-<m>-int-gpio
4099 + Integer, enables interrupts on SX150X device on
4100 + I2C#<n> with slave address <m>, specifies
4101 + the GPIO pin to which NINT output of SX150X is
4106 +Info: 3.5" Color TFT Display by www.tinylcd.com
4107 + Options: Touch, RTC, keypad
4108 +Load: dtoverlay=tinylcd35,<param>=<val>
4109 +Params: speed Display SPI bus speed
4111 + rotate Display rotation {0,90,180,270}
4113 + fps Delay between frame updates
4115 + debug Debug output level {0-7}
4117 + touch Enable touch panel
4119 + touchgpio Touch controller IRQ GPIO
4121 + xohms Touchpanel: Resistance of X-plate in ohms
4123 + rtc-pcf PCF8563 Real Time Clock
4125 + rtc-ds DS1307 Real Time Clock
4127 + keypad Enable keypad
4130 + Display with touchpanel, PCF8563 RTC and keypad:
4131 + dtoverlay=tinylcd35,touch,rtc-pcf,keypad
4132 + Old touch display:
4133 + dtoverlay=tinylcd35,touch,touchgpio=3
4137 +Info: Change the pin usage of uart0
4138 +Load: dtoverlay=uart0,<param>=<val>
4139 +Params: txd0_pin GPIO pin for TXD0 (14, 32 or 36 - default 14)
4141 + rxd0_pin GPIO pin for RXD0 (15, 33 or 37 - default 15)
4143 + pin_func Alternative pin function - 4(Alt0) for 14&15,
4144 + 7(Alt3) for 32&33, 6(Alt2) for 36&37
4148 +Info: Change the pin usage of uart1
4149 +Load: dtoverlay=uart1,<param>=<val>
4150 +Params: txd1_pin GPIO pin for TXD1 (14, 32 or 40 - default 14)
4152 + rxd1_pin GPIO pin for RXD1 (15, 33 or 41 - default 15)
4156 +Info: Allow usage of downstream .dtb with upstream kernel. Comprises
4157 + vc4-kms-v3d, dwc2 and upstream-aux-interrupt overlays.
4158 +Load: dtoverlay=upstream
4162 +Name: upstream-aux-interrupt
4163 +Info: Allow usage of downstream .dtb with upstream kernel by binding AUX
4164 + devices directly to the shared AUX interrupt line. One of the parts
4165 + of the 'upstream' overlay
4166 +Load: dtoverlay=upstream-aux-interrupt
4171 +Info: Enable Eric Anholt's DRM VC4 V3D driver on top of the dispmanx
4173 +Load: dtoverlay=vc4-fkms-v3d,<param>
4174 +Params: cma-256 CMA is 256MB, 256MB-aligned (needs 1GB)
4175 + cma-192 CMA is 192MB, 256MB-aligned (needs 1GB)
4176 + cma-128 CMA is 128MB, 128MB-aligned
4177 + cma-96 CMA is 96MB, 128MB-aligned
4178 + cma-64 CMA is 64MB, 64MB-aligned
4182 +Info: Enable Eric Anholt's DRM VC4 HDMI/HVS/V3D driver. Running startx or
4183 + booting to GUI while this overlay is in use will cause interesting
4185 +Load: dtoverlay=vc4-kms-v3d,<param>
4186 +Params: cma-256 CMA is 256MB, 256MB-aligned (needs 1GB)
4187 + cma-192 CMA is 192MB, 256MB-aligned (needs 1GB)
4188 + cma-128 CMA is 128MB, 128MB-aligned
4189 + cma-96 CMA is 96MB, 128MB-aligned
4190 + cma-64 CMA is 64MB, 64MB-aligned
4194 +Info: Overlay for the Fen Logic VGA666 board
4195 + This uses GPIOs 2-21 (so no I2C), and activates the output 2-3 seconds
4196 + after the kernel has started.
4197 +Load: dtoverlay=vga666
4202 +Info: Configures the w1-gpio Onewire interface module.
4203 + Use this overlay if you *don't* need a GPIO to drive an external pullup.
4204 +Load: dtoverlay=w1-gpio,<param>=<val>
4205 +Params: gpiopin GPIO for I/O (default "4")
4207 + pullup Non-zero, "on", or "y" to enable the parasitic
4208 + power (2-wire, power-on-data) feature
4211 +Name: w1-gpio-pullup
4212 +Info: Configures the w1-gpio Onewire interface module.
4213 + Use this overlay if you *do* need a GPIO to drive an external pullup.
4214 +Load: dtoverlay=w1-gpio-pullup,<param>=<val>
4215 +Params: gpiopin GPIO for I/O (default "4")
4217 + pullup Non-zero, "on", or "y" to enable the parasitic
4218 + power (2-wire, power-on-data) feature
4220 + extpullup GPIO for external pullup (default "5")
4224 +Info: Configures the wittypi RTC module.
4225 +Load: dtoverlay=wittypi,<param>=<val>
4226 +Params: led_gpio GPIO for LED (default "17")
4227 + led_trigger Choose which activity the LED tracks (default
4234 +If you are experiencing problems that you think are DT-related, enable DT
4235 +diagnostic output by adding this to /boot/config.txt:
4239 +and rebooting. Then run:
4241 + sudo vcdbg log msg
4243 +and look for relevant messages.
4248 +This is only meant to be a quick introduction to the subject of Device Tree on
4249 +Raspberry Pi. There is a more complete explanation here:
4251 +http://www.raspberrypi.org/documentation/configuration/device-tree.md
4253 +++ b/arch/arm/boot/dts/overlays/adau1977-adc-overlay.dts
4255 +// Definitions for ADAU1977 ADC
4260 + compatible = "brcm,bcm2708";
4266 + #address-cells = <1>;
4267 + #size-cells = <0>;
4270 + adau1977: codec@11 {
4271 + compatible = "adi,adau1977";
4273 + reset-gpios = <&gpio 5 0>;
4274 + AVDD-supply = <&vdd_3v3_reg>;
4287 + target = <&sound>;
4289 + compatible = "adi,adau1977-adc";
4290 + i2s-controller = <&i2s>;
4296 +++ b/arch/arm/boot/dts/overlays/adau7002-simple-overlay.dts
4302 + compatible = "brcm,bcm2708";
4312 + target-path = "/";
4314 + adau7002_codec: adau7002-codec {
4315 + #sound-dai-cells = <0>;
4316 + compatible = "adi,adau7002";
4317 +/* IOVDD-supply = <&supply>;*/
4324 + target = <&sound>;
4325 + sound_overlay: __overlay__ {
4326 + compatible = "simple-audio-card";
4327 + simple-audio-card,format = "i2s";
4328 + simple-audio-card,name = "adau7002";
4329 + simple-audio-card,bitclock-slave = <&dailink0_slave>;
4330 + simple-audio-card,frame-slave = <&dailink0_slave>;
4331 + simple-audio-card,widgets =
4332 + "Microphone", "Microphone Jack";
4333 + simple-audio-card,routing =
4334 + "PDM_DAT", "Microphone Jack";
4336 + simple-audio-card,cpu {
4337 + sound-dai = <&i2s>;
4339 + dailink0_slave: simple-audio-card,codec {
4340 + sound-dai = <&adau7002_codec>;
4347 + card-name = <&sound_overlay>,"simple-audio-card,name";
4351 +++ b/arch/arm/boot/dts/overlays/ads1015-overlay.dts
4354 + * 2016 - Erik Sejr
4360 + compatible = "brcm,bcm2708";
4361 + /* ----------- ADS1015 ------------ */
4363 + target = <&i2c_arm>;
4365 + #address-cells = <1>;
4366 + #size-cells = <0>;
4368 + ads1015: ads1015 {
4369 + compatible = "ti,ads1015";
4371 + #address-cells = <1>;
4372 + #size-cells = <0>;
4379 + target-path = "i2c_arm/ads1015";
4381 + #address-cells = <1>;
4382 + #size-cells = <0>;
4383 + channel_a: channel_a {
4386 + ti,datarate = <4>;
4392 + target-path = "i2c_arm/ads1015";
4394 + #address-cells = <1>;
4395 + #size-cells = <0>;
4396 + channel_b: channel_b {
4399 + ti,datarate = <4>;
4405 + target-path = "i2c_arm/ads1015";
4407 + #address-cells = <1>;
4408 + #size-cells = <0>;
4409 + channel_c: channel_c {
4412 + ti,datarate = <4>;
4418 + target-path = "i2c_arm/ads1015";
4420 + #address-cells = <1>;
4421 + #size-cells = <0>;
4422 + channel_d: channel_d {
4425 + ti,datarate = <4>;
4431 + addr = <&ads1015>,"reg:0";
4432 + cha_enable = <0>,"=1";
4433 + cha_cfg = <&channel_a>,"reg:0";
4434 + cha_gain = <&channel_a>,"ti,gain:0";
4435 + cha_datarate = <&channel_a>,"ti,datarate:0";
4436 + chb_enable = <0>,"=2";
4437 + chb_cfg = <&channel_b>,"reg:0";
4438 + chb_gain = <&channel_b>,"ti,gain:0";
4439 + chb_datarate = <&channel_b>,"ti,datarate:0";
4440 + chc_enable = <0>,"=3";
4441 + chc_cfg = <&channel_c>,"reg:0";
4442 + chc_gain = <&channel_c>,"ti,gain:0";
4443 + chc_datarate = <&channel_c>,"ti,datarate:0";
4444 + chd_enable = <0>,"=4";
4445 + chd_cfg = <&channel_d>,"reg:0";
4446 + chd_gain = <&channel_d>,"ti,gain:0";
4447 + chd_datarate = <&channel_d>,"ti,datarate:0";
4452 +++ b/arch/arm/boot/dts/overlays/ads1115-overlay.dts
4455 + * TI ADS1115 multi-channel ADC overlay
4462 + compatible = "brcm,bcm2708";
4465 + target = <&i2c_arm>;
4467 + #address-cells = <1>;
4468 + #size-cells = <0>;
4471 + ads1115: ads1115 {
4472 + compatible = "ti,ads1115";
4474 + #address-cells = <1>;
4475 + #size-cells = <0>;
4482 + target-path = "i2c_arm/ads1115";
4484 + #address-cells = <1>;
4485 + #size-cells = <0>;
4487 + channel_a: channel_a {
4490 + ti,datarate = <7>;
4496 + target-path = "i2c_arm/ads1115";
4498 + #address-cells = <1>;
4499 + #size-cells = <0>;
4501 + channel_b: channel_b {
4504 + ti,datarate = <7>;
4510 + target-path = "i2c_arm/ads1115";
4512 + #address-cells = <1>;
4513 + #size-cells = <0>;
4515 + channel_c: channel_c {
4518 + ti,datarate = <7>;
4524 + target-path = "i2c_arm/ads1115";
4526 + #address-cells = <1>;
4527 + #size-cells = <0>;
4529 + channel_d: channel_d {
4532 + ti,datarate = <7>;
4538 + addr = <&ads1115>,"reg:0";
4539 + cha_enable = <0>,"=1";
4540 + cha_cfg = <&channel_a>,"reg:0";
4541 + cha_gain = <&channel_a>,"ti,gain:0";
4542 + cha_datarate = <&channel_a>,"ti,datarate:0";
4543 + chb_enable = <0>,"=2";
4544 + chb_cfg = <&channel_b>,"reg:0";
4545 + chb_gain = <&channel_b>,"ti,gain:0";
4546 + chb_datarate = <&channel_b>,"ti,datarate:0";
4547 + chc_enable = <0>,"=3";
4548 + chc_cfg = <&channel_c>,"reg:0";
4549 + chc_gain = <&channel_c>,"ti,gain:0";
4550 + chc_datarate = <&channel_c>,"ti,datarate:0";
4551 + chd_enable = <0>,"=4";
4552 + chd_cfg = <&channel_d>,"reg:0";
4553 + chd_gain = <&channel_d>,"ti,gain:0";
4554 + chd_datarate = <&channel_d>,"ti,datarate:0";
4558 +++ b/arch/arm/boot/dts/overlays/ads7846-overlay.dts
4561 + * Generic Device Tree overlay for the ADS7846 touch controller
4569 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
4579 + target = <&spidev0>;
4581 + status = "disabled";
4586 + target = <&spidev1>;
4588 + status = "disabled";
4595 + ads7846_pins: ads7846_pins {
4596 + brcm,pins = <255>; /* illegal default value */
4597 + brcm,function = <0>; /* in */
4598 + brcm,pull = <0>; /* none */
4606 + /* needed to avoid dtc warning */
4607 + #address-cells = <1>;
4608 + #size-cells = <0>;
4610 + ads7846: ads7846@1 {
4611 + compatible = "ti,ads7846";
4613 + pinctrl-names = "default";
4614 + pinctrl-0 = <&ads7846_pins>;
4616 + spi-max-frequency = <2000000>;
4617 + interrupts = <255 2>; /* high-to-low edge triggered */
4618 + interrupt-parent = <&gpio>;
4619 + pendown-gpio = <&gpio 255 0>;
4621 + /* driver defaults */
4622 + ti,x-min = /bits/ 16 <0>;
4623 + ti,y-min = /bits/ 16 <0>;
4624 + ti,x-max = /bits/ 16 <0x0FFF>;
4625 + ti,y-max = /bits/ 16 <0x0FFF>;
4626 + ti,pressure-min = /bits/ 16 <0>;
4627 + ti,pressure-max = /bits/ 16 <0xFFFF>;
4628 + ti,x-plate-ohms = /bits/ 16 <400>;
4633 + cs = <&ads7846>,"reg:0";
4634 + speed = <&ads7846>,"spi-max-frequency:0";
4635 + penirq = <&ads7846_pins>,"brcm,pins:0", /* REQUIRED */
4636 + <&ads7846>,"interrupts:0",
4637 + <&ads7846>,"pendown-gpio:4";
4638 + penirq_pull = <&ads7846_pins>,"brcm,pull:0";
4639 + swapxy = <&ads7846>,"ti,swap-xy?";
4640 + xmin = <&ads7846>,"ti,x-min;0";
4641 + ymin = <&ads7846>,"ti,y-min;0";
4642 + xmax = <&ads7846>,"ti,x-max;0";
4643 + ymax = <&ads7846>,"ti,y-max;0";
4644 + pmin = <&ads7846>,"ti,pressure-min;0";
4645 + pmax = <&ads7846>,"ti,pressure-max;0";
4646 + xohms = <&ads7846>,"ti,x-plate-ohms;0";
4650 +++ b/arch/arm/boot/dts/overlays/akkordion-iqdacplus-overlay.dts
4652 +// Definitions for Digital Dreamtime Akkordion using IQaudIO DAC+ or DACZero
4657 + compatible = "brcm,bcm2708";
4669 + #address-cells = <1>;
4670 + #size-cells = <0>;
4674 + #sound-dai-cells = <0>;
4675 + compatible = "ti,pcm5122";
4677 + AVDD-supply = <&vdd_3v3_reg>;
4678 + DVDD-supply = <&vdd_3v3_reg>;
4679 + CPVDD-supply = <&vdd_3v3_reg>;
4686 + target = <&sound>;
4687 + frag2: __overlay__ {
4688 + compatible = "iqaudio,iqaudio-dac";
4689 + card_name = "Akkordion";
4690 + dai_name = "IQaudIO DAC";
4691 + dai_stream_name = "IQaudIO DAC HiFi";
4692 + i2s-controller = <&i2s>;
4698 + 24db_digital_gain = <&frag2>,"iqaudio,24db_digital_gain?";
4702 +++ b/arch/arm/boot/dts/overlays/allo-boss-dac-pcm512x-audio-overlay.dts
4705 + * Definitions for Allo Boss DAC board
4712 + compatible = "brcm,bcm2708";
4715 + target-path = "/clocks";
4717 + boss_osc: boss_osc {
4718 + compatible = "allo,dac-clk";
4719 + #clock-cells = <0>;
4734 + #address-cells = <1>;
4735 + #size-cells = <0>;
4739 + #sound-dai-cells = <0>;
4740 + compatible = "ti,pcm5122";
4741 + clocks = <&boss_osc>;
4749 + target = <&sound>;
4750 + boss_dac: __overlay__ {
4751 + compatible = "allo,boss-dac";
4752 + i2s-controller = <&i2s>;
4753 + mute-gpios = <&gpio 6 1>;
4759 + 24db_digital_gain = <&boss_dac>,"allo,24db_digital_gain?";
4760 + slave = <&boss_dac>,"allo,slave?";
4764 +++ b/arch/arm/boot/dts/overlays/allo-digione-overlay.dts
4766 +// Definitions for Allo DigiOne
4771 + compatible = "brcm,bcm2708";
4783 + #address-cells = <1>;
4784 + #size-cells = <0>;
4788 + #sound-dai-cells = <0>;
4789 + compatible = "wlf,wm8804";
4791 + PVDD-supply = <&vdd_3v3_reg>;
4792 + DVDD-supply = <&vdd_3v3_reg>;
4794 + wlf,reset-gpio = <&gpio 17 0>;
4800 + target = <&sound>;
4802 + compatible = "allo,allo-digione";
4803 + i2s-controller = <&i2s>;
4805 + clock44-gpio = <&gpio 5 0>;
4806 + clock48-gpio = <&gpio 6 0>;
4811 +++ b/arch/arm/boot/dts/overlays/allo-katana-dac-audio-overlay.dts
4814 + * Definitions for Allo Katana DAC boards
4821 + compatible = "brcm,bcm2708";
4826 + #sound-dai-cells = <0>;
4829 + cpu_endpoint: endpoint {
4830 + remote-endpoint = <&codec_endpoint>;
4831 + bitclock-master = <&codec_endpoint>;
4832 + frame-master = <&codec_endpoint>;
4833 + dai-format = "i2s";
4842 + #address-cells = <1>;
4843 + #size-cells = <0>;
4846 + allo-katana-codec@30 {
4847 + #sound-dai-cells = <0>;
4848 + compatible = "allo,allo-katana-codec";
4851 + codec_endpoint: endpoint {
4852 + remote-endpoint = <&cpu_endpoint>;
4860 + target = <&sound>;
4861 + katana_dac: __overlay__ {
4862 + compatible = "audio-graph-card";
4863 + label = "Allo Katana";
4864 + dais = <&cpu_port>;
4871 +++ b/arch/arm/boot/dts/overlays/allo-piano-dac-pcm512x-audio-overlay.dts
4874 + * Definitions for Allo Piano DAC (2.0/2.1) boards
4876 + * NB. The Piano DAC 2.1 board contains 2x TI PCM5142 DAC's. One DAC is stereo
4877 + * (left/right) and the other provides a subwoofer output, using DSP on the
4878 + * chip for digital high/low pass crossover.
4879 + * The initial support for this hardware, that doesn't require any codec driver
4880 + * modifications, uses only one DAC chip for stereo (left/right) output, the
4881 + * chip with 0x4c slave address. The other chip at 0x4d is currently ignored!
4888 + compatible = "brcm,bcm2708";
4900 + #address-cells = <1>;
4901 + #size-cells = <0>;
4905 + #sound-dai-cells = <0>;
4906 + compatible = "ti,pcm5142";
4914 + target = <&sound>;
4915 + piano_dac: __overlay__ {
4916 + compatible = "allo,piano-dac";
4917 + i2s-controller = <&i2s>;
4923 + 24db_digital_gain =
4924 + <&piano_dac>,"allo,24db_digital_gain?";
4928 +++ b/arch/arm/boot/dts/overlays/allo-piano-dac-plus-pcm512x-audio-overlay.dts
4930 +// Definitions for Piano DAC
4935 + compatible = "brcm,bcm2708";
4947 + #address-cells = <1>;
4948 + #size-cells = <0>;
4951 + allo_pcm5122_4c: pcm5122@4c {
4952 + #sound-dai-cells = <0>;
4953 + compatible = "ti,pcm5122";
4957 + allo_pcm5122_4d: pcm5122@4d {
4958 + #sound-dai-cells = <0>;
4959 + compatible = "ti,pcm5122";
4967 + target = <&sound>;
4968 + piano_dac: __overlay__ {
4969 + compatible = "allo,piano-dac-plus";
4970 + audio-codec = <&allo_pcm5122_4c &allo_pcm5122_4d>;
4971 + i2s-controller = <&i2s>;
4972 + mute1-gpios = <&gpio 6 1>;
4973 + mute2-gpios = <&gpio 25 1>;
4979 + 24db_digital_gain =
4980 + <&piano_dac>,"allo,24db_digital_gain?";
4982 + <&piano_dac>,"allo,glb_mclk?";
4986 +++ b/arch/arm/boot/dts/overlays/applepi-dac-overlay.dts
4992 + compatible = "brcm,bcm2708";
4995 + target = <&sound>;
4997 + compatible = "simple-audio-card";
4998 + simple-audio-card,name = "ApplePi-DAC";
5002 + playback_link: simple-audio-card,dai-link@1 {
5006 + sound-dai = <&i2s>;
5007 + dai-tdm-slot-num = <2>;
5008 + dai-tdm-slot-width = <32>;
5011 + p_codec_dai: codec {
5012 + sound-dai = <&codec_out>;
5019 + target-path = "/";
5021 + codec_out: pcm1794a-codec {
5022 + #sound-dai-cells = <0>;
5023 + compatible = "ti,pcm1794a";
5032 + #sound-dai-cells = <0>;
5039 + Written by: Leonid Ayzenshtat
5040 + Company: Orchard Audio (www.orchardaudio.com)
5043 + dtc -@ -H epapr -O dtb -o ApplePi-DAC.dtbo -W no-unit_address_vs_reg ApplePi-DAC.dts
5046 +++ b/arch/arm/boot/dts/overlays/at86rf233-overlay.dts
5051 +/* Overlay for Atmel AT86RF233 IEEE 802.15.4 WPAN transceiver on spi0.0 */
5054 + compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
5059 + #address-cells = <1>;
5060 + #size-cells = <0>;
5064 + lowpan0: at86rf233@0 {
5065 + compatible = "atmel,at86rf233";
5067 + interrupt-parent = <&gpio>;
5068 + interrupts = <23 4>; /* active high */
5069 + reset-gpio = <&gpio 24 1>;
5070 + sleep-gpio = <&gpio 25 1>;
5071 + spi-max-frequency = <3000000>;
5072 + xtal-trim = /bits/ 8 <0xf>;
5078 + target = <&spidev0>;
5080 + status = "disabled";
5087 + lowpan0_pins: lowpan0_pins {
5088 + brcm,pins = <23 24 25>;
5089 + brcm,function = <0 1 1>; /* in out out */
5095 + interrupt = <&lowpan0>, "interrupts:0",
5096 + <&lowpan0_pins>, "brcm,pins:0";
5097 + reset = <&lowpan0>, "reset-gpio:4",
5098 + <&lowpan0_pins>, "brcm,pins:4";
5099 + sleep = <&lowpan0>, "sleep-gpio:4",
5100 + <&lowpan0_pins>, "brcm,pins:8";
5101 + speed = <&lowpan0>, "spi-max-frequency:0";
5102 + trim = <&lowpan0>, "xtal-trim.0";
5106 +++ b/arch/arm/boot/dts/overlays/audioinjector-addons-overlay.dts
5108 +// Definitions for audioinjector.net audio add on soundcard
5113 + compatible = "brcm,bcm2708";
5125 + #address-cells = <1>;
5126 + #size-cells = <0>;
5129 + cs42448: cs42448@48 {
5130 + #sound-dai-cells = <0>;
5131 + compatible = "cirrus,cs42448";
5133 + clocks = <&cs42448_mclk>;
5134 + clock-names = "mclk";
5135 + VA-supply = <&vdd_5v0_reg>;
5136 + VD-supply = <&vdd_3v3_reg>;
5137 + VLS-supply = <&vdd_3v3_reg>;
5138 + VLC-supply = <&vdd_3v3_reg>;
5142 + cs42448_mclk: codec-mclk {
5143 + compatible = "fixed-clock";
5144 + #clock-cells = <0>;
5145 + clock-frequency = <49152000>;
5151 + target = <&sound>;
5152 + snd: __overlay__ {
5153 + compatible = "ai,audioinjector-octo-soundcard";
5154 + mult-gpios = <&gpio 27 0>, <&gpio 22 0>, <&gpio 23 0>,
5156 + reset-gpios = <&gpio 5 0>;
5157 + i2s-controller = <&i2s>;
5158 + codec = <&cs42448>;
5164 + non-stop-clocks = <&snd>, "non-stop-clocks?";
5168 +++ b/arch/arm/boot/dts/overlays/audioinjector-wm8731-audio-overlay.dts
5170 +// Definitions for audioinjector.net audio add on soundcard
5175 + compatible = "brcm,bcm2708";
5187 + #address-cells = <1>;
5188 + #size-cells = <0>;
5192 + #sound-dai-cells = <0>;
5193 + compatible = "wlf,wm8731";
5201 + target = <&sound>;
5203 + compatible = "ai,audioinjector-pi-soundcard";
5204 + i2s-controller = <&i2s>;
5210 +++ b/arch/arm/boot/dts/overlays/audremap-overlay.dts
5216 + compatible = "brcm,bcm2708";
5219 + target = <&audio_pins>;
5220 + frag0: __overlay__ {
5221 + brcm,pins = < 12 13 >;
5222 + brcm,function = < 4 >; /* alt0 alt0 */
5227 + swap_lr = <&frag0>, "swap_lr?";
5228 + enable_jack = <&frag0>, "enable_jack?";
5232 +++ b/arch/arm/boot/dts/overlays/balena-fin-overlay.dts
5238 + compatible = "brcm,bcm2708";
5242 + sdio_wifi: __overlay__ {
5243 + pinctrl-names = "default";
5244 + pinctrl-0 = <&sdio_pins>;
5246 + brcm,overclock-50 = <35>;
5254 + sdio_pins: sdio_pins {
5255 + brcm,pins = <34 35 36 37 38 39>;
5256 + brcm,function = <7>; /* ALT3 = SD1 */
5257 + brcm,pull = <0 2 2 2 2 2>;
5260 + power_ctrl_pins: power_ctrl_pins {
5262 + brcm,function = <1>; // out
5268 + target-path = "/";
5270 + // We should investigate how to switch to mmc-pwrseq-sd8787
5271 + // Currently that module requires two GPIOs to function since it
5272 + // targets a slightly different chip
5273 + power_ctrl: power_ctrl {
5274 + compatible = "gpio-poweroff";
5275 + gpios = <&gpio 40 1>;
5280 + compatible = "i2c-gpio";
5281 + gpios = <&gpio 43 0 /* sda */ &gpio 42 0 /* scl */>;
5282 + i2c-gpio,delay-us = <2>; /* ~100 kHz */
5283 + #address-cells = <1>;
5284 + #size-cells = <0>;
5290 + target = <&i2c_soft>;
5292 + #address-cells = <1>;
5293 + #size-cells = <0>;
5296 + gpio_expander: gpio_expander@20 {
5297 + compatible = "nxp,pca9554";
5299 + #gpio-cells = <2>;
5305 + ds1307: ds1307@68 {
5306 + compatible = "maxim,ds1307";
5314 +++ b/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts
5316 +// Definitions for BMP085/BMP180 digital barometric pressure and temperature sensors from Bosch Sensortec
5321 + compatible = "brcm,bcm2708";
5324 + target = <&i2c_arm>;
5326 + #address-cells = <1>;
5327 + #size-cells = <0>;
5331 + compatible = "bosch,bmp085";
5333 + default-oversampling = <3>;
5340 +++ b/arch/arm/boot/dts/overlays/dht11-overlay.dts
5343 + * Overlay for the DHT11/21/22 humidity/temperature sensor modules.
5349 + compatible = "brcm,bcm2708";
5352 + target-path = "/";
5356 + compatible = "dht11";
5357 + pinctrl-names = "default";
5358 + pinctrl-0 = <&dht11_pins>;
5359 + gpios = <&gpio 4 0>;
5368 + dht11_pins: dht11_pins {
5370 + brcm,function = <0>; // in
5371 + brcm,pull = <0>; // off
5377 + gpiopin = <&dht11_pins>,"brcm,pins:0",
5378 + <&dht11>,"gpios:4";
5382 +++ b/arch/arm/boot/dts/overlays/dionaudio-loco-overlay.dts
5384 +// Definitions for Dion Audio LOCO DAC-AMP
5387 + * PCM5242 DAC (in hardware mode) and TPA3118 AMP.
5394 + compatible = "brcm,bcm2708";
5404 + target-path = "/";
5407 + #sound-dai-cells = <0>;
5408 + compatible = "ti,pcm5102a";
5415 + target = <&sound>;
5417 + compatible = "dionaudio,loco-pcm5242-tpa3118";
5418 + i2s-controller = <&i2s>;
5424 +++ b/arch/arm/boot/dts/overlays/dionaudio-loco-v2-overlay.dts
5427 + * Definitions for Dion Audio LOCO-V2 DAC-AMP
5428 + * eg. dtoverlay=dionaudio-loco-v2
5430 + * PCM5242 DAC (in software mode) and TPA3255 AMP.
5437 + compatible = "brcm,bcm2708";
5440 + target = <&sound>;
5441 + frag0: __overlay__ {
5442 + compatible = "dionaudio,dionaudio-loco-v2";
5443 + i2s-controller = <&i2s>;
5458 + #address-cells = <1>;
5459 + #size-cells = <0>;
5463 + #sound-dai-cells = <0>;
5464 + compatible = "ti,pcm5122";
5472 + 24db_digital_gain = <&frag0>,"dionaudio,24db_digital_gain?";
5476 +++ b/arch/arm/boot/dts/overlays/dpi18-overlay.dts
5482 + compatible = "brcm,bcm2708";
5484 + // There is no DPI driver module, but we need a platform device
5485 + // node (that doesn't already use pinctrl) to hang the pinctrl
5486 + // reference on - leds will do
5491 + pinctrl-names = "default";
5492 + pinctrl-0 = <&dpi18_pins>;
5499 + dpi18_pins: dpi18_pins {
5500 + brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
5501 + 12 13 14 15 16 17 18 19 20
5503 + brcm,function = <6>; /* alt2 */
5504 + brcm,pull = <0>; /* no pull */
5510 +++ b/arch/arm/boot/dts/overlays/dpi24-overlay.dts
5516 + compatible = "brcm,bcm2708";
5518 + // There is no DPI driver module, but we need a platform device
5519 + // node (that doesn't already use pinctrl) to hang the pinctrl
5520 + // reference on - leds will do
5525 + pinctrl-names = "default";
5526 + pinctrl-0 = <&dpi24_pins>;
5533 + dpi24_pins: dpi24_pins {
5534 + brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
5535 + 12 13 14 15 16 17 18 19 20
5536 + 21 22 23 24 25 26 27>;
5537 + brcm,function = <6>; /* alt2 */
5538 + brcm,pull = <0>; /* no pull */
5544 +++ b/arch/arm/boot/dts/overlays/dwc-otg-overlay.dts
5550 + compatible = "brcm,bcm2708";
5554 + #address-cells = <1>;
5555 + #size-cells = <1>;
5557 + compatible = "brcm,bcm2708-usb";
5558 + reg = <0x7e980000 0x10000>,
5559 + <0x7e006000 0x1000>;
5560 + interrupts = <2 0>,
5567 +++ b/arch/arm/boot/dts/overlays/dwc2-overlay.dts
5573 + compatible = "brcm,bcm2708";
5577 + #address-cells = <1>;
5578 + #size-cells = <1>;
5579 + dwc2_usb: __overlay__ {
5580 + compatible = "brcm,bcm2835-usb";
5581 + reg = <0x7e980000 0x10000>;
5582 + interrupts = <1 9>;
5584 + g-np-tx-fifo-size = <32>;
5585 + g-rx-fifo-size = <256>;
5586 + g-tx-fifo-size = <512 512 512 512 512 256 256>;
5592 + dr_mode = <&dwc2_usb>, "dr_mode";
5593 + g-np-tx-fifo-size = <&dwc2_usb>,"g-np-tx-fifo-size:0";
5594 + g-rx-fifo-size = <&dwc2_usb>,"g-rx-fifo-size:0";
5598 +++ b/arch/arm/boot/dts/overlays/enc28j60-overlay.dts
5600 +// Overlay for the Microchip ENC28J60 Ethernet Controller
5605 + compatible = "brcm,bcm2708";
5610 + /* needed to avoid dtc warning */
5611 + #address-cells = <1>;
5612 + #size-cells = <0>;
5617 + compatible = "microchip,enc28j60";
5618 + reg = <0>; /* CE0 */
5619 + pinctrl-names = "default";
5620 + pinctrl-0 = <ð1_pins>;
5621 + interrupt-parent = <&gpio>;
5622 + interrupts = <25 0x2>; /* falling edge */
5623 + spi-max-frequency = <12000000>;
5630 + target = <&spidev0>;
5632 + status = "disabled";
5639 + eth1_pins: eth1_pins {
5641 + brcm,function = <0>; /* in */
5642 + brcm,pull = <0>; /* none */
5648 + int_pin = <ð1>, "interrupts:0",
5649 + <ð1_pins>, "brcm,pins:0";
5650 + speed = <ð1>, "spi-max-frequency:0";
5654 +++ b/arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts
5656 +// Overlay for the Microchip ENC28J60 Ethernet Controller - SPI2 Compute Module
5657 +// Interrupt pin: 39
5662 + compatible = "brcm,bcm2708";
5667 + /* needed to avoid dtc warning */
5668 + #address-cells = <1>;
5669 + #size-cells = <0>;
5674 + compatible = "microchip,enc28j60";
5675 + reg = <0>; /* CE0 */
5676 + pinctrl-names = "default";
5677 + pinctrl-0 = <ð1_pins>;
5678 + interrupt-parent = <&gpio>;
5679 + interrupts = <39 0x2>; /* falling edge */
5680 + spi-max-frequency = <12000000>;
5689 + eth1_pins: eth1_pins {
5691 + brcm,function = <0>; /* in */
5692 + brcm,pull = <0>; /* none */
5698 + int_pin = <ð1>, "interrupts:0",
5699 + <ð1_pins>, "brcm,pins:0";
5700 + speed = <ð1>, "spi-max-frequency:0";
5704 +++ b/arch/arm/boot/dts/overlays/exc3000-overlay.dts
5706 +// Device tree overlay for I2C connected EETI EXC3000 multiple touch controller
5711 + compatible = "brcm,bcm2708";
5716 + exc3000_pins: exc3000_pins {
5717 + brcm,pins = <4>; // interrupt
5718 + brcm,function = <0>; // in
5719 + brcm,pull = <2>; // pull-up
5727 + #address-cells = <1>;
5728 + #size-cells = <0>;
5731 + exc3000: exc3000@2a {
5732 + compatible = "eeti,exc3000";
5734 + pinctrl-names = "default";
5735 + pinctrl-0 = <&exc3000_pins>;
5736 + interrupt-parent = <&gpio>;
5737 + interrupts = <4 8>; // active low level-sensitive
5738 + touchscreen-size-x = <4096>;
5739 + touchscreen-size-y = <4096>;
5745 + interrupt = <&exc3000_pins>,"brcm,pins:0",
5746 + <&exc3000>,"interrupts:0";
5747 + sizex = <&exc3000>,"touchscreen-size-x:0";
5748 + sizey = <&exc3000>,"touchscreen-size-y:0";
5749 + invx = <&exc3000>,"touchscreen-inverted-x?";
5750 + invy = <&exc3000>,"touchscreen-inverted-y?";
5751 + swapxy = <&exc3000>,"touchscreen-swapped-x-y?";
5755 +++ b/arch/arm/boot/dts/overlays/fe-pi-audio-overlay.dts
5757 +// Definitions for Fe-Pi Audio
5762 + compatible = "brcm,bcm2708";
5765 + target = <&clocks>;
5767 + sgtl5000_mclk: sgtl5000_mclk {
5768 + compatible = "fixed-clock";
5769 + #clock-cells = <0>;
5770 + clock-frequency = <12288000>;
5771 + clock-output-names = "sgtl5000-mclk";
5779 + reg_1v8: reg_1v8@0 {
5780 + compatible = "regulator-fixed";
5781 + regulator-name = "1V8";
5782 + regulator-min-microvolt = <1800000>;
5783 + regulator-max-microvolt = <1800000>;
5784 + regulator-always-on;
5792 + #address-cells = <1>;
5793 + #size-cells = <0>;
5797 + #sound-dai-cells = <0>;
5798 + compatible = "fepi,sgtl5000";
5800 + clocks = <&sgtl5000_mclk>;
5801 + micbias-resistor-k-ohms = <2>;
5802 + micbias-voltage-m-volts = <3000>;
5803 + VDDA-supply = <&vdd_3v3_reg>;
5804 + VDDIO-supply = <&vdd_3v3_reg>;
5805 + VDDD-supply = <®_1v8>;
5819 + target = <&sound>;
5821 + compatible = "fe-pi,fe-pi-audio";
5822 + i2s-controller = <&i2s>;
5828 +++ b/arch/arm/boot/dts/overlays/goodix-overlay.dts
5830 +// Device tree overlay for I2C connected Goodix gt9271 multiple touch controller
5835 + compatible = "brcm,bcm2708";
5840 + goodix_pins: goodix_pins {
5841 + brcm,pins = <4 17>; // interrupt and reset
5842 + brcm,function = <0 0>; // in
5843 + brcm,pull = <2 2>; // pull-up
5851 + #address-cells = <1>;
5852 + #size-cells = <0>;
5855 + gt9271: gt9271@14 {
5856 + compatible = "goodix,gt9271";
5858 + pinctrl-names = "default";
5859 + pinctrl-0 = <&goodix_pins>;
5860 + interrupt-parent = <&gpio>;
5861 + interrupts = <4 2>; // high-to-low edge triggered
5862 + irq-gpios = <&gpio 4 0>; // Pin7 on GPIO header
5863 + reset-gpios = <&gpio 17 0>; // Pin11 on GPIO header
5869 + interrupt = <&goodix_pins>,"brcm,pins:0",
5870 + <>9271>,"interrupts:0",
5871 + <>9271>,"irq-gpios:4";
5872 + reset = <&goodix_pins>,"brcm,pins:4",
5873 + <>9271>,"reset-gpios:4";
5877 +++ b/arch/arm/boot/dts/overlays/googlevoicehat-soundcard-overlay.dts
5879 +// Definitions for Google voiceHAT v1 soundcard overlay
5884 + compatible = "brcm,bcm2708";
5896 + googlevoicehat_pins: googlevoicehat_pins {
5898 + brcm,function = <1>; /* out */
5899 + brcm,pull = <0>; /* up */
5906 + target-path = "/";
5909 + #sound-dai-cells = <0>;
5910 + compatible = "google,voicehat";
5911 + pinctrl-names = "default";
5912 + pinctrl-0 = <&googlevoicehat_pins>;
5913 + sdmode-gpios= <&gpio 16 0>;
5920 + target = <&sound>;
5922 + compatible = "googlevoicehat,googlevoicehat-soundcard";
5923 + i2s-controller = <&i2s>;
5929 +++ b/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts
5931 +// Definitions for ir-gpio module
5936 + compatible = "brcm,bcm2708";
5939 + target-path = "/";
5941 + gpio_ir: ir-receiver@12 {
5942 + compatible = "gpio-ir-receiver";
5943 + pinctrl-names = "default";
5944 + pinctrl-0 = <&gpio_ir_pins>;
5946 + // pin number, high or low
5947 + gpios = <&gpio 18 1>;
5949 + // parameter for keymap name
5950 + linux,rc-map-name = "rc-rc6-mce";
5960 + gpio_ir_pins: gpio_ir_pins@12 {
5961 + brcm,pins = <18>; // pin 18
5962 + brcm,function = <0>; // in
5963 + brcm,pull = <1>; // down
5970 + gpio_pin = <&gpio_ir>,"gpios:4", // pin number
5971 + <&gpio_ir>,"reg:0",
5972 + <&gpio_ir_pins>,"brcm,pins:0",
5973 + <&gpio_ir_pins>,"reg:0";
5974 + gpio_pull = <&gpio_ir_pins>,"brcm,pull:0"; // pull-up/down state
5976 + rc-map-name = <&gpio_ir>,"linux,rc-map-name"; // default rc map
5980 +++ b/arch/arm/boot/dts/overlays/gpio-ir-tx-overlay.dts
5986 + compatible = "brcm,bcm2708";
5991 + gpio_ir_tx_pins: gpio_ir_tx_pins@12 {
5993 + brcm,function = <1>; // out
5999 + target-path = "/";
6001 + gpio_ir_tx: gpio-ir-transmitter@12 {
6002 + compatible = "gpio-ir-tx";
6003 + pinctrl-names = "default";
6004 + pinctrl-0 = <&gpio_ir_tx_pins>;
6005 + gpios = <&gpio 18 0>;
6011 + gpio_pin = <&gpio_ir_tx>, "gpios:4", // pin number
6012 + <&gpio_ir_tx>, "reg:0",
6013 + <&gpio_ir_tx_pins>, "brcm,pins:0",
6014 + <&gpio_ir_tx_pins>, "reg:0";
6015 + invert = <&gpio_ir_tx>, "gpios:8"; // 1 = active low
6019 +++ b/arch/arm/boot/dts/overlays/gpio-key-overlay.dts
6021 +// Definitions for gpio-key module
6026 + compatible = "brcm,bcm2708";
6029 + // Configure the gpio pin controller
6032 + pin_state: button_pins@0 {
6033 + brcm,pins = <3>; // gpio number
6034 + brcm,function = <0>; // 0 = input, 1 = output
6035 + brcm,pull = <2>; // 0 = none, 1 = pull down, 2 = pull up
6040 + target-path = "/";
6042 + button: button@0 {
6043 + compatible = "gpio-keys";
6044 + pinctrl-names = "default";
6045 + pinctrl-0 = <&pin_state>;
6049 + linux,code = <116>;
6050 + gpios = <&gpio 3 1>;
6051 + label = "KEY_POWER";
6058 + gpio = <&key>,"gpios:4",
6059 + <&button>,"reg:0",
6060 + <&pin_state>,"brcm,pins:0",
6061 + <&pin_state>,"reg:0";
6062 + label = <&key>,"label";
6063 + keycode = <&key>,"linux,code:0";
6064 + gpio_pull = <&pin_state>,"brcm,pull:0";
6065 + active_low = <&key>,"gpios:8";
6070 +++ b/arch/arm/boot/dts/overlays/gpio-no-irq-overlay.dts
6076 + compatible = "brcm,bcm2835";
6079 + // Configure the gpio pin controller
6087 +++ b/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts
6089 +// Definitions for gpio-poweroff module
6094 + compatible = "brcm,bcm2708";
6097 + target-path = "/";
6099 + power_ctrl: power_ctrl {
6100 + compatible = "gpio-poweroff";
6101 + gpios = <&gpio 26 0>;
6110 + power_ctrl_pins: power_ctrl_pins {
6112 + brcm,function = <1>; // out
6118 + gpiopin = <&power_ctrl>,"gpios:4",
6119 + <&power_ctrl_pins>,"brcm,pins:0";
6120 + active_low = <&power_ctrl>,"gpios:8";
6121 + input = <&power_ctrl>,"input?";
6122 + export = <&power_ctrl>,"export?";
6126 +++ b/arch/arm/boot/dts/overlays/gpio-shutdown-overlay.dts
6128 +// Definitions for gpio-poweroff module
6132 +// This overlay sets up an input device that generates KEY_POWER events
6133 +// when a given GPIO pin changes. It defaults to using GPIO3, which can
6134 +// also be used to wake up (start) the Rpi again after shutdown. Since
6135 +// wakeup is active-low, this defaults to active-low with a pullup
6136 +// enabled, but all of this can be changed using overlay parameters (but
6137 +// note that GPIO3 has an external pullup on at least some boards).
6140 + compatible = "brcm,bcm2708";
6143 + // Configure the gpio pin controller
6146 + // Define a pinctrl state, that sets up the gpio
6147 + // as an input with a pullup enabled. This does
6148 + // not take effect by itself, only when referenced
6149 + // by a "pinctrl client", as is done below. See:
6150 + // https://www.kernel.org/doc/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
6151 + // https://www.kernel.org/doc/Documentation/devicetree/bindings/pinctrl/brcm,bcm2835-gpio.txt
6152 + pin_state: shutdown_button_pins {
6153 + brcm,pins = <3>; // gpio number
6154 + brcm,function = <0>; // 0 = input, 1 = output
6155 + brcm,pull = <2>; // 0 = none, 1 = pull down, 2 = pull up
6160 + // Add a new device to the /soc devicetree node
6161 + target-path = "/soc";
6164 + // Let the gpio-keys driver handle this device. See:
6165 + // https://www.kernel.org/doc/Documentation/devicetree/bindings/input/gpio-keys.txt
6166 + compatible = "gpio-keys";
6168 + // Declare a single pinctrl state (referencing the one declared above) and name it
6169 + // default, so it is activated automatically.
6170 + pinctrl-names = "default";
6171 + pinctrl-0 = <&pin_state>;
6173 + // Enable this device
6176 + // Define a single key, called "shutdown" that monitors the gpio and sends KEY_POWER
6177 + // (keycode 116, see
6178 + // https://github.com/torvalds/linux/blob/v4.12/include/uapi/linux/input-event-codes.h#L190)
6179 + button: shutdown {
6180 + label = "shutdown";
6181 + linux,code = <116>; // KEY_POWER
6182 + gpios = <&gpio 3 1>;
6188 + // This defines parameters that can be specified when loading
6189 + // the overlay. Each foo = line specifies one parameter, named
6190 + // foo. The rest of the specification gives properties where the
6191 + // parameter value is inserted into (changing the values above
6192 + // or adding new ones).
6194 + // Allow overriding the GPIO number.
6195 + gpio_pin = <&button>,"gpios:4",
6196 + <&pin_state>,"brcm,pins:0";
6198 + // Allow changing the internal pullup/down state. 0 = none, 1 = pulldown, 2 = pullup
6199 + // Note that GPIO3 and GPIO2 are the I2c pins and have an external pullup (at least
6200 + // on some boards).
6201 + gpio_pull = <&pin_state>,"brcm,pull:0";
6203 + // Allow setting the active_low flag. 0 = active high, 1 = active low
6204 + active_low = <&button>,"gpios:8";
6209 +++ b/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts
6211 +// Definitions for HiFiBerry Amp/Amp+
6216 + compatible = "brcm,bcm2708";
6228 + #address-cells = <1>;
6229 + #size-cells = <0>;
6233 + #sound-dai-cells = <0>;
6234 + compatible = "ti,tas5713";
6242 + target = <&sound>;
6244 + compatible = "hifiberry,hifiberry-amp";
6245 + i2s-controller = <&i2s>;
6251 +++ b/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts
6253 +// Definitions for HiFiBerry DAC
6258 + compatible = "brcm,bcm2708";
6268 + target-path = "/";
6271 + #sound-dai-cells = <0>;
6272 + compatible = "ti,pcm5102a";
6279 + target = <&sound>;
6281 + compatible = "hifiberry,hifiberry-dac";
6282 + i2s-controller = <&i2s>;
6288 +++ b/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
6290 +// Definitions for HiFiBerry DAC+
6295 + compatible = "brcm,bcm2708";
6298 + target-path = "/clocks";
6300 + dacpro_osc: dacpro_osc {
6301 + compatible = "hifiberry,dacpro-clk";
6302 + #clock-cells = <0>;
6317 + #address-cells = <1>;
6318 + #size-cells = <0>;
6322 + #sound-dai-cells = <0>;
6323 + compatible = "ti,pcm5122";
6325 + clocks = <&dacpro_osc>;
6326 + AVDD-supply = <&vdd_3v3_reg>;
6327 + DVDD-supply = <&vdd_3v3_reg>;
6328 + CPVDD-supply = <&vdd_3v3_reg>;
6335 + target = <&sound>;
6336 + hifiberry_dacplus: __overlay__ {
6337 + compatible = "hifiberry,hifiberry-dacplus";
6338 + i2s-controller = <&i2s>;
6344 + 24db_digital_gain =
6345 + <&hifiberry_dacplus>,"hifiberry,24db_digital_gain?";
6346 + slave = <&hifiberry_dacplus>,"hifiberry-dacplus,slave?";
6350 +++ b/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts
6352 +// Definitions for HiFiBerry Digi
6357 + compatible = "brcm,bcm2708";
6369 + #address-cells = <1>;
6370 + #size-cells = <0>;
6374 + #sound-dai-cells = <0>;
6375 + compatible = "wlf,wm8804";
6377 + PVDD-supply = <&vdd_3v3_reg>;
6378 + DVDD-supply = <&vdd_3v3_reg>;
6385 + target = <&sound>;
6387 + compatible = "hifiberry,hifiberry-digi";
6388 + i2s-controller = <&i2s>;
6394 +++ b/arch/arm/boot/dts/overlays/hifiberry-digi-pro-overlay.dts
6396 +// Definitions for HiFiBerry Digi Pro
6401 + compatible = "brcm,bcm2708";
6413 + #address-cells = <1>;
6414 + #size-cells = <0>;
6418 + #sound-dai-cells = <0>;
6419 + compatible = "wlf,wm8804";
6421 + PVDD-supply = <&vdd_3v3_reg>;
6422 + DVDD-supply = <&vdd_3v3_reg>;
6429 + target = <&sound>;
6431 + compatible = "hifiberry,hifiberry-digi";
6432 + i2s-controller = <&i2s>;
6434 + clock44-gpio = <&gpio 5 0>;
6435 + clock48-gpio = <&gpio 6 0>;
6440 +++ b/arch/arm/boot/dts/overlays/hy28a-overlay.dts
6443 + * Device Tree overlay for HY28A display
6451 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
6461 + target = <&spidev0>;
6463 + status = "disabled";
6468 + target = <&spidev1>;
6470 + status = "disabled";
6477 + hy28a_pins: hy28a_pins {
6478 + brcm,pins = <17 25 18>;
6479 + brcm,function = <0 1 1>; /* in out out */
6487 + /* needed to avoid dtc warning */
6488 + #address-cells = <1>;
6489 + #size-cells = <0>;
6492 + compatible = "ilitek,ili9320";
6494 + pinctrl-names = "default";
6495 + pinctrl-0 = <&hy28a_pins>;
6497 + spi-max-frequency = <32000000>;
6504 + startbyte = <0x70>;
6505 + reset-gpios = <&gpio 25 0>;
6506 + led-gpios = <&gpio 18 1>;
6510 + hy28a_ts: hy28a-ts@1 {
6511 + compatible = "ti,ads7846";
6514 + spi-max-frequency = <2000000>;
6515 + interrupts = <17 2>; /* high-to-low edge triggered */
6516 + interrupt-parent = <&gpio>;
6517 + pendown-gpio = <&gpio 17 0>;
6518 + ti,x-plate-ohms = /bits/ 16 <100>;
6519 + ti,pressure-max = /bits/ 16 <255>;
6524 + speed = <&hy28a>,"spi-max-frequency:0";
6525 + rotate = <&hy28a>,"rotate:0";
6526 + fps = <&hy28a>,"fps:0";
6527 + debug = <&hy28a>,"debug:0";
6528 + xohms = <&hy28a_ts>,"ti,x-plate-ohms;0";
6529 + resetgpio = <&hy28a>,"reset-gpios:4",
6530 + <&hy28a_pins>, "brcm,pins:4";
6531 + ledgpio = <&hy28a>,"led-gpios:4",
6532 + <&hy28a_pins>, "brcm,pins:8";
6536 +++ b/arch/arm/boot/dts/overlays/hy28b-overlay.dts
6539 + * Device Tree overlay for HY28b display shield by Texy
6547 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
6557 + target = <&spidev0>;
6559 + status = "disabled";
6564 + target = <&spidev1>;
6566 + status = "disabled";
6573 + hy28b_pins: hy28b_pins {
6574 + brcm,pins = <17 25 18>;
6575 + brcm,function = <0 1 1>; /* in out out */
6583 + /* needed to avoid dtc warning */
6584 + #address-cells = <1>;
6585 + #size-cells = <0>;
6588 + compatible = "ilitek,ili9325";
6590 + pinctrl-names = "default";
6591 + pinctrl-0 = <&hy28b_pins>;
6593 + spi-max-frequency = <48000000>;
6600 + startbyte = <0x70>;
6601 + reset-gpios = <&gpio 25 0>;
6602 + led-gpios = <&gpio 18 1>;
6604 + gamma = "04 1F 4 7 7 0 7 7 6 0\n0F 00 1 7 4 0 0 0 6 7";
6606 + init = <0x10000e7 0x0010
6661 + hy28b_ts: hy28b-ts@1 {
6662 + compatible = "ti,ads7846";
6665 + spi-max-frequency = <2000000>;
6666 + interrupts = <17 2>; /* high-to-low edge triggered */
6667 + interrupt-parent = <&gpio>;
6668 + pendown-gpio = <&gpio 17 0>;
6669 + ti,x-plate-ohms = /bits/ 16 <100>;
6670 + ti,pressure-max = /bits/ 16 <255>;
6675 + speed = <&hy28b>,"spi-max-frequency:0";
6676 + rotate = <&hy28b>,"rotate:0";
6677 + fps = <&hy28b>,"fps:0";
6678 + debug = <&hy28b>,"debug:0";
6679 + xohms = <&hy28b_ts>,"ti,x-plate-ohms;0";
6680 + resetgpio = <&hy28b>,"reset-gpios:4",
6681 + <&hy28b_pins>, "brcm,pins:4";
6682 + ledgpio = <&hy28b>,"led-gpios:4",
6683 + <&hy28b_pins>, "brcm,pins:8";
6687 +++ b/arch/arm/boot/dts/overlays/i2c-bcm2708-overlay.dts
6693 + compatible = "brcm,bcm2708";
6696 + target = <&i2c_arm>;
6698 + compatible = "brcm,bcm2708-i2c";
6703 +++ b/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts
6705 +// Overlay for i2c_gpio bitbanging host bus.
6710 + compatible = "brcm,bcm2708";
6713 + target-path = "/";
6716 + compatible = "i2c-gpio";
6717 + gpios = <&gpio 23 0 /* sda */
6718 + &gpio 24 0 /* scl */
6720 + i2c-gpio,delay-us = <2>; /* ~100 kHz */
6721 + #address-cells = <1>;
6722 + #size-cells = <0>;
6728 + target-path = "/aliases";
6730 + i2c_gpio = "/i2c@0";
6735 + target-path = "/__symbols__";
6737 + i2c_gpio = "/i2c@0";
6742 + i2c_gpio_sda = <&i2c_gpio>,"gpios:4";
6743 + i2c_gpio_scl = <&i2c_gpio>,"gpios:16";
6744 + i2c_gpio_delay_us = <&i2c_gpio>,"i2c-gpio,delay-us:0";
6745 + bus = <&i2c_gpio>, "reg:0";
6749 +++ b/arch/arm/boot/dts/overlays/i2c-mux-overlay.dts
6751 +// Umbrella I2C Mux overlay
6757 + compatible = "brcm,bcm2708";
6760 + target = <&i2c_arm>;
6762 + #address-cells = <1>;
6763 + #size-cells = <0>;
6767 + compatible = "nxp,pca9542";
6769 + #address-cells = <1>;
6770 + #size-cells = <0>;
6773 + #address-cells = <1>;
6774 + #size-cells = <0>;
6778 + #address-cells = <1>;
6779 + #size-cells = <0>;
6787 + target = <&i2c_arm>;
6789 + #address-cells = <1>;
6790 + #size-cells = <0>;
6794 + compatible = "nxp,pca9545";
6796 + #address-cells = <1>;
6797 + #size-cells = <0>;
6800 + #address-cells = <1>;
6801 + #size-cells = <0>;
6805 + #address-cells = <1>;
6806 + #size-cells = <0>;
6810 + #address-cells = <1>;
6811 + #size-cells = <0>;
6815 + #address-cells = <1>;
6816 + #size-cells = <0>;
6824 + target = <&i2c_arm>;
6826 + #address-cells = <1>;
6827 + #size-cells = <0>;
6831 + compatible = "nxp,pca9548";
6833 + #address-cells = <1>;
6834 + #size-cells = <0>;
6837 + #address-cells = <1>;
6838 + #size-cells = <0>;
6842 + #address-cells = <1>;
6843 + #size-cells = <0>;
6847 + #address-cells = <1>;
6848 + #size-cells = <0>;
6852 + #address-cells = <1>;
6853 + #size-cells = <0>;
6857 + #address-cells = <1>;
6858 + #size-cells = <0>;
6862 + #address-cells = <1>;
6863 + #size-cells = <0>;
6867 + #address-cells = <1>;
6868 + #size-cells = <0>;
6872 + #address-cells = <1>;
6873 + #size-cells = <0>;
6881 + pca9542 = <0>, "+0";
6882 + pca9545 = <0>, "+1";
6883 + pca9548 = <0>, "+2";
6885 + addr = <&pca9542>,"reg:0",
6886 + <&pca9545>,"reg:0",
6887 + <&pca9548>,"reg:0";
6891 +++ b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
6893 +// Definitions for NXP PCA9685A I2C PWM controller on ARM I2C bus.
6898 + compatible = "brcm,bcm2708";
6901 + target = <&i2c_arm>;
6903 + #address-cells = <1>;
6904 + #size-cells = <0>;
6908 + compatible = "nxp,pca9685";
6916 + addr = <&pca>,"reg:0";
6920 +++ b/arch/arm/boot/dts/overlays/i2c-rtc-gpio-overlay.dts
6922 +// Definitions for several I2C based Real Time Clocks
6923 +// Available through i2c-gpio
6928 + compatible = "brcm,bcm2708";
6931 + target-path = "/";
6933 + i2c_gpio: i2c-gpio-rtc@0 {
6934 + compatible = "i2c-gpio";
6935 + gpios = <&gpio 23 0 /* sda */
6936 + &gpio 24 0 /* scl */
6938 + i2c-gpio,delay-us = <2>; /* ~100 kHz */
6939 + #address-cells = <1>;
6940 + #size-cells = <0>;
6946 + target = <&i2c_gpio>;
6948 + #address-cells = <1>;
6949 + #size-cells = <0>;
6952 + abx80x: abx80x@69 {
6953 + compatible = "abracon,abx80x";
6955 + abracon,tc-diode = "standard";
6956 + abracon,tc-resistor = <0>;
6963 + target = <&i2c_gpio>;
6965 + #address-cells = <1>;
6966 + #size-cells = <0>;
6969 + ds1307: ds1307@68 {
6970 + compatible = "maxim,ds1307";
6978 + target = <&i2c_gpio>;
6980 + #address-cells = <1>;
6981 + #size-cells = <0>;
6984 + ds1339: ds1339@68 {
6985 + compatible = "dallas,ds1339";
6986 + trickle-resistor-ohms = <0>;
6994 + target = <&i2c_gpio>;
6996 + #address-cells = <1>;
6997 + #size-cells = <0>;
7000 + ds3231: ds3231@68 {
7001 + compatible = "maxim,ds3231";
7009 + target = <&i2c_gpio>;
7011 + #address-cells = <1>;
7012 + #size-cells = <0>;
7015 + mcp7940x: mcp7940x@6f {
7016 + compatible = "microchip,mcp7940x";
7024 + target = <&i2c_gpio>;
7026 + #address-cells = <1>;
7027 + #size-cells = <0>;
7030 + mcp7941x: mcp7941x@6f {
7031 + compatible = "microchip,mcp7941x";
7039 + target = <&i2c_gpio>;
7041 + #address-cells = <1>;
7042 + #size-cells = <0>;
7045 + pcf2127: pcf2127@51 {
7046 + compatible = "nxp,pcf2127";
7054 + target = <&i2c_gpio>;
7056 + #address-cells = <1>;
7057 + #size-cells = <0>;
7060 + pcf8523: pcf8523@68 {
7061 + compatible = "nxp,pcf8523";
7069 + target = <&i2c_gpio>;
7071 + #address-cells = <1>;
7072 + #size-cells = <0>;
7075 + pcf8563: pcf8563@51 {
7076 + compatible = "nxp,pcf8563";
7084 + abx80x = <0>,"+1";
7085 + ds1307 = <0>,"+2";
7086 + ds1339 = <0>,"+3";
7087 + ds3231 = <0>,"+4";
7088 + mcp7940x = <0>,"+5";
7089 + mcp7941x = <0>,"+6";
7090 + pcf2127 = <0>,"+7";
7091 + pcf8523 = <0>,"+8";
7092 + pcf8563 = <0>,"+9";
7093 + trickle-diode-type = <&abx80x>,"abracon,tc-diode";
7094 + trickle-resistor-ohms = <&ds1339>,"trickle-resistor-ohms:0",
7095 + <&abx80x>,"abracon,tc-resistor";
7096 + wakeup-source = <&ds1339>,"wakeup-source?",
7097 + <&ds3231>,"wakeup-source?",
7098 + <&mcp7940x>,"wakeup-source?",
7099 + <&mcp7941x>,"wakeup-source?";
7100 + i2c_gpio_sda = <&i2c_gpio>,"gpios:4";
7101 + i2c_gpio_scl = <&i2c_gpio>,"gpios:16";
7102 + i2c_gpio_delay_us = <&i2c_gpio>,"i2c-gpio,delay-us:0";
7106 +++ b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts
7108 +// Definitions for several I2C based Real Time Clocks
7113 + compatible = "brcm,bcm2708";
7116 + target = <&i2c_arm>;
7118 + #address-cells = <1>;
7119 + #size-cells = <0>;
7122 + abx80x: abx80x@69 {
7123 + compatible = "abracon,abx80x";
7125 + abracon,tc-diode = "standard";
7126 + abracon,tc-resistor = <0>;
7133 + target = <&i2c_arm>;
7135 + #address-cells = <1>;
7136 + #size-cells = <0>;
7139 + ds1307: ds1307@68 {
7140 + compatible = "maxim,ds1307";
7148 + target = <&i2c_arm>;
7150 + #address-cells = <1>;
7151 + #size-cells = <0>;
7154 + ds1339: ds1339@68 {
7155 + compatible = "dallas,ds1339";
7156 + trickle-resistor-ohms = <0>;
7164 + target = <&i2c_arm>;
7166 + #address-cells = <1>;
7167 + #size-cells = <0>;
7170 + ds3231: ds3231@68 {
7171 + compatible = "maxim,ds3231";
7179 + target = <&i2c_arm>;
7181 + #address-cells = <1>;
7182 + #size-cells = <0>;
7185 + mcp7940x: mcp7940x@6f {
7186 + compatible = "microchip,mcp7940x";
7194 + target = <&i2c_arm>;
7196 + #address-cells = <1>;
7197 + #size-cells = <0>;
7200 + mcp7941x: mcp7941x@6f {
7201 + compatible = "microchip,mcp7941x";
7209 + target = <&i2c_arm>;
7211 + #address-cells = <1>;
7212 + #size-cells = <0>;
7215 + pcf2127: pcf2127@51 {
7216 + compatible = "nxp,pcf2127";
7224 + target = <&i2c_arm>;
7226 + #address-cells = <1>;
7227 + #size-cells = <0>;
7230 + pcf8523: pcf8523@68 {
7231 + compatible = "nxp,pcf8523";
7239 + target = <&i2c_arm>;
7241 + #address-cells = <1>;
7242 + #size-cells = <0>;
7245 + pcf8563: pcf8563@51 {
7246 + compatible = "nxp,pcf8563";
7254 + target = <&i2c_arm>;
7256 + #address-cells = <1>;
7257 + #size-cells = <0>;
7260 + m41t62: m41t62@68 {
7261 + compatible = "st,m41t62";
7269 + abx80x = <0>,"+0";
7270 + ds1307 = <0>,"+1";
7271 + ds1339 = <0>,"+2";
7272 + ds3231 = <0>,"+3";
7273 + mcp7940x = <0>,"+4";
7274 + mcp7941x = <0>,"+5";
7275 + pcf2127 = <0>,"+6";
7276 + pcf8523 = <0>,"+7";
7277 + pcf8563 = <0>,"+8";
7278 + m41t62 = <0>,"+9";
7279 + trickle-diode-type = <&abx80x>,"abracon,tc-diode";
7280 + trickle-resistor-ohms = <&ds1339>,"trickle-resistor-ohms:0",
7281 + <&abx80x>,"abracon,tc-resistor";
7282 + wakeup-source = <&ds1339>,"wakeup-source?",
7283 + <&ds3231>,"wakeup-source?",
7284 + <&mcp7940x>,"wakeup-source?",
7285 + <&mcp7941x>,"wakeup-source?",
7286 + <&m41t62>,"wakeup-source?";
7290 +++ b/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
7292 +// Definitions for I2C based sensors using the Industrial IO or HWMON interface.
7297 + compatible = "brcm,bcm2708";
7300 + target = <&i2c_arm>;
7302 + #address-cells = <1>;
7303 + #size-cells = <0>;
7306 + bme280: bme280@76 {
7307 + compatible = "bosch,bme280";
7315 + target = <&i2c_arm>;
7317 + #address-cells = <1>;
7318 + #size-cells = <0>;
7321 + bmp085: bmp085@77 {
7322 + compatible = "bosch,bmp085";
7324 + default-oversampling = <3>;
7331 + target = <&i2c_arm>;
7333 + #address-cells = <1>;
7334 + #size-cells = <0>;
7337 + bmp180: bmp180@77 {
7338 + compatible = "bosch,bmp180";
7346 + target = <&i2c_arm>;
7348 + #address-cells = <1>;
7349 + #size-cells = <0>;
7352 + bmp280: bmp280@76 {
7353 + compatible = "bosch,bmp280";
7361 + target = <&i2c_arm>;
7363 + #address-cells = <1>;
7364 + #size-cells = <0>;
7368 + compatible = "htu21";
7376 + target = <&i2c_arm>;
7378 + #address-cells = <1>;
7379 + #size-cells = <0>;
7383 + compatible = "lm75";
7391 + target = <&i2c_arm>;
7393 + #address-cells = <1>;
7394 + #size-cells = <0>;
7397 + si7020: si7020@40 {
7398 + compatible = "si7020";
7406 + target = <&i2c_arm>;
7408 + #address-cells = <1>;
7409 + #size-cells = <0>;
7412 + tmp102: tmp102@48 {
7413 + compatible = "ti,tmp102";
7421 + target = <&i2c_arm>;
7423 + #address-cells = <1>;
7424 + #size-cells = <0>;
7427 + hdc100x: hdc100x@40 {
7428 + compatible = "hdc100x";
7436 + target = <&i2c_arm>;
7438 + #address-cells = <1>;
7439 + #size-cells = <0>;
7442 + tsl4531: tsl4531@29 {
7443 + compatible = "tsl4531";
7451 + target = <&i2c_arm>;
7453 + #address-cells = <1>;
7454 + #size-cells = <0>;
7457 + veml6070: veml6070@38 {
7458 + compatible = "veml6070";
7466 + target = <&i2c_arm>;
7468 + #address-cells = <1>;
7469 + #size-cells = <0>;
7473 + compatible = "sht3x";
7481 + target = <&i2c_arm>;
7483 + #address-cells = <1>;
7484 + #size-cells = <0>;
7487 + ds1621: ds1621@48 {
7488 + compatible = "ds1621";
7496 + addr = <&bme280>,"reg:0", <&bmp280>,"reg:0", <&tmp102>,"reg:0",
7497 + <&lm75>,"reg:0", <&hdc100x>,"reg:0", <&sht3x>,"reg:0",
7498 + <&ds1621>,"reg:0";
7499 + bme280 = <0>,"+0";
7500 + bmp085 = <0>,"+1";
7501 + bmp180 = <0>,"+2";
7502 + bmp280 = <0>,"+3";
7505 + lm75addr = <&lm75>,"reg:0";
7506 + si7020 = <0>,"+6";
7507 + tmp102 = <0>,"+7";
7508 + hdc100x = <0>,"+8";
7509 + tsl4531 = <0>,"+9";
7510 + veml6070 = <0>,"+10";
7511 + sht3x = <0>,"+11";
7512 + ds1621 = <0>,"+12";
7516 +++ b/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts
7519 + * Device tree overlay for i2c_bcm2708, i2c0 bus
7522 + * dtc -@ -I dts -O dtb -o i2c0-bcm2708-overlay.dtb i2c0-bcm2708-overlay.dts
7529 + compatible = "brcm,bcm2708";
7539 + target = <&i2c0_pins>;
7540 + frag1: __overlay__ {
7541 + brcm,pins = <0 1>;
7542 + brcm,function = <4>; /* alt0 */
7547 + target = <&i2c0_pins>;
7549 + brcm,pins = <28 29>;
7550 + brcm,function = <4>; /* alt0 */
7555 + target = <&i2c0_pins>;
7557 + brcm,pins = <44 45>;
7558 + brcm,function = <5>; /* alt1 */
7563 + target = <&i2c0_pins>;
7565 + brcm,pins = <46 47>;
7566 + brcm,function = <4>; /* alt0 */
7573 + compatible = "brcm,bcm2708-i2c";
7578 + sda0_pin = <&frag1>,"brcm,pins:0";
7579 + scl0_pin = <&frag1>,"brcm,pins:4";
7580 + pins_0_1 = <0>,"+1-2-3-4";
7581 + pins_28_29 = <0>,"-1+2-3-4";
7582 + pins_44_45 = <0>,"-1-2+3-4";
7583 + pins_46_47 = <0>,"-1-2-3+4";
7584 + combine = <0>, "!5";
7588 +++ b/arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts
7591 + * Device tree overlay for i2c_bcm2708, i2c1 bus
7594 + * dtc -@ -I dts -O dtb -o i2c1-bcm2708-overlay.dtb i2c1-bcm2708-overlay.dts
7601 + compatible = "brcm,bcm2708";
7606 + pinctrl-0 = <&i2c1_pins>;
7612 + target = <&i2c1_pins>;
7613 + pins: __overlay__ {
7614 + brcm,pins = <2 3>;
7615 + brcm,function = <4>; /* alt 0 */
7622 + compatible = "brcm,bcm2708-i2c";
7627 + sda1_pin = <&pins>,"brcm,pins:0";
7628 + scl1_pin = <&pins>,"brcm,pins:4";
7629 + pin_func = <&pins>,"brcm,function:0";
7630 + combine = <0>, "!2";
7634 +++ b/arch/arm/boot/dts/overlays/i2s-gpio28-31-overlay.dts
7637 + * Device tree overlay to move i2s to gpio 28 to 31 on CM
7644 + compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
7647 + target = <&i2s_pins>;
7649 + brcm,pins = <28 29 30 31>;
7650 + brcm,function = <6>; /* alt2 */
7655 +++ b/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts
7657 +// Definitions for IQaudIO DAC
7662 + compatible = "brcm,bcm2708";
7674 + #address-cells = <1>;
7675 + #size-cells = <0>;
7679 + #sound-dai-cells = <0>;
7680 + compatible = "ti,pcm5122";
7682 + AVDD-supply = <&vdd_3v3_reg>;
7683 + DVDD-supply = <&vdd_3v3_reg>;
7684 + CPVDD-supply = <&vdd_3v3_reg>;
7691 + target = <&sound>;
7692 + frag2: __overlay__ {
7693 + compatible = "iqaudio,iqaudio-dac";
7694 + i2s-controller = <&i2s>;
7700 + 24db_digital_gain = <&frag2>,"iqaudio,24db_digital_gain?";
7704 +++ b/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts
7706 +// Definitions for IQaudIO DAC+
7711 + compatible = "brcm,bcm2708";
7723 + #address-cells = <1>;
7724 + #size-cells = <0>;
7728 + #sound-dai-cells = <0>;
7729 + compatible = "ti,pcm5122";
7731 + AVDD-supply = <&vdd_3v3_reg>;
7732 + DVDD-supply = <&vdd_3v3_reg>;
7733 + CPVDD-supply = <&vdd_3v3_reg>;
7740 + target = <&sound>;
7741 + iqaudio_dac: __overlay__ {
7742 + compatible = "iqaudio,iqaudio-dac";
7743 + i2s-controller = <&i2s>;
7744 + mute-gpios = <&gpio 22 0>;
7750 + 24db_digital_gain = <&iqaudio_dac>,"iqaudio,24db_digital_gain?";
7751 + auto_mute_amp = <&iqaudio_dac>,"iqaudio-dac,auto-mute-amp?";
7752 + unmute_amp = <&iqaudio_dac>,"iqaudio-dac,unmute-amp?";
7756 +++ b/arch/arm/boot/dts/overlays/iqaudio-digi-wm8804-audio-overlay.dts
7758 +// Definitions for IQAudIO Digi WM8804 audio board
7763 + compatible = "brcm,bcm2708";
7775 + #address-cells = <1>;
7776 + #size-cells = <0>;
7780 + #sound-dai-cells = <0>;
7781 + compatible = "wlf,wm8804";
7784 + DVDD-supply = <&vdd_3v3_reg>;
7785 + PVDD-supply = <&vdd_3v3_reg>;
7791 + target = <&sound>;
7792 + wm8804_digi: __overlay__ {
7793 + compatible = "iqaudio,wm8804-digi";
7794 + i2s-controller = <&i2s>;
7800 + card_name = <&wm8804_digi>,"wm8804-digi,card-name";
7801 + dai_name = <&wm8804_digi>,"wm8804-digi,dai-name";
7802 + dai_stream_name = <&wm8804_digi>,"wm8804-digi,dai-stream-name";
7806 +++ b/arch/arm/boot/dts/overlays/jedec-spi-nor-overlay.dts
7808 +// Overlay for JEDEC SPI-NOR Flash Devices (aka m25p80)
7811 +// flash-spi<n>-<m> - Enables flash device on SPI<n>, CS#<m>.
7812 +// flash-fastr-spi<n>-<m> - Enables flash device with fast read capability on SPI<n>, CS#<m>.
7814 +// If devices are present on SPI1 or SPI2, those interfaces must be enabled with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
7816 +// Example: A single flash device with fast read capability on SPI0, CS#0:
7817 +// dtoverlay=jedec-spi-nor:flash-fastr-spi0-0
7823 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
7825 + // disable spi-dev on spi0.0
7827 + target = <&spidev0>;
7829 + status = "disabled";
7833 + // disable spi-dev on spi0.1
7835 + target = <&spidev1>;
7837 + status = "disabled";
7841 + // disable spi-dev on spi1.0
7843 + target-path = "spi1/spidev@0";
7845 + status = "disabled";
7849 + // disable spi-dev on spi1.1
7851 + target-path = "spi1/spidev@1";
7853 + status = "disabled";
7857 + // disable spi-dev on spi1.2
7859 + target-path = "spi1/spidev@2";
7861 + status = "disabled";
7865 + // disable spi-dev on spi2.0
7867 + target-path = "spi2/spidev@0";
7869 + status = "disabled";
7873 + // disable spi-dev on spi2.1
7875 + target-path = "spi2/spidev@1";
7877 + status = "disabled";
7881 + // disable spi-dev on spi2.2
7883 + target-path = "spi2/spidev@2";
7885 + status = "disabled";
7889 + // enable flash on spi0.0
7894 + #address-cells = <1>;
7895 + #size-cells = <0>;
7896 + spi_nor_00: spi_nor@0 {
7897 + #address-cells = <1>;
7898 + #size-cells = <1>;
7899 + compatible = "jedec,spi-nor";
7901 + spi-max-frequency = <500000>;
7906 + // enable flash on spi0.1
7911 + #address-cells = <1>;
7912 + #size-cells = <0>;
7913 + spi_nor_01: spi_nor@1 {
7914 + #address-cells = <1>;
7915 + #size-cells = <1>;
7916 + compatible = "jedec,spi-nor";
7918 + spi-max-frequency = <500000>;
7923 + // enable flash on spi1.0
7928 + #address-cells = <1>;
7929 + #size-cells = <0>;
7930 + spi_nor_10: spi_nor@0 {
7931 + #address-cells = <1>;
7932 + #size-cells = <1>;
7933 + compatible = "jedec,spi-nor";
7935 + spi-max-frequency = <500000>;
7940 + // enable flash on spi1.1
7945 + #address-cells = <1>;
7946 + #size-cells = <0>;
7947 + spi_nor_11: spi_nor@1 {
7948 + #address-cells = <1>;
7949 + #size-cells = <1>;
7950 + compatible = "jedec,spi-nor";
7952 + spi-max-frequency = <500000>;
7957 + // enable flash on spi1.2
7962 + #address-cells = <1>;
7963 + #size-cells = <0>;
7964 + spi_nor_12: spi_nor@2 {
7965 + #address-cells = <1>;
7966 + #size-cells = <1>;
7967 + compatible = "jedec,spi-nor";
7969 + spi-max-frequency = <500000>;
7974 + // enable flash on spi2.0
7979 + #address-cells = <1>;
7980 + #size-cells = <0>;
7981 + spi_nor_20: spi_nor@0 {
7982 + #address-cells = <1>;
7983 + #size-cells = <1>;
7984 + compatible = "jedec,spi-nor";
7986 + spi-max-frequency = <500000>;
7991 + // enable flash on spi2.1
7996 + #address-cells = <1>;
7997 + #size-cells = <0>;
7998 + spi_nor_21: spi_nor@1 {
7999 + #address-cells = <1>;
8000 + #size-cells = <1>;
8001 + compatible = "jedec,spi-nor";
8003 + spi-max-frequency = <500000>;
8008 + // enable flash on spi2.2
8013 + #address-cells = <1>;
8014 + #size-cells = <0>;
8015 + spi_nor_22: spi_nor@2 {
8016 + #address-cells = <1>;
8017 + #size-cells = <1>;
8018 + compatible = "jedec,spi-nor";
8020 + spi-max-frequency = <500000>;
8025 + // Enable fast read for device on spi0.0.
8026 + // Use default active low interrupt signalling.
8028 + target = <&spi_nor_00>;
8034 + // Enable fast read for device on spi0.1.
8035 + // Use default active low interrupt signalling.
8037 + target = <&spi_nor_01>;
8043 + // Enable fast read for device on spi1.0.
8044 + // Use default active low interrupt signalling.
8046 + target = <&spi_nor_10>;
8052 + // Enable fast read for device on spi1.1.
8053 + // Use default active low interrupt signalling.
8055 + target = <&spi_nor_11>;
8061 + // Enable fast read for device on spi1.2.
8062 + // Use default active low interrupt signalling.
8064 + target = <&spi_nor_12>;
8070 + // Enable fast read for device on spi2.0.
8071 + // Use default active low interrupt signalling.
8073 + target = <&spi_nor_20>;
8079 + // Enable fast read for device on spi2.1.
8080 + // Use default active low interrupt signalling.
8082 + target = <&spi_nor_21>;
8088 + // Enable fast read for device on spi2.2.
8089 + // Use default active low interrupt signalling.
8091 + target = <&spi_nor_22>;
8098 + flash-spi0-0 = <0>,"+0+8";
8099 + flash-spi0-1 = <0>,"+1+9";
8100 + flash-spi1-0 = <0>,"+2+10";
8101 + flash-spi1-1 = <0>,"+3+11";
8102 + flash-spi1-2 = <0>,"+4+12";
8103 + flash-spi2-0 = <0>,"+5+13";
8104 + flash-spi2-1 = <0>,"+6+14";
8105 + flash-spi2-2 = <0>,"+7+15";
8106 + flash-fastr-spi0-0 = <0>,"+0+8+16";
8107 + flash-fastr-spi0-1 = <0>,"+1+9+17";
8108 + flash-fastr-spi1-0 = <0>,"+2+10+18";
8109 + flash-fastr-spi1-1 = <0>,"+3+11+19";
8110 + flash-fastr-spi1-2 = <0>,"+4+12+20";
8111 + flash-fastr-spi2-0 = <0>,"+5+13+21";
8112 + flash-fastr-spi2-1 = <0>,"+6+14+22";
8113 + flash-fastr-spi2-2 = <0>,"+7+15+23";
8118 +++ b/arch/arm/boot/dts/overlays/justboom-dac-overlay.dts
8120 +// Definitions for JustBoom DAC
8125 + compatible = "brcm,bcm2708";
8137 + #address-cells = <1>;
8138 + #size-cells = <0>;
8142 + #sound-dai-cells = <0>;
8143 + compatible = "ti,pcm5122";
8145 + AVDD-supply = <&vdd_3v3_reg>;
8146 + DVDD-supply = <&vdd_3v3_reg>;
8147 + CPVDD-supply = <&vdd_3v3_reg>;
8154 + target = <&sound>;
8155 + frag2: __overlay__ {
8156 + compatible = "justboom,justboom-dac";
8157 + i2s-controller = <&i2s>;
8163 + 24db_digital_gain = <&frag2>,"justboom,24db_digital_gain?";
8167 +++ b/arch/arm/boot/dts/overlays/justboom-digi-overlay.dts
8169 +// Definitions for JustBoom Digi
8174 + compatible = "brcm,bcm2708";
8186 + #address-cells = <1>;
8187 + #size-cells = <0>;
8191 + #sound-dai-cells = <0>;
8192 + compatible = "wlf,wm8804";
8194 + PVDD-supply = <&vdd_3v3_reg>;
8195 + DVDD-supply = <&vdd_3v3_reg>;
8202 + target = <&sound>;
8204 + compatible = "justboom,justboom-digi";
8205 + i2s-controller = <&i2s>;
8211 +++ b/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts
8213 +// Definitions for lirc-rpi module
8218 + compatible = "brcm,bcm2708";
8221 + target-path = "/";
8223 + lirc_rpi: lirc_rpi {
8224 + compatible = "rpi,lirc-rpi";
8225 + pinctrl-names = "default";
8226 + pinctrl-0 = <&lirc_pins>;
8229 + // Override autodetection of IR receiver circuit
8230 + // (0 = active high, 1 = active low, -1 = no override )
8231 + rpi,sense = <0xffffffff>;
8233 + // Software carrier
8234 + // (0 = off, 1 = on)
8235 + rpi,softcarrier = <1>;
8238 + // (0 = off, 1 = on)
8241 + // Enable debugging messages
8242 + // (0 = off, 1 = on)
8251 + lirc_pins: lirc_pins {
8252 + brcm,pins = <17 18>;
8253 + brcm,function = <1 0>; // out in
8254 + brcm,pull = <0 1>; // off down
8260 + gpio_out_pin = <&lirc_pins>,"brcm,pins:0";
8261 + gpio_in_pin = <&lirc_pins>,"brcm,pins:4";
8262 + gpio_in_pull = <&lirc_pins>,"brcm,pull:4";
8264 + sense = <&lirc_rpi>,"rpi,sense:0";
8265 + softcarrier = <&lirc_rpi>,"rpi,softcarrier:0";
8266 + invert = <&lirc_rpi>,"rpi,invert:0";
8267 + debug = <&lirc_rpi>,"rpi,debug:0";
8271 +++ b/arch/arm/boot/dts/overlays/ltc294x-overlay.dts
8278 + compatible = "brcm,bcm2835";
8281 + target = <&i2c_arm>;
8283 + #address-cells = <1>;
8284 + #size-cells = <0>;
8287 + ltc2941: ltc2941@64 {
8288 + compatible = "lltc,ltc2941";
8290 + lltc,resistor-sense = <50>;
8291 + lltc,prescaler-exponent = <7>;
8297 + target = <&i2c_arm>;
8299 + #address-cells = <1>;
8300 + #size-cells = <0>;
8303 + ltc2942: ltc2942@64 {
8304 + compatible = "lltc,ltc2942";
8306 + lltc,resistor-sense = <50>;
8307 + lltc,prescaler-exponent = <7>;
8313 + target = <&i2c_arm>;
8315 + #address-cells = <1>;
8316 + #size-cells = <0>;
8319 + ltc2943: ltc2943@64 {
8320 + compatible = "lltc,ltc2943";
8322 + lltc,resistor-sense = <50>;
8323 + lltc,prescaler-exponent = <7>;
8329 + target = <&i2c_arm>;
8331 + #address-cells = <1>;
8332 + #size-cells = <0>;
8335 + ltc2944: ltc2944@64 {
8336 + compatible = "lltc,ltc2944";
8338 + lltc,resistor-sense = <50>;
8339 + lltc,prescaler-exponent = <7>;
8345 + ltc2941 = <0>,"+0";
8346 + ltc2942 = <0>,"+1";
8347 + ltc2943 = <0>,"+2";
8348 + ltc2944 = <0>,"+3";
8349 + resistor-sense = <<c2941>, "lltc,resistor-sense:0",
8350 + <<c2942>, "lltc,resistor-sense:0",
8351 + <<c2943>, "lltc,resistor-sense:0",
8352 + <<c2944>, "lltc,resistor-sense:0";
8353 + prescaler-exponent = <<c2941>, "lltc,prescaler-exponent:0",
8354 + <<c2942>, "lltc,prescaler-exponent:0",
8355 + <<c2943>, "lltc,prescaler-exponent:0",
8356 + <<c2944>, "lltc,prescaler-exponent:0";
8360 +++ b/arch/arm/boot/dts/overlays/mbed-dac-overlay.dts
8362 +// Definitions for mbed DAC
8367 + compatible = "brcm,bcm2708";
8379 + #address-cells = <1>;
8380 + #size-cells = <0>;
8383 + tlv320aic23: codec@1a {
8384 + #sound-dai-cells = <0>;
8386 + compatible = "ti,tlv320aic23";
8393 + target = <&sound>;
8395 + compatible = "simple-audio-card";
8396 + i2s-controller = <&i2s>;
8399 + simple-audio-card,name = "mbed-DAC";
8401 + simple-audio-card,widgets =
8402 + "Microphone", "Mic Jack",
8403 + "Line", "Line In",
8404 + "Headphone", "Headphone Jack";
8406 + simple-audio-card,routing =
8407 + "Headphone Jack", "LHPOUT",
8408 + "Headphone Jack", "RHPOUT",
8409 + "LLINEIN", "Line In",
8410 + "RLINEIN", "Line In",
8411 + "MICIN", "Mic Jack";
8413 + simple-audio-card,format = "i2s";
8415 + simple-audio-card,cpu {
8416 + sound-dai = <&i2s>;
8419 + sound_master: simple-audio-card,codec {
8420 + sound-dai = <&tlv320aic23>;
8421 + system-clock-frequency = <12288000>;
8427 +++ b/arch/arm/boot/dts/overlays/mcp23017-overlay.dts
8429 +// Definitions for MCP23017 Gpio Extender from Microchip Semiconductor
8435 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
8447 + mcp23017_pins: mcp23017_pins {
8449 + brcm,function = <0>;
8457 + #address-cells = <1>;
8458 + #size-cells = <0>;
8460 + mcp23017: mcp@20 {
8461 + compatible = "microchip,mcp23017";
8464 + #gpio-cells = <2>;
8465 + #interrupt-cells=<2>;
8466 + interrupt-parent = <&gpio>;
8467 + interrupts = <4 2>;
8468 + interrupt-controller;
8469 + microchip,irq-mirror;
8477 + gpiopin = <&mcp23017_pins>,"brcm,pins:0",
8478 + <&mcp23017>,"interrupts:0";
8479 + addr = <&mcp23017>,"reg:0";
8484 +++ b/arch/arm/boot/dts/overlays/mcp23s17-overlay.dts
8486 +// Overlay for MCP23S08/17 GPIO Extenders from Microchip Semiconductor
8489 +// s08-spi<n>-<m>-present - 4-bit integer, bitmap indicating MCP23S08 devices present on SPI<n>, CS#<m>.
8490 +// s17-spi<n>-<m>-present - 8-bit integer, bitmap indicating MCP23S17 devices present on SPI<n>, CS#<m>.
8491 +// s08-spi<n>-<m>-int-gpio - integer, enables interrupts on a single MCP23S08 device on SPI<n>, CS#<m>, specifies the GPIO pin to which INT output is connected.
8492 +// s17-spi<n>-<m>-int-gpio - integer, enables mirrored interrupts on a single MCP23S17 device on SPI<n>, CS#<m>, specifies the GPIO pin to which either INTA or INTB output is connected.
8494 +// If devices are present on SPI1 or SPI2, those interfaces must be enabled with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
8495 +// If interrupts are enabled for a device on a given CS# on a SPI bus, that device must be the only one present on that SPI bus/CS#.
8497 +// Example 1: A single MCP23S17 device on SPI0, CS#0 with its SPI addr set to 0 and INTA output connected to GPIO25:
8498 +// dtoverlay=mcp23s17:s17-spi0-0-present=1,s17-spi0-0-int-gpio=25
8500 +// Example 2: Two MCP23S08 devices on SPI1, CS#0 with their addrs set to 2 and 3. Three MCP23S17 devices on SPI1, CS#1 with their addrs set to 0, 1 and 7:
8501 +// dtoverlay=spi1-2cs
8502 +// dtoverlay=mcp23s17:s08-spi1-0-present=12,s17-spi1-1-present=131
8508 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
8510 + // disable spi-dev on spi0.0
8512 + target = <&spidev0>;
8514 + status = "disabled";
8518 + // disable spi-dev on spi0.1
8520 + target = <&spidev1>;
8522 + status = "disabled";
8526 + // disable spi-dev on spi1.0
8528 + target-path = "spi1/spidev@0";
8530 + status = "disabled";
8534 + // disable spi-dev on spi1.1
8536 + target-path = "spi1/spidev@1";
8538 + status = "disabled";
8542 + // disable spi-dev on spi1.2
8544 + target-path = "spi1/spidev@2";
8546 + status = "disabled";
8550 + // disable spi-dev on spi2.0
8552 + target-path = "spi2/spidev@0";
8554 + status = "disabled";
8558 + // disable spi-dev on spi2.1
8560 + target-path = "spi2/spidev@1";
8562 + status = "disabled";
8566 + // disable spi-dev on spi2.2
8568 + target-path = "spi2/spidev@2";
8570 + status = "disabled";
8574 + // enable one or more mcp23s08s on spi0.0
8579 + #address-cells = <1>;
8580 + #size-cells = <0>;
8581 + mcp23s08_00: mcp23s08@0 {
8582 + compatible = "microchip,mcp23s08";
8584 + #gpio-cells = <2>;
8585 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi0-0-present parameter */
8587 + spi-max-frequency = <500000>;
8589 + #interrupt-cells=<2>;
8590 + interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi0-0-int-gpio parameter */
8595 + // enable one or more mcp23s08s on spi0.1
8600 + #address-cells = <1>;
8601 + #size-cells = <0>;
8602 + mcp23s08_01: mcp23s08@1 {
8603 + compatible = "microchip,mcp23s08";
8605 + #gpio-cells = <2>;
8606 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi0-1-present parameter */
8608 + spi-max-frequency = <500000>;
8610 + #interrupt-cells=<2>;
8611 + interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi0-1-int-gpio parameter */
8616 + // enable one or more mcp23s08s on spi1.0
8621 + #address-cells = <1>;
8622 + #size-cells = <0>;
8623 + mcp23s08_10: mcp23s08@0 {
8624 + compatible = "microchip,mcp23s08";
8626 + #gpio-cells = <2>;
8627 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi1-0-present parameter */
8629 + spi-max-frequency = <500000>;
8631 + #interrupt-cells=<2>;
8632 + interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi1-0-int-gpio parameter */
8637 + // enable one or more mcp23s08s on spi1.1
8642 + #address-cells = <1>;
8643 + #size-cells = <0>;
8644 + mcp23s08_11: mcp23s08@1 {
8645 + compatible = "microchip,mcp23s08";
8647 + #gpio-cells = <2>;
8648 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi1-1-present parameter */
8650 + spi-max-frequency = <500000>;
8652 + #interrupt-cells=<2>;
8653 + interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi1-1-int-gpio parameter */
8658 + // enable one or more mcp23s08s on spi1.2
8663 + #address-cells = <1>;
8664 + #size-cells = <0>;
8665 + mcp23s08_12: mcp23s08@2 {
8666 + compatible = "microchip,mcp23s08";
8668 + #gpio-cells = <2>;
8669 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi1-2-present parameter */
8671 + spi-max-frequency = <500000>;
8673 + #interrupt-cells=<2>;
8674 + interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi1-2-int-gpio parameter */
8679 + // enable one or more mcp23s08s on spi2.0
8684 + #address-cells = <1>;
8685 + #size-cells = <0>;
8686 + mcp23s08_20: mcp23s08@0 {
8687 + compatible = "microchip,mcp23s08";
8689 + #gpio-cells = <2>;
8690 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi2-0-present parameter */
8692 + spi-max-frequency = <500000>;
8694 + #interrupt-cells=<2>;
8695 + interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi2-0-int-gpio parameter */
8700 + // enable one or more mcp23s08s on spi2.1
8705 + #address-cells = <1>;
8706 + #size-cells = <0>;
8707 + mcp23s08_21: mcp23s08@1 {
8708 + compatible = "microchip,mcp23s08";
8710 + #gpio-cells = <2>;
8711 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi2-1-present parameter */
8713 + spi-max-frequency = <500000>;
8715 + #interrupt-cells=<2>;
8716 + interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi2-1-int-gpio parameter */
8721 + // enable one or more mcp23s08s on spi2.2
8726 + #address-cells = <1>;
8727 + #size-cells = <0>;
8728 + mcp23s08_22: mcp23s08@2 {
8729 + compatible = "microchip,mcp23s08";
8731 + #gpio-cells = <2>;
8732 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi2-2-present parameter */
8734 + spi-max-frequency = <500000>;
8736 + #interrupt-cells=<2>;
8737 + interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi2-2-int-gpio parameter */
8742 + // enable one or more mcp23s17s on spi0.0
8747 + #address-cells = <1>;
8748 + #size-cells = <0>;
8749 + mcp23s17_00: mcp23s17@0 {
8750 + compatible = "microchip,mcp23s17";
8752 + #gpio-cells = <2>;
8753 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi0-0-present parameter */
8755 + spi-max-frequency = <500000>;
8757 + #interrupt-cells=<2>;
8758 + interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi0-0-int-gpio parameter */
8763 + // enable one or more mcp23s17s on spi0.1
8768 + #address-cells = <1>;
8769 + #size-cells = <0>;
8770 + mcp23s17_01: mcp23s17@1 {
8771 + compatible = "microchip,mcp23s17";
8773 + #gpio-cells = <2>;
8774 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi0-1-present parameter */
8776 + spi-max-frequency = <500000>;
8778 + #interrupt-cells=<2>;
8779 + interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi0-1-int-gpio parameter */
8784 + // enable one or more mcp23s17s on spi1.0
8789 + #address-cells = <1>;
8790 + #size-cells = <0>;
8791 + mcp23s17_10: mcp23s17@0 {
8792 + compatible = "microchip,mcp23s17";
8794 + #gpio-cells = <2>;
8795 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi1-0-present parameter */
8797 + spi-max-frequency = <500000>;
8799 + #interrupt-cells=<2>;
8800 + interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi1-0-int-gpio parameter */
8805 + // enable one or more mcp23s17s on spi1.1
8810 + #address-cells = <1>;
8811 + #size-cells = <0>;
8812 + mcp23s17_11: mcp23s17@1 {
8813 + compatible = "microchip,mcp23s17";
8815 + #gpio-cells = <2>;
8816 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi1-1-present parameter */
8818 + spi-max-frequency = <500000>;
8820 + #interrupt-cells=<2>;
8821 + interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi1-1-int-gpio parameter */
8826 + // enable one or more mcp23s17s on spi1.2
8831 + #address-cells = <1>;
8832 + #size-cells = <0>;
8833 + mcp23s17_12: mcp23s17@2 {
8834 + compatible = "microchip,mcp23s17";
8836 + #gpio-cells = <2>;
8837 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi1-2-present parameter */
8839 + spi-max-frequency = <500000>;
8841 + #interrupt-cells=<2>;
8842 + interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi1-2-int-gpio parameter */
8847 + // enable one or more mcp23s17s on spi2.0
8852 + #address-cells = <1>;
8853 + #size-cells = <0>;
8854 + mcp23s17_20: mcp23s17@0 {
8855 + compatible = "microchip,mcp23s17";
8857 + #gpio-cells = <2>;
8858 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi2-0-present parameter */
8860 + spi-max-frequency = <500000>;
8862 + #interrupt-cells=<2>;
8863 + interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi2-0-int-gpio parameter */
8868 + // enable one or more mcp23s17s on spi2.1
8873 + #address-cells = <1>;
8874 + #size-cells = <0>;
8875 + mcp23s17_21: mcp23s17@1 {
8876 + compatible = "microchip,mcp23s17";
8878 + #gpio-cells = <2>;
8879 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi2-1-present parameter */
8881 + spi-max-frequency = <500000>;
8883 + #interrupt-cells=<2>;
8884 + interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi2-1-int-gpio parameter */
8889 + // enable one or more mcp23s17s on spi2.2
8894 + #address-cells = <1>;
8895 + #size-cells = <0>;
8896 + mcp23s17_22: mcp23s17@2 {
8897 + compatible = "microchip,mcp23s17";
8899 + #gpio-cells = <2>;
8900 + microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi2-2-present parameter */
8902 + spi-max-frequency = <500000>;
8904 + #interrupt-cells=<2>;
8905 + interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi2-2-int-gpio parameter */
8910 + // Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi0.0 as a input with no pull-up/down
8914 + spi0_0_int_pins: spi0_0_int_pins {
8915 + brcm,pins = <0>; /* overwritten by mcp23s08/17-spi0-0-int-gpio parameter */
8916 + brcm,function = <0>;
8922 + // Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi0.1 as a input with no pull-up/down
8926 + spi0_1_int_pins: spi0_1_int_pins {
8927 + brcm,pins = <0>; /* overwritten by mcp23s08/17-spi0-1-int-gpio parameter */
8928 + brcm,function = <0>;
8934 + // Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi1.0 as a input with no pull-up/down
8938 + spi1_0_int_pins: spi1_0_int_pins {
8939 + brcm,pins = <0>; /* overwritten by mcp23s08/17-spi1-0-int-gpio parameter */
8940 + brcm,function = <0>;
8946 + // Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi1.1 as a input with no pull-up/down
8950 + spi1_1_int_pins: spi1_1_int_pins {
8951 + brcm,pins = <0>; /* overwritten by mcp23s08/17-spi1-1-int-gpio parameter */
8952 + brcm,function = <0>;
8958 + // Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi1.2 as a input with no pull-up/down
8962 + spi1_2_int_pins: spi1_2_int_pins {
8963 + brcm,pins = <0>; /* overwritten by mcp23s08/17-spi1-2-int-gpio parameter */
8964 + brcm,function = <0>;
8970 + // Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi2.0 as a input with no pull-up/down
8974 + spi2_0_int_pins: spi2_0_int_pins {
8975 + brcm,pins = <0>; /* overwritten by mcp23s08/17-spi2-0-int-gpio parameter */
8976 + brcm,function = <0>;
8982 + // Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi2.1 as a input with no pull-up/down
8986 + spi2_1_int_pins: spi2_1_int_pins {
8987 + brcm,pins = <0>; /* overwritten by mcp23s08/17-spi2-1-int-gpio parameter */
8988 + brcm,function = <0>;
8994 + // Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi2.2 as a input with no pull-up/down
8998 + spi2_2_int_pins: spi2_2_int_pins {
8999 + brcm,pins = <0>; /* overwritten by mcp23s08/17-spi2-2-int-gpio parameter */
9000 + brcm,function = <0>;
9006 + // Enable interrupts for a mcp23s08 on spi0.0.
9007 + // Use default active low interrupt signalling.
9009 + target = <&mcp23s08_00>;
9011 + interrupt-parent = <&gpio>;
9012 + interrupt-controller;
9016 + // Enable interrupts for a mcp23s08 on spi0.1.
9017 + // Use default active low interrupt signalling.
9019 + target = <&mcp23s08_01>;
9021 + interrupt-parent = <&gpio>;
9022 + interrupt-controller;
9026 + // Enable interrupts for a mcp23s08 on spi1.0.
9027 + // Use default active low interrupt signalling.
9029 + target = <&mcp23s08_10>;
9031 + interrupt-parent = <&gpio>;
9032 + interrupt-controller;
9036 + // Enable interrupts for a mcp23s08 on spi1.1.
9037 + // Use default active low interrupt signalling.
9039 + target = <&mcp23s08_11>;
9041 + interrupt-parent = <&gpio>;
9042 + interrupt-controller;
9046 + // Enable interrupts for a mcp23s08 on spi1.2.
9047 + // Use default active low interrupt signalling.
9049 + target = <&mcp23s08_12>;
9051 + interrupt-parent = <&gpio>;
9052 + interrupt-controller;
9056 + // Enable interrupts for a mcp23s08 on spi2.0.
9057 + // Use default active low interrupt signalling.
9059 + target = <&mcp23s08_20>;
9061 + interrupt-parent = <&gpio>;
9062 + interrupt-controller;
9066 + // Enable interrupts for a mcp23s08 on spi2.1.
9067 + // Use default active low interrupt signalling.
9069 + target = <&mcp23s08_21>;
9071 + interrupt-parent = <&gpio>;
9072 + interrupt-controller;
9076 + // Enable interrupts for a mcp23s08 on spi2.2.
9077 + // Use default active low interrupt signalling.
9079 + target = <&mcp23s08_22>;
9081 + interrupt-parent = <&gpio>;
9082 + interrupt-controller;
9086 + // Enable interrupts for a mcp23s17 on spi0.0.
9087 + // Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
9088 + // Use default active low interrupt signalling.
9090 + target = <&mcp23s17_00>;
9092 + interrupt-parent = <&gpio>;
9093 + interrupt-controller;
9094 + microchip,irq-mirror;
9098 + // Enable interrupts for a mcp23s17 on spi0.1.
9099 + // Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
9100 + // Configure INTA/B outputs of mcp23s08/17 as active low.
9102 + target = <&mcp23s17_01>;
9104 + interrupt-parent = <&gpio>;
9105 + interrupt-controller;
9106 + microchip,irq-mirror;
9110 + // Enable interrupts for a mcp23s17 on spi1.0.
9111 + // Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
9112 + // Configure INTA/B outputs of mcp23s08/17 as active low.
9114 + target = <&mcp23s17_10>;
9116 + interrupt-parent = <&gpio>;
9117 + interrupt-controller;
9118 + microchip,irq-mirror;
9122 + // Enable interrupts for a mcp23s17 on spi1.1.
9123 + // Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
9124 + // Configure INTA/B outputs of mcp23s08/17 as active low.
9126 + target = <&mcp23s17_11>;
9128 + interrupt-parent = <&gpio>;
9129 + interrupt-controller;
9130 + microchip,irq-mirror;
9134 + // Enable interrupts for a mcp23s17 on spi1.2.
9135 + // Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
9136 + // Configure INTA/B outputs of mcp23s08/17 as active low.
9138 + target = <&mcp23s17_12>;
9140 + interrupt-parent = <&gpio>;
9141 + interrupt-controller;
9142 + microchip,irq-mirror;
9146 + // Enable interrupts for a mcp23s17 on spi2.0.
9147 + // Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
9148 + // Configure INTA/B outputs of mcp23s08/17 as active low.
9150 + target = <&mcp23s17_20>;
9152 + interrupt-parent = <&gpio>;
9153 + interrupt-controller;
9154 + microchip,irq-mirror;
9158 + // Enable interrupts for a mcp23s17 on spi2.1.
9159 + // Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
9160 + // Configure INTA/B outputs of mcp23s08/17 as active low.
9162 + target = <&mcp23s17_21>;
9164 + interrupt-parent = <&gpio>;
9165 + interrupt-controller;
9166 + microchip,irq-mirror;
9170 + // Enable interrupts for a mcp23s17 on spi2.2.
9171 + // Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
9172 + // Configure INTA/B outputs of mcp23s08/17 as active low.
9174 + target = <&mcp23s17_22>;
9176 + interrupt-parent = <&gpio>;
9177 + interrupt-controller;
9178 + microchip,irq-mirror;
9183 + s08-spi0-0-present = <0>,"+0+8", <&mcp23s08_00>,"microchip,spi-present-mask:0";
9184 + s08-spi0-1-present = <0>,"+1+9", <&mcp23s08_01>,"microchip,spi-present-mask:0";
9185 + s08-spi1-0-present = <0>,"+2+10", <&mcp23s08_10>,"microchip,spi-present-mask:0";
9186 + s08-spi1-1-present = <0>,"+3+11", <&mcp23s08_11>,"microchip,spi-present-mask:0";
9187 + s08-spi1-2-present = <0>,"+4+12", <&mcp23s08_12>,"microchip,spi-present-mask:0";
9188 + s08-spi2-0-present = <0>,"+5+13", <&mcp23s08_20>,"microchip,spi-present-mask:0";
9189 + s08-spi2-1-present = <0>,"+6+14", <&mcp23s08_21>,"microchip,spi-present-mask:0";
9190 + s08-spi2-2-present = <0>,"+7+15", <&mcp23s08_22>,"microchip,spi-present-mask:0";
9191 + s17-spi0-0-present = <0>,"+0+16", <&mcp23s17_00>,"microchip,spi-present-mask:0";
9192 + s17-spi0-1-present = <0>,"+1+17", <&mcp23s17_01>,"microchip,spi-present-mask:0";
9193 + s17-spi1-0-present = <0>,"+2+18", <&mcp23s17_10>,"microchip,spi-present-mask:0";
9194 + s17-spi1-1-present = <0>,"+3+19", <&mcp23s17_11>,"microchip,spi-present-mask:0";
9195 + s17-spi1-2-present = <0>,"+4+20", <&mcp23s17_12>,"microchip,spi-present-mask:0";
9196 + s17-spi2-0-present = <0>,"+5+21", <&mcp23s17_20>,"microchip,spi-present-mask:0";
9197 + s17-spi2-1-present = <0>,"+6+22", <&mcp23s17_21>,"microchip,spi-present-mask:0";
9198 + s17-spi2-2-present = <0>,"+7+23", <&mcp23s17_22>,"microchip,spi-present-mask:0";
9199 + s08-spi0-0-int-gpio = <0>,"+24+32", <&spi0_0_int_pins>,"brcm,pins:0", <&mcp23s08_00>,"interrupts:0";
9200 + s08-spi0-1-int-gpio = <0>,"+25+33", <&spi0_1_int_pins>,"brcm,pins:0", <&mcp23s08_01>,"interrupts:0";
9201 + s08-spi1-0-int-gpio = <0>,"+26+34", <&spi1_0_int_pins>,"brcm,pins:0", <&mcp23s08_10>,"interrupts:0";
9202 + s08-spi1-1-int-gpio = <0>,"+27+35", <&spi1_1_int_pins>,"brcm,pins:0", <&mcp23s08_11>,"interrupts:0";
9203 + s08-spi1-2-int-gpio = <0>,"+28+36", <&spi1_2_int_pins>,"brcm,pins:0", <&mcp23s08_12>,"interrupts:0";
9204 + s08-spi2-0-int-gpio = <0>,"+29+37", <&spi2_0_int_pins>,"brcm,pins:0", <&mcp23s08_20>,"interrupts:0";
9205 + s08-spi2-1-int-gpio = <0>,"+30+38", <&spi2_1_int_pins>,"brcm,pins:0", <&mcp23s08_21>,"interrupts:0";
9206 + s08-spi2-2-int-gpio = <0>,"+31+39", <&spi2_2_int_pins>,"brcm,pins:0", <&mcp23s08_22>,"interrupts:0";
9207 + s17-spi0-0-int-gpio = <0>,"+24+40", <&spi0_0_int_pins>,"brcm,pins:0", <&mcp23s17_00>,"interrupts:0";
9208 + s17-spi0-1-int-gpio = <0>,"+25+41", <&spi0_1_int_pins>,"brcm,pins:0", <&mcp23s17_01>,"interrupts:0";
9209 + s17-spi1-0-int-gpio = <0>,"+26+42", <&spi1_0_int_pins>,"brcm,pins:0", <&mcp23s17_10>,"interrupts:0";
9210 + s17-spi1-1-int-gpio = <0>,"+27+43", <&spi1_1_int_pins>,"brcm,pins:0", <&mcp23s17_11>,"interrupts:0";
9211 + s17-spi1-2-int-gpio = <0>,"+28+44", <&spi1_2_int_pins>,"brcm,pins:0", <&mcp23s17_12>,"interrupts:0";
9212 + s17-spi2-0-int-gpio = <0>,"+29+45", <&spi2_0_int_pins>,"brcm,pins:0", <&mcp23s17_20>,"interrupts:0";
9213 + s17-spi2-1-int-gpio = <0>,"+30+46", <&spi2_1_int_pins>,"brcm,pins:0", <&mcp23s17_21>,"interrupts:0";
9214 + s17-spi2-2-int-gpio = <0>,"+31+47", <&spi2_2_int_pins>,"brcm,pins:0", <&mcp23s17_22>,"interrupts:0";
9219 +++ b/arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts
9222 + * Device tree overlay for mcp251x/can0 on spi0.0
9229 + compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
9230 + /* disable spi-dev for spi0.0 */
9239 + target = <&spidev0>;
9241 + status = "disabled";
9245 + /* the interrupt pin of the can-controller */
9249 + can0_pins: can0_pins {
9251 + brcm,function = <0>; /* input */
9256 + /* the clock/oscillator of the can-controller */
9258 + target-path = "/clocks";
9260 + /* external oscillator of mcp2515 on SPI0.0 */
9261 + can0_osc: can0_osc {
9262 + compatible = "fixed-clock";
9263 + #clock-cells = <0>;
9264 + clock-frequency = <16000000>;
9269 + /* the spi config of the can-controller itself binding everything together */
9273 + /* needed to avoid dtc warning */
9274 + #address-cells = <1>;
9275 + #size-cells = <0>;
9278 + compatible = "microchip,mcp2515";
9279 + pinctrl-names = "default";
9280 + pinctrl-0 = <&can0_pins>;
9281 + spi-max-frequency = <10000000>;
9282 + interrupt-parent = <&gpio>;
9283 + interrupts = <25 8>; /* IRQ_TYPE_LEVEL_LOW */
9284 + clocks = <&can0_osc>;
9289 + oscillator = <&can0_osc>,"clock-frequency:0";
9290 + spimaxfrequency = <&can0>,"spi-max-frequency:0";
9291 + interrupt = <&can0_pins>,"brcm,pins:0",<&can0>,"interrupts:0";
9295 +++ b/arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts
9298 + * Device tree overlay for mcp251x/can1 on spi0.1 edited by petit_miner
9305 + compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
9306 + /* disable spi-dev for spi0.1 */
9315 + target = <&spidev1>;
9317 + status = "disabled";
9321 + /* the interrupt pin of the can-controller */
9325 + can1_pins: can1_pins {
9327 + brcm,function = <0>; /* input */
9332 + /* the clock/oscillator of the can-controller */
9334 + target-path = "/clocks";
9336 + /* external oscillator of mcp2515 on spi0.1 */
9337 + can1_osc: can1_osc {
9338 + compatible = "fixed-clock";
9339 + #clock-cells = <0>;
9340 + clock-frequency = <16000000>;
9345 + /* the spi config of the can-controller itself binding everything together */
9349 + /* needed to avoid dtc warning */
9350 + #address-cells = <1>;
9351 + #size-cells = <0>;
9354 + compatible = "microchip,mcp2515";
9355 + pinctrl-names = "default";
9356 + pinctrl-0 = <&can1_pins>;
9357 + spi-max-frequency = <10000000>;
9358 + interrupt-parent = <&gpio>;
9359 + interrupts = <25 8>; /* IRQ_TYPE_LEVEL_LOW */
9360 + clocks = <&can1_osc>;
9365 + oscillator = <&can1_osc>,"clock-frequency:0";
9366 + spimaxfrequency = <&can1>,"spi-max-frequency:0";
9367 + interrupt = <&can1_pins>,"brcm,pins:0",<&can1>,"interrupts:0";
9371 +++ b/arch/arm/boot/dts/overlays/mcp3008-overlay.dts
9374 + * Device tree overlay for Microchip mcp3008 10-Bit A/D Converters
9381 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
9384 + target = <&spidev0>;
9386 + status = "disabled";
9391 + target = <&spidev1>;
9393 + status = "disabled";
9398 + target-path = "spi1/spidev@0";
9400 + status = "disabled";
9405 + target-path = "spi1/spidev@1";
9407 + status = "disabled";
9412 + target-path = "spi1/spidev@2";
9414 + status = "disabled";
9419 + target-path = "spi2/spidev@0";
9421 + status = "disabled";
9426 + target-path = "spi2/spidev@1";
9428 + status = "disabled";
9433 + target-path = "spi2/spidev@2";
9435 + status = "disabled";
9443 + #address-cells = <1>;
9444 + #size-cells = <0>;
9446 + mcp3008_00: mcp3008@0 {
9447 + compatible = "mcp3008";
9449 + spi-max-frequency = <1600000>;
9458 + #address-cells = <1>;
9459 + #size-cells = <0>;
9461 + mcp3008_01: mcp3008@1 {
9462 + compatible = "mcp3008";
9464 + spi-max-frequency = <1600000>;
9473 + #address-cells = <1>;
9474 + #size-cells = <0>;
9476 + mcp3008_10: mcp3008@0 {
9477 + compatible = "mcp3008";
9479 + spi-max-frequency = <1600000>;
9488 + #address-cells = <1>;
9489 + #size-cells = <0>;
9491 + mcp3008_11: mcp3008@1 {
9492 + compatible = "mcp3008";
9494 + spi-max-frequency = <1600000>;
9503 + #address-cells = <1>;
9504 + #size-cells = <0>;
9506 + mcp3008_12: mcp3008@2 {
9507 + compatible = "mcp3008";
9509 + spi-max-frequency = <1600000>;
9518 + #address-cells = <1>;
9519 + #size-cells = <0>;
9521 + mcp3008_20: mcp3008@0 {
9522 + compatible = "mcp3008";
9524 + spi-max-frequency = <1600000>;
9533 + #address-cells = <1>;
9534 + #size-cells = <0>;
9536 + mcp3008_21: mcp3008@1 {
9537 + compatible = "mcp3008";
9539 + spi-max-frequency = <1600000>;
9548 + #address-cells = <1>;
9549 + #size-cells = <0>;
9551 + mcp3008_22: mcp3008@2 {
9552 + compatible = "mcp3008";
9554 + spi-max-frequency = <1600000>;
9560 + spi0-0-present = <0>, "+0+8";
9561 + spi0-1-present = <0>, "+1+9";
9562 + spi1-0-present = <0>, "+2+10";
9563 + spi1-1-present = <0>, "+3+11";
9564 + spi1-2-present = <0>, "+4+12";
9565 + spi2-0-present = <0>, "+5+13";
9566 + spi2-1-present = <0>, "+6+14";
9567 + spi2-2-present = <0>, "+7+15";
9568 + spi0-0-speed = <&mcp3008_00>, "spi-max-frequency:0";
9569 + spi0-1-speed = <&mcp3008_01>, "spi-max-frequency:0";
9570 + spi1-0-speed = <&mcp3008_10>, "spi-max-frequency:0";
9571 + spi1-1-speed = <&mcp3008_11>, "spi-max-frequency:0";
9572 + spi1-2-speed = <&mcp3008_12>, "spi-max-frequency:0";
9573 + spi2-0-speed = <&mcp3008_20>, "spi-max-frequency:0";
9574 + spi2-1-speed = <&mcp3008_21>, "spi-max-frequency:0";
9575 + spi2-2-speed = <&mcp3008_22>, "spi-max-frequency:0";
9579 +++ b/arch/arm/boot/dts/overlays/mcp3202-overlay.dts
9582 + * Device tree overlay for Microchip mcp3202 12-Bit A/D Converters
9589 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
9592 + target = <&spidev0>;
9594 + status = "disabled";
9599 + target = <&spidev1>;
9601 + status = "disabled";
9606 + target-path = "spi1/spidev@0";
9608 + status = "disabled";
9613 + target-path = "spi1/spidev@1";
9615 + status = "disabled";
9620 + target-path = "spi1/spidev@2";
9622 + status = "disabled";
9627 + target-path = "spi2/spidev@0";
9629 + status = "disabled";
9634 + target-path = "spi2/spidev@1";
9636 + status = "disabled";
9641 + target-path = "spi2/spidev@2";
9643 + status = "disabled";
9651 + #address-cells = <1>;
9652 + #size-cells = <0>;
9654 + mcp3202_00: mcp3202@0 {
9655 + compatible = "mcp3202";
9657 + spi-max-frequency = <1600000>;
9666 + #address-cells = <1>;
9667 + #size-cells = <0>;
9669 + mcp3202_01: mcp3202@1 {
9670 + compatible = "mcp3202";
9672 + spi-max-frequency = <1600000>;
9681 + #address-cells = <1>;
9682 + #size-cells = <0>;
9684 + mcp3202_10: mcp3202@0 {
9685 + compatible = "mcp3202";
9687 + spi-max-frequency = <1600000>;
9696 + #address-cells = <1>;
9697 + #size-cells = <0>;
9699 + mcp3202_11: mcp3202@1 {
9700 + compatible = "mcp3202";
9702 + spi-max-frequency = <1600000>;
9711 + #address-cells = <1>;
9712 + #size-cells = <0>;
9714 + mcp3202_12: mcp3202@2 {
9715 + compatible = "mcp3202";
9717 + spi-max-frequency = <1600000>;
9726 + #address-cells = <1>;
9727 + #size-cells = <0>;
9729 + mcp3202_20: mcp3202@0 {
9730 + compatible = "mcp3202";
9732 + spi-max-frequency = <1600000>;
9741 + #address-cells = <1>;
9742 + #size-cells = <0>;
9744 + mcp3202_21: mcp3202@1 {
9745 + compatible = "mcp3202";
9747 + spi-max-frequency = <1600000>;
9756 + #address-cells = <1>;
9757 + #size-cells = <0>;
9759 + mcp3202_22: mcp3202@2 {
9760 + compatible = "mcp3202";
9762 + spi-max-frequency = <1600000>;
9768 + spi0-0-present = <0>, "+0+8";
9769 + spi0-1-present = <0>, "+1+9";
9770 + spi1-0-present = <0>, "+2+10";
9771 + spi1-1-present = <0>, "+3+11";
9772 + spi1-2-present = <0>, "+4+12";
9773 + spi2-0-present = <0>, "+5+13";
9774 + spi2-1-present = <0>, "+6+14";
9775 + spi2-2-present = <0>, "+7+15";
9776 + spi0-0-speed = <&mcp3202_00>, "spi-max-frequency:0";
9777 + spi0-1-speed = <&mcp3202_01>, "spi-max-frequency:0";
9778 + spi1-0-speed = <&mcp3202_10>, "spi-max-frequency:0";
9779 + spi1-1-speed = <&mcp3202_11>, "spi-max-frequency:0";
9780 + spi1-2-speed = <&mcp3202_12>, "spi-max-frequency:0";
9781 + spi2-0-speed = <&mcp3202_20>, "spi-max-frequency:0";
9782 + spi2-1-speed = <&mcp3202_21>, "spi-max-frequency:0";
9783 + spi2-2-speed = <&mcp3202_22>, "spi-max-frequency:0";
9787 +++ b/arch/arm/boot/dts/overlays/media-center-overlay.dts
9790 + * Device Tree overlay for Media Center HAT by Pi Supply
9798 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
9806 + status = "disabled";
9810 + status = "disabled";
9818 + rpi_display_pins: rpi_display_pins {
9819 + brcm,pins = <12 23 24 25>;
9820 + brcm,function = <1 1 1 0>; /* out out out in */
9821 + brcm,pull = <0 0 0 2>; /* - - - up */
9829 + /* needed to avoid dtc warning */
9830 + #address-cells = <1>;
9831 + #size-cells = <0>;
9833 + rpidisplay: rpi-display@0{
9834 + compatible = "ilitek,ili9341";
9836 + pinctrl-names = "default";
9837 + pinctrl-0 = <&rpi_display_pins>;
9839 + spi-max-frequency = <32000000>;
9844 + reset-gpios = <&gpio 23 0>;
9845 + dc-gpios = <&gpio 24 0>;
9846 + led-gpios = <&gpio 12 1>;
9850 + rpidisplay_ts: rpi-display-ts@1 {
9851 + compatible = "ti,ads7846";
9854 + spi-max-frequency = <2000000>;
9855 + interrupts = <25 2>; /* high-to-low edge triggered */
9856 + interrupt-parent = <&gpio>;
9857 + pendown-gpio = <&gpio 25 0>;
9858 + ti,x-plate-ohms = /bits/ 16 <60>;
9859 + ti,pressure-max = /bits/ 16 <255>;
9865 + target-path = "/";
9867 + lirc_rpi: lirc_rpi {
9868 + compatible = "rpi,lirc-rpi";
9869 + pinctrl-names = "default";
9870 + pinctrl-0 = <&lirc_pins>;
9873 + // Override autodetection of IR receiver circuit
9874 + // (0 = active high, 1 = active low, -1 = no override )
9875 + rpi,sense = <0xffffffff>;
9877 + // Software carrier
9878 + // (0 = off, 1 = on)
9879 + rpi,softcarrier = <1>;
9882 + // (0 = off, 1 = on)
9885 + // Enable debugging messages
9886 + // (0 = off, 1 = on)
9895 + lirc_pins: lirc_pins {
9896 + brcm,pins = <6 5>;
9897 + brcm,function = <1 0>; // out in
9898 + brcm,pull = <0 1>; // off down
9904 + speed = <&rpidisplay>,"spi-max-frequency:0";
9905 + rotate = <&rpidisplay>,"rotate:0";
9906 + fps = <&rpidisplay>,"fps:0";
9907 + debug = <&rpidisplay>,"debug:0",
9908 + <&lirc_rpi>,"rpi,debug:0";
9909 + xohms = <&rpidisplay_ts>,"ti,x-plate-ohms;0";
9910 + swapxy = <&rpidisplay_ts>,"ti,swap-xy?";
9911 + backlight = <&rpidisplay>,"led-gpios:4",
9912 + <&rpi_display_pins>,"brcm,pins:0";
9914 + gpio_out_pin = <&lirc_pins>,"brcm,pins:0";
9915 + gpio_in_pin = <&lirc_pins>,"brcm,pins:4";
9916 + gpio_in_pull = <&lirc_pins>,"brcm,pull:4";
9918 + sense = <&lirc_rpi>,"rpi,sense:0";
9919 + softcarrier = <&lirc_rpi>,"rpi,softcarrier:0";
9920 + invert = <&lirc_rpi>,"rpi,invert:0";
9924 +++ b/arch/arm/boot/dts/overlays/midi-uart0-overlay.dts
9929 +#include <dt-bindings/clock/bcm2835.h>
9932 + * Fake a higher clock rate to get a larger divisor, and thereby a lower
9933 + * baudrate. The real clock is 48MHz, which we scale so that requesting
9934 + * 38.4kHz results in an actual 31.25kHz.
9936 + * 48000000*38400/31250 = 58982400
9940 + compatible = "brcm,bcm2835";
9943 + target-path = "/clocks";
9945 + midi_clk: midi_clk {
9946 + compatible = "fixed-clock";
9947 + #clock-cells = <0>;
9948 + clock-output-names = "uart0_pclk";
9949 + clock-frequency = <58982400>;
9955 + target = <&uart0>;
9957 + clocks = <&midi_clk>,
9958 + <&clocks BCM2835_CLOCK_VPU>;
9963 +++ b/arch/arm/boot/dts/overlays/midi-uart1-overlay.dts
9968 +#include <dt-bindings/clock/bcm2835-aux.h>
9971 + * Fake a higher clock rate to get a larger divisor, and thereby a lower
9972 + * baudrate. The real clock is 48MHz, which we scale so that requesting
9973 + * 38.4kHz results in an actual 31.25kHz.
9975 + * 48000000*38400/31250 = 58982400
9979 + compatible = "brcm,bcm2835";
9982 + target-path = "/clocks";
9984 + midi_clk: clock@5 {
9985 + compatible = "fixed-factor-clock";
9986 + #clock-cells = <0>;
9987 + clocks = <&aux BCM2835_AUX_CLOCK_UART>;
9988 + clock-mult = <38400>;
9989 + clock-div = <31250>;
9995 + target = <&uart1>;
9997 + clocks = <&midi_clk>;
10004 + clock-output-names = "aux_uart", "aux_spi1", "aux_spi2";
10009 +++ b/arch/arm/boot/dts/overlays/mmc-overlay.dts
10015 + compatible = "brcm,bcm2708";
10019 + frag0: __overlay__ {
10020 + pinctrl-names = "default";
10021 + pinctrl-0 = <&mmc_pins>;
10023 + brcm,overclock-50 = <0>;
10029 + target = <&gpio>;
10031 + mmc_pins: mmc_pins {
10032 + brcm,pins = <48 49 50 51 52 53>;
10033 + brcm,function = <7>; /* alt3 */
10034 + brcm,pull = <0 2 2 2 2 2>;
10040 + target = <&sdhost>;
10042 + status = "disabled";
10047 + overclock_50 = <&frag0>,"brcm,overclock-50:0";
10051 +++ b/arch/arm/boot/dts/overlays/mpu6050-overlay.dts
10053 +// Definitions for MPU6050
10058 + compatible = "brcm,bcm2708";
10061 + target = <&i2c1>;
10063 + #address-cells = <1>;
10064 + #size-cells = <0>;
10066 + clock-frequency = <400000>;
10068 + mpu6050: mpu6050@68 {
10069 + compatible = "invensense,mpu6050";
10071 + interrupt-parent = <&gpio>;
10072 + interrupts = <4 1>;
10078 + interrupt = <&mpu6050>,"interrupts:0";
10082 +++ b/arch/arm/boot/dts/overlays/mz61581-overlay.dts
10085 + * Device Tree overlay for MZ61581-PI-EXT 2014.12.28 by Tontec
10093 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
10096 + target = <&spi0>;
10103 + target = <&spidev0>;
10105 + status = "disabled";
10110 + target = <&spidev1>;
10112 + status = "disabled";
10117 + target = <&gpio>;
10119 + mz61581_pins: mz61581_pins {
10120 + brcm,pins = <4 15 18 25>;
10121 + brcm,function = <0 1 1 1>; /* in out out out */
10127 + target = <&spi0>;
10129 + /* needed to avoid dtc warning */
10130 + #address-cells = <1>;
10131 + #size-cells = <0>;
10133 + mz61581: mz61581@0{
10134 + compatible = "samsung,s6d02a1";
10136 + pinctrl-names = "default";
10137 + pinctrl-0 = <&mz61581_pins>;
10139 + spi-max-frequency = <128000000>;
10149 + txbuflen = <32768>;
10151 + reset-gpios = <&gpio 15 0>;
10152 + dc-gpios = <&gpio 25 0>;
10153 + led-gpios = <&gpio 18 0>;
10155 + init = <0x10000b0 00
10158 + 0x10000b3 0x02 0x00 0x00 0x00
10159 + 0x10000c0 0x13 0x3b 0x00 0x02 0x00 0x01 0x00 0x43
10160 + 0x10000c1 0x08 0x16 0x08 0x08
10161 + 0x10000c4 0x11 0x07 0x03 0x03
10163 + 0x10000c8 0x03 0x03 0x13 0x5c 0x03 0x07 0x14 0x08 0x00 0x21 0x08 0x14 0x07 0x53 0x0c 0x13 0x03 0x03 0x21 0x00
10167 + 0x1000044 0x00 0x01
10168 + 0x10000d0 0x07 0x07 0x1d 0x03
10169 + 0x10000d1 0x03 0x30 0x10
10170 + 0x10000d2 0x03 0x14 0x04
10174 + /* This is a workaround to make sure the init sequence slows down and doesn't fail */
10178 + mz61581_ts: mz61581_ts@1 {
10179 + compatible = "ti,ads7846";
10182 + spi-max-frequency = <2000000>;
10183 + interrupts = <4 2>; /* high-to-low edge triggered */
10184 + interrupt-parent = <&gpio>;
10185 + pendown-gpio = <&gpio 4 0>;
10187 + ti,x-plate-ohms = /bits/ 16 <60>;
10188 + ti,pressure-max = /bits/ 16 <255>;
10193 + speed = <&mz61581>, "spi-max-frequency:0";
10194 + rotate = <&mz61581>, "rotate:0";
10195 + fps = <&mz61581>, "fps:0";
10196 + txbuflen = <&mz61581>, "txbuflen:0";
10197 + debug = <&mz61581>, "debug:0";
10198 + xohms = <&mz61581_ts>,"ti,x-plate-ohms;0";
10202 +++ b/arch/arm/boot/dts/overlays/papirus-overlay.dts
10204 +/* PaPiRus ePaper Screen by Pi Supply */
10210 + compatible = "brcm,bcm2708";
10213 + target = <&i2c_arm>;
10215 + #address-cells = <1>;
10216 + #size-cells = <0>;
10219 + display_temp: lm75@48 {
10220 + compatible = "lm75b";
10223 + #thermal-sensor-cells = <0>;
10229 + target-path = "/";
10233 + polling-delay-passive = <0>;
10234 + polling-delay = <0>;
10235 + thermal-sensors = <&display_temp>;
10242 + target = <&spi0>;
10247 + status = "disabled";
10253 + target = <&gpio>;
10255 + repaper_pins: repaper_pins {
10256 + brcm,pins = <14 15 23 24 25>;
10257 + brcm,function = <1 1 1 1 0>; /* out out out out in */
10263 + target = <&spi0>;
10265 + /* needed to avoid dtc warning */
10266 + #address-cells = <1>;
10267 + #size-cells = <0>;
10269 + repaper: repaper@0{
10270 + compatible = "not_set";
10272 + pinctrl-names = "default";
10273 + pinctrl-0 = <&repaper_pins>;
10275 + spi-max-frequency = <8000000>;
10277 + panel-on-gpios = <&gpio 23 0>;
10278 + border-gpios = <&gpio 14 0>;
10279 + discharge-gpios = <&gpio 15 0>;
10280 + reset-gpios = <&gpio 24 0>;
10281 + busy-gpios = <&gpio 25 0>;
10283 + repaper-thermal-zone = "display";
10289 + panel = <&repaper>, "compatible";
10290 + speed = <&repaper>, "spi-max-frequency:0";
10294 +++ b/arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts
10299 +/* Pi3 uses a GPIO expander to drive the LEDs which can only be accessed
10300 + from the VPU. There is a special driver for this with a separate DT node,
10301 + which has the unfortunate consequence of breaking the act_led_gpio and
10302 + act_led_activelow dtparams.
10304 + This overlay changes the GPIO controller back to the standard one and
10305 + restores the dtparams.
10309 + compatible = "brcm,bcm2708";
10312 + target = <&act_led>;
10313 + frag0: __overlay__ {
10314 + gpios = <&gpio 0 0>;
10319 + gpio = <&frag0>,"gpios:4";
10320 + activelow = <&frag0>,"gpios:8";
10324 +++ b/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts
10329 +/* Disable Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15.
10330 + To disable the systemd service that initialises the modem so it doesn't use
10333 + sudo systemctl disable hciuart
10337 + compatible = "brcm,bcm2708";
10340 + target = <&uart1>;
10342 + status = "disabled";
10347 + target = <&uart0>;
10349 + pinctrl-names = "default";
10350 + pinctrl-0 = <&uart0_pins>;
10356 + target = <&uart0_pins>;
10365 + target-path = "/aliases";
10367 + serial0 = "/soc/serial@7e201000";
10368 + serial1 = "/soc/serial@7e215040";
10373 +++ b/arch/arm/boot/dts/overlays/pi3-disable-wifi-overlay.dts
10379 + compatible = "brcm,bcm2708";
10384 + status = "disabled";
10389 +++ b/arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts
10394 +/* Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore
10395 + UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum
10398 + It is also necessary to edit /lib/systemd/system/hciuart.service and
10399 + replace ttyAMA0 with ttyS0, unless you have a system with udev rules
10400 + that create /dev/serial0 and /dev/serial1, in which case use /dev/serial1
10401 + instead because it will always be correct.
10403 + If cmdline.txt uses the alias serial0 to refer to the user-accessable port
10404 + then the firmware will replace with the appropriate port whether or not
10405 + this overlay is used.
10409 + compatible = "brcm,bcm2708";
10412 + target = <&uart0>;
10414 + pinctrl-names = "default";
10415 + pinctrl-0 = <&uart0_pins>;
10421 + target = <&uart1>;
10423 + pinctrl-names = "default";
10424 + pinctrl-0 = <&uart1_pins &bt_pins &fake_bt_cts>;
10430 + target = <&uart0_pins>;
10439 + target = <&uart1_pins>;
10441 + brcm,pins = <32 33>;
10442 + brcm,function = <2>; /* alt5=UART1 */
10443 + brcm,pull = <0 2>;
10448 + target = <&gpio>;
10450 + fake_bt_cts: fake_bt_cts {
10451 + brcm,pins = <31>;
10452 + brcm,function = <1>; /* output */
10458 + target-path = "/aliases";
10460 + serial0 = "/soc/serial@7e201000";
10461 + serial1 = "/soc/serial@7e215040";
10466 +++ b/arch/arm/boot/dts/overlays/pibell-overlay.dts
10472 + compatible = "brcm,bcm2708";
10475 + target-path = "/";
10477 + codec_out: spdif-transmitter {
10478 + #address-cells = <0>;
10479 + #size-cells = <0>;
10480 + #sound-dai-cells = <0>;
10481 + compatible = "linux,spdif-dit";
10485 + codec_in: card-codec {
10486 + #sound-dai-cells = <0>;
10487 + compatible = "invensense,ics43432";
10496 + #sound-dai-cells = <0>;
10502 + target = <&sound>;
10503 + snd: __overlay__ {
10504 + compatible = "simple-audio-card";
10505 + simple-audio-card,name = "PiBell";
10509 + capture_link: simple-audio-card,dai-link@0 {
10513 + sound-dai = <&i2s>;
10515 +/* example TDM slot configuration
10516 + dai-tdm-slot-num = <2>;
10517 + dai-tdm-slot-width = <32>;
10521 + r_codec_dai: codec {
10522 + sound-dai = <&codec_in>;
10526 + playback_link: simple-audio-card,dai-link@1 {
10530 + sound-dai = <&i2s>;
10532 +/* example TDM slot configuration
10533 + dai-tdm-slot-num = <2>;
10534 + dai-tdm-slot-width = <32>;
10538 + p_codec_dai: codec {
10539 + sound-dai = <&codec_out>;
10546 + alsaname = <&snd>, "simple-audio-card,name";
10550 +++ b/arch/arm/boot/dts/overlays/piscreen-overlay.dts
10553 + * Device Tree overlay for PiScreen 3.5" display shield by Ozzmaker
10561 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
10564 + target = <&spi0>;
10571 + target = <&spidev0>;
10573 + status = "disabled";
10578 + target = <&spidev1>;
10580 + status = "disabled";
10585 + target = <&gpio>;
10587 + piscreen_pins: piscreen_pins {
10588 + brcm,pins = <17 25 24 22>;
10589 + brcm,function = <0 1 1 1>; /* in out out out */
10595 + target = <&spi0>;
10597 + /* needed to avoid dtc warning */
10598 + #address-cells = <1>;
10599 + #size-cells = <0>;
10601 + piscreen: piscreen@0{
10602 + compatible = "ilitek,ili9486";
10604 + pinctrl-names = "default";
10605 + pinctrl-0 = <&piscreen_pins>;
10607 + spi-max-frequency = <24000000>;
10613 + reset-gpios = <&gpio 25 0>;
10614 + dc-gpios = <&gpio 24 0>;
10615 + led-gpios = <&gpio 22 1>;
10618 + init = <0x10000b0 0x00
10624 + 0x10000c5 0x00 0x00 0x00 0x00
10625 + 0x10000e0 0x0f 0x1f 0x1c 0x0c 0x0f 0x08 0x48 0x98 0x37 0x0a 0x13 0x04 0x11 0x0d 0x00
10626 + 0x10000e1 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00
10627 + 0x10000e2 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00
10632 + piscreen_ts: piscreen-ts@1 {
10633 + compatible = "ti,ads7846";
10636 + spi-max-frequency = <2000000>;
10637 + interrupts = <17 2>; /* high-to-low edge triggered */
10638 + interrupt-parent = <&gpio>;
10639 + pendown-gpio = <&gpio 17 0>;
10641 + ti,x-plate-ohms = /bits/ 16 <100>;
10642 + ti,pressure-max = /bits/ 16 <255>;
10647 + speed = <&piscreen>,"spi-max-frequency:0";
10648 + rotate = <&piscreen>,"rotate:0";
10649 + fps = <&piscreen>,"fps:0";
10650 + debug = <&piscreen>,"debug:0";
10651 + xohms = <&piscreen_ts>,"ti,x-plate-ohms;0";
10655 +++ b/arch/arm/boot/dts/overlays/piscreen2r-overlay.dts
10658 + * Device Tree overlay for PiScreen2 3.5" TFT with resistive touch by Ozzmaker.com
10666 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
10669 + target = <&spi0>;
10676 + target = <&spidev0>;
10678 + status = "disabled";
10683 + target = <&spidev1>;
10685 + status = "disabled";
10690 + target = <&gpio>;
10692 + piscreen2_pins: piscreen2_pins {
10693 + brcm,pins = <17 25 24 22>;
10694 + brcm,function = <0 1 1 1>; /* in out out out */
10700 + target = <&spi0>;
10702 + /* needed to avoid dtc warning */
10703 + #address-cells = <1>;
10704 + #size-cells = <0>;
10706 + piscreen2: piscreen2@0{
10707 + compatible = "ilitek,ili9486";
10709 + pinctrl-names = "default";
10710 + pinctrl-0 = <&piscreen2_pins>;
10712 + spi-max-frequency = <64000000>;
10717 + txbuflen = <32768>;
10718 + reset-gpios = <&gpio 25 0>;
10719 + dc-gpios = <&gpio 24 0>;
10720 + led-gpios = <&gpio 22 1>;
10723 + init = <0x10000b0 0x00
10728 + 0x10000c0 0x11 0x09
10730 + 0x10000c5 0x00 0x00 0x00 0x00
10731 + 0x10000b6 0x00 0x02
10732 + 0x10000f7 0xa9 0x51 0x2c 0x2
10733 + 0x10000be 0x00 0x04
10740 + piscreen2_ts: piscreen2-ts@1 {
10741 + compatible = "ti,ads7846";
10744 + spi-max-frequency = <2000000>;
10745 + interrupts = <17 2>; /* high-to-low edge triggered */
10746 + interrupt-parent = <&gpio>;
10747 + pendown-gpio = <&gpio 17 0>;
10749 + ti,x-plate-ohms = /bits/ 16 <100>;
10750 + ti,pressure-max = /bits/ 16 <255>;
10755 + speed = <&piscreen2>,"spi-max-frequency:0";
10756 + rotate = <&piscreen2>,"rotate:0";
10757 + fps = <&piscreen2>,"fps:0";
10758 + debug = <&piscreen2>,"debug:0";
10759 + xohms = <&piscreen2_ts>,"ti,x-plate-ohms;0";
10764 +++ b/arch/arm/boot/dts/overlays/pisound-overlay.dts
10767 + * Pisound Linux kernel module.
10768 + * Copyright (C) 2016-2017 Vilniaus Blokas UAB, https://blokas.io/pisound
10770 + * This program is free software; you can redistribute it and/or
10771 + * modify it under the terms of the GNU General Public License
10772 + * as published by the Free Software Foundation; version 2 of the
10775 + * This program is distributed in the hope that it will be useful,
10776 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
10777 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10778 + * GNU General Public License for more details.
10780 + * You should have received a copy of the GNU General Public License
10781 + * along with this program; if not, write to the Free Software
10782 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
10788 +#include <dt-bindings/gpio/gpio.h>
10791 + compatible = "brcm,bcm2708";
10794 + target = <&spi0>;
10801 + target = <&spidev0>;
10803 + status = "disabled";
10808 + target = <&spidev1>;
10815 + target = <&spi0>;
10817 + #address-cells = <1>;
10818 + #size-cells = <0>;
10820 + pisound_spi: pisound_spi@0{
10821 + compatible = "blokaslabs,pisound-spi";
10823 + pinctrl-names = "default";
10824 + pinctrl-0 = <&spi0_pins>;
10825 + spi-max-frequency = <1000000>;
10831 + target-path = "/";
10834 + #sound-dai-cells = <0>;
10835 + compatible = "ti,pcm5102a";
10842 + target = <&sound>;
10844 + compatible = "blokaslabs,pisound";
10845 + i2s-controller = <&i2s>;
10848 + pinctrl-0 = <&pisound_button_pins>;
10851 + <&gpio 13 GPIO_ACTIVE_HIGH>,
10852 + <&gpio 26 GPIO_ACTIVE_HIGH>,
10853 + <&gpio 16 GPIO_ACTIVE_HIGH>;
10856 + <&gpio 12 GPIO_ACTIVE_HIGH>,
10857 + <&gpio 24 GPIO_ACTIVE_HIGH>;
10859 + data_available-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
10861 + button-gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
10866 + target = <&gpio>;
10868 + pinctrl-names = "default";
10869 + pinctrl-0 = <&pisound_button_pins>;
10871 + pisound_button_pins: pisound_button_pins {
10872 + brcm,pins = <17>;
10873 + brcm,function = <0>; // Input
10874 + brcm,pull = <2>; // Pull-Up
10887 +++ b/arch/arm/boot/dts/overlays/pitft22-overlay.dts
10890 + * Device Tree overlay for pitft by Adafruit
10898 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
10901 + target = <&spi0>;
10906 + status = "disabled";
10910 + status = "disabled";
10916 + target = <&gpio>;
10918 + pitft_pins: pitft_pins {
10919 + brcm,pins = <25>;
10920 + brcm,function = <1>; /* out */
10921 + brcm,pull = <0>; /* none */
10927 + target = <&spi0>;
10929 + /* needed to avoid dtc warning */
10930 + #address-cells = <1>;
10931 + #size-cells = <0>;
10934 + compatible = "ilitek,ili9340";
10936 + pinctrl-names = "default";
10937 + pinctrl-0 = <&pitft_pins>;
10939 + spi-max-frequency = <32000000>;
10944 + dc-gpios = <&gpio 25 0>;
10952 + speed = <&pitft>,"spi-max-frequency:0";
10953 + rotate = <&pitft>,"rotate:0";
10954 + fps = <&pitft>,"fps:0";
10955 + debug = <&pitft>,"debug:0";
10959 +++ b/arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts
10962 + * Device Tree overlay for Adafruit PiTFT 2.8" capacitive touch screen
10970 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
10973 + target = <&spi0>;
10980 + target = <&spidev0>;
10982 + status = "disabled";
10987 + target = <&gpio>;
10989 + pitft_pins: pitft_pins {
10990 + brcm,pins = <24 25>;
10991 + brcm,function = <0 1>; /* in out */
10992 + brcm,pull = <2 0>; /* pullup none */
10998 + target = <&spi0>;
11000 + /* needed to avoid dtc warning */
11001 + #address-cells = <1>;
11002 + #size-cells = <0>;
11005 + compatible = "ilitek,ili9340";
11007 + pinctrl-names = "default";
11008 + pinctrl-0 = <&pitft_pins>;
11010 + spi-max-frequency = <32000000>;
11015 + dc-gpios = <&gpio 25 0>;
11022 + target = <&i2c1>;
11024 + /* needed to avoid dtc warning */
11025 + #address-cells = <1>;
11026 + #size-cells = <0>;
11028 + ft6236: ft6236@38 {
11029 + compatible = "focaltech,ft6236";
11032 + interrupt-parent = <&gpio>;
11033 + interrupts = <24 2>;
11034 + touchscreen-size-x = <240>;
11035 + touchscreen-size-y = <320>;
11041 + speed = <&pitft>,"spi-max-frequency:0";
11042 + rotate = <&pitft>,"rotate:0";
11043 + fps = <&pitft>,"fps:0";
11044 + debug = <&pitft>,"debug:0";
11045 + touch-sizex = <&ft6236>,"touchscreen-size-x?";
11046 + touch-sizey = <&ft6236>,"touchscreen-size-y?";
11047 + touch-invx = <&ft6236>,"touchscreen-inverted-x?";
11048 + touch-invy = <&ft6236>,"touchscreen-inverted-y?";
11049 + touch-swapxy = <&ft6236>,"touchscreen-swapped-x-y?";
11053 +++ b/arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts
11056 + * Device Tree overlay for Adafruit PiTFT 2.8" resistive touch screen
11064 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
11067 + target = <&spi0>;
11074 + target = <&spidev0>;
11076 + status = "disabled";
11081 + target = <&spidev1>;
11083 + status = "disabled";
11088 + target = <&gpio>;
11090 + pitft_pins: pitft_pins {
11091 + brcm,pins = <24 25>;
11092 + brcm,function = <0 1>; /* in out */
11093 + brcm,pull = <2 0>; /* pullup none */
11099 + target = <&spi0>;
11101 + /* needed to avoid dtc warning */
11102 + #address-cells = <1>;
11103 + #size-cells = <0>;
11106 + compatible = "ilitek,ili9340";
11108 + pinctrl-names = "default";
11109 + pinctrl-0 = <&pitft_pins>;
11111 + spi-max-frequency = <32000000>;
11116 + dc-gpios = <&gpio 25 0>;
11121 + #address-cells = <1>;
11122 + #size-cells = <0>;
11123 + compatible = "st,stmpe610";
11126 + spi-max-frequency = <500000>;
11127 + irq-gpio = <&gpio 24 0x2>; /* IRQF_TRIGGER_FALLING */
11128 + interrupts = <24 2>; /* high-to-low edge triggered */
11129 + interrupt-parent = <&gpio>;
11130 + interrupt-controller;
11132 + stmpe_touchscreen {
11133 + compatible = "st,stmpe-ts";
11134 + st,sample-time = <4>;
11135 + st,mod-12b = <1>;
11136 + st,ref-sel = <0>;
11137 + st,adc-freq = <2>;
11138 + st,ave-ctrl = <3>;
11139 + st,touch-det-delay = <4>;
11140 + st,settling = <2>;
11141 + st,fraction-z = <7>;
11142 + st,i-drive = <0>;
11145 + stmpe_gpio: stmpe_gpio {
11146 + #gpio-cells = <2>;
11147 + compatible = "st,stmpe-gpio";
11149 + * only GPIO2 is wired/available
11150 + * and it is wired to the backlight
11152 + st,norequest-mask = <0x7b>;
11159 + target-path = "/soc";
11162 + compatible = "gpio-backlight";
11163 + gpios = <&stmpe_gpio 2 0>;
11170 + speed = <&pitft>,"spi-max-frequency:0";
11171 + rotate = <&pitft>,"rotate:0";
11172 + fps = <&pitft>,"fps:0";
11173 + debug = <&pitft>,"debug:0";
11177 +++ b/arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts
11180 + * Device Tree overlay for Adafruit PiTFT 3.5" resistive touch screen
11188 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
11191 + target = <&spi0>;
11198 + target = <&spidev0>;
11200 + status = "disabled";
11205 + target = <&spidev1>;
11207 + status = "disabled";
11212 + target = <&gpio>;
11214 + pitft_pins: pitft_pins {
11215 + brcm,pins = <24 25>;
11216 + brcm,function = <0 1>; /* in out */
11217 + brcm,pull = <2 0>; /* pullup none */
11223 + target = <&spi0>;
11225 + /* needed to avoid dtc warning */
11226 + #address-cells = <1>;
11227 + #size-cells = <0>;
11230 + compatible = "himax,hx8357d";
11232 + pinctrl-names = "default";
11233 + pinctrl-0 = <&pitft_pins>;
11235 + spi-max-frequency = <32000000>;
11240 + dc-gpios = <&gpio 25 0>;
11245 + #address-cells = <1>;
11246 + #size-cells = <0>;
11247 + compatible = "st,stmpe610";
11250 + spi-max-frequency = <500000>;
11251 + irq-gpio = <&gpio 24 0x2>; /* IRQF_TRIGGER_FALLING */
11252 + interrupts = <24 2>; /* high-to-low edge triggered */
11253 + interrupt-parent = <&gpio>;
11254 + interrupt-controller;
11256 + stmpe_touchscreen {
11257 + compatible = "st,stmpe-ts";
11258 + st,sample-time = <4>;
11259 + st,mod-12b = <1>;
11260 + st,ref-sel = <0>;
11261 + st,adc-freq = <2>;
11262 + st,ave-ctrl = <3>;
11263 + st,touch-det-delay = <4>;
11264 + st,settling = <2>;
11265 + st,fraction-z = <7>;
11266 + st,i-drive = <0>;
11269 + stmpe_gpio: stmpe_gpio {
11270 + #gpio-cells = <2>;
11271 + compatible = "st,stmpe-gpio";
11273 + * only GPIO2 is wired/available
11274 + * and it is wired to the backlight
11276 + st,norequest-mask = <0x7b>;
11283 + target-path = "/soc";
11286 + compatible = "gpio-backlight";
11287 + gpios = <&stmpe_gpio 2 0>;
11294 + speed = <&pitft>,"spi-max-frequency:0";
11295 + rotate = <&pitft>,"rotate:0";
11296 + fps = <&pitft>,"fps:0";
11297 + debug = <&pitft>,"debug:0";
11301 +++ b/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts
11307 + compatible = "brcm,bcm2708";
11309 + target-path = "/";
11312 + compatible = "pps-gpio";
11313 + pinctrl-names = "default";
11314 + pinctrl-0 = <&pps_pins>;
11315 + gpios = <&gpio 18 0>;
11322 + target = <&gpio>;
11324 + pps_pins: pps_pins@12 {
11325 + brcm,pins = <18>;
11326 + brcm,function = <0>; // in
11327 + brcm,pull = <0>; // off
11333 + gpiopin = <&pps>,"gpios:4",
11335 + <&pps_pins>,"brcm,pins:0",
11336 + <&pps_pins>,"reg:0";
11337 + assert_falling_edge = <&pps>,"assert-falling-edge?";
11338 + capture_clear = <&pps>,"capture-clear?";
11342 +++ b/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts
11348 +This is the 2-channel overlay - only use it if you need both channels.
11350 +Legal pin,function combinations for each channel:
11351 + PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1)
11352 + PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
11355 + 1) Pin 18 is the only one available on all platforms, and
11356 + it is the one used by the I2S audio interface.
11357 + Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
11358 + 2) The onboard analogue audio output uses both PWM channels.
11359 + 3) So be careful mixing audio and PWM.
11364 + target = <&gpio>;
11366 + pwm_pins: pwm_pins {
11367 + brcm,pins = <18 19>;
11368 + brcm,function = <2 2>; /* Alt5 */
11375 + frag1: __overlay__ {
11376 + pinctrl-names = "default";
11377 + pinctrl-0 = <&pwm_pins>;
11378 + assigned-clock-rates = <100000000>;
11384 + pin = <&pwm_pins>,"brcm,pins:0";
11385 + pin2 = <&pwm_pins>,"brcm,pins:4";
11386 + func = <&pwm_pins>,"brcm,function:0";
11387 + func2 = <&pwm_pins>,"brcm,function:4";
11388 + clock = <&frag1>,"assigned-clock-rates:0";
11392 +++ b/arch/arm/boot/dts/overlays/pwm-ir-tx-overlay.dts
11398 + compatible = "brcm,bcm2708";
11401 + target = <&gpio>;
11403 + pwm0_pins: pwm0_pins {
11404 + brcm,pins = <18>;
11405 + brcm,function = <2>; /* Alt5 */
11413 + pinctrl-names = "default";
11414 + pinctrl-0 = <&pwm0_pins>;
11420 + target-path = "/";
11422 + pwm-ir-transmitter {
11423 + compatible = "pwm-ir-tx";
11424 + pwms = <&pwm 0 100>;
11430 + gpio_pin = <&pwm0_pins>, "brcm,pins:0";
11431 + func = <&pwm0_pins>,"brcm,function:0";
11435 +++ b/arch/arm/boot/dts/overlays/pwm-overlay.dts
11441 +Legal pin,function combinations for each channel:
11442 + PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1)
11443 + PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
11446 + 1) Pin 18 is the only one available on all platforms, and
11447 + it is the one used by the I2S audio interface.
11448 + Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
11449 + 2) The onboard analogue audio output uses both PWM channels.
11450 + 3) So be careful mixing audio and PWM.
11455 + target = <&gpio>;
11457 + pwm_pins: pwm_pins {
11458 + brcm,pins = <18>;
11459 + brcm,function = <2>; /* Alt5 */
11466 + frag1: __overlay__ {
11467 + pinctrl-names = "default";
11468 + pinctrl-0 = <&pwm_pins>;
11469 + assigned-clock-rates = <100000000>;
11475 + pin = <&pwm_pins>,"brcm,pins:0";
11476 + func = <&pwm_pins>,"brcm,function:0";
11477 + clock = <&frag1>,"assigned-clock-rates:0";
11481 +++ b/arch/arm/boot/dts/overlays/qca7000-overlay.dts
11483 +// Overlay for the Qualcomm Atheros QCA7000 on I2SE's PLC Stamp micro EVK
11484 +// Visit: https://www.i2se.com/product/plc-stamp-micro-evk for details
11490 + compatible = "brcm,bcm2708";
11493 + target = <&spi0>;
11495 + /* needed to avoid dtc warning */
11496 + #address-cells = <1>;
11497 + #size-cells = <0>;
11502 + status = "disabled";
11505 + eth1: qca7000@0 {
11506 + compatible = "qca,qca7000";
11507 + reg = <0>; /* CE0 */
11508 + pinctrl-names = "default";
11509 + pinctrl-0 = <ð1_pins>;
11510 + interrupt-parent = <&gpio>;
11511 + interrupts = <23 0x1>; /* rising edge */
11512 + spi-max-frequency = <12000000>;
11519 + target = <&gpio>;
11521 + eth1_pins: eth1_pins {
11522 + brcm,pins = <23>;
11523 + brcm,function = <0>; /* in */
11524 + brcm,pull = <0>; /* none */
11530 + int_pin = <ð1>, "interrupts:0",
11531 + <ð1_pins>, "brcm,pins:0";
11532 + speed = <ð1>, "spi-max-frequency:0";
11536 +++ b/arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts
11538 +// Device tree overlay for GPIO connected rotary encoder.
11543 + compatible = "brcm,bcm2708";
11546 + target = <&gpio>;
11548 + rotary_pins: rotary_pins@4 {
11549 + brcm,pins = <4 17>; /* gpio 4 17 */
11550 + brcm,function = <0 0>; /* input */
11551 + brcm,pull = <2 2>; /* pull-up */
11558 + target-path = "/";
11560 + rotary: rotary@4 {
11561 + compatible = "rotary-encoder";
11563 + pinctrl-names = "default";
11564 + pinctrl-0 = <&rotary_pins>;
11565 + gpios = <&gpio 4 0>, <&gpio 17 0>;
11566 + linux,axis = <0>; /* REL_X */
11567 + rotary-encoder,encoding = "gray";
11568 + rotary-encoder,steps = <24>; /* 24 default */
11569 + rotary-encoder,steps-per-period = <1>; /* corresponds to full period mode. See README */
11576 + pin_a = <&rotary>,"gpios:4",
11577 + <&rotary_pins>,"brcm,pins:0",
11578 + /* modify reg values to allow multiple instantiation */
11579 + <&rotary>,"reg:0",
11580 + <&rotary_pins>,"reg:0";
11581 + pin_b = <&rotary>,"gpios:16",
11582 + <&rotary_pins>,"brcm,pins:4";
11583 + relative_axis = <&rotary>,"rotary-encoder,relative-axis?";
11584 + linux_axis = <&rotary>,"linux,axis:0";
11585 + rollover = <&rotary>,"rotary-encoder,rollover?";
11586 + steps-per-period = <&rotary>,"rotary-encoder,steps-per-period:0";
11587 + steps = <&rotary>,"rotary-encoder,steps:0";
11588 + wakeup = <&rotary>,"wakeup-source?";
11589 + encoding = <&rotary>,"rotary-encoder,encoding";
11590 + /* legacy parameters*/
11591 + rotary0_pin_a = <&rotary>,"gpios:4",
11592 + <&rotary_pins>,"brcm,pins:0";
11593 + rotary0_pin_b = <&rotary>,"gpios:16",
11594 + <&rotary_pins>,"brcm,pins:4";
11598 +++ b/arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts
11601 + * Devicetree overlay for mailbox-driven Raspberry Pi DSI Display
11602 + * backlight controller
11608 + compatible = "brcm,bcm2708";
11611 + target-path = "/";
11613 + rpi_backlight: rpi_backlight {
11614 + compatible = "raspberrypi,rpi-backlight";
11615 + firmware = <&firmware>;
11622 +++ b/arch/arm/boot/dts/overlays/rpi-cirrus-wm5102-overlay.dts
11624 +// Definitions for the Cirrus Logic Audio Card
11627 +#include <dt-bindings/pinctrl/bcm2835.h>
11628 +#include <dt-bindings/gpio/gpio.h>
11629 +#include <dt-bindings/mfd/arizona.h>
11632 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
11642 + target = <&gpio>;
11644 + wlf_pins: wlf_pins {
11645 + brcm,pins = <17 22 27 8>;
11646 + brcm,function = <
11647 + BCM2835_FSEL_GPIO_OUT
11648 + BCM2835_FSEL_GPIO_OUT
11649 + BCM2835_FSEL_GPIO_IN
11650 + BCM2835_FSEL_GPIO_OUT
11657 + target-path = "/";
11659 + rpi_cirrus_reg_1v8: rpi_cirrus_reg_1v8 {
11660 + compatible = "regulator-fixed";
11661 + regulator-name = "RPi-Cirrus 1v8";
11662 + regulator-min-microvolt = <1800000>;
11663 + regulator-max-microvolt = <1800000>;
11664 + regulator-always-on;
11670 + target = <&spi0>;
11672 + #address-cells = <1>;
11673 + #size-cells = <0>;
11677 + status = "disabled";
11681 + status = "disabled";
11685 + compatible = "wlf,wm5102";
11688 + spi-max-frequency = <500000>;
11690 + interrupt-parent = <&gpio>;
11691 + interrupts = <27 8>;
11692 + interrupt-controller;
11693 + #interrupt-cells = <2>;
11696 + #gpio-cells = <2>;
11698 + LDOVDD-supply = <&rpi_cirrus_reg_1v8>;
11699 + AVDD-supply = <&rpi_cirrus_reg_1v8>;
11700 + DBVDD1-supply = <&rpi_cirrus_reg_1v8>;
11701 + DBVDD2-supply = <&vdd_3v3_reg>;
11702 + DBVDD3-supply = <&vdd_3v3_reg>;
11703 + CPVDD-supply = <&rpi_cirrus_reg_1v8>;
11704 + SPKVDDL-supply = <&vdd_5v0_reg>;
11705 + SPKVDDR-supply = <&vdd_5v0_reg>;
11706 + DCVDD-supply = <&arizona_ldo1>;
11708 + wlf,reset = <&gpio 17 GPIO_ACTIVE_HIGH>;
11709 + wlf,ldoena = <&gpio 22 GPIO_ACTIVE_HIGH>;
11710 + wlf,gpio-defaults = <
11711 + ARIZONA_GP_DEFAULT
11712 + ARIZONA_GP_DEFAULT
11713 + ARIZONA_GP_DEFAULT
11714 + ARIZONA_GP_DEFAULT
11715 + ARIZONA_GP_DEFAULT
11717 + wlf,micd-configs = <0 1 0>;
11719 + ARIZONA_DMIC_MICVDD
11720 + ARIZONA_DMIC_MICBIAS2
11721 + ARIZONA_DMIC_MICVDD
11722 + ARIZONA_DMIC_MICVDD
11725 + ARIZONA_INMODE_DIFF
11726 + ARIZONA_INMODE_DMIC
11727 + ARIZONA_INMODE_SE
11728 + ARIZONA_INMODE_DIFF
11732 + arizona_ldo1: ldo1 {
11733 + regulator-name = "LDO1";
11734 + // default constraints as in
11735 + // arizona-ldo1.c
11736 + regulator-min-microvolt = <1200000>;
11737 + regulator-max-microvolt = <1800000>;
11744 + target = <&i2c1>;
11747 + #address-cells = <1>;
11748 + #size-cells = <0>;
11751 + compatible = "wlf,wm8804";
11754 + PVDD-supply = <&vdd_3v3_reg>;
11755 + DVDD-supply = <&vdd_3v3_reg>;
11756 + wlf,reset-gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
11762 + target = <&sound>;
11764 + compatible = "wlf,rpi-cirrus";
11765 + i2s-controller = <&i2s>;
11771 +++ b/arch/arm/boot/dts/overlays/rpi-dac-overlay.dts
11773 +// Definitions for RPi DAC
11778 + compatible = "brcm,bcm2708";
11788 + target-path = "/";
11791 + #sound-dai-cells = <0>;
11792 + compatible = "ti,pcm1794a";
11799 + target = <&sound>;
11801 + compatible = "rpi,rpi-dac";
11802 + i2s-controller = <&i2s>;
11808 +++ b/arch/arm/boot/dts/overlays/rpi-display-overlay.dts
11811 + * Device Tree overlay for rpi-display by Watterott
11819 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
11822 + target = <&spi0>;
11829 + target = <&spidev0>;
11831 + status = "disabled";
11836 + target = <&spidev1>;
11838 + status = "disabled";
11843 + target = <&gpio>;
11845 + rpi_display_pins: rpi_display_pins {
11846 + brcm,pins = <18 23 24 25>;
11847 + brcm,function = <1 1 1 0>; /* out out out in */
11848 + brcm,pull = <0 0 0 2>; /* - - - up */
11854 + target = <&spi0>;
11856 + /* needed to avoid dtc warning */
11857 + #address-cells = <1>;
11858 + #size-cells = <0>;
11860 + rpidisplay: rpi-display@0{
11861 + compatible = "ilitek,ili9341";
11863 + pinctrl-names = "default";
11864 + pinctrl-0 = <&rpi_display_pins>;
11866 + spi-max-frequency = <32000000>;
11871 + reset-gpios = <&gpio 23 0>;
11872 + dc-gpios = <&gpio 24 0>;
11873 + led-gpios = <&gpio 18 1>;
11877 + rpidisplay_ts: rpi-display-ts@1 {
11878 + compatible = "ti,ads7846";
11881 + spi-max-frequency = <2000000>;
11882 + interrupts = <25 2>; /* high-to-low edge triggered */
11883 + interrupt-parent = <&gpio>;
11884 + pendown-gpio = <&gpio 25 0>;
11885 + ti,x-plate-ohms = /bits/ 16 <60>;
11886 + ti,pressure-max = /bits/ 16 <255>;
11891 + speed = <&rpidisplay>,"spi-max-frequency:0";
11892 + rotate = <&rpidisplay>,"rotate:0";
11893 + fps = <&rpidisplay>,"fps:0";
11894 + debug = <&rpidisplay>,"debug:0";
11895 + xohms = <&rpidisplay_ts>,"ti,x-plate-ohms;0";
11896 + swapxy = <&rpidisplay_ts>,"ti,swap-xy?";
11897 + backlight = <&rpidisplay>,"led-gpios:4",
11898 + <&rpi_display_pins>,"brcm,pins:0";
11902 +++ b/arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts
11908 + compatible = "brcm,bcm2708";
11911 + target-path = "/";
11913 + rpi_ft5406: rpi_ft5406 {
11914 + compatible = "rpi,rpi-ft5406";
11915 + firmware = <&firmware>;
11917 + touchscreen-size-x = <800>;
11918 + touchscreen-size-y = <480>;
11919 + touchscreen-inverted-x = <0>;
11920 + touchscreen-inverted-y = <0>;
11921 + touchscreen-swapped-x-y = <0>;
11927 + touchscreen-size-x = <&rpi_ft5406>,"touchscreen-size-x:0";
11928 + touchscreen-size-y = <&rpi_ft5406>,"touchscreen-size-y:0";
11929 + touchscreen-inverted-x = <&rpi_ft5406>,"touchscreen-inverted-x:0";
11930 + touchscreen-inverted-y = <&rpi_ft5406>,"touchscreen-inverted-y:0";
11931 + touchscreen-swapped-x-y = <&rpi_ft5406>,"touchscreen-swapped-x-y:0";
11935 +++ b/arch/arm/boot/dts/overlays/rpi-proto-overlay.dts
11937 +// Definitions for Rpi-Proto
11942 + compatible = "brcm,bcm2708";
11952 + target = <&i2c1>;
11954 + #address-cells = <1>;
11955 + #size-cells = <0>;
11959 + #sound-dai-cells = <0>;
11960 + compatible = "wlf,wm8731";
11968 + target = <&sound>;
11970 + compatible = "rpi,rpi-proto";
11971 + i2s-controller = <&i2s>;
11977 +++ b/arch/arm/boot/dts/overlays/rpi-sense-overlay.dts
11984 + compatible = "brcm,bcm2708", "brcm,bcm2709";
11987 + target = <&i2c1>;
11989 + #address-cells = <1>;
11990 + #size-cells = <0>;
11994 + compatible = "rpi,rpi-sense";
11996 + keys-int-gpios = <&gpio 23 1>;
12000 + lsm9ds1-magn@1c {
12001 + compatible = "st,lsm9ds1-magn";
12006 + lsm9ds1-accel6a {
12007 + compatible = "st,lsm9ds1-accel";
12012 + lps25h-press@5c {
12013 + compatible = "st,lps25h-press";
12018 + hts221-humid@5f {
12019 + compatible = "st,hts221-humid";
12027 +++ b/arch/arm/boot/dts/overlays/rpi-tv-overlay.dts
12035 + compatible = "brcm,bcm2708", "brcm,bcm2709";
12038 + target = <&spi0>;
12040 + /* needed to avoid dtc warning */
12041 + #address-cells = <1>;
12042 + #size-cells = <0>;
12047 + status = "disabled";
12051 + compatible = "sony,cxd2880";
12052 + reg = <0>; /* CE0 */
12053 + spi-max-frequency = <50000000>;
12061 +++ b/arch/arm/boot/dts/overlays/rra-digidac1-wm8741-audio-overlay.dts
12063 +// Definitions for RRA DigiDAC1 Audio card
12068 + compatible = "brcm,bcm2708";
12078 + target = <&i2c1>;
12080 + #address-cells = <1>;
12081 + #size-cells = <0>;
12085 + #sound-dai-cells = <0>;
12086 + compatible = "wlf,wm8804";
12089 + PVDD-supply = <&vdd_3v3_reg>;
12090 + DVDD-supply = <&vdd_3v3_reg>;
12093 + wm8742: wm8741@1a {
12094 + compatible = "wlf,wm8741";
12097 + AVDD-supply = <&vdd_5v0_reg>;
12098 + DVDD-supply = <&vdd_3v3_reg>;
12104 + target = <&sound>;
12106 + compatible = "rra,digidac1-soundcard";
12107 + i2s-controller = <&i2s>;
12113 +++ b/arch/arm/boot/dts/overlays/sc16is750-i2c-overlay.dts
12119 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
12122 + target = <&i2c_arm>;
12124 + #address-cells = <1>;
12125 + #size-cells = <0>;
12128 + sc16is750: sc16is750@48 {
12129 + compatible = "nxp,sc16is750";
12130 + reg = <0x48>; /* address */
12131 + clocks = <&sc16is750_clk>;
12132 + interrupt-parent = <&gpio>;
12133 + interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
12134 + #gpio-cells = <2>;
12136 + sc16is750_clk: sc16is750_clk {
12137 + compatible = "fixed-clock";
12138 + #clock-cells = <0>;
12139 + clock-frequency = <14745600>;
12147 + int_pin = <&sc16is750>,"interrupts:0";
12148 + addr = <&sc16is750>,"reg:0";
12153 +++ b/arch/arm/boot/dts/overlays/sc16is752-i2c-overlay.dts
12159 + compatible = "brcm,bcm2835";
12162 + target = <&i2c1>;
12164 + frag1: __overlay__ {
12165 + #address-cells = <1>;
12166 + #size-cells = <0>;
12169 + sc16is752: sc16is752@48 {
12170 + compatible = "nxp,sc16is752";
12171 + reg = <0x48>; // i2c address
12172 + clocks = <&sc16is752_clk>;
12173 + interrupt-parent = <&gpio>;
12174 + interrupts = <24 0x2>; /* IRQ_TYPE_EDGE_FALLING */
12176 + #gpio-cells = <0>;
12177 + i2c-max-frequency = <400000>;
12180 + sc16is752_clk: sc16is752_clk {
12181 + compatible = "fixed-clock";
12182 + #clock-cells = <0>;
12183 + clock-frequency = <14745600>;
12190 + int_pin = <&sc16is752>,"interrupts:0";
12191 + addr = <&sc16is752>,"reg:0";
12192 + xtal = <&sc16is752>,"clock-frequency:0";
12196 +++ b/arch/arm/boot/dts/overlays/sc16is752-spi1-overlay.dts
12202 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
12205 + target = <&gpio>;
12207 + spi1_pins: spi1_pins {
12208 + brcm,pins = <19 20 21>;
12209 + brcm,function = <3>; /* alt4 */
12212 + spi1_cs_pins: spi1_cs_pins {
12213 + brcm,pins = <18>;
12214 + brcm,function = <1>; /* output */
12220 + target = <&spi1>;
12221 + frag1: __overlay__ {
12222 + #address-cells = <1>;
12223 + #size-cells = <0>;
12224 + pinctrl-names = "default";
12225 + pinctrl-0 = <&spi1_pins &spi1_cs_pins>;
12226 + cs-gpios = <&gpio 18 1>;
12229 + sc16is752: sc16is752@0 {
12230 + compatible = "nxp,sc16is752";
12231 + reg = <0>; /* CE0 */
12232 + clocks = <&sc16is752_clk>;
12233 + interrupt-parent = <&gpio>;
12234 + interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
12235 + #gpio-controller;
12236 + #gpio-cells = <2>;
12237 + spi-max-frequency = <4000000>;
12239 + sc16is752_clk: sc16is752_clk {
12240 + compatible = "fixed-clock";
12241 + #clock-cells = <0>;
12242 + clock-frequency = <14745600>;
12256 + int_pin = <&sc16is752>,"interrupts:0";
12260 +++ b/arch/arm/boot/dts/overlays/sdhost-overlay.dts
12265 +/* Provide backwards compatible aliases for the old sdhost dtparams. */
12268 + compatible = "brcm,bcm2708";
12271 + target = <&sdhost>;
12272 + frag0: __overlay__ {
12273 + brcm,overclock-50 = <0>;
12274 + brcm,pio-limit = <1>;
12282 + status = "disabled";
12287 + overclock_50 = <&frag0>,"brcm,overclock-50:0";
12288 + force_pio = <&frag0>,"brcm,force-pio?";
12289 + pio_limit = <&frag0>,"brcm,pio-limit:0";
12290 + debug = <&frag0>,"brcm,debug?";
12294 +++ b/arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts
12299 +/* Enable 1-bit SDIO from MMC interface via GPIOs 22-25. Includes sdhost overlay. */
12302 + compatible = "brcm,bcm2708";
12307 + status = "disabled";
12314 + #address-cells = <1>;
12315 + #size-cells = <1>;
12317 + sdio_1bit: sdio@7e300000 {
12318 + compatible = "brcm,bcm2835-mmc",
12319 + "brcm,bcm2835-sdhci";
12320 + reg = <0x7e300000 0x100>;
12321 + interrupts = <2 30>;
12322 + clocks = <&clocks 28/*BCM2835_CLOCK_EMMC*/>;
12323 + dmas = <&dma 11>;
12324 + dma-names = "rx-tx";
12325 + brcm,overclock-50 = <0>;
12327 + pinctrl-names = "default";
12328 + pinctrl-0 = <&sdio_1bit_pins>;
12336 + target = <&gpio>;
12338 + sdio_1bit_pins: sdio_1bit_pins {
12339 + brcm,pins = <22 23 24 25>;
12340 + brcm,function = <7>; /* ALT3 = SD1 */
12341 + brcm,pull = <0 2 2 2>;
12347 + target-path = "/aliases";
12349 + mmc1 = "/soc/sdio@7e300000";
12355 + poll_once = <&sdio_1bit>,"non-removable?";
12356 + sdio_overclock = <&sdio_1bit>,"brcm,overclock-50:0";
12360 +++ b/arch/arm/boot/dts/overlays/sdio-overlay.dts
12365 +/* Enable SDIO from MMC interface via GPIOs 22-27. Includes sdhost overlay. */
12368 + compatible = "brcm,bcm2708";
12373 + status = "disabled";
12380 + #address-cells = <1>;
12381 + #size-cells = <1>;
12383 + sdio_ovl: sdio@7e300000 {
12384 + compatible = "brcm,bcm2835-mmc",
12385 + "brcm,bcm2835-sdhci";
12386 + reg = <0x7e300000 0x100>;
12387 + interrupts = <2 30>;
12388 + clocks = <&clocks 28/*BCM2835_CLOCK_EMMC*/>;
12389 + dmas = <&dma 11>;
12390 + dma-names = "rx-tx";
12391 + brcm,overclock-50 = <0>;
12393 + pinctrl-names = "default";
12394 + pinctrl-0 = <&sdio_ovl_pins>;
12402 + target = <&gpio>;
12404 + sdio_ovl_pins: sdio_ovl_pins {
12405 + brcm,pins = <22 23 24 25 26 27>;
12406 + brcm,function = <7>; /* ALT3 = SD1 */
12407 + brcm,pull = <0 2 2 2 2 2>;
12413 + target-path = "/aliases";
12415 + mmc1 = "/soc/sdio@7e300000";
12420 + poll_once = <&sdio_ovl>,"non-removable?";
12421 + bus_width = <&sdio_ovl>,"bus-width:0";
12422 + sdio_overclock = <&sdio_ovl>,"brcm,overclock-50:0";
12426 +++ b/arch/arm/boot/dts/overlays/sdtweak-overlay.dts
12431 +/* Provide backwards compatible aliases for the old sdhost dtparams. */
12434 + compatible = "brcm,bcm2708";
12437 + target = <&sdhost>;
12438 + frag0: __overlay__ {
12439 + brcm,overclock-50 = <0>;
12440 + brcm,pio-limit = <1>;
12445 + overclock_50 = <&frag0>,"brcm,overclock-50:0";
12446 + force_pio = <&frag0>,"brcm,force-pio?";
12447 + pio_limit = <&frag0>,"brcm,pio-limit:0";
12448 + debug = <&frag0>,"brcm,debug?";
12449 + enable = <&frag0>,"status";
12450 + poll_once = <&frag0>,"non-removable?";
12454 +++ b/arch/arm/boot/dts/overlays/smi-dev-overlay.dts
12456 +// Description: Overlay to enable character device interface for SMI.
12457 +// Author: Luke Wren <luke@raspberrypi.org>
12467 + compatible = "brcm,bcm2835-smi-dev";
12468 + smi_handle = <&smi>;
12475 +++ b/arch/arm/boot/dts/overlays/smi-nand-overlay.dts
12477 +// Description: Overlay to enable NAND flash through
12478 +// the secondary memory interface
12479 +// Author: Luke Wren
12485 + compatible = "brcm,bcm2708";
12490 + pinctrl-names = "default";
12491 + pinctrl-0 = <&smi_pins>;
12499 + #address-cells = <1>;
12500 + #size-cells = <1>;
12503 + compatible = "brcm,bcm2835-smi-nand";
12504 + smi_handle = <&smi>;
12505 + #address-cells = <1>;
12506 + #size-cells = <1>;
12510 + label = "stage2";
12512 + reg = <0 0x20000>;
12516 + label = "firmware";
12518 + reg = <0x20000 0x1000000>;
12523 + // 2G (will need to use 64 bit for >=4G)
12524 + reg = <0x1020000 0x80000000>;
12531 + target = <&gpio>;
12533 + smi_pins: smi_pins {
12534 + brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
12537 + brcm,function = <5 5 5 5 5 5 5 5 5 5 5
12539 + /* /CS, /WE and /OE are pulled high, as they are
12540 + generally active low signals */
12541 + brcm,pull = <2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0>;
12547 +++ b/arch/arm/boot/dts/overlays/smi-overlay.dts
12549 +// Description: Overlay to enable the secondary memory interface peripheral
12550 +// Author: Luke Wren
12556 + compatible = "brcm,bcm2708";
12561 + pinctrl-names = "default";
12562 + pinctrl-0 = <&smi_pins>;
12568 + target = <&gpio>;
12570 + smi_pins: smi_pins {
12571 + /* Don't configure the top two address bits, as
12572 + these are already used as ID_SD and ID_SC */
12573 + brcm,pins = <2 3 4 5 6 7 8 9 10 11 12 13 14 15
12574 + 16 17 18 19 20 21 22 23 24 25>;
12576 + brcm,function = <5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
12577 + 5 5 5 5 5 5 5 5 5>;
12578 + /* /CS, /WE and /OE are pulled high, as they are
12579 + generally active low signals */
12580 + brcm,pull = <2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0
12587 +++ b/arch/arm/boot/dts/overlays/spi-gpio35-39-overlay.dts
12590 + * Device tree overlay to move spi0 to gpio 35 to 39 on CM
12597 + compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
12600 + target = <&spi0>;
12602 + cs-gpios = <&gpio 36 1>, <&gpio 35 1>;
12607 + target = <&spi0_cs_pins>;
12609 + brcm,pins = <36 35>;
12614 + target = <&spi0_pins>;
12616 + brcm,pins = <37 38 39>;
12621 +++ b/arch/arm/boot/dts/overlays/spi-rtc-overlay.dts
12627 + compatible = "brcm,bcm2708";
12630 + target = <&spidev0>;
12632 + status = "disabled";
12637 + target = <&spi0>;
12639 + #address-cells = <1>;
12640 + #size-cells = <0>;
12644 + compatible = "nxp,rtc-pcf2123";
12645 + spi-max-frequency = <5000000>;
12646 + spi-cs-high = <1>;
12653 + pcf2123 = <0>, "=0=1";
12657 +++ b/arch/arm/boot/dts/overlays/spi0-cs-overlay.dts
12664 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
12667 + target = <&spi0_cs_pins>;
12668 + frag0: __overlay__ {
12669 + brcm,pins = <8 7>;
12674 + target = <&spi0>;
12675 + frag1: __overlay__ {
12676 + cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
12682 + cs0_pin = <&frag0>,"brcm,pins:0",
12683 + <&frag1>,"cs-gpios:4";
12684 + cs1_pin = <&frag0>,"brcm,pins:4",
12685 + <&frag1>,"cs-gpios:16";
12689 +++ b/arch/arm/boot/dts/overlays/spi0-hw-cs-overlay.dts
12692 + * Device tree overlay to re-enable hardware CS for SPI0
12699 + compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
12702 + target = <&spi0>;
12704 + cs-gpios = <0>, <0>;
12710 + target = <&spi0_cs_pins>;
12712 + brcm,pins = <8 7>;
12713 + brcm,function = <4>; /* alt0 */
12718 +++ b/arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts
12725 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
12728 + target = <&gpio>;
12730 + spi1_pins: spi1_pins {
12731 + brcm,pins = <19 20 21>;
12732 + brcm,function = <3>; /* alt4 */
12735 + spi1_cs_pins: spi1_cs_pins {
12736 + brcm,pins = <18>;
12737 + brcm,function = <1>; /* output */
12743 + target = <&spi1>;
12744 + frag1: __overlay__ {
12745 + /* needed to avoid dtc warning */
12746 + #address-cells = <1>;
12747 + #size-cells = <0>;
12748 + pinctrl-names = "default";
12749 + pinctrl-0 = <&spi1_pins &spi1_cs_pins>;
12750 + cs-gpios = <&gpio 18 1>;
12753 + spidev1_0: spidev@0 {
12754 + compatible = "spidev";
12755 + reg = <0>; /* CE0 */
12756 + #address-cells = <1>;
12757 + #size-cells = <0>;
12758 + spi-max-frequency = <125000000>;
12772 + cs0_pin = <&spi1_cs_pins>,"brcm,pins:0",
12773 + <&frag1>,"cs-gpios:4";
12774 + cs0_spidev = <&spidev1_0>,"status";
12778 +++ b/arch/arm/boot/dts/overlays/spi1-2cs-overlay.dts
12785 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
12788 + target = <&gpio>;
12790 + spi1_pins: spi1_pins {
12791 + brcm,pins = <19 20 21>;
12792 + brcm,function = <3>; /* alt4 */
12795 + spi1_cs_pins: spi1_cs_pins {
12796 + brcm,pins = <18 17>;
12797 + brcm,function = <1>; /* output */
12803 + target = <&spi1>;
12804 + frag1: __overlay__ {
12805 + /* needed to avoid dtc warning */
12806 + #address-cells = <1>;
12807 + #size-cells = <0>;
12808 + pinctrl-names = "default";
12809 + pinctrl-0 = <&spi1_pins &spi1_cs_pins>;
12810 + cs-gpios = <&gpio 18 1>, <&gpio 17 1>;
12813 + spidev1_0: spidev@0 {
12814 + compatible = "spidev";
12815 + reg = <0>; /* CE0 */
12816 + #address-cells = <1>;
12817 + #size-cells = <0>;
12818 + spi-max-frequency = <125000000>;
12822 + spidev1_1: spidev@1 {
12823 + compatible = "spidev";
12824 + reg = <1>; /* CE1 */
12825 + #address-cells = <1>;
12826 + #size-cells = <0>;
12827 + spi-max-frequency = <125000000>;
12841 + cs0_pin = <&spi1_cs_pins>,"brcm,pins:0",
12842 + <&frag1>,"cs-gpios:4";
12843 + cs1_pin = <&spi1_cs_pins>,"brcm,pins:4",
12844 + <&frag1>,"cs-gpios:16";
12845 + cs0_spidev = <&spidev1_0>,"status";
12846 + cs1_spidev = <&spidev1_1>,"status";
12850 +++ b/arch/arm/boot/dts/overlays/spi1-3cs-overlay.dts
12857 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
12860 + target = <&gpio>;
12862 + spi1_pins: spi1_pins {
12863 + brcm,pins = <19 20 21>;
12864 + brcm,function = <3>; /* alt4 */
12867 + spi1_cs_pins: spi1_cs_pins {
12868 + brcm,pins = <18 17 16>;
12869 + brcm,function = <1>; /* output */
12875 + target = <&spi1>;
12876 + frag1: __overlay__ {
12877 + /* needed to avoid dtc warning */
12878 + #address-cells = <1>;
12879 + #size-cells = <0>;
12880 + pinctrl-names = "default";
12881 + pinctrl-0 = <&spi1_pins &spi1_cs_pins>;
12882 + cs-gpios = <&gpio 18 1>, <&gpio 17 1>, <&gpio 16 1>;
12885 + spidev1_0: spidev@0 {
12886 + compatible = "spidev";
12887 + reg = <0>; /* CE0 */
12888 + #address-cells = <1>;
12889 + #size-cells = <0>;
12890 + spi-max-frequency = <125000000>;
12894 + spidev1_1: spidev@1 {
12895 + compatible = "spidev";
12896 + reg = <1>; /* CE1 */
12897 + #address-cells = <1>;
12898 + #size-cells = <0>;
12899 + spi-max-frequency = <125000000>;
12903 + spidev1_2: spidev@2 {
12904 + compatible = "spidev";
12905 + reg = <2>; /* CE2 */
12906 + #address-cells = <1>;
12907 + #size-cells = <0>;
12908 + spi-max-frequency = <125000000>;
12922 + cs0_pin = <&spi1_cs_pins>,"brcm,pins:0",
12923 + <&frag1>,"cs-gpios:4";
12924 + cs1_pin = <&spi1_cs_pins>,"brcm,pins:4",
12925 + <&frag1>,"cs-gpios:16";
12926 + cs2_pin = <&spi1_cs_pins>,"brcm,pins:8",
12927 + <&frag1>,"cs-gpios:28";
12928 + cs0_spidev = <&spidev1_0>,"status";
12929 + cs1_spidev = <&spidev1_1>,"status";
12930 + cs2_spidev = <&spidev1_2>,"status";
12934 +++ b/arch/arm/boot/dts/overlays/spi2-1cs-overlay.dts
12941 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
12944 + target = <&gpio>;
12946 + spi2_pins: spi2_pins {
12947 + brcm,pins = <40 41 42>;
12948 + brcm,function = <3>; /* alt4 */
12951 + spi2_cs_pins: spi2_cs_pins {
12952 + brcm,pins = <43>;
12953 + brcm,function = <1>; /* output */
12959 + target = <&spi2>;
12960 + frag1: __overlay__ {
12961 + /* needed to avoid dtc warning */
12962 + #address-cells = <1>;
12963 + #size-cells = <0>;
12964 + pinctrl-names = "default";
12965 + pinctrl-0 = <&spi2_pins &spi2_cs_pins>;
12966 + cs-gpios = <&gpio 43 1>;
12969 + spidev2_0: spidev@0 {
12970 + compatible = "spidev";
12971 + reg = <0>; /* CE0 */
12972 + #address-cells = <1>;
12973 + #size-cells = <0>;
12974 + spi-max-frequency = <125000000>;
12988 + cs0_pin = <&spi2_cs_pins>,"brcm,pins:0",
12989 + <&frag1>,"cs-gpios:4";
12990 + cs0_spidev = <&spidev2_0>,"status";
12994 +++ b/arch/arm/boot/dts/overlays/spi2-2cs-overlay.dts
13001 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
13004 + target = <&gpio>;
13006 + spi2_pins: spi2_pins {
13007 + brcm,pins = <40 41 42>;
13008 + brcm,function = <3>; /* alt4 */
13011 + spi2_cs_pins: spi2_cs_pins {
13012 + brcm,pins = <43 44>;
13013 + brcm,function = <1>; /* output */
13019 + target = <&spi2>;
13020 + frag1: __overlay__ {
13021 + /* needed to avoid dtc warning */
13022 + #address-cells = <1>;
13023 + #size-cells = <0>;
13024 + pinctrl-names = "default";
13025 + pinctrl-0 = <&spi2_pins &spi2_cs_pins>;
13026 + cs-gpios = <&gpio 43 1>, <&gpio 44 1>;
13029 + spidev2_0: spidev@0 {
13030 + compatible = "spidev";
13031 + reg = <0>; /* CE0 */
13032 + #address-cells = <1>;
13033 + #size-cells = <0>;
13034 + spi-max-frequency = <125000000>;
13038 + spidev2_1: spidev@1 {
13039 + compatible = "spidev";
13040 + reg = <1>; /* CE1 */
13041 + #address-cells = <1>;
13042 + #size-cells = <0>;
13043 + spi-max-frequency = <125000000>;
13057 + cs0_pin = <&spi2_cs_pins>,"brcm,pins:0",
13058 + <&frag1>,"cs-gpios:4";
13059 + cs1_pin = <&spi2_cs_pins>,"brcm,pins:4",
13060 + <&frag1>,"cs-gpios:16";
13061 + cs0_spidev = <&spidev2_0>,"status";
13062 + cs1_spidev = <&spidev2_1>,"status";
13066 +++ b/arch/arm/boot/dts/overlays/spi2-3cs-overlay.dts
13073 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
13076 + target = <&gpio>;
13078 + spi2_pins: spi2_pins {
13079 + brcm,pins = <40 41 42>;
13080 + brcm,function = <3>; /* alt4 */
13083 + spi2_cs_pins: spi2_cs_pins {
13084 + brcm,pins = <43 44 45>;
13085 + brcm,function = <1>; /* output */
13091 + target = <&spi2>;
13092 + frag1: __overlay__ {
13093 + /* needed to avoid dtc warning */
13094 + #address-cells = <1>;
13095 + #size-cells = <0>;
13096 + pinctrl-names = "default";
13097 + pinctrl-0 = <&spi2_pins &spi2_cs_pins>;
13098 + cs-gpios = <&gpio 43 1>, <&gpio 44 1>, <&gpio 45 1>;
13101 + spidev2_0: spidev@0 {
13102 + compatible = "spidev";
13103 + reg = <0>; /* CE0 */
13104 + #address-cells = <1>;
13105 + #size-cells = <0>;
13106 + spi-max-frequency = <125000000>;
13110 + spidev2_1: spidev@1 {
13111 + compatible = "spidev";
13112 + reg = <1>; /* CE1 */
13113 + #address-cells = <1>;
13114 + #size-cells = <0>;
13115 + spi-max-frequency = <125000000>;
13119 + spidev2_2: spidev@2 {
13120 + compatible = "spidev";
13121 + reg = <2>; /* CE2 */
13122 + #address-cells = <1>;
13123 + #size-cells = <0>;
13124 + spi-max-frequency = <125000000>;
13138 + cs0_pin = <&spi2_cs_pins>,"brcm,pins:0",
13139 + <&frag1>,"cs-gpios:4";
13140 + cs1_pin = <&spi2_cs_pins>,"brcm,pins:4",
13141 + <&frag1>,"cs-gpios:16";
13142 + cs2_pin = <&spi2_cs_pins>,"brcm,pins:8",
13143 + <&frag1>,"cs-gpios:28";
13144 + cs0_spidev = <&spidev2_0>,"status";
13145 + cs1_spidev = <&spidev2_1>,"status";
13146 + cs2_spidev = <&spidev2_2>,"status";
13150 +++ b/arch/arm/boot/dts/overlays/superaudioboard-overlay.dts
13152 +// Definitions for SuperAudioBoard
13157 + compatible = "brcm,bcm2708";
13160 + target = <&sound>;
13162 + compatible = "simple-audio-card";
13163 + i2s-controller = <&i2s>;
13166 + simple-audio-card,name = "SuperAudioBoard";
13168 + simple-audio-card,widgets =
13169 + "Line", "Line In",
13170 + "Line", "Line Out";
13172 + simple-audio-card,routing =
13173 + "Line Out","AOUTA+",
13174 + "Line Out","AOUTA-",
13175 + "Line Out","AOUTB+",
13176 + "Line Out","AOUTB-",
13177 + "AINA","Line In",
13178 + "AINB","Line In";
13180 + simple-audio-card,format = "i2s";
13182 + simple-audio-card,bitclock-master = <&sound_master>;
13183 + simple-audio-card,frame-master = <&sound_master>;
13185 + simple-audio-card,cpu {
13186 + sound-dai = <&i2s>;
13187 + dai-tdm-slot-num = <2>;
13188 + dai-tdm-slot-width = <32>;
13191 + sound_master: simple-audio-card,codec {
13192 + sound-dai = <&cs4271>;
13193 + system-clock-frequency = <24576000>;
13206 + target = <&i2c1>;
13208 + #address-cells = <1>;
13209 + #size-cells = <0>;
13212 + cs4271: cs4271@10 {
13213 + #sound-dai-cells = <0>;
13214 + compatible = "cirrus,cs4271";
13217 + reset-gpio = <&gpio 26 0>; /* Pin 26, active high */
13222 + gpiopin = <&cs4271>,"reset-gpio:4";
13226 +++ b/arch/arm/boot/dts/overlays/sx150x-overlay.dts
13228 +// Definitions for SX150x I2C GPIO Expanders from Semtech
13231 +// sx150<x>-<n>-<m> - Enables SX150X device on I2C#<n> with slave address <m>. <x> may be 1-9.
13232 +// <n> may be 0 or 1. Permissible values of <m> (which is denoted in hex)
13233 +// depend on the device variant.
13234 +// For SX1501, SX1502, SX1504 and SX1505, <m> may be 20 or 21.
13235 +// For SX1503 and SX1506, <m> may be 20.
13236 +// For SX1507 and SX1509, <m> may be 3E, 3F, 70 or 71.
13237 +// For SX1508, <m> may be 20, 21, 22 or 23.
13238 +// sx150<x>-<n>-<m>-int-gpio - Integer, enables interrupts on SX150X device on I2C#<n> with slave address <m>,
13239 +// specifies the GPIO pin to which NINT output of SX150X is connected.
13242 +// Example 1: A single SX1505 device on I2C#1 with its slave address set to 0x20 and NINT output connected to GPIO25:
13243 +// dtoverlay=sx150x:sx1505-1-20,sx1505-1-20-int-gpio=25
13245 +// Example 2: Two SX1507 devices on I2C#0 with their slave addresses set to 0x3E and 0x70 (interrupts not used):
13246 +// dtoverlay=sx150x:sx1507-0-3E,sx1507-0-70
13252 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
13254 + // Enable I2C#0 interface
13256 + target = <&i2c0>;
13262 + // Enable I2C#1 interface
13264 + target = <&i2c1>;
13270 + // Enable a SX1501 on I2C#0 at slave addr 0x20
13272 + target = <&i2c0>;
13274 + #address-cells = <1>;
13275 + #size-cells = <0>;
13277 + sx1501_0_20: sx150x@20 {
13278 + compatible = "semtech,sx1501q";
13281 + #gpio-cells = <2>;
13282 + #interrupt-cells = <2>;
13283 + interrupts = <25 2>; /* 1st word overwritten by sx1501-0-20-int-gpio parameter
13284 + 2nd word is 2 for falling-edge triggered */
13290 + // Enable a SX1501 on I2C#1 at slave addr 0x20
13292 + target = <&i2c1>;
13294 + #address-cells = <1>;
13295 + #size-cells = <0>;
13297 + sx1501_1_20: sx150x@20 {
13298 + compatible = "semtech,sx1501q";
13301 + #gpio-cells = <2>;
13302 + #interrupt-cells = <2>;
13303 + interrupts = <25 2>; /* 1st word overwritten by sx1501-1-20-int-gpio parameter
13304 + 2nd word is 2 for falling-edge triggered */
13310 + // Enable a SX1501 on I2C#0 at slave addr 0x21
13312 + target = <&i2c0>;
13314 + #address-cells = <1>;
13315 + #size-cells = <0>;
13317 + sx1501_0_21: sx150x@21 {
13318 + compatible = "semtech,sx1501q";
13321 + #gpio-cells = <2>;
13322 + #interrupt-cells = <2>;
13323 + interrupts = <25 2>; /* 1st word overwritten by sx1501-0-21-int-gpio parameter
13324 + 2nd word is 2 for falling-edge triggered */
13330 + // Enable a SX1501 on I2C#1 at slave addr 0x21
13332 + target = <&i2c1>;
13334 + #address-cells = <1>;
13335 + #size-cells = <0>;
13337 + sx1501_1_21: sx150x@21 {
13338 + compatible = "semtech,sx1501q";
13341 + #gpio-cells = <2>;
13342 + #interrupt-cells = <2>;
13343 + interrupts = <25 2>; /* 1st word overwritten by sx1501-1-21-int-gpio parameter
13344 + 2nd word is 2 for falling-edge triggered */
13350 + // Enable a SX1502 on I2C#0 at slave addr 0x20
13352 + target = <&i2c0>;
13354 + #address-cells = <1>;
13355 + #size-cells = <0>;
13357 + sx1502_0_20: sx150x@20 {
13358 + compatible = "semtech,sx1502q";
13361 + #gpio-cells = <2>;
13362 + #interrupt-cells = <2>;
13363 + interrupts = <25 2>; /* 1st word overwritten by sx1502-0-20-int-gpio parameter
13364 + 2nd word is 2 for falling-edge triggered */
13370 + // Enable a SX1502 on I2C#1 at slave addr 0x20
13372 + target = <&i2c1>;
13374 + #address-cells = <1>;
13375 + #size-cells = <0>;
13377 + sx1502_1_20: sx150x@20 {
13378 + compatible = "semtech,sx1502q";
13381 + #gpio-cells = <2>;
13382 + #interrupt-cells = <2>;
13383 + interrupts = <25 2>; /* 1st word overwritten by sx1502-1-20-int-gpio parameter
13384 + 2nd word is 2 for falling-edge triggered */
13390 + // Enable a SX1502 on I2C#0 at slave addr 0x21
13392 + target = <&i2c0>;
13394 + #address-cells = <1>;
13395 + #size-cells = <0>;
13397 + sx1502_0_21: sx150x@21 {
13398 + compatible = "semtech,sx1502q";
13401 + #gpio-cells = <2>;
13402 + #interrupt-cells = <2>;
13403 + interrupts = <25 2>; /* 1st word overwritten by sx1502-0-21-int-gpio parameter
13404 + 2nd word is 2 for falling-edge triggered */
13410 + // Enable a SX1502 on I2C#1 at slave addr 0x21
13412 + target = <&i2c1>;
13414 + #address-cells = <1>;
13415 + #size-cells = <0>;
13417 + sx1502_1_21: sx150x@21 {
13418 + compatible = "semtech,sx1502q";
13421 + #gpio-cells = <2>;
13422 + #interrupt-cells = <2>;
13423 + interrupts = <25 2>; /* 1st word overwritten by sx1501-1-21-int-gpio parameter
13424 + 2nd word is 2 for falling-edge triggered */
13430 + // Enable a SX1503 on I2C#0 at slave addr 0x20
13432 + target = <&i2c0>;
13434 + #address-cells = <1>;
13435 + #size-cells = <0>;
13437 + sx1503_0_20: sx150x@20 {
13438 + compatible = "semtech,sx1503q";
13441 + #gpio-cells = <2>;
13442 + #interrupt-cells = <2>;
13443 + interrupts = <25 2>; /* 1st word overwritten by sx1503-0-20-int-gpio parameter
13444 + 2nd word is 2 for falling-edge triggered */
13450 + // Enable a SX1503 on I2C#1 at slave addr 0x20
13452 + target = <&i2c1>;
13454 + #address-cells = <1>;
13455 + #size-cells = <0>;
13457 + sx1503_1_20: sx150x@20 {
13458 + compatible = "semtech,sx1503q";
13461 + #gpio-cells = <2>;
13462 + #interrupt-cells = <2>;
13463 + interrupts = <25 2>; /* 1st word overwritten by sx1503-1-20-int-gpio parameter
13464 + 2nd word is 2 for falling-edge triggered */
13470 + // Enable a SX1504 on I2C#0 at slave addr 0x20
13472 + target = <&i2c0>;
13474 + #address-cells = <1>;
13475 + #size-cells = <0>;
13477 + sx1504_0_20: sx150x@20 {
13478 + compatible = "semtech,sx1504q";
13481 + #gpio-cells = <2>;
13482 + #interrupt-cells = <2>;
13483 + interrupts = <25 2>; /* 1st word overwritten by sx1504-0-20-int-gpio parameter
13484 + 2nd word is 2 for falling-edge triggered */
13490 + // Enable a SX1504 on I2C#1 at slave addr 0x20
13492 + target = <&i2c1>;
13494 + #address-cells = <1>;
13495 + #size-cells = <0>;
13497 + sx1504_1_20: sx150x@20 {
13498 + compatible = "semtech,sx1504q";
13501 + #gpio-cells = <2>;
13502 + #interrupt-cells = <2>;
13503 + interrupts = <25 2>; /* 1st word overwritten by sx1504-1-20-int-gpio parameter
13504 + 2nd word is 2 for falling-edge triggered */
13510 + // Enable a SX1504 on I2C#0 at slave addr 0x21
13512 + target = <&i2c0>;
13514 + #address-cells = <1>;
13515 + #size-cells = <0>;
13517 + sx1504_0_21: sx150x@21 {
13518 + compatible = "semtech,sx1504q";
13521 + #gpio-cells = <2>;
13522 + #interrupt-cells = <2>;
13523 + interrupts = <25 2>; /* 1st word overwritten by sx1504-0-21-int-gpio parameter
13524 + 2nd word is 2 for falling-edge triggered */
13530 + // Enable a SX1504 on I2C#1 at slave addr 0x21
13532 + target = <&i2c1>;
13534 + #address-cells = <1>;
13535 + #size-cells = <0>;
13537 + sx1504_1_21: sx150x@21 {
13538 + compatible = "semtech,sx1504q";
13541 + #gpio-cells = <2>;
13542 + #interrupt-cells = <2>;
13543 + interrupts = <25 2>; /* 1st word overwritten by sx1504-1-20-int-gpio parameter
13544 + 2nd word is 2 for falling-edge triggered */
13550 + // Enable a SX1505 on I2C#0 at slave addr 0x20
13552 + target = <&i2c0>;
13554 + #address-cells = <1>;
13555 + #size-cells = <0>;
13557 + sx1505_0_20: sx150x@20 {
13558 + compatible = "semtech,sx1505q";
13561 + #gpio-cells = <2>;
13562 + #interrupt-cells = <2>;
13563 + interrupts = <25 2>; /* 1st word overwritten by sx1505-0-20-int-gpio parameter
13564 + 2nd word is 2 for falling-edge triggered */
13570 + // Enable a SX1505 on I2C#1 at slave addr 0x20
13572 + target = <&i2c1>;
13574 + #address-cells = <1>;
13575 + #size-cells = <0>;
13577 + sx1505_1_20: sx150x@20 {
13578 + compatible = "semtech,sx1505q";
13581 + #gpio-cells = <2>;
13582 + #interrupt-cells = <2>;
13583 + interrupts = <25 2>; /* 1st word overwritten by sx1505-1-20-int-gpio parameter
13584 + 2nd word is 2 for falling-edge triggered */
13590 + // Enable a SX1505 on I2C#0 at slave addr 0x21
13592 + target = <&i2c0>;
13594 + #address-cells = <1>;
13595 + #size-cells = <0>;
13597 + sx1505_0_21: sx150x@21 {
13598 + compatible = "semtech,sx1505q";
13601 + #gpio-cells = <2>;
13602 + #interrupt-cells = <2>;
13603 + interrupts = <25 2>; /* 1st word overwritten by sx1505-0-21-int-gpio parameter
13604 + 2nd word is 2 for falling-edge triggered */
13610 + // Enable a SX1505 on I2C#1 at slave addr 0x21
13612 + target = <&i2c1>;
13614 + #address-cells = <1>;
13615 + #size-cells = <0>;
13617 + sx1505_1_21: sx150x@21 {
13618 + compatible = "semtech,sx1505q";
13621 + #gpio-cells = <2>;
13622 + #interrupt-cells = <2>;
13623 + interrupts = <25 2>; /* 1st word overwritten by sx1505-1-21-int-gpio parameter
13624 + 2nd word is 2 for falling-edge triggered */
13630 + // Enable a SX1506 on I2C#0 at slave addr 0x20
13632 + target = <&i2c0>;
13634 + #address-cells = <1>;
13635 + #size-cells = <0>;
13637 + sx1506_0_20: sx150x@20 {
13638 + compatible = "semtech,sx1506q";
13641 + #gpio-cells = <2>;
13642 + #interrupt-cells = <2>;
13643 + interrupts = <25 2>; /* 1st word overwritten by sx1506-0-20-int-gpio parameter
13644 + 2nd word is 2 for falling-edge triggered */
13650 + // Enable a SX1506 on I2C#1 at slave addr 0x20
13652 + target = <&i2c1>;
13654 + #address-cells = <1>;
13655 + #size-cells = <0>;
13657 + sx1506_1_20: sx150x@20 {
13658 + compatible = "semtech,sx1506q";
13661 + #gpio-cells = <2>;
13662 + #interrupt-cells = <2>;
13663 + interrupts = <25 2>; /* 1st word overwritten by sx1506-1-20-int-gpio parameter
13664 + 2nd word is 2 for falling-edge triggered */
13670 + // Enable a SX1507 on I2C#0 at slave addr 0x3E
13672 + target = <&i2c0>;
13674 + #address-cells = <1>;
13675 + #size-cells = <0>;
13677 + sx1507_0_3E: sx150x@3E {
13678 + compatible = "semtech,sx1507q";
13681 + #gpio-cells = <2>;
13682 + #interrupt-cells = <2>;
13683 + interrupts = <25 2>; /* 1st word overwritten by sx1507_0_3E-int-gpio parameter
13684 + 2nd word is 2 for falling-edge triggered */
13690 + // Enable a SX1507 on I2C#1 at slave addr 0x3E
13692 + target = <&i2c1>;
13694 + #address-cells = <1>;
13695 + #size-cells = <0>;
13697 + sx1507_1_3E: sx150x@3E {
13698 + compatible = "semtech,sx1507q";
13701 + #gpio-cells = <2>;
13702 + #interrupt-cells = <2>;
13703 + interrupts = <25 2>; /* 1st word overwritten by sx1507_1_3E-int-gpio parameter
13704 + 2nd word is 2 for falling-edge triggered */
13710 + // Enable a SX1507 on I2C#0 at slave addr 0x3F
13712 + target = <&i2c0>;
13714 + #address-cells = <1>;
13715 + #size-cells = <0>;
13717 + sx1507_0_3F: sx150x@3F {
13718 + compatible = "semtech,sx1507q";
13721 + #gpio-cells = <2>;
13722 + #interrupt-cells = <2>;
13723 + interrupts = <25 2>; /* 1st word overwritten by sx1507_0_3F-int-gpio parameter
13724 + 2nd word is 2 for falling-edge triggered */
13730 + // Enable a SX1507 on I2C#1 at slave addr 0x3F
13732 + target = <&i2c1>;
13734 + #address-cells = <1>;
13735 + #size-cells = <0>;
13737 + sx1507_1_3F: sx150x@3F {
13738 + compatible = "semtech,sx1507q";
13741 + #gpio-cells = <2>;
13742 + #interrupt-cells = <2>;
13743 + interrupts = <25 2>; /* 1st word overwritten by sx1507_1_3F-int-gpio parameter
13744 + 2nd word is 2 for falling-edge triggered */
13750 + // Enable a SX1507 on I2C#0 at slave addr 0x70
13752 + target = <&i2c0>;
13754 + #address-cells = <1>;
13755 + #size-cells = <0>;
13757 + sx1507_0_70: sx150x@70 {
13758 + compatible = "semtech,sx1507q";
13761 + #gpio-cells = <2>;
13762 + #interrupt-cells = <2>;
13763 + interrupts = <25 2>; /* 1st word overwritten by sx1507-0-70-int-gpio parameter
13764 + 2nd word is 2 for falling-edge triggered */
13770 + // Enable a SX1507 on I2C#1 at slave addr 0x70
13772 + target = <&i2c1>;
13774 + #address-cells = <1>;
13775 + #size-cells = <0>;
13777 + sx1507_1_70: sx150x@70 {
13778 + compatible = "semtech,sx1507q";
13781 + #gpio-cells = <2>;
13782 + #interrupt-cells = <2>;
13783 + interrupts = <25 2>; /* 1st word overwritten by sx1507-1-70-int-gpio parameter
13784 + 2nd word is 2 for falling-edge triggered */
13790 + // Enable a SX1507 on I2C#0 at slave addr 0x71
13792 + target = <&i2c0>;
13794 + #address-cells = <1>;
13795 + #size-cells = <0>;
13797 + sx1507_0_71: sx150x@71 {
13798 + compatible = "semtech,sx1507q";
13801 + #gpio-cells = <2>;
13802 + #interrupt-cells = <2>;
13803 + interrupts = <25 2>; /* 1st word overwritten by sx1507-0-71-int-gpio parameter
13804 + 2nd word is 2 for falling-edge triggered */
13810 + // Enable a SX1507 on I2C#1 at slave addr 0x71
13812 + target = <&i2c1>;
13814 + #address-cells = <1>;
13815 + #size-cells = <0>;
13817 + sx1507_1_71: sx150x@71 {
13818 + compatible = "semtech,sx1507q";
13821 + #gpio-cells = <2>;
13822 + #interrupt-cells = <2>;
13823 + interrupts = <25 2>; /* 1st word overwritten by sx1507-1-71-int-gpio parameter
13824 + 2nd word is 2 for falling-edge triggered */
13830 + // Enable a SX1508 on I2C#0 at slave addr 0x20
13832 + target = <&i2c0>;
13834 + #address-cells = <1>;
13835 + #size-cells = <0>;
13837 + sx1508_0_20: sx150x@20 {
13838 + compatible = "semtech,sx1508q";
13841 + #gpio-cells = <2>;
13842 + #interrupt-cells = <2>;
13843 + interrupts = <25 2>; /* 1st word overwritten by sx1508-0-20-int-gpio parameter
13844 + 2nd word is 2 for falling-edge triggered */
13850 + // Enable a SX1508 on I2C#1 at slave addr 0x20
13852 + target = <&i2c1>;
13854 + #address-cells = <1>;
13855 + #size-cells = <0>;
13857 + sx1508_1_20: sx150x@20 {
13858 + compatible = "semtech,sx1508q";
13861 + #gpio-cells = <2>;
13862 + #interrupt-cells = <2>;
13863 + interrupts = <25 2>; /* 1st word overwritten by sx1508-1-20-int-gpio parameter
13864 + 2nd word is 2 for falling-edge triggered */
13870 + // Enable a SX1508 on I2C#0 at slave addr 0x21
13872 + target = <&i2c0>;
13874 + #address-cells = <1>;
13875 + #size-cells = <0>;
13877 + sx1508_0_21: sx150x@21 {
13878 + compatible = "semtech,sx1508q";
13881 + #gpio-cells = <2>;
13882 + #interrupt-cells = <2>;
13883 + interrupts = <25 2>; /* 1st word overwritten by sx1508-0-21-int-gpio parameter
13884 + 2nd word is 2 for falling-edge triggered */
13890 + // Enable a SX1508 on I2C#1 at slave addr 0x21
13892 + target = <&i2c1>;
13894 + #address-cells = <1>;
13895 + #size-cells = <0>;
13897 + sx1508_1_21: sx150x@21 {
13898 + compatible = "semtech,sx1508q";
13901 + #gpio-cells = <2>;
13902 + #interrupt-cells = <2>;
13903 + interrupts = <25 2>; /* 1st word overwritten by sx1508-1-21-int-gpio parameter
13904 + 2nd word is 2 for falling-edge triggered */
13910 + // Enable a SX1508 on I2C#0 at slave addr 0x22
13912 + target = <&i2c0>;
13914 + #address-cells = <1>;
13915 + #size-cells = <0>;
13917 + sx1508_0_22: sx150x@22 {
13918 + compatible = "semtech,sx1508q";
13921 + #gpio-cells = <2>;
13922 + #interrupt-cells = <2>;
13923 + interrupts = <25 2>; /* 1st word overwritten by sx1508-0-22-int-gpio parameter
13924 + 2nd word is 2 for falling-edge triggered */
13930 + // Enable a SX1508 on I2C#1 at slave addr 0x22
13932 + target = <&i2c1>;
13934 + #address-cells = <1>;
13935 + #size-cells = <0>;
13937 + sx1508_1_22: sx150x@22 {
13938 + compatible = "semtech,sx1508q";
13941 + #gpio-cells = <2>;
13942 + #interrupt-cells = <2>;
13943 + interrupts = <25 2>; /* 1st word overwritten by sx1508-1-22-int-gpio parameter
13944 + 2nd word is 2 for falling-edge triggered */
13950 + // Enable a SX1508 on I2C#0 at slave addr 0x23
13952 + target = <&i2c0>;
13954 + #address-cells = <1>;
13955 + #size-cells = <0>;
13957 + sx1508_0_23: sx150x@23 {
13958 + compatible = "semtech,sx1508q";
13961 + #gpio-cells = <2>;
13962 + #interrupt-cells = <2>;
13963 + interrupts = <25 2>; /* 1st word overwritten by sx1508-0-23-int-gpio parameter
13964 + 2nd word is 2 for falling-edge triggered */
13970 + // Enable a SX1508 on I2C#1 at slave addr 0x23
13972 + target = <&i2c1>;
13974 + #address-cells = <1>;
13975 + #size-cells = <0>;
13977 + sx1508_1_23: sx150x@23 {
13978 + compatible = "semtech,sx1508q";
13981 + #gpio-cells = <2>;
13982 + #interrupt-cells = <2>;
13983 + interrupts = <25 2>; /* 1st word overwritten by sx1508-1-23-int-gpio parameter
13984 + 2nd word is 2 for falling-edge triggered */
13990 + // Enable a SX1509 on I2C#0 at slave addr 0x3E
13992 + target = <&i2c0>;
13994 + #address-cells = <1>;
13995 + #size-cells = <0>;
13997 + sx1509_0_3E: sx150x@3E {
13998 + compatible = "semtech,sx1509q";
14001 + #gpio-cells = <2>;
14002 + #interrupt-cells = <2>;
14003 + interrupts = <25 2>; /* 1st word overwritten by sx1509_0_3E-int-gpio parameter
14004 + 2nd word is 2 for falling-edge triggered */
14010 + // Enable a SX1509 on I2C#1 at slave addr 0x3E
14012 + target = <&i2c1>;
14014 + #address-cells = <1>;
14015 + #size-cells = <0>;
14017 + sx1509_1_3E: sx150x@3E {
14018 + compatible = "semtech,sx1509q";
14021 + #gpio-cells = <2>;
14022 + #interrupt-cells = <2>;
14023 + interrupts = <25 2>; /* 1st word overwritten by sx1509_1_3E-int-gpio parameter
14024 + 2nd word is 2 for falling-edge triggered */
14030 + // Enable a SX1509 on I2C#0 at slave addr 0x3F
14032 + target = <&i2c0>;
14034 + #address-cells = <1>;
14035 + #size-cells = <0>;
14037 + sx1509_0_3F: sx150x@3F {
14038 + compatible = "semtech,sx1509q";
14041 + #gpio-cells = <2>;
14042 + #interrupt-cells = <2>;
14043 + interrupts = <25 2>; /* 1st word overwritten by sx1509_0_3F-int-gpio parameter
14044 + 2nd word is 2 for falling-edge triggered */
14050 + // Enable a SX1509 on I2C#1 at slave addr 0x3F
14052 + target = <&i2c1>;
14054 + #address-cells = <1>;
14055 + #size-cells = <0>;
14057 + sx1509_1_3F: sx150x@3F {
14058 + compatible = "semtech,sx1509q";
14061 + #gpio-cells = <2>;
14062 + #interrupt-cells = <2>;
14063 + interrupts = <25 2>; /* 1st word overwritten by sx1509_1_3F-int-gpio parameter
14064 + 2nd word is 2 for falling-edge triggered */
14070 + // Enable a SX1509 on I2C#0 at slave addr 0x70
14072 + target = <&i2c0>;
14074 + #address-cells = <1>;
14075 + #size-cells = <0>;
14077 + sx1509_0_70: sx150x@70 {
14078 + compatible = "semtech,sx1509q";
14081 + #gpio-cells = <2>;
14082 + #interrupt-cells = <2>;
14083 + interrupts = <25 2>; /* 1st word overwritten by sx1509-0-70-int-gpio parameter
14084 + 2nd word is 2 for falling-edge triggered */
14090 + // Enable a SX1509 on I2C#1 at slave addr 0x70
14092 + target = <&i2c1>;
14094 + #address-cells = <1>;
14095 + #size-cells = <0>;
14097 + sx1509_1_70: sx150x@70 {
14098 + compatible = "semtech,sx1509q";
14101 + #gpio-cells = <2>;
14102 + #interrupt-cells = <2>;
14103 + interrupts = <25 2>; /* 1st word overwritten by sx1509-1-70-int-gpio parameter
14104 + 2nd word is 2 for falling-edge triggered */
14110 + // Enable a SX1509 on I2C#0 at slave addr 0x71
14112 + target = <&i2c0>;
14114 + #address-cells = <1>;
14115 + #size-cells = <0>;
14117 + sx1509_0_71: sx150x@71 {
14118 + compatible = "semtech,sx1509q";
14121 + #gpio-cells = <2>;
14122 + #interrupt-cells = <2>;
14123 + interrupts = <25 2>; /* 1st word overwritten by sx1509-0-71-int-gpio parameter
14124 + 2nd word is 2 for falling-edge triggered */
14130 + // Enable a SX1509 on I2C#1 at slave addr 0x71
14132 + target = <&i2c1>;
14134 + #address-cells = <1>;
14135 + #size-cells = <0>;
14137 + sx1509_1_71: sx150x@71 {
14138 + compatible = "semtech,sx1509q";
14141 + #gpio-cells = <2>;
14142 + #interrupt-cells = <2>;
14143 + interrupts = <25 2>; /* 1st word overwritten by sx1509-1-71-int-gpio parameter
14144 + 2nd word is 2 for falling-edge triggered */
14150 + // Enable interrupts for a SX1501 on I2C#0 at slave addr 0x20
14152 + target = <&sx1501_0_20>;
14154 + interrupt-parent = <&gpio>;
14155 + interrupt-controller;
14156 + pinctrl-names = "default";
14157 + pinctrl-0 = <&sx150x_0_20_pins>;
14161 + // Enable interrupts for a SX1501 on I2C#1 at slave addr 0x20
14163 + target = <&sx1501_1_20>;
14165 + interrupt-parent = <&gpio>;
14166 + interrupt-controller;
14167 + pinctrl-names = "default";
14168 + pinctrl-0 = <&sx150x_1_20_pins>;
14172 + // Enable interrupts for a SX1501 on I2C#0 at slave addr 0x21
14174 + target = <&sx1501_0_21>;
14176 + interrupt-parent = <&gpio>;
14177 + interrupt-controller;
14178 + pinctrl-names = "default";
14179 + pinctrl-0 = <&sx150x_0_21_pins>;
14183 + // Enable interrupts for a SX1501 on I2C#1 at slave addr 0x21
14185 + target = <&sx1501_1_21>;
14187 + interrupt-parent = <&gpio>;
14188 + interrupt-controller;
14189 + pinctrl-names = "default";
14190 + pinctrl-0 = <&sx150x_1_21_pins>;
14194 + // Enable interrupts for a SX1502 on I2C#0 at slave addr 0x20
14196 + target = <&sx1502_0_20>;
14198 + interrupt-parent = <&gpio>;
14199 + interrupt-controller;
14200 + pinctrl-names = "default";
14201 + pinctrl-0 = <&sx150x_0_20_pins>;
14205 + // Enable interrupts for a SX1502 on I2C#1 at slave addr 0x20
14207 + target = <&sx1502_1_20>;
14209 + interrupt-parent = <&gpio>;
14210 + interrupt-controller;
14211 + pinctrl-names = "default";
14212 + pinctrl-0 = <&sx150x_1_20_pins>;
14216 + // Enable interrupts for a SX1502 on I2C#0 at slave addr 0x21
14218 + target = <&sx1502_0_21>;
14220 + interrupt-parent = <&gpio>;
14221 + interrupt-controller;
14222 + pinctrl-names = "default";
14223 + pinctrl-0 = <&sx150x_0_21_pins>;
14227 + // Enable interrupts for a SX1502 on I2C#1 at slave addr 0x21
14229 + target = <&sx1502_1_21>;
14231 + interrupt-parent = <&gpio>;
14232 + interrupt-controller;
14233 + pinctrl-names = "default";
14234 + pinctrl-0 = <&sx150x_1_21_pins>;
14238 + // Enable interrupts for a SX1503 on I2C#0 at slave addr 0x20
14240 + target = <&sx1503_0_20>;
14242 + interrupt-parent = <&gpio>;
14243 + interrupt-controller;
14244 + pinctrl-names = "default";
14245 + pinctrl-0 = <&sx150x_0_20_pins>;
14249 + // Enable interrupts for a SX1503 on I2C#1 at slave addr 0x20
14251 + target = <&sx1503_1_20>;
14253 + interrupt-parent = <&gpio>;
14254 + interrupt-controller;
14255 + pinctrl-names = "default";
14256 + pinctrl-0 = <&sx150x_1_20_pins>;
14260 + // Enable interrupts for a SX1504 on I2C#0 at slave addr 0x20
14262 + target = <&sx1504_0_20>;
14264 + interrupt-parent = <&gpio>;
14265 + interrupt-controller;
14266 + pinctrl-names = "default";
14267 + pinctrl-0 = <&sx150x_0_20_pins>;
14271 + // Enable interrupts for a SX1504 on I2C#1 at slave addr 0x20
14273 + target = <&sx1504_1_20>;
14275 + interrupt-parent = <&gpio>;
14276 + interrupt-controller;
14277 + pinctrl-names = "default";
14278 + pinctrl-0 = <&sx150x_1_20_pins>;
14282 + // Enable interrupts for a SX1504 on I2C#0 at slave addr 0x21
14284 + target = <&sx1504_0_21>;
14286 + interrupt-parent = <&gpio>;
14287 + interrupt-controller;
14288 + pinctrl-names = "default";
14289 + pinctrl-0 = <&sx150x_0_21_pins>;
14293 + // Enable interrupts for a SX1504 on I2C#1 at slave addr 0x21
14295 + target = <&sx1504_1_21>;
14297 + interrupt-parent = <&gpio>;
14298 + interrupt-controller;
14299 + pinctrl-names = "default";
14300 + pinctrl-0 = <&sx150x_1_21_pins>;
14304 + // Enable interrupts for a SX1505 on I2C#0 at slave addr 0x20
14306 + target = <&sx1505_0_20>;
14308 + interrupt-parent = <&gpio>;
14309 + interrupt-controller;
14310 + pinctrl-names = "default";
14311 + pinctrl-0 = <&sx150x_0_20_pins>;
14315 + // Enable interrupts for a SX1505 on I2C#1 at slave addr 0x20
14317 + target = <&sx1505_1_20>;
14319 + interrupt-parent = <&gpio>;
14320 + interrupt-controller;
14321 + pinctrl-names = "default";
14322 + pinctrl-0 = <&sx150x_1_20_pins>;
14326 + // Enable interrupts for a SX1505 on I2C#0 at slave addr 0x21
14328 + target = <&sx1505_0_21>;
14330 + interrupt-parent = <&gpio>;
14331 + interrupt-controller;
14332 + pinctrl-names = "default";
14333 + pinctrl-0 = <&sx150x_0_21_pins>;
14337 + // Enable interrupts for a SX1505 on I2C#1 at slave addr 0x21
14339 + target = <&sx1505_1_21>;
14341 + interrupt-parent = <&gpio>;
14342 + interrupt-controller;
14343 + pinctrl-names = "default";
14344 + pinctrl-0 = <&sx150x_1_21_pins>;
14348 + // Enable interrupts for a SX1506 on I2C#0 at slave addr 0x20
14350 + target = <&sx1506_0_20>;
14352 + interrupt-parent = <&gpio>;
14353 + interrupt-controller;
14354 + pinctrl-names = "default";
14355 + pinctrl-0 = <&sx150x_0_20_pins>;
14359 + // Enable interrupts for a SX1506 on I2C#1 at slave addr 0x20
14361 + target = <&sx1506_1_20>;
14363 + interrupt-parent = <&gpio>;
14364 + interrupt-controller;
14365 + pinctrl-names = "default";
14366 + pinctrl-0 = <&sx150x_1_20_pins>;
14370 + // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x3E
14372 + target = <&sx1507_0_3E>;
14374 + interrupt-parent = <&gpio>;
14375 + interrupt-controller;
14376 + pinctrl-names = "default";
14377 + pinctrl-0 = <&sx150x_0_3E_pins>;
14381 + // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x3E
14383 + target = <&sx1507_1_3E>;
14385 + interrupt-parent = <&gpio>;
14386 + interrupt-controller;
14387 + pinctrl-names = "default";
14388 + pinctrl-0 = <&sx150x_1_3E_pins>;
14392 + // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x3F
14394 + target = <&sx1507_0_3F>;
14396 + interrupt-parent = <&gpio>;
14397 + interrupt-controller;
14398 + pinctrl-names = "default";
14399 + pinctrl-0 = <&sx150x_0_3F_pins>;
14403 + // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x3F
14405 + target = <&sx1507_1_3F>;
14407 + interrupt-parent = <&gpio>;
14408 + interrupt-controller;
14409 + pinctrl-names = "default";
14410 + pinctrl-0 = <&sx150x_1_3F_pins>;
14414 + // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x70
14416 + target = <&sx1507_0_70>;
14418 + interrupt-parent = <&gpio>;
14419 + interrupt-controller;
14420 + pinctrl-names = "default";
14421 + pinctrl-0 = <&sx150x_1_70_pins>;
14425 + // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x70
14427 + target = <&sx1507_1_70>;
14429 + interrupt-parent = <&gpio>;
14430 + interrupt-controller;
14431 + pinctrl-names = "default";
14432 + pinctrl-0 = <&sx150x_1_70_pins>;
14436 + // Enable interrupts for a SX1507 on I2C#0 at slave addr 0x71
14438 + target = <&sx1507_0_71>;
14440 + interrupt-parent = <&gpio>;
14441 + interrupt-controller;
14442 + pinctrl-names = "default";
14443 + pinctrl-0 = <&sx150x_0_71_pins>;
14447 + // Enable interrupts for a SX1507 on I2C#1 at slave addr 0x71
14449 + target = <&sx1507_1_71>;
14451 + interrupt-parent = <&gpio>;
14452 + interrupt-controller;
14453 + pinctrl-names = "default";
14454 + pinctrl-0 = <&sx150x_1_71_pins>;
14458 + // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x20
14460 + target = <&sx1508_0_20>;
14462 + interrupt-parent = <&gpio>;
14463 + interrupt-controller;
14464 + pinctrl-names = "default";
14465 + pinctrl-0 = <&sx150x_0_20_pins>;
14469 + // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x20
14471 + target = <&sx1508_1_20>;
14473 + interrupt-parent = <&gpio>;
14474 + interrupt-controller;
14475 + pinctrl-names = "default";
14476 + pinctrl-0 = <&sx150x_1_20_pins>;
14480 + // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x21
14482 + target = <&sx1508_0_21>;
14484 + interrupt-parent = <&gpio>;
14485 + interrupt-controller;
14486 + pinctrl-names = "default";
14487 + pinctrl-0 = <&sx150x_0_21_pins>;
14491 + // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x21
14493 + target = <&sx1508_1_21>;
14495 + interrupt-parent = <&gpio>;
14496 + interrupt-controller;
14497 + pinctrl-names = "default";
14498 + pinctrl-0 = <&sx150x_1_21_pins>;
14502 + // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x22
14504 + target = <&sx1508_0_22>;
14506 + interrupt-parent = <&gpio>;
14507 + interrupt-controller;
14508 + pinctrl-names = "default";
14509 + pinctrl-0 = <&sx150x_0_22_pins>;
14513 + // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x22
14515 + target = <&sx1508_1_22>;
14517 + interrupt-parent = <&gpio>;
14518 + interrupt-controller;
14519 + pinctrl-names = "default";
14520 + pinctrl-0 = <&sx150x_1_22_pins>;
14524 + // Enable interrupts for a SX1508 on I2C#0 at slave addr 0x23
14526 + target = <&sx1508_0_23>;
14528 + interrupt-parent = <&gpio>;
14529 + interrupt-controller;
14530 + pinctrl-names = "default";
14531 + pinctrl-0 = <&sx150x_0_23_pins>;
14535 + // Enable interrupts for a SX1508 on I2C#1 at slave addr 0x23
14537 + target = <&sx1508_1_23>;
14539 + interrupt-parent = <&gpio>;
14540 + interrupt-controller;
14541 + pinctrl-names = "default";
14542 + pinctrl-0 = <&sx150x_1_23_pins>;
14546 + // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x3E
14548 + target = <&sx1509_0_3E>;
14550 + interrupt-parent = <&gpio>;
14551 + interrupt-controller;
14552 + pinctrl-names = "default";
14553 + pinctrl-0 = <&sx150x_0_3E_pins>;
14557 + // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x3E
14559 + target = <&sx1509_1_3E>;
14561 + interrupt-parent = <&gpio>;
14562 + interrupt-controller;
14563 + pinctrl-names = "default";
14564 + pinctrl-0 = <&sx150x_1_3E_pins>;
14568 + // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x3F
14570 + target = <&sx1509_0_3F>;
14572 + interrupt-parent = <&gpio>;
14573 + interrupt-controller;
14574 + pinctrl-names = "default";
14575 + pinctrl-0 = <&sx150x_0_3F_pins>;
14579 + // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x3F
14581 + target = <&sx1509_1_3F>;
14583 + interrupt-parent = <&gpio>;
14584 + interrupt-controller;
14585 + pinctrl-names = "default";
14586 + pinctrl-0 = <&sx150x_1_3F_pins>;
14590 + // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x70
14592 + target = <&sx1509_0_70>;
14594 + interrupt-parent = <&gpio>;
14595 + interrupt-controller;
14596 + pinctrl-names = "default";
14597 + pinctrl-0 = <&sx150x_0_70_pins>;
14601 + // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x70
14603 + target = <&sx1509_1_70>;
14605 + interrupt-parent = <&gpio>;
14606 + interrupt-controller;
14607 + pinctrl-names = "default";
14608 + pinctrl-0 = <&sx150x_1_70_pins>;
14612 + // Enable interrupts for a SX1509 on I2C#0 at slave addr 0x71
14614 + target = <&sx1509_0_71>;
14616 + interrupt-parent = <&gpio>;
14617 + interrupt-controller;
14618 + pinctrl-names = "default";
14619 + pinctrl-0 = <&sx150x_0_71_pins>;
14623 + // Enable interrupts for a SX1509 on I2C#1 at slave addr 0x71
14625 + target = <&sx1509_1_71>;
14627 + interrupt-parent = <&gpio>;
14628 + interrupt-controller;
14629 + pinctrl-names = "default";
14630 + pinctrl-0 = <&sx150x_1_71_pins>;
14634 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x20
14635 + // Configure as a input with no pull-up/down
14637 + target = <&gpio>;
14639 + sx150x_0_20_pins: sx150x_0_20_pins {
14640 + brcm,pins = <0>; /* overwritten by sx150x-0-20-int-gpio parameter */
14641 + brcm,function = <0>;
14647 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x20
14648 + // Configure as a input with no pull-up/down
14650 + target = <&gpio>;
14652 + sx150x_1_20_pins: sx150x_1_20_pins {
14653 + brcm,pins = <0>; /* overwritten by sx150x-1-20-int-gpio parameter */
14654 + brcm,function = <0>;
14660 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x21
14661 + // Configure as a input with no pull-up/down
14663 + target = <&gpio>;
14665 + sx150x_0_21_pins: sx150x_0_21_pins {
14666 + brcm,pins = <0>; /* overwritten by sx150x-0-21-int-gpio parameter */
14667 + brcm,function = <0>;
14673 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x21
14674 + // Configure as a input with no pull-up/down
14676 + target = <&gpio>;
14678 + sx150x_1_21_pins: sx150x_1_21_pins {
14679 + brcm,pins = <0>; /* overwritten by sx150x-1-21-int-gpio parameter */
14680 + brcm,function = <0>;
14686 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x22
14687 + // Configure as a input with no pull-up/down
14689 + target = <&gpio>;
14691 + sx150x_0_22_pins: sx150x_0_22_pins {
14692 + brcm,pins = <0>; /* overwritten by sx150x-0-22-int-gpio parameter */
14693 + brcm,function = <0>;
14699 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x22
14700 + // Configure as a input with no pull-up/down
14702 + target = <&gpio>;
14704 + sx150x_1_22_pins: sx150x_1_22_pins {
14705 + brcm,pins = <0>; /* overwritten by sx150x-1-22-int-gpio parameter */
14706 + brcm,function = <0>;
14712 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x23
14713 + // Configure as a input with no pull-up/down
14715 + target = <&gpio>;
14717 + sx150x_0_23_pins: sx150x_0_23_pins {
14718 + brcm,pins = <0>; /* overwritten by sx150x-0-23-int-gpio parameter */
14719 + brcm,function = <0>;
14725 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x23
14726 + // Configure as a input with no pull-up/down
14728 + target = <&gpio>;
14730 + sx150x_1_23_pins: sx150x_1_23_pins {
14731 + brcm,pins = <0>; /* overwritten by sx150x-1-23-int-gpio parameter */
14732 + brcm,function = <0>;
14738 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x3E
14739 + // Configure as a input with no pull-up/down
14741 + target = <&gpio>;
14743 + sx150x_0_3E_pins: sx150x_0_3E_pins {
14744 + brcm,pins = <0>; /* overwritten by sx150x-0-3E-int-gpio parameter */
14745 + brcm,function = <0>;
14751 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x3E
14752 + // Configure as a input with no pull-up/down
14754 + target = <&gpio>;
14756 + sx150x_1_3E_pins: sx150x_1_3E_pins {
14757 + brcm,pins = <0>; /* overwritten by sx150x-1-3E-int-gpio parameter */
14758 + brcm,function = <0>;
14764 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x3F
14765 + // Configure as a input with no pull-up/down
14767 + target = <&gpio>;
14769 + sx150x_0_3F_pins: sx150x_0_3F_pins {
14770 + brcm,pins = <0>; /* overwritten by sx150x-0-3F-int-gpio parameter */
14771 + brcm,function = <0>;
14777 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x3F
14778 + // Configure as a input with no pull-up/down
14780 + target = <&gpio>;
14782 + sx150x_1_3F_pins: sx150x_1_3F_pins {
14783 + brcm,pins = <0>; /* overwritten by sx150x-1-3F-int-gpio parameter */
14784 + brcm,function = <0>;
14790 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x70
14791 + // Configure as a input with no pull-up/down
14793 + target = <&gpio>;
14795 + sx150x_0_70_pins: sx150x_0_70_pins {
14796 + brcm,pins = <0>; /* overwritten by sx150x-0-70-int-gpio parameter */
14797 + brcm,function = <0>;
14803 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x70
14804 + // Configure as a input with no pull-up/down
14806 + target = <&gpio>;
14808 + sx150x_1_70_pins: sx150x_1_70_pins {
14809 + brcm,pins = <0>; /* overwritten by sx150x-1-70-int-gpio parameter */
14810 + brcm,function = <0>;
14816 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#0 interface at slave addr 0x71
14817 + // Configure as a input with no pull-up/down
14819 + target = <&gpio>;
14821 + sx150x_0_71_pins: sx150x_0_71_pins {
14822 + brcm,pins = <0>; /* overwritten by sx150x-0-71-int-gpio parameter */
14823 + brcm,function = <0>;
14829 + // Configure GPIO pin connected to NINT output of a SX150x on I2C#1 interface at slave addr 0x71
14830 + // Configure as a input with no pull-up/down
14832 + target = <&gpio>;
14834 + sx150x_1_71_pins: sx150x_1_71_pins {
14835 + brcm,pins = <0>; /* overwritten by sx150x-1-71-int-gpio parameter */
14836 + brcm,function = <0>;
14843 + sx1501-0-20 = <0>,"+0+2";
14844 + sx1501-1-20 = <0>,"+1+3";
14845 + sx1501-0-21 = <0>,"+0+4";
14846 + sx1501-1-21 = <0>,"+1+5";
14847 + sx1502-0-20 = <0>,"+0+6";
14848 + sx1502-1-20 = <0>,"+1+7";
14849 + sx1502-0-21 = <0>,"+0+8";
14850 + sx1502-1-21 = <0>,"+1+9";
14851 + sx1503-0-20 = <0>,"+0+10";
14852 + sx1503-1-20 = <0>,"+1+11";
14853 + sx1504-0-20 = <0>,"+0+12";
14854 + sx1504-1-20 = <0>,"+1+13";
14855 + sx1504-0-21 = <0>,"+0+14";
14856 + sx1504-1-21 = <0>,"+1+15";
14857 + sx1505-0-20 = <0>,"+0+16";
14858 + sx1505-1-20 = <0>,"+1+17";
14859 + sx1505-0-21 = <0>,"+0+18";
14860 + sx1505-1-21 = <0>,"+1+19";
14861 + sx1506-0-20 = <0>,"+0+20";
14862 + sx1506-1-20 = <0>,"+1+21";
14863 + sx1507-0-3E = <0>,"+0+22";
14864 + sx1507-1-3E = <0>,"+1+23";
14865 + sx1507-0-3F = <0>,"+0+24";
14866 + sx1507-1-3F = <0>,"+1+25";
14867 + sx1507-0-70 = <0>,"+0+26";
14868 + sx1507-1-70 = <0>,"+1+27";
14869 + sx1507-0-71 = <0>,"+0+28";
14870 + sx1507-1-71 = <0>,"+1+29";
14871 + sx1508-0-20 = <0>,"+0+30";
14872 + sx1508-1-20 = <0>,"+1+31";
14873 + sx1508-0-21 = <0>,"+0+32";
14874 + sx1508-1-21 = <0>,"+1+33";
14875 + sx1508-0-22 = <0>,"+0+34";
14876 + sx1508-1-22 = <0>,"+1+35";
14877 + sx1508-0-23 = <0>,"+0+36";
14878 + sx1508-1-23 = <0>,"+1+37";
14879 + sx1509-0-3E = <0>,"+0+38";
14880 + sx1509-1-3E = <0>,"+1+39";
14881 + sx1509-0-3F = <0>,"+0+40";
14882 + sx1509-1-3F = <0>,"+1+41";
14883 + sx1509-0-70 = <0>,"+0+42";
14884 + sx1509-1-70 = <0>,"+1+43";
14885 + sx1509-0-71 = <0>,"+0+44";
14886 + sx1509-1-71 = <0>,"+1+45";
14887 + sx1501-0-20-int-gpio = <0>,"+46+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1501_0_20>,"interrupts:0";
14888 + sx1501-1-20-int-gpio = <0>,"+47+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1501_1_20>,"interrupts:0";
14889 + sx1501-0-21-int-gpio = <0>,"+48+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1501_0_21>,"interrupts:0";
14890 + sx1501-1-21-int-gpio = <0>,"+49+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1501_1_21>,"interrupts:0";
14891 + sx1502-0-20-int-gpio = <0>,"+50+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1502_0_20>,"interrupts:0";
14892 + sx1502-1-20-int-gpio = <0>,"+51+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1502_1_20>,"interrupts:0";
14893 + sx1502-0-21-int-gpio = <0>,"+52+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1502_0_21>,"interrupts:0";
14894 + sx1502-1-21-int-gpio = <0>,"+53+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1502_1_21>,"interrupts:0";
14895 + sx1503-0-20-int-gpio = <0>,"+54+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1503_0_20>,"interrupts:0";
14896 + sx1503-1-20-int-gpio = <0>,"+55+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1503_1_20>,"interrupts:0";
14897 + sx1504-0-20-int-gpio = <0>,"+56+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1504_0_20>,"interrupts:0";
14898 + sx1504-1-20-int-gpio = <0>,"+57+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1504_1_20>,"interrupts:0";
14899 + sx1504-0-21-int-gpio = <0>,"+58+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1504_0_21>,"interrupts:0";
14900 + sx1504-1-21-int-gpio = <0>,"+59+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1504_1_21>,"interrupts:0";
14901 + sx1505-0-20-int-gpio = <0>,"+60+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1505_0_20>,"interrupts:0";
14902 + sx1505-1-20-int-gpio = <0>,"+61+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1505_1_20>,"interrupts:0";
14903 + sx1505-0-21-int-gpio = <0>,"+62+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1505_0_21>,"interrupts:0";
14904 + sx1505-1-21-int-gpio = <0>,"+63+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1505_1_21>,"interrupts:0";
14905 + sx1506-0-20-int-gpio = <0>,"+64+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1506_0_20>,"interrupts:0";
14906 + sx1506-1-20-int-gpio = <0>,"+65+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1506_1_20>,"interrupts:0";
14907 + sx1507-0-3E-int-gpio = <0>,"+66+98", <&sx150x_0_3E_pins>,"brcm,pins:0", <&sx1507_0_3E>,"interrupts:0";
14908 + sx1507-1-3E-int-gpio = <0>,"+67+99", <&sx150x_1_3E_pins>,"brcm,pins:0", <&sx1507_1_3E>,"interrupts:0";
14909 + sx1507-0-3F-int-gpio = <0>,"+68+100", <&sx150x_0_3F_pins>,"brcm,pins:0", <&sx1507_0_3F>,"interrupts:0";
14910 + sx1507-1-3F-int-gpio = <0>,"+69+101", <&sx150x_1_3F_pins>,"brcm,pins:0", <&sx1507_1_3F>,"interrupts:0";
14911 + sx1507-0-70-int-gpio = <0>,"+60+102", <&sx150x_0_70_pins>,"brcm,pins:0", <&sx1507_0_70>,"interrupts:0";
14912 + sx1507-1-70-int-gpio = <0>,"+71+103", <&sx150x_1_70_pins>,"brcm,pins:0", <&sx1507_1_70>,"interrupts:0";
14913 + sx1507-0-71-int-gpio = <0>,"+72+104", <&sx150x_0_71_pins>,"brcm,pins:0", <&sx1507_0_71>,"interrupts:0";
14914 + sx1507-1-71-int-gpio = <0>,"+73+105", <&sx150x_1_71_pins>,"brcm,pins:0", <&sx1507_1_71>,"interrupts:0";
14915 + sx1508-0-20-int-gpio = <0>,"+74+90", <&sx150x_0_20_pins>,"brcm,pins:0", <&sx1508_0_20>,"interrupts:0";
14916 + sx1508-1-20-int-gpio = <0>,"+75+91", <&sx150x_1_20_pins>,"brcm,pins:0", <&sx1508_1_20>,"interrupts:0";
14917 + sx1508-0-21-int-gpio = <0>,"+76+92", <&sx150x_0_21_pins>,"brcm,pins:0", <&sx1508_0_21>,"interrupts:0";
14918 + sx1508-1-21-int-gpio = <0>,"+77+93", <&sx150x_1_21_pins>,"brcm,pins:0", <&sx1508_1_21>,"interrupts:0";
14919 + sx1508-0-22-int-gpio = <0>,"+78+94", <&sx150x_0_22_pins>,"brcm,pins:0", <&sx1508_0_22>,"interrupts:0";
14920 + sx1508-1-22-int-gpio = <0>,"+79+95", <&sx150x_1_22_pins>,"brcm,pins:0", <&sx1508_1_22>,"interrupts:0";
14921 + sx1508-0-23-int-gpio = <0>,"+80+96", <&sx150x_0_23_pins>,"brcm,pins:0", <&sx1508_0_23>,"interrupts:0";
14922 + sx1508-1-23-int-gpio = <0>,"+81+97", <&sx150x_1_23_pins>,"brcm,pins:0", <&sx1508_1_23>,"interrupts:0";
14923 + sx1509-0-3E-int-gpio = <0>,"+82+98", <&sx150x_0_3E_pins>,"brcm,pins:0", <&sx1509_0_3E>,"interrupts:0";
14924 + sx1509-1-3E-int-gpio = <0>,"+83+99", <&sx150x_1_3E_pins>,"brcm,pins:0", <&sx1509_1_3E>,"interrupts:0";
14925 + sx1509-0-3F-int-gpio = <0>,"+84+100", <&sx150x_0_3F_pins>,"brcm,pins:0", <&sx1509_0_3F>,"interrupts:0";
14926 + sx1509-1-3F-int-gpio = <0>,"+85+101", <&sx150x_1_3F_pins>,"brcm,pins:0", <&sx1509_1_3F>,"interrupts:0";
14927 + sx1509-0-70-int-gpio = <0>,"+86+102", <&sx150x_0_70_pins>,"brcm,pins:0", <&sx1509_0_70>,"interrupts:0";
14928 + sx1509-1-70-int-gpio = <0>,"+87+103", <&sx150x_1_70_pins>,"brcm,pins:0", <&sx1509_1_70>,"interrupts:0";
14929 + sx1509-0-71-int-gpio = <0>,"+88+104", <&sx150x_0_71_pins>,"brcm,pins:0", <&sx1509_0_71>,"interrupts:0";
14930 + sx1509-1-71-int-gpio = <0>,"+89+105", <&sx150x_1_71_pins>,"brcm,pins:0", <&sx1509_1_71>,"interrupts:0";
14935 +++ b/arch/arm/boot/dts/overlays/tinylcd35-overlay.dts
14938 + * tinylcd35-overlay.dts
14940 + * -------------------------------------------------
14941 + * www.tinlylcd.com
14942 + * -------------------------------------------------
14943 + * Device---Driver-----BUS GPIO's
14944 + * display tinylcd35 spi0.0 25 24 18
14945 + * touch ads7846 spi0.1 5
14946 + * rtc ds1307 i2c1-0068
14947 + * rtc pcf8563 i2c1-0051
14948 + * keypad gpio-keys --------- 17 22 27 23 28
14951 + * TinyLCD.com 3.5 inch TFT
14954 + * 5/3/2015 -- Noralf Trønnes Initial Device tree framework
14955 + * 10/3/2015 -- tinylcd@gmail.com added ds1307 support.
14963 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
14966 + target = <&spi0>;
14973 + target = <&spidev0>;
14975 + status = "disabled";
14980 + target = <&spidev1>;
14982 + status = "disabled";
14987 + target = <&gpio>;
14989 + tinylcd35_pins: tinylcd35_pins {
14990 + brcm,pins = <25 24 18>;
14991 + brcm,function = <1>; /* out */
14993 + tinylcd35_ts_pins: tinylcd35_ts_pins {
14995 + brcm,function = <0>; /* in */
14997 + keypad_pins: keypad_pins {
14998 + brcm,pins = <4 17 22 23 27>;
14999 + brcm,function = <0>; /* in */
15000 + brcm,pull = <1>; /* down */
15006 + target = <&spi0>;
15008 + /* needed to avoid dtc warning */
15009 + #address-cells = <1>;
15010 + #size-cells = <0>;
15012 + tinylcd35: tinylcd35@0{
15013 + compatible = "neosec,tinylcd";
15015 + pinctrl-names = "default";
15016 + pinctrl-0 = <&tinylcd35_pins>,
15017 + <&tinylcd35_ts_pins>;
15019 + spi-max-frequency = <48000000>;
15024 + reset-gpios = <&gpio 25 0>;
15025 + dc-gpios = <&gpio 24 0>;
15026 + led-gpios = <&gpio 18 1>;
15029 + init = <0x10000B0 0x80
15030 + 0x10000C0 0x0A 0x0A
15031 + 0x10000C1 0x01 0x01
15033 + 0x10000C5 0x00 0x42 0x80
15034 + 0x10000B1 0xD0 0x11
15036 + 0x10000B6 0x00 0x22 0x3B
15039 + 0x10000F0 0x36 0xA5 0xD3
15044 + 0x10000F0 0x36 0xA5 0x53
15045 + 0x10000E0 0x00 0x35 0x33 0x00 0x00 0x00 0x00 0x35 0x33 0x00 0x00 0x00
15052 + tinylcd35_ts: tinylcd35_ts@1 {
15053 + compatible = "ti,ads7846";
15055 + status = "disabled";
15057 + spi-max-frequency = <2000000>;
15058 + interrupts = <5 2>; /* high-to-low edge triggered */
15059 + interrupt-parent = <&gpio>;
15060 + pendown-gpio = <&gpio 5 0>;
15061 + ti,x-plate-ohms = /bits/ 16 <100>;
15062 + ti,pressure-max = /bits/ 16 <255>;
15070 + target = <&i2c1>;
15072 + #address-cells = <1>;
15073 + #size-cells = <0>;
15077 + pcf8563: pcf8563@51 {
15078 + compatible = "nxp,pcf8563";
15086 + target = <&i2c1>;
15088 + #address-cells = <1>;
15089 + #size-cells = <0>;
15093 + ds1307: ds1307@68 {
15094 + compatible = "maxim,ds1307";
15102 + * Values for input event code is found under the
15103 + * 'Keys and buttons' heading in include/uapi/linux/input.h
15106 + target-path = "/soc";
15109 + compatible = "gpio-keys";
15110 + #address-cells = <1>;
15111 + #size-cells = <0>;
15112 + pinctrl-names = "default";
15113 + pinctrl-0 = <&keypad_pins>;
15114 + status = "disabled";
15118 + label = "GPIO KEY_UP";
15119 + linux,code = <103>;
15120 + gpios = <&gpio 17 0>;
15123 + label = "GPIO KEY_DOWN";
15124 + linux,code = <108>;
15125 + gpios = <&gpio 22 0>;
15128 + label = "GPIO KEY_LEFT";
15129 + linux,code = <105>;
15130 + gpios = <&gpio 27 0>;
15133 + label = "GPIO KEY_RIGHT";
15134 + linux,code = <106>;
15135 + gpios = <&gpio 23 0>;
15138 + label = "GPIO KEY_ENTER";
15139 + linux,code = <28>;
15140 + gpios = <&gpio 4 0>;
15147 + speed = <&tinylcd35>,"spi-max-frequency:0";
15148 + rotate = <&tinylcd35>,"rotate:0";
15149 + fps = <&tinylcd35>,"fps:0";
15150 + debug = <&tinylcd35>,"debug:0";
15151 + touch = <&tinylcd35_ts>,"status";
15152 + touchgpio = <&tinylcd35_ts_pins>,"brcm,pins:0",
15153 + <&tinylcd35_ts>,"interrupts:0",
15154 + <&tinylcd35_ts>,"pendown-gpio:4";
15155 + xohms = <&tinylcd35_ts>,"ti,x-plate-ohms;0";
15156 + rtc-pcf = <0>,"=5";
15157 + rtc-ds = <0>,"=6";
15158 + keypad = <&keypad>,"status";
15162 +++ b/arch/arm/boot/dts/overlays/uart0-overlay.dts
15168 + compatible = "brcm,bcm2708";
15171 + target = <&uart0>;
15173 + pinctrl-names = "default";
15174 + pinctrl-0 = <&uart0_pins>;
15180 + target = <&gpio>;
15182 + uart0_pins: uart0_pins {
15183 + brcm,pins = <14 15>;
15184 + brcm,function = <4>; /* alt0 */
15185 + brcm,pull = <0 2>;
15191 + txd0_pin = <&uart0_pins>,"brcm,pins:0";
15192 + rxd0_pin = <&uart0_pins>,"brcm,pins:4";
15193 + pin_func = <&uart0_pins>,"brcm,function:0";
15197 +++ b/arch/arm/boot/dts/overlays/uart1-overlay.dts
15203 + compatible = "brcm,bcm2708";
15206 + target = <&uart1>;
15208 + pinctrl-names = "default";
15209 + pinctrl-0 = <&uart1_pins>;
15215 + target = <&gpio>;
15217 + uart1_pins: uart1_pins {
15218 + brcm,pins = <14 15>;
15219 + brcm,function = <2>; /* alt5 */
15220 + brcm,pull = <0 2>;
15226 + target-path = "/chosen";
15228 + bootargs = "8250.nr_uarts=1";
15233 + txd1_pin = <&uart1_pins>,"brcm,pins:0";
15234 + rxd1_pin = <&uart1_pins>,"brcm,pins:4";
15238 +++ b/arch/arm/boot/dts/overlays/upstream-aux-interrupt-overlay.dts
15240 +// Overlay for missing AUX interrupt controller
15241 +// Instead we bind all AUX devices to the generic AUX interrupt line
15246 + compatible = "brcm,bcm2708";
15249 + target = <&uart1>;
15251 + interrupt-parent = <&intc>;
15252 + interrupts = <0x1 0x1d>;
15257 + target = <&spi1>;
15259 + interrupt-parent = <&intc>;
15260 + interrupts = <0x1 0x1d>;
15265 + target = <&spi2>;
15267 + interrupt-parent = <&intc>;
15268 + interrupts = <0x1 0x1d>;
15274 +++ b/arch/arm/boot/dts/overlays/upstream-overlay.dts
15276 +// redo: ovmerge -c vc4-kms-v3d-overlay.dts,cma-96 dwc2-overlay.dts,dr_mode=otg upstream-aux-interrupt-overlay.dts,
15281 +#include <dt-bindings/clock/bcm2835.h>
15284 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
15286 + target-path = "/chosen";
15288 + bootargs = "cma=256M";
15292 + target-path = "/chosen";
15294 + bootargs = "cma=192M";
15298 + target-path = "/chosen";
15300 + bootargs = "cma=128M";
15304 + target-path = "/chosen";
15306 + bootargs = "cma=96M";
15310 + target-path = "/chosen";
15312 + bootargs = "cma=64M";
15316 + target = <&i2c2>;
15324 + status = "disabled";
15328 + target = <&pixelvalve0>;
15330 + interrupts = <2 13>;
15335 + target = <&pixelvalve1>;
15337 + interrupts = <2 14>;
15342 + target = <&pixelvalve2>;
15344 + interrupts = <2 10>;
15351 + interrupts = <2 1>;
15356 + target = <&hdmi>;
15358 + interrupts = <2 8>, <2 9>;
15365 + interrupts = <1 10>;
15376 + target-path = "/soc/dma";
15378 + brcm,dma-channel-mask = <0x7f35>;
15382 + target = <&clocks>;
15384 + claim-clocks = <BCM2835_PLLD_DSI0 BCM2835_PLLD_DSI1 BCM2835_PLLH_AUX BCM2835_PLLH_PIX>;
15395 + #address-cells = <1>;
15396 + #size-cells = <1>;
15397 + dwc2_usb: __overlay__ {
15398 + compatible = "brcm,bcm2835-usb";
15399 + reg = <0x7e980000 0x10000>;
15400 + interrupts = <1 9>;
15402 + g-np-tx-fifo-size = <32>;
15403 + g-rx-fifo-size = <256>;
15404 + g-tx-fifo-size = <512 512 512 512 512 256 256>;
15409 + target = <&uart1>;
15411 + interrupt-parent = <&intc>;
15412 + interrupts = <0x1 0x1d>;
15416 + target = <&spi1>;
15418 + interrupt-parent = <&intc>;
15419 + interrupts = <0x1 0x1d>;
15423 + target = <&spi2>;
15425 + interrupt-parent = <&intc>;
15426 + interrupts = <0x1 0x1d>;
15431 +++ b/arch/arm/boot/dts/overlays/vc4-fkms-v3d-overlay.dts
15434 + * vc4-fkms-v3d-overlay.dts
15441 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
15444 + target-path = "/chosen";
15446 + bootargs = "cma=256M";
15451 + target-path = "/chosen";
15453 + bootargs = "cma=192M";
15458 + target-path = "/chosen";
15460 + bootargs = "cma=128M";
15465 + target-path = "/chosen";
15467 + bootargs = "cma=96M";
15472 + target-path = "/chosen";
15474 + bootargs = "cma=64M";
15481 + status = "disabled";
15486 + target = <&firmwarekms>;
15495 + interrupts = <1 10>;
15508 + target-path = "/soc/dma";
15510 + brcm,dma-channel-mask = <0x7f35>;
15515 + cma-256 = <0>,"+0-1-2-3-4";
15516 + cma-192 = <0>,"-0+1-2-3-4";
15517 + cma-128 = <0>,"-0-1+2-3-4";
15518 + cma-96 = <0>,"-0-1-2+3-4";
15519 + cma-64 = <0>,"-0-1-2-3+4";
15523 +++ b/arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts
15526 + * vc4-kms-v3d-overlay.dts
15532 +#include <dt-bindings/clock/bcm2835.h>
15535 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
15538 + target-path = "/chosen";
15540 + bootargs = "cma=256M";
15545 + target-path = "/chosen";
15547 + bootargs = "cma=192M";
15552 + target-path = "/chosen";
15554 + bootargs = "cma=128M";
15559 + target-path = "/chosen";
15561 + bootargs = "cma=96M";
15566 + target-path = "/chosen";
15568 + bootargs = "cma=64M";
15573 + target = <&i2c2>;
15582 + status = "disabled";
15587 + target = <&pixelvalve0>;
15589 + interrupts = <2 13>; /* pwa0 */
15595 + target = <&pixelvalve1>;
15597 + interrupts = <2 14>; /* pwa1 */
15603 + target = <&pixelvalve2>;
15605 + interrupts = <2 10>; /* pixelvalve */
15613 + interrupts = <2 1>;
15619 + target = <&hdmi>;
15621 + interrupts = <2 8>, <2 9>;
15629 + interrupts = <1 10>;
15642 + target-path = "/soc/dma";
15644 + brcm,dma-channel-mask = <0x7f35>;
15650 + target = <&clocks>;
15653 + BCM2835_PLLD_DSI0
15654 + BCM2835_PLLD_DSI1
15669 + cma-256 = <0>,"+0-1-2-3-4";
15670 + cma-192 = <0>,"-0+1-2-3-4";
15671 + cma-128 = <0>,"-0-1+2-3-4";
15672 + cma-96 = <0>,"-0-1-2+3-4";
15673 + cma-64 = <0>,"-0-1-2-3+4";
15677 +++ b/arch/arm/boot/dts/overlays/vga666-overlay.dts
15683 + compatible = "brcm,bcm2708";
15685 + // There is no VGA driver module, but we need a platform device
15686 + // node (that doesn't already use pinctrl) to hang the pinctrl
15687 + // reference on - leds will do
15690 + target = <&leds>;
15692 + pinctrl-names = "default";
15693 + pinctrl-0 = <&vga666_pins>;
15698 + target = <&gpio>;
15700 + vga666_pins: vga666_pins {
15701 + brcm,pins = <2 3 4 5 6 7 8 9 10 11 12
15702 + 13 14 15 16 17 18 19 20 21>;
15703 + brcm,function = <6>; /* alt2 */
15704 + brcm,pull = <0>; /* no pull */
15710 +++ b/arch/arm/boot/dts/overlays/w1-gpio-overlay.dts
15712 +// Definitions for w1-gpio module (without external pullup)
15717 + compatible = "brcm,bcm2708";
15720 + target-path = "/";
15724 + compatible = "w1-gpio";
15725 + pinctrl-names = "default";
15726 + pinctrl-0 = <&w1_pins>;
15727 + gpios = <&gpio 4 0>;
15728 + rpi,parasitic-power = <0>;
15735 + target = <&gpio>;
15737 + w1_pins: w1_pins@0 {
15739 + brcm,function = <0>; // in (initially)
15740 + brcm,pull = <0>; // off
15746 + gpiopin = <&w1>,"gpios:4",
15748 + <&w1_pins>,"brcm,pins:0",
15749 + <&w1_pins>,"reg:0";
15750 + pullup = <&w1>,"rpi,parasitic-power:0";
15754 +++ b/arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts
15756 +// Definitions for w1-gpio module (with external pullup)
15761 + compatible = "brcm,bcm2708";
15764 + target-path = "/";
15768 + compatible = "w1-gpio";
15769 + pinctrl-names = "default";
15770 + pinctrl-0 = <&w1_pins>;
15771 + gpios = <&gpio 4 0>, <&gpio 5 1>;
15772 + rpi,parasitic-power = <0>;
15779 + target = <&gpio>;
15781 + w1_pins: w1_pins@0 {
15782 + brcm,pins = <4 5>;
15783 + brcm,function = <0 1>; // in out
15784 + brcm,pull = <0 0>; // off off
15790 + gpiopin = <&w1>,"gpios:4",
15792 + <&w1_pins>,"brcm,pins:0",
15793 + <&w1_pins>,"reg:0";
15794 + extpullup = <&w1>,"gpios:16",
15795 + <&w1_pins>,"brcm,pins:4";
15796 + pullup = <&w1>,"rpi,parasitic-power:0";
15800 +++ b/arch/arm/boot/dts/overlays/wittypi-overlay.dts
15803 + * Device Tree overlay for Witty Pi extension board by UUGear
15812 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
15815 + target = <&leds>;
15817 + compatible = "gpio-leds";
15818 + wittypi_led: wittypi_led {
15819 + label = "wittypi_led";
15820 + linux,default-trigger = "default-on";
15821 + gpios = <&gpio 17 0>;
15827 + target = <&i2c1>;
15829 + #address-cells = <1>;
15830 + #size-cells = <0>;
15833 + compatible = "dallas,ds1337";
15841 + led_gpio = <&wittypi_led>,"gpios:4";
15842 + led_trigger = <&wittypi_led>,"linux,default-trigger";
15846 --- a/scripts/Makefile.dtbinst
15847 +++ b/scripts/Makefile.dtbinst
15848 @@ -20,6 +20,7 @@ include scripts/Kbuild.include
15849 include $(src)/Makefile
15851 dtbinst-files := $(sort $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS), $(dtb-)))
15852 +dtboinst-files := $(sort $(dtbo-y) $(if $(CONFIG_OF_ALL_DTBS), $(dtb-)))
15853 dtbinst-dirs := $(subdir-y) $(subdir-m)
15855 # Helper targets for Installing DTBs into the boot directory
15856 @@ -31,10 +32,13 @@ install-dir = $(patsubst $(dtbinst_root)
15857 $(dtbinst-files): %.dtb: $(obj)/%.dtb
15858 $(call cmd,dtb_install,$(install-dir))
15860 +$(dtboinst-files): %.dtbo: $(obj)/%.dtbo
15861 + $(call cmd,dtb_install,$(install-dir))
15864 $(Q)$(MAKE) $(dtbinst)=$(obj)/$@
15866 -PHONY += $(dtbinst-files) $(dtbinst-dirs)
15867 -__dtbs_install: $(dtbinst-files) $(dtbinst-dirs)
15868 +PHONY += $(dtbinst-files) $(dtboinst-files) $(dtbinst-dirs)
15869 +__dtbs_install: $(dtbinst-files) $(dtboinst-files) $(dtbinst-dirs)
15872 --- a/scripts/Makefile.lib
15873 +++ b/scripts/Makefile.lib
15874 @@ -248,6 +248,7 @@ DTC ?= $(objtree)/scripts/dtc/dtc
15875 ifeq ($(findstring 1,$(KBUILD_ENABLE_EXTRA_GCC_CHECKS)),)
15876 DTC_FLAGS += -Wno-unit_address_vs_reg \
15877 -Wno-unit_address_format \
15878 + -Wno-gpios_property \
15879 -Wno-avoid_unnecessary_addr_size \
15881 -Wno-graph_child_address \
15882 @@ -293,6 +294,18 @@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
15883 $(obj)/%.dtb: $(src)/%.dts $(DTC) FORCE
15884 $(call if_changed_dep,dtc)
15886 +quiet_cmd_dtco = DTCO $@
15887 +cmd_dtco = mkdir -p $(dir ${dtc-tmp}) ; \
15888 + $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
15889 + $(DTC) -@ -H epapr -O dtb -o $@ -b 0 \
15890 + -i $(dir $<) $(DTC_FLAGS) \
15891 + -Wno-interrupts_property \
15892 + -d $(depfile).dtc.tmp $(dtc-tmp) ; \
15893 + cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile)
15895 +$(obj)/%.dtbo: $(src)/%-overlay.dts FORCE
15896 + $(call if_changed_dep,dtco)
15898 dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp)