mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
BCM2708: Add core Device Tree support
Add the bare minimum needed to boot BCM2708 from a Device Tree.
Signed-off-by: Noralf Tronnes <notro@tronnes.org>
BCM2708: DT: change 'axi' nodename to 'soc'
Change DT node named 'axi' to 'soc' so it matches ARCH_BCM2835.
The VC4 bootloader fills in certain properties in the 'axi' subtree,
but since this is part of an upstreaming effort, the name is changed.
Signed-off-by: Noralf Tronnes notro@tronnes.org
BCM2708_DT: Correct length of the peripheral space
Use dts-dirs feature for overlays.
The kernel makefiles have a dts-dirs target that is for vendor subdirectories.
Using this fixes the install_dtbs target, which previously did not install the overlays.
BCM270X_DT: configure I2S DMA channels
Signed-off-by: Matthias Reichl <hias@horus.com>
BCM270X_DT: switch to bcm2835-i2s
I2S soundcard drivers with proper devicetree support (i.e. not linking
to the cpu_dai/platform via name but to cpu/platform via of_node)
will work out of the box without any modifications.
When the kernel is compiled without devicetree support the platform
code will instantiate the bcm2708-i2s driver and I2S soundcard drivers
will link to it via name, as before.
Signed-off-by: Matthias Reichl <hias@horus.com>
SDIO-overlay: add poll_once-boolean parameter
Add paramter to toggle sdio-device-polling
done every second or once at boot-time.
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
BCM270X_DT: Make mmc overlay compatible with current firmware
The original DT overlay logic followed a merge-then-patch procedure,
i.e. parameters are applied to the loaded overlay before the overlay
is merged into the base DTB. This sequence has been changed to
patch-then-merge, in order to support parameterised node names, and
to protect against bad overlays. As a result, overrides (parameters)
must only target labels in the overlay, but the overlay can obviously target nodes in the base DTB.
mmc-overlay.dts (that switches back to the original mmc sdcard
driver) is the only overlay violating that rule, and this patch
fixes it.
bcm270x_dt: Use the sdhost MMC controller by default
The "mmc" overlay reverts to using the other controller.
squash: Add cprman to dt
BCM270X_DT: Use clk_core for I2C interfaces
BCM270X_DT: Use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi
The mainline Device Tree files are quite close to downstream now.
Let's use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi as base files
for our dts files.
Mainline dts files are based on these files:
bcm2835-rpi.dtsi
bcm2835.dtsi bcm2836.dtsi
bcm283x.dtsi
Current downstream are based on these:
bcm2708.dtsi bcm2709.dtsi bcm2710.dtsi
bcm2708_common.dtsi
This patch introduces this dependency:
bcm2708.dtsi bcm2709.dtsi
bcm2708-rpi.dtsi
bcm270x.dtsi
bcm2835.dtsi bcm2836.dtsi
bcm283x.dtsi
And:
bcm2710.dtsi
bcm2708-rpi.dtsi
bcm270x.dtsi
bcm283x.dtsi
bcm270x.dtsi contains the downstream bcm283x.dtsi diff.
bcm2708-rpi.dtsi is the downstream version of bcm2835-rpi.dtsi.
Other changes:
- The led node has moved from /soc/leds to /leds. This is not a problem
since the label is used to reference it.
- The clk_osc reg property changes from 6 to 3.
- The gpu nodes has their interrupt property set in the base file.
- the clocks label does not point to the /clocks node anymore, but
points to the cprman node. This is not a problem since the overlays
that use the clock node refer to it directly: target-path = "/clocks";
- some nodes now have 2 labels since mainline and downstream differs in
this respect: cprman/clocks, spi0/spi, gpu/vc4.
- some nodes doesn't have an explicit status = "okay" since they're not
disabled in the base file: watchdog and random.
- gpiomem doesn't need an explicit status = "okay".
- bcm2708-rpi-cm.dts got the hpd-gpios property from bcm2708_common.dtsi,
it's now set directly in that file.
- bcm2709-rpi-2-b.dts has the timer node moved from /soc/timer to /timer.
- Removed clock-frequency property on the bcm{2709,2710}.dtsi timer nodes.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
BCM270X_DT: Use raspberrypi-power to turn on USB power
Use the raspberrypi-power driver to turn on USB power.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
BCM270X_DT: Add a .dtbo target, use for overlays
Change the filenames and extensions to keep the pre-DDT style of
overlay (<name>-overlay.dtb) distinct from new ones that use a
different style of local fixups (<name>.dtbo), and to match other
platforms.
The RPi firmware uses the DDTK trailer atom to choose which type of
overlay to use for each kernel.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
BCM270X_DT: Don't generate "linux,phandle" props
The EPAPR standard says to use "phandle" properties to store phandles,
rather than the deprecated "linux,phandle" version. By default, dtc
generates both, but adding "-H epapr" causes it to only generate
"phandle"s, saving some space and clutter.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
BCM270X_DT: Add overlay for enc28j60 on SPI2
Works on SPI2 for compute module
BCM270X_DT: Add midi-uart0 overlay
MIDI requires 31.25kbaud, a baudrate unsupported by Linux. The
midi-uart0 overlay configures uart0 (ttyAMA0) to use a fake clock
so that requesting 38.4kbaud actually gets 31.25kbaud.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
BCM270X_DT: Add i2c-sensor overlay
The i2c-sensor overlay is a container for various pressure and
temperature sensors, currently bmp085 and bmp280. The standalone
bmp085_i2c-sensor overlay is now deprecated.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
BCM270X_DT: overlays/*-overlay.dtb -> overlays/*.dtbo (#1752)
We now create overlays as .dtbo files.
build: support for .dtbo files for dtb overlays
Kernel 4.4.6+ on RaspberryPi support .dtbo files for overlays, instead of .dtb.
Patch the kernel, which has faulty rules to generate .dtbo the way yocto does
Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
BCM270X: Drop position requirement for CMA in VC4 overlay.
No longer necessary since 2aefcd5761,
and will probably let peeople that want to choose a larger CMA
allocation (particularly on pi0/1).
Signed-off-by: Eric Anholt <eric@anholt.net>
BCM270X_DT: RPi Device Tree tidy
Use the upstream sdhost node, add thermal-zones, and factor out some
common elements.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
kbuild: Silence unhelpful DTC warnings
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
BCM270X_DT: DT build rules no longer arch-specific
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -18,6 +18,7 @@
|
||||
*.c.[012]*.*
|
||||
*.dt.yaml
|
||||
*.dtb
|
||||
*.dtbo
|
||||
*.dtb.S
|
||||
*.dwo
|
||||
*.elf
|
||||
|
||||
@@ -1,4 +1,20 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += \
|
||||
bcm2708-rpi-b.dtb \
|
||||
bcm2708-rpi-b-rev1.dtb \
|
||||
bcm2708-rpi-b-plus.dtb \
|
||||
bcm2708-rpi-cm.dtb \
|
||||
bcm2708-rpi-zero.dtb \
|
||||
bcm2708-rpi-zero-w.dtb \
|
||||
bcm2709-rpi-2-b.dtb \
|
||||
bcm2710-rpi-2-b.dtb \
|
||||
bcm2710-rpi-3-b.dtb \
|
||||
bcm2711-rpi-4-b.dtb \
|
||||
bcm2710-rpi-3-b-plus.dtb \
|
||||
bcm2710-rpi-cm3.dtb \
|
||||
bcm2711-rpi-cm4.dtb
|
||||
|
||||
dtb-$(CONFIG_ARCH_ALPINE) += \
|
||||
alpine-db.dtb
|
||||
dtb-$(CONFIG_MACH_ARTPEC6) += \
|
||||
@@ -92,7 +108,6 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
|
||||
bcm2837-rpi-3-b.dtb \
|
||||
bcm2837-rpi-3-b-plus.dtb \
|
||||
bcm2837-rpi-cm3-io3.dtb \
|
||||
bcm2711-rpi-4-b.dtb \
|
||||
bcm2835-rpi-zero.dtb \
|
||||
bcm2835-rpi-zero-w.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM_5301X) += \
|
||||
@@ -1408,3 +1423,13 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
|
||||
aspeed-bmc-opp-zaius.dtb \
|
||||
aspeed-bmc-portwell-neptune.dtb \
|
||||
aspeed-bmc-quanta-q71l.dtb
|
||||
|
||||
targets += dtbs dtbs_install
|
||||
targets += $(dtb-y)
|
||||
|
||||
subdir-y := overlays
|
||||
|
||||
# Enable fixups to support overlays on BCM2835 platforms
|
||||
ifeq ($(CONFIG_ARCH_BCM2835),y)
|
||||
DTC_FLAGS ?= -@
|
||||
endif
|
||||
|
||||
124
arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
Normal file
124
arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
Normal file
@@ -0,0 +1,124 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2708.dtsi"
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
#include "bcm283x-rpi-smsc9514.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_28.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
|
||||
model = "Raspberry Pi Model B+";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 45>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 47 0>;
|
||||
};
|
||||
|
||||
pwr_led: pwr {
|
||||
label = "led1";
|
||||
linux,default-trigger = "input";
|
||||
gpios = <&gpio 35 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
pwr_led_gpio = <&pwr_led>,"gpios:4";
|
||||
pwr_led_activelow = <&pwr_led>,"gpios:8";
|
||||
pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
127
arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts
Normal file
127
arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts
Normal file
@@ -0,0 +1,127 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2708.dtsi"
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
#include "bcm283x-rpi-smsc9512.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,model-b", "brcm,bcm2835";
|
||||
model = "Raspberry Pi Model B";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <28 29 30 31>;
|
||||
brcm,function = <6>; /* alt2 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 45>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
/delete-node/ &i2c0mux;
|
||||
|
||||
i2c0: &i2c0if {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
i2c_csi_dsi: &i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
i2c0 = &i2c0;
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
i2c0 = <&i2c0>, "status";
|
||||
};
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 16 1>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
114
arch/arm/boot/dts/bcm2708-rpi-b.dts
Normal file
114
arch/arm/boot/dts/bcm2708-rpi-b.dts
Normal file
@@ -0,0 +1,114 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2708.dtsi"
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
#include "bcm283x-rpi-smsc9512.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_28.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,model-b", "brcm,bcm2835";
|
||||
model = "Raspberry Pi Model B";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <28 29 30 31>;
|
||||
brcm,function = <6>; /* alt2 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 45>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 16 1>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
26
arch/arm/boot/dts/bcm2708-rpi-bt.dtsi
Normal file
26
arch/arm/boot/dts/bcm2708-rpi-bt.dtsi
Normal file
@@ -0,0 +1,26 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
&uart0 {
|
||||
bt: bluetooth {
|
||||
compatible = "brcm,bcm43438-bt";
|
||||
max-speed = <3000000>;
|
||||
shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
minibt: bluetooth {
|
||||
compatible = "brcm,bcm43438-bt";
|
||||
max-speed = <460800>;
|
||||
shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
krnbt = <&bt>,"status";
|
||||
krnbt_baudrate = <&bt>,"max-speed:0";
|
||||
};
|
||||
};
|
||||
97
arch/arm/boot/dts/bcm2708-rpi-cm.dts
Normal file
97
arch/arm/boot/dts/bcm2708-rpi-cm.dts
Normal file
@@ -0,0 +1,97 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2708-rpi-cm.dtsi"
|
||||
#include "bcm283x-rpi-csi0-2lane.dtsi"
|
||||
#include "bcm283x-rpi-csi1-4lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_28.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,compute-module", "brcm,bcm2835";
|
||||
model = "Raspberry Pi Compute Module";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
};
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
18
arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
Normal file
18
arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
Normal file
@@ -0,0 +1,18 @@
|
||||
#include "bcm2708.dtsi"
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 47 0>;
|
||||
};
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
163
arch/arm/boot/dts/bcm2708-rpi-zero-w.dts
Normal file
163
arch/arm/boot/dts/bcm2708-rpi-zero-w.dts
Normal file
@@ -0,0 +1,163 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2708.dtsi"
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_28.dtsi"
|
||||
#include "bcm2708-rpi-bt.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
|
||||
model = "Raspberry Pi Zero W";
|
||||
|
||||
chosen {
|
||||
bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1";
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart0;
|
||||
mmc1 = &mmcnr;
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
sdio_pins: sdio_pins {
|
||||
brcm,pins = <34 35 36 37 38 39>;
|
||||
brcm,function = <7>; /* ALT3 = SD1 */
|
||||
brcm,pull = <0 2 2 2 2 2>;
|
||||
};
|
||||
|
||||
bt_pins: bt_pins {
|
||||
brcm,pins = <43>;
|
||||
brcm,function = <4>; /* alt0:GPCLK2 */
|
||||
brcm,pull = <0>; /* none */
|
||||
};
|
||||
|
||||
uart0_pins: uart0_pins {
|
||||
brcm,pins = <30 31 32 33>;
|
||||
brcm,function = <7>; /* alt3=UART0 */
|
||||
brcm,pull = <2 0 0 2>; /* up none none up */
|
||||
};
|
||||
|
||||
uart1_pins: uart1_pins {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
brcm,pull;
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <>;
|
||||
brcm,function = <>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmcnr {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins &bt_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "actpwr";
|
||||
gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
117
arch/arm/boot/dts/bcm2708-rpi-zero.dts
Normal file
117
arch/arm/boot/dts/bcm2708-rpi-zero.dts
Normal file
@@ -0,0 +1,117 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2708.dtsi"
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_28.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,model-zero", "brcm,bcm2835";
|
||||
model = "Raspberry Pi Zero";
|
||||
|
||||
chosen {
|
||||
bootargs = "coherent_pool=1M snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1";
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <>;
|
||||
brcm,function = <>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "actpwr";
|
||||
gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
36
arch/arm/boot/dts/bcm2708-rpi.dtsi
Normal file
36
arch/arm/boot/dts/bcm2708-rpi.dtsi
Normal file
@@ -0,0 +1,36 @@
|
||||
/* Downstream modifications common to bcm2835, bcm2836, bcm2837 */
|
||||
|
||||
#include "bcm2835-rpi.dtsi"
|
||||
#include "bcm270x-rpi.dtsi"
|
||||
|
||||
/ {
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0>;
|
||||
};
|
||||
|
||||
aliases {
|
||||
i2c2 = &i2c2;
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
i2c2_iknowwhatimdoing = <&i2c2>,"status";
|
||||
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
|
||||
sd_poll_once = <&sdhost>,"non-removable?";
|
||||
};
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdhost_gpio48>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
status = "disabled";
|
||||
};
|
||||
12
arch/arm/boot/dts/bcm2708.dtsi
Normal file
12
arch/arm/boot/dts/bcm2708.dtsi
Normal file
@@ -0,0 +1,12 @@
|
||||
#include "bcm2835.dtsi"
|
||||
#include "bcm270x.dtsi"
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
arm_freq;
|
||||
};
|
||||
};
|
||||
|
||||
&vc4 {
|
||||
status = "disabled";
|
||||
};
|
||||
124
arch/arm/boot/dts/bcm2709-rpi-2-b.dts
Normal file
124
arch/arm/boot/dts/bcm2709-rpi-2-b.dts
Normal file
@@ -0,0 +1,124 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2709.dtsi"
|
||||
#include "bcm2709-rpi.dtsi"
|
||||
#include "bcm283x-rpi-smsc9514.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_28.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
|
||||
model = "Raspberry Pi 2 Model B";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 45>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 47 0>;
|
||||
};
|
||||
|
||||
pwr_led: pwr {
|
||||
label = "led1";
|
||||
linux,default-trigger = "input";
|
||||
gpios = <&gpio 35 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
pwr_led_gpio = <&pwr_led>,"gpios:4";
|
||||
pwr_led_activelow = <&pwr_led>,"gpios:8";
|
||||
pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
5
arch/arm/boot/dts/bcm2709-rpi.dtsi
Normal file
5
arch/arm/boot/dts/bcm2709-rpi.dtsi
Normal file
@@ -0,0 +1,5 @@
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
|
||||
&vchiq {
|
||||
compatible = "brcm,bcm2836-vchiq", "brcm,bcm2835-vchiq";
|
||||
};
|
||||
22
arch/arm/boot/dts/bcm2709.dtsi
Normal file
22
arch/arm/boot/dts/bcm2709.dtsi
Normal file
@@ -0,0 +1,22 @@
|
||||
#include "bcm2836.dtsi"
|
||||
#include "bcm270x.dtsi"
|
||||
|
||||
/ {
|
||||
soc {
|
||||
ranges = <0x7e000000 0x3f000000 0x01000000>,
|
||||
<0x40000000 0x40000000 0x00040000>;
|
||||
|
||||
/delete-node/ timer@7e003000;
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
arm_freq = <&v7_cpu0>, "clock-frequency:0",
|
||||
<&v7_cpu1>, "clock-frequency:0",
|
||||
<&v7_cpu2>, "clock-frequency:0",
|
||||
<&v7_cpu3>, "clock-frequency:0";
|
||||
};
|
||||
};
|
||||
|
||||
&vc4 {
|
||||
status = "disabled";
|
||||
};
|
||||
154
arch/arm/boot/dts/bcm270x-rpi.dtsi
Normal file
154
arch/arm/boot/dts/bcm270x-rpi.dtsi
Normal file
@@ -0,0 +1,154 @@
|
||||
/* Downstream modifications to bcm2835-rpi.dtsi */
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
audio = &audio;
|
||||
aux = &aux;
|
||||
sound = &sound;
|
||||
soc = &soc;
|
||||
dma = &dma;
|
||||
intc = &intc;
|
||||
watchdog = &watchdog;
|
||||
random = &random;
|
||||
mailbox = &mailbox;
|
||||
gpio = &gpio;
|
||||
uart0 = &uart0;
|
||||
uart1 = &uart1;
|
||||
sdhost = &sdhost;
|
||||
mmc = &mmc;
|
||||
mmc1 = &mmc;
|
||||
mmc0 = &sdhost;
|
||||
i2s = &i2s;
|
||||
i2c0 = &i2c0;
|
||||
i2c1 = &i2c1;
|
||||
i2c10 = &i2c_csi_dsi;
|
||||
spi0 = &spi0;
|
||||
spi1 = &spi1;
|
||||
spi2 = &spi2;
|
||||
usb = &usb;
|
||||
leds = &leds;
|
||||
fb = &fb;
|
||||
thermal = &thermal;
|
||||
axiperf = &axiperf;
|
||||
};
|
||||
|
||||
/* Define these notional regulators for use by overlays */
|
||||
vdd_3v3_reg: fixedregulator_3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-always-on;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-name = "3v3";
|
||||
};
|
||||
|
||||
vdd_5v0_reg: fixedregulator_5v0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-always-on;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-name = "5v0";
|
||||
};
|
||||
|
||||
leds: leds {
|
||||
compatible = "gpio-leds";
|
||||
};
|
||||
|
||||
soc {
|
||||
gpiomem {
|
||||
compatible = "brcm,bcm2835-gpiomem";
|
||||
reg = <0x7e200000 0x1000>;
|
||||
};
|
||||
|
||||
fb: fb {
|
||||
compatible = "brcm,bcm2708-fb";
|
||||
firmware = <&firmware>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
vcsm: vcsm {
|
||||
compatible = "raspberrypi,bcm2835-vcsm";
|
||||
firmware = <&firmware>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* External sound card */
|
||||
sound: sound {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
cache_line_size;
|
||||
|
||||
uart0 = <&uart0>,"status";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0if>,"status",<&i2c0mux>,"status";
|
||||
i2c1 = <&i2c1>,"status";
|
||||
i2c0_baudrate = <&i2c0if>,"clock-frequency:0";
|
||||
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
|
||||
|
||||
audio = <&audio>,"status";
|
||||
watchdog = <&watchdog>,"status";
|
||||
random = <&random>,"status";
|
||||
sd_overclock = <&sdhost>,"brcm,overclock-50:0";
|
||||
sd_force_pio = <&sdhost>,"brcm,force-pio?";
|
||||
sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
|
||||
sd_debug = <&sdhost>,"brcm,debug";
|
||||
sdio_overclock = <&mmc>,"brcm,overclock-50:0",
|
||||
<&mmcnr>,"brcm,overclock-50:0";
|
||||
axiperf = <&axiperf>,"status";
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
skip-init;
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
skip-init;
|
||||
};
|
||||
|
||||
&txp {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&i2c0mux {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&clocks {
|
||||
firmware = <&firmware>;
|
||||
};
|
||||
|
||||
&sdhci {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emmc_gpio48>;
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
&cpu_thermal {
|
||||
/delete-node/ trips;
|
||||
};
|
||||
|
||||
&vec {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&vchiq {
|
||||
/* Onboard audio */
|
||||
audio: bcm2835_audio {
|
||||
compatible = "brcm,bcm2835-audio";
|
||||
brcm,pwm-channels = <8>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
197
arch/arm/boot/dts/bcm270x.dtsi
Normal file
197
arch/arm/boot/dts/bcm270x.dtsi
Normal file
@@ -0,0 +1,197 @@
|
||||
/* Downstream bcm283x.dtsi diff */
|
||||
#include <dt-bindings/power/raspberrypi-power.h>
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
bootargs = "coherent_pool=1M snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1";
|
||||
/delete-property/ stdout-path;
|
||||
};
|
||||
|
||||
soc: soc {
|
||||
|
||||
watchdog: watchdog@7e100000 {
|
||||
/* Add label */
|
||||
};
|
||||
|
||||
random: rng@7e104000 {
|
||||
/* Add label */
|
||||
};
|
||||
|
||||
spi0: spi@7e204000 {
|
||||
/* Add label */
|
||||
};
|
||||
|
||||
#ifndef BCM2711
|
||||
pixelvalve0: pixelvalve@7e206000 {
|
||||
/* Add label */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pixelvalve1: pixelvalve@7e207000 {
|
||||
/* Add label */
|
||||
status = "disabled";
|
||||
};
|
||||
#endif
|
||||
|
||||
/delete-node/ sdhci@7e300000;
|
||||
|
||||
sdhci: mmc: mmc@7e300000 {
|
||||
compatible = "brcm,bcm2835-mmc", "brcm,bcm2835-sdhci";
|
||||
reg = <0x7e300000 0x100>;
|
||||
interrupts = <2 30>;
|
||||
clocks = <&clocks BCM2835_CLOCK_EMMC>;
|
||||
dmas = <&dma 11>;
|
||||
dma-names = "rx-tx";
|
||||
brcm,overclock-50 = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* A clone of mmc but with non-removable set */
|
||||
mmcnr: mmcnr@7e300000 {
|
||||
compatible = "brcm,bcm2835-mmc", "brcm,bcm2835-sdhci";
|
||||
reg = <0x7e300000 0x100>;
|
||||
interrupts = <2 30>;
|
||||
clocks = <&clocks BCM2835_CLOCK_EMMC>;
|
||||
dmas = <&dma 11>;
|
||||
dma-names = "rx-tx";
|
||||
brcm,overclock-50 = <0>;
|
||||
non-removable;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hvs: hvs@7e400000 {
|
||||
/* Add label */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
firmwarekms: firmwarekms@7e600000 {
|
||||
compatible = "raspberrypi,rpi-firmware-kms";
|
||||
/* SMI interrupt reg */
|
||||
reg = <0x7e600000 0x100>;
|
||||
interrupts = <2 16>;
|
||||
brcm,firmware = <&firmware>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
smi: smi@7e600000 {
|
||||
compatible = "brcm,bcm2835-smi";
|
||||
reg = <0x7e600000 0x100>;
|
||||
interrupts = <2 16>;
|
||||
clocks = <&clocks BCM2835_CLOCK_SMI>;
|
||||
assigned-clocks = <&clocks BCM2835_CLOCK_SMI>;
|
||||
assigned-clock-rates = <125000000>;
|
||||
dmas = <&dma 4>;
|
||||
dma-names = "rx-tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
csi0: csi@7e800000 {
|
||||
compatible = "brcm,bcm2835-unicam";
|
||||
reg = <0x7e800000 0x800>,
|
||||
<0x7e802000 0x4>;
|
||||
interrupts = <2 6>;
|
||||
clocks = <&clocks BCM2835_CLOCK_CAM0>,
|
||||
<&firmware_clocks 4>;
|
||||
clock-names = "lp", "vpu";
|
||||
power-domains = <&power RPI_POWER_DOMAIN_UNICAM0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#clock-cells = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
csi1: csi@7e801000 {
|
||||
compatible = "brcm,bcm2835-unicam";
|
||||
reg = <0x7e801000 0x800>,
|
||||
<0x7e802004 0x4>;
|
||||
interrupts = <2 7>;
|
||||
clocks = <&clocks BCM2835_CLOCK_CAM1>,
|
||||
<&firmware_clocks 4>;
|
||||
clock-names = "lp", "vpu";
|
||||
power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#clock-cells = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
#ifndef BCM2711
|
||||
pixelvalve2: pixelvalve@7e807000 {
|
||||
/* Add label */
|
||||
status = "disabled";
|
||||
};
|
||||
#endif
|
||||
|
||||
hdmi@7e902000 { /* hdmi */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb@7e980000 { /* usb */
|
||||
compatible = "brcm,bcm2708-usb";
|
||||
reg = <0x7e980000 0x10000>,
|
||||
<0x7e006000 0x1000>;
|
||||
interrupt-names = "usb",
|
||||
"soft";
|
||||
interrupts = <1 9>,
|
||||
<2 0>;
|
||||
};
|
||||
|
||||
#ifndef BCM2711
|
||||
v3d@7ec00000 { /* vd3 */
|
||||
compatible = "brcm,vc4-v3d";
|
||||
power-domains = <&power RPI_POWER_DOMAIN_V3D>;
|
||||
status = "disabled";
|
||||
};
|
||||
#endif
|
||||
|
||||
axiperf: axiperf {
|
||||
compatible = "brcm,bcm2835-axiperf";
|
||||
reg = <0x7e009800 0x100>,
|
||||
<0x7ee08000 0x100>;
|
||||
firmware = <&firmware>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
cam0-pwdn-ctrl;
|
||||
cam0-pwdn;
|
||||
cam0-led-ctrl;
|
||||
cam0-led;
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
interrupts = <2 17>, <2 18>;
|
||||
|
||||
dpi_18bit_gpio0: dpi_18bit_gpio0 {
|
||||
brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
|
||||
12 13 14 15 16 17 18 19
|
||||
20 21>;
|
||||
brcm,function = <BCM2835_FSEL_ALT2>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
/* Enable CTS bug workaround */
|
||||
cts-event-workaround;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
#sound-dai-cells = <0>;
|
||||
dmas = <&dma 2>, <&dma 3>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
dmas = <&dma (13|(1<<29))>;
|
||||
dma-names = "rx-tx";
|
||||
bus-width = <4>;
|
||||
brcm,overclock-50 = <0>;
|
||||
brcm,pio-limit = <1>;
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
dmas = <&dma 6>, <&dma 7>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
124
arch/arm/boot/dts/bcm2710-rpi-2-b.dts
Normal file
124
arch/arm/boot/dts/bcm2710-rpi-2-b.dts
Normal file
@@ -0,0 +1,124 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2710.dtsi"
|
||||
#include "bcm2709-rpi.dtsi"
|
||||
#include "bcm283x-rpi-smsc9514.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_28.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,2-model-b-rev2", "brcm,bcm2837";
|
||||
model = "Raspberry Pi 2 Model B rev 1.2";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 45>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 47 0>;
|
||||
};
|
||||
|
||||
pwr_led: pwr {
|
||||
label = "led1";
|
||||
linux,default-trigger = "input";
|
||||
gpios = <&gpio 35 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
pwr_led_gpio = <&pwr_led>,"gpios:4";
|
||||
pwr_led_activelow = <&pwr_led>,"gpios:8";
|
||||
pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
196
arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
Normal file
196
arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
Normal file
@@ -0,0 +1,196 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2710.dtsi"
|
||||
#include "bcm2709-rpi.dtsi"
|
||||
#include "bcm283x-rpi-lan7515.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
|
||||
#include "bcm271x-rpi-bt.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";
|
||||
model = "Raspberry Pi 3 Model B+";
|
||||
|
||||
chosen {
|
||||
bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1";
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart0;
|
||||
mmc1 = &mmcnr;
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
sdio_pins: sdio_pins {
|
||||
brcm,pins = <34 35 36 37 38 39>;
|
||||
brcm,function = <7>; // alt3 = SD1
|
||||
brcm,pull = <0 2 2 2 2 2>;
|
||||
};
|
||||
|
||||
bt_pins: bt_pins {
|
||||
brcm,pins = <43>;
|
||||
brcm,function = <4>; /* alt0:GPCLK2 */
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
|
||||
uart0_pins: uart0_pins {
|
||||
brcm,pins = <32 33>;
|
||||
brcm,function = <7>; /* alt3=UART0 */
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
|
||||
uart1_pins: uart1_pins {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
brcm,pull;
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 41>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmcnr {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&firmware {
|
||||
expgpio: expgpio {
|
||||
compatible = "raspberrypi,firmware-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins &bt_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 29 0>;
|
||||
};
|
||||
|
||||
pwr_led: pwr {
|
||||
label = "led1";
|
||||
linux,default-trigger = "default-on";
|
||||
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
ð_phy {
|
||||
microchip,eee-enabled;
|
||||
microchip,tx-lpi-timer = <600>; /* non-aggressive*/
|
||||
microchip,downshift-after = <2>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
pwr_led_gpio = <&pwr_led>,"gpios:4";
|
||||
pwr_led_activelow = <&pwr_led>,"gpios:8";
|
||||
pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
|
||||
|
||||
eee = <ð_phy>,"microchip,eee-enabled?";
|
||||
tx_lpi_timer = <ð_phy>,"microchip,tx-lpi-timer:0";
|
||||
eth_led0 = <ð_phy>,"microchip,led-modes:0";
|
||||
eth_led1 = <ð_phy>,"microchip,led-modes:4";
|
||||
eth_downshift_after = <ð_phy>,"microchip,downshift-after:0";
|
||||
eth_max_speed = <ð_phy>,"max-speed:0";
|
||||
};
|
||||
};
|
||||
198
arch/arm/boot/dts/bcm2710-rpi-3-b.dts
Normal file
198
arch/arm/boot/dts/bcm2710-rpi-3-b.dts
Normal file
@@ -0,0 +1,198 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2710.dtsi"
|
||||
#include "bcm2709-rpi.dtsi"
|
||||
#include "bcm283x-rpi-smsc9514.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
|
||||
#include "bcm271x-rpi-bt.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
|
||||
model = "Raspberry Pi 3 Model B";
|
||||
|
||||
chosen {
|
||||
bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1";
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart0;
|
||||
mmc1 = &mmcnr;
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
sdio_pins: sdio_pins {
|
||||
brcm,pins = <34 35 36 37 38 39>;
|
||||
brcm,function = <7>; // alt3 = SD1
|
||||
brcm,pull = <0 2 2 2 2 2>;
|
||||
};
|
||||
|
||||
bt_pins: bt_pins {
|
||||
brcm,pins = <43>;
|
||||
brcm,function = <4>; /* alt0:GPCLK2 */
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
|
||||
uart0_pins: uart0_pins {
|
||||
brcm,pins = <32 33>;
|
||||
brcm,function = <7>; /* alt3=UART0 */
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
|
||||
uart1_pins: uart1_pins {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
brcm,pull;
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 41>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmcnr {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&soc {
|
||||
virtgpio: virtgpio {
|
||||
compatible = "brcm,bcm2835-virtgpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
firmware = <&firmware>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&firmware {
|
||||
expgpio: expgpio {
|
||||
compatible = "raspberrypi,firmware-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins &bt_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&bt {
|
||||
max-speed = <921600>;
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&virtgpio 0 0>;
|
||||
};
|
||||
|
||||
pwr_led: pwr {
|
||||
label = "led1";
|
||||
linux,default-trigger = "input";
|
||||
gpios = <&expgpio 7 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&expgpio 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
pwr_led_gpio = <&pwr_led>,"gpios:4";
|
||||
pwr_led_activelow = <&pwr_led>,"gpios:8";
|
||||
pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
133
arch/arm/boot/dts/bcm2710-rpi-cm3.dts
Normal file
133
arch/arm/boot/dts/bcm2710-rpi-cm3.dts
Normal file
@@ -0,0 +1,133 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2710.dtsi"
|
||||
#include "bcm2709-rpi.dtsi"
|
||||
#include "bcm283x-rpi-csi0-2lane.dtsi"
|
||||
#include "bcm283x-rpi-csi1-4lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_28.dtsi"
|
||||
/ {
|
||||
compatible = "raspberrypi,3-compute-module", "brcm,bcm2837";
|
||||
model = "Raspberry Pi Compute Module 3";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
virtgpio: virtgpio {
|
||||
compatible = "brcm,bcm2835-virtgpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
firmware = <&firmware>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&firmware {
|
||||
expgpio: expgpio {
|
||||
compatible = "raspberrypi,firmware-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&virtgpio 0 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&expgpio 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
29
arch/arm/boot/dts/bcm2710.dtsi
Normal file
29
arch/arm/boot/dts/bcm2710.dtsi
Normal file
@@ -0,0 +1,29 @@
|
||||
#include "bcm2837.dtsi"
|
||||
#include "bcm270x.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2837", "brcm,bcm2836";
|
||||
|
||||
arm-pmu {
|
||||
#ifdef RPI364
|
||||
compatible = "arm,armv8-pmuv3", "arm,cortex-a7-pmu";
|
||||
#else
|
||||
compatible = "arm,cortex-a7-pmu";
|
||||
#endif
|
||||
};
|
||||
|
||||
soc {
|
||||
/delete-node/ timer@7e003000;
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
arm_freq = <&cpu0>, "clock-frequency:0",
|
||||
<&cpu1>, "clock-frequency:0",
|
||||
<&cpu2>, "clock-frequency:0",
|
||||
<&cpu3>, "clock-frequency:0";
|
||||
};
|
||||
};
|
||||
|
||||
&vc4 {
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -2,7 +2,6 @@
|
||||
/dts-v1/;
|
||||
#include "bcm2711.dtsi"
|
||||
#include "bcm2835-rpi.dtsi"
|
||||
#include "bcm283x-rpi-usb-peripheral.dtsi"
|
||||
|
||||
#include <dt-bindings/reset/raspberrypi,firmware-reset.h>
|
||||
|
||||
@@ -95,7 +94,7 @@
|
||||
"VDD_SD_IO_SEL",
|
||||
"CAM_GPIO",
|
||||
"SD_PWR_ON",
|
||||
"";
|
||||
"SD_OC_N";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -301,3 +300,306 @@
|
||||
&vec {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
// =============================================
|
||||
// Downstream rpi- changes
|
||||
|
||||
#define BCM2711
|
||||
|
||||
#include "bcm270x.dtsi"
|
||||
#include "bcm271x-rpi-bt.dtsi"
|
||||
|
||||
/ {
|
||||
soc {
|
||||
/delete-node/ pixelvalve@7e807000;
|
||||
/delete-node/ hdmi@7e902000;
|
||||
};
|
||||
};
|
||||
|
||||
#include "bcm2711-rpi.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1";
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart0;
|
||||
mmc0 = &emmc2;
|
||||
mmc1 = &mmcnr;
|
||||
mmc2 = &sdhost;
|
||||
/delete-property/ i2c2;
|
||||
i2c3 = &i2c3;
|
||||
i2c4 = &i2c4;
|
||||
i2c5 = &i2c5;
|
||||
i2c6 = &i2c6;
|
||||
/delete-property/ intc;
|
||||
};
|
||||
|
||||
/delete-node/ wifi-pwrseq;
|
||||
};
|
||||
|
||||
&mmcnr {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-0 = <&uart0_pins &bt_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-0 = <&uart1_pins>;
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
};
|
||||
|
||||
spi3_pins: spi3_pins {
|
||||
brcm,pins = <1 2 3>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
};
|
||||
|
||||
spi3_cs_pins: spi3_cs_pins {
|
||||
brcm,pins = <0 24>;
|
||||
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
};
|
||||
|
||||
spi4_pins: spi4_pins {
|
||||
brcm,pins = <5 6 7>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
};
|
||||
|
||||
spi4_cs_pins: spi4_cs_pins {
|
||||
brcm,pins = <4 25>;
|
||||
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
};
|
||||
|
||||
spi5_pins: spi5_pins {
|
||||
brcm,pins = <13 14 15>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
};
|
||||
|
||||
spi5_cs_pins: spi5_cs_pins {
|
||||
brcm,pins = <12 26>;
|
||||
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
};
|
||||
|
||||
spi6_pins: spi6_pins {
|
||||
brcm,pins = <19 20 21>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
};
|
||||
|
||||
spi6_cs_pins: spi6_cs_pins {
|
||||
brcm,pins = <18 27>;
|
||||
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2c3_pins: i2c3 {
|
||||
brcm,pins = <4 5>;
|
||||
brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2c4_pins: i2c4 {
|
||||
brcm,pins = <8 9>;
|
||||
brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2c5_pins: i2c5 {
|
||||
brcm,pins = <12 13>;
|
||||
brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2c6_pins: i2c6 {
|
||||
brcm,pins = <22 23>;
|
||||
brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
};
|
||||
|
||||
sdio_pins: sdio_pins {
|
||||
brcm,pins = <34 35 36 37 38 39>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>; // alt3 = SD1
|
||||
brcm,pull = <0 2 2 2 2 2>;
|
||||
};
|
||||
|
||||
bt_pins: bt_pins {
|
||||
brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0
|
||||
// to fool pinctrl
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <2>;
|
||||
};
|
||||
|
||||
uart0_pins: uart0_pins {
|
||||
brcm,pins = <32 33>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
|
||||
uart1_pins: uart1_pins {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
brcm,pull;
|
||||
};
|
||||
|
||||
uart2_pins: uart2_pins {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
|
||||
uart3_pins: uart3_pins {
|
||||
brcm,pins = <4 5>;
|
||||
brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
|
||||
uart4_pins: uart4_pins {
|
||||
brcm,pins = <8 9>;
|
||||
brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
|
||||
uart5_pins: uart5_pins {
|
||||
brcm,pins = <12 13>;
|
||||
brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
/delete-property/ i2c2_baudrate;
|
||||
/delete-property/ i2c2_iknowwhatimdoing;
|
||||
};
|
||||
};
|
||||
|
||||
// =============================================
|
||||
// Board specific stuff here
|
||||
|
||||
&sdhost {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&phy1 {
|
||||
led-modes = <0x00 0x08>; /* link/activity link */
|
||||
};
|
||||
|
||||
&gpio {
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 41>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
pwr_led: pwr {
|
||||
label = "led1";
|
||||
linux,default-trigger = "default-on";
|
||||
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
pwr_led_gpio = <&pwr_led>,"gpios:4";
|
||||
pwr_led_activelow = <&pwr_led>,"gpios:8";
|
||||
pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
|
||||
|
||||
eth_led0 = <&phy1>,"led-modes:0";
|
||||
eth_led1 = <&phy1>,"led-modes:4";
|
||||
|
||||
sd_poll_once = <&emmc2>, "non-removable?";
|
||||
spi_dma4 = <&spi0>, "dmas:0=", <&dma40>,
|
||||
<&spi0>, "dmas:8=", <&dma40>;
|
||||
};
|
||||
};
|
||||
|
||||
609
arch/arm/boot/dts/bcm2711-rpi-cm4.dts
Normal file
609
arch/arm/boot/dts/bcm2711-rpi-cm4.dts
Normal file
@@ -0,0 +1,609 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
#include "bcm2711.dtsi"
|
||||
#include "bcm2835-rpi.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,4-compute-module", "brcm,bcm2711";
|
||||
model = "Raspberry Pi Compute Module 4";
|
||||
|
||||
chosen {
|
||||
/* 8250 auxiliary UART instead of pl011 */
|
||||
stdout-path = "serial1:115200n8";
|
||||
};
|
||||
|
||||
/* Will be filled by the bootloader */
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0 0 0>;
|
||||
};
|
||||
|
||||
aliases {
|
||||
emmc2bus = &emmc2bus;
|
||||
ethernet0 = &genet;
|
||||
pcie0 = &pcie0;
|
||||
};
|
||||
|
||||
leds {
|
||||
act {
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
pwr {
|
||||
label = "PWR";
|
||||
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||
default-state = "keep";
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
};
|
||||
|
||||
wifi_pwrseq: wifi-pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
sd_io_1v8_reg: sd_io_1v8_reg {
|
||||
compatible = "regulator-gpio";
|
||||
regulator-name = "vdd-sd-io";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
regulator-settling-time-us = <5000>;
|
||||
gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
|
||||
states = <1800000 0x1
|
||||
3300000 0x0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sd_vcc_reg: sd_vcc_reg {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc-sd";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
enable-active-high;
|
||||
gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
&ddc0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ddc1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&firmware {
|
||||
expgpio: gpio {
|
||||
compatible = "raspberrypi,firmware-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-line-names = "BT_ON",
|
||||
"WL_ON",
|
||||
"PWR_LED_OFF",
|
||||
"ANT1",
|
||||
"VDD_SD_IO_SEL",
|
||||
"CAM_GPIO",
|
||||
"SD_PWR_ON",
|
||||
"ANT2";
|
||||
status = "okay";
|
||||
|
||||
ant1: ant1 {
|
||||
gpio-hog;
|
||||
gpios = <3 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
};
|
||||
|
||||
ant2: ant2 {
|
||||
gpio-hog;
|
||||
gpios = <7 GPIO_ACTIVE_HIGH>;
|
||||
output-low;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
/*
|
||||
* Parts taken from rpi_SCH_4b_4p0_reduced.pdf and
|
||||
* the official GPU firmware DT blob.
|
||||
*
|
||||
* Legend:
|
||||
* "FOO" = GPIO line named "FOO" on the schematic
|
||||
* "FOO_N" = GPIO line named "FOO" on schematic, active low
|
||||
*/
|
||||
gpio-line-names = "ID_SDA",
|
||||
"ID_SCL",
|
||||
"SDA1",
|
||||
"SCL1",
|
||||
"GPIO_GCLK",
|
||||
"GPIO5",
|
||||
"GPIO6",
|
||||
"SPI_CE1_N",
|
||||
"SPI_CE0_N",
|
||||
"SPI_MISO",
|
||||
"SPI_MOSI",
|
||||
"SPI_SCLK",
|
||||
"GPIO12",
|
||||
"GPIO13",
|
||||
/* Serial port */
|
||||
"TXD1",
|
||||
"RXD1",
|
||||
"GPIO16",
|
||||
"GPIO17",
|
||||
"GPIO18",
|
||||
"GPIO19",
|
||||
"GPIO20",
|
||||
"GPIO21",
|
||||
"GPIO22",
|
||||
"GPIO23",
|
||||
"GPIO24",
|
||||
"GPIO25",
|
||||
"GPIO26",
|
||||
"GPIO27",
|
||||
"RGMII_MDIO",
|
||||
"RGMIO_MDC",
|
||||
/* Used by BT module */
|
||||
"CTS0",
|
||||
"RTS0",
|
||||
"TXD0",
|
||||
"RXD0",
|
||||
/* Used by Wifi */
|
||||
"SD1_CLK",
|
||||
"SD1_CMD",
|
||||
"SD1_DATA0",
|
||||
"SD1_DATA1",
|
||||
"SD1_DATA2",
|
||||
"SD1_DATA3",
|
||||
/* Shared with SPI flash */
|
||||
"PWM0_MISO",
|
||||
"PWM1_MOSI",
|
||||
"STATUS_LED_G_CLK",
|
||||
"SPIFLASH_CE_N",
|
||||
"SDA0",
|
||||
"SCL0",
|
||||
"RGMII_RXCLK",
|
||||
"RGMII_RXCTL",
|
||||
"RGMII_RXD0",
|
||||
"RGMII_RXD1",
|
||||
"RGMII_RXD2",
|
||||
"RGMII_RXD3",
|
||||
"RGMII_TXCLK",
|
||||
"RGMII_TXCTL",
|
||||
"RGMII_TXD0",
|
||||
"RGMII_TXD1",
|
||||
"RGMII_TXD2",
|
||||
"RGMII_TXD3";
|
||||
};
|
||||
|
||||
&hdmi0 {
|
||||
clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
|
||||
clock-names = "hdmi", "bvb", "audio", "cec";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi1 {
|
||||
clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
|
||||
clock-names = "hdmi", "bvb", "audio", "cec";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hvs {
|
||||
clocks = <&firmware_clocks 4>;
|
||||
};
|
||||
|
||||
&pixelvalve0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pixelvalve1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pixelvalve2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pixelvalve4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vc4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vec {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* SDHCI is used to control the SDIO for wireless */
|
||||
&sdhci {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emmc_gpio34>;
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
mmc-pwrseq = <&wifi_pwrseq>;
|
||||
status = "okay";
|
||||
|
||||
brcmf: wifi@1 {
|
||||
reg = <1>;
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
};
|
||||
};
|
||||
|
||||
/* EMMC2 is used to drive the EMMC card */
|
||||
&emmc2 {
|
||||
bus-width = <8>;
|
||||
vqmmc-supply = <&sd_io_1v8_reg>;
|
||||
vmmc-supply = <&sd_vcc_reg>;
|
||||
broken-cd;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&genet {
|
||||
phy-handle = <&phy1>;
|
||||
phy-mode = "rgmii-rxid";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&genet_mdio {
|
||||
phy1: ethernet-phy@1 {
|
||||
/* No PHY interrupt */
|
||||
reg = <0x1>;
|
||||
};
|
||||
};
|
||||
|
||||
/* uart0 communicates with the BT module */
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
|
||||
uart-has-rtscts;
|
||||
status = "okay";
|
||||
|
||||
bluetooth {
|
||||
compatible = "brcm,bcm43438-bt";
|
||||
max-speed = <2000000>;
|
||||
shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
/* uart1 is mapped to the pin header */
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vchiq {
|
||||
interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
// =============================================
|
||||
// Downstream rpi- changes
|
||||
|
||||
#define BCM2711
|
||||
|
||||
#include "bcm270x.dtsi"
|
||||
#include "bcm271x-rpi-bt.dtsi"
|
||||
|
||||
/ {
|
||||
soc {
|
||||
/delete-node/ pixelvalve@7e807000;
|
||||
/delete-node/ hdmi@7e902000;
|
||||
};
|
||||
};
|
||||
|
||||
#include "bcm2711-rpi.dtsi"
|
||||
#include "bcm283x-rpi-csi0-2lane.dtsi"
|
||||
#include "bcm283x-rpi-csi1-4lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1";
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart0;
|
||||
mmc0 = &emmc2;
|
||||
mmc1 = &mmcnr;
|
||||
mmc2 = &sdhost;
|
||||
/delete-property/ i2c2;
|
||||
i2c3 = &i2c3;
|
||||
i2c4 = &i2c4;
|
||||
i2c5 = &i2c5;
|
||||
i2c6 = &i2c6;
|
||||
/delete-property/ intc;
|
||||
};
|
||||
|
||||
/delete-node/ wifi-pwrseq;
|
||||
};
|
||||
|
||||
&mmcnr {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-0 = <&uart0_pins &bt_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-0 = <&uart1_pins>;
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <125000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
};
|
||||
|
||||
spi3_pins: spi3_pins {
|
||||
brcm,pins = <1 2 3>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
};
|
||||
|
||||
spi3_cs_pins: spi3_cs_pins {
|
||||
brcm,pins = <0 24>;
|
||||
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
};
|
||||
|
||||
spi4_pins: spi4_pins {
|
||||
brcm,pins = <5 6 7>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
};
|
||||
|
||||
spi4_cs_pins: spi4_cs_pins {
|
||||
brcm,pins = <4 25>;
|
||||
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
};
|
||||
|
||||
spi5_pins: spi5_pins {
|
||||
brcm,pins = <13 14 15>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
};
|
||||
|
||||
spi5_cs_pins: spi5_cs_pins {
|
||||
brcm,pins = <12 26>;
|
||||
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
};
|
||||
|
||||
spi6_pins: spi6_pins {
|
||||
brcm,pins = <19 20 21>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
};
|
||||
|
||||
spi6_cs_pins: spi6_cs_pins {
|
||||
brcm,pins = <18 27>;
|
||||
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2c3_pins: i2c3 {
|
||||
brcm,pins = <4 5>;
|
||||
brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2c4_pins: i2c4 {
|
||||
brcm,pins = <8 9>;
|
||||
brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2c5_pins: i2c5 {
|
||||
brcm,pins = <12 13>;
|
||||
brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2c6_pins: i2c6 {
|
||||
brcm,pins = <22 23>;
|
||||
brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
brcm,pull = <BCM2835_PUD_UP>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
};
|
||||
|
||||
sdio_pins: sdio_pins {
|
||||
brcm,pins = <34 35 36 37 38 39>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>; // alt3 = SD1
|
||||
brcm,pull = <0 2 2 2 2 2>;
|
||||
};
|
||||
|
||||
bt_pins: bt_pins {
|
||||
brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0
|
||||
// to fool pinctrl
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <2>;
|
||||
};
|
||||
|
||||
uart0_pins: uart0_pins {
|
||||
brcm,pins = <32 33>;
|
||||
brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
|
||||
uart1_pins: uart1_pins {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
brcm,pull;
|
||||
};
|
||||
|
||||
uart2_pins: uart2_pins {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
|
||||
uart3_pins: uart3_pins {
|
||||
brcm,pins = <4 5>;
|
||||
brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
|
||||
uart4_pins: uart4_pins {
|
||||
brcm,pins = <8 9>;
|
||||
brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
|
||||
uart5_pins: uart5_pins {
|
||||
brcm,pins = <12 13>;
|
||||
brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0if {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
/delete-property/ i2c2_baudrate;
|
||||
/delete-property/ i2c2_iknowwhatimdoing;
|
||||
};
|
||||
};
|
||||
|
||||
// =============================================
|
||||
// Board specific stuff here
|
||||
|
||||
&pcie0 {
|
||||
brcm,enable-l1ss;
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&phy1 {
|
||||
led-modes = <0x00 0x08>; /* link/activity link */
|
||||
};
|
||||
|
||||
&gpio {
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 41>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
pwr_led: pwr {
|
||||
label = "led1";
|
||||
linux,default-trigger = "default-on";
|
||||
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
pwr_led_gpio = <&pwr_led>,"gpios:4";
|
||||
pwr_led_activelow = <&pwr_led>,"gpios:8";
|
||||
pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
|
||||
|
||||
eth_led0 = <&phy1>,"led-modes:0";
|
||||
eth_led1 = <&phy1>,"led-modes:4";
|
||||
|
||||
ant1 = <&ant1>,"output-high?=on",
|
||||
<&ant1>, "output-low?=off",
|
||||
<&ant2>, "output-high?=off",
|
||||
<&ant2>, "output-low?=on";
|
||||
ant2 = <&ant1>,"output-high?=off",
|
||||
<&ant1>, "output-low?=on",
|
||||
<&ant2>, "output-high?=on",
|
||||
<&ant2>, "output-low?=off";
|
||||
noant = <&ant1>,"output-high?=off",
|
||||
<&ant1>, "output-low?=on",
|
||||
<&ant2>, "output-high?=off",
|
||||
<&ant2>, "output-low?=on";
|
||||
|
||||
sd_poll_once = <&emmc2>, "non-removable?";
|
||||
spi_dma4 = <&spi0>, "dmas:0=", <&dma40>,
|
||||
<&spi0>, "dmas:8=", <&dma40>;
|
||||
};
|
||||
};
|
||||
201
arch/arm/boot/dts/bcm2711-rpi.dtsi
Normal file
201
arch/arm/boot/dts/bcm2711-rpi.dtsi
Normal file
@@ -0,0 +1,201 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include "bcm270x-rpi.dtsi"
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
arm_freq;
|
||||
};
|
||||
|
||||
v3dbus: v3dbus {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x7c500000 0x0 0xfc500000 0x0 0x03300000>,
|
||||
<0x40000000 0x0 0xff800000 0x0 0x00800000>;
|
||||
dma-ranges = <0x00000000 0x0 0x00000000 0x4 0x00000000>;
|
||||
|
||||
v3d: v3d@7ec04000 {
|
||||
compatible = "brcm,2711-v3d";
|
||||
reg =
|
||||
<0x7ec00000 0x0 0x4000>,
|
||||
<0x7ec04000 0x0 0x4000>;
|
||||
reg-names = "hub", "core0";
|
||||
|
||||
power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>;
|
||||
resets = <&pm BCM2835_RESET_V3D>;
|
||||
clocks = <&firmware_clocks 5>;
|
||||
clocks-names = "v3d";
|
||||
interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
scb: scb {
|
||||
/* Add a label */
|
||||
};
|
||||
};
|
||||
|
||||
&cma {
|
||||
/* Limit cma to the lower 768MB to allow room for HIGHMEM on 32-bit */
|
||||
alloc-ranges = <0x0 0x00000000 0x30000000>;
|
||||
};
|
||||
|
||||
&scb {
|
||||
ranges = <0x0 0x7c000000 0x0 0xfc000000 0x0 0x03800000>,
|
||||
<0x0 0x40000000 0x0 0xff800000 0x0 0x00800000>,
|
||||
<0x6 0x00000000 0x6 0x00000000 0x0 0x40000000>,
|
||||
<0x0 0x00000000 0x0 0x00000000 0x0 0xfc000000>;
|
||||
dma-ranges = <0x0 0x00000000 0x0 0x00000000 0x4 0x00000000>;
|
||||
|
||||
dma40: dma@7e007b00 {
|
||||
compatible = "brcm,bcm2711-dma";
|
||||
reg = <0x0 0x7e007b00 0x0 0x400>;
|
||||
interrupts =
|
||||
<GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, /* dma4 11 */
|
||||
<GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>, /* dma4 12 */
|
||||
<GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, /* dma4 13 */
|
||||
<GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; /* dma4 14 */
|
||||
interrupt-names = "dma11",
|
||||
"dma12",
|
||||
"dma13",
|
||||
"dma14";
|
||||
#dma-cells = <1>;
|
||||
brcm,dma-channel-mask = <0x7800>;
|
||||
};
|
||||
|
||||
xhci: xhci@7e9c0000 {
|
||||
compatible = "generic-xhci";
|
||||
status = "disabled";
|
||||
reg = <0x0 0x7e9c0000 0x0 0x100000>;
|
||||
interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&power RPI_POWER_DOMAIN_USB>;
|
||||
};
|
||||
|
||||
hevc-decoder@7eb00000 {
|
||||
compatible = "raspberrypi,rpivid-hevc-decoder";
|
||||
reg = <0x0 0x7eb00000 0x0 0x10000>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
rpivid-local-intc@7eb10000 {
|
||||
compatible = "raspberrypi,rpivid-local-intc";
|
||||
reg = <0x0 0x7eb10000 0x0 0x1000>;
|
||||
status = "okay";
|
||||
interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
h264-decoder@7eb20000 {
|
||||
compatible = "raspberrypi,rpivid-h264-decoder";
|
||||
reg = <0x0 0x7eb20000 0x0 0x10000>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
vp9-decoder@7eb30000 {
|
||||
compatible = "raspberrypi,rpivid-vp9-decoder";
|
||||
reg = <0x0 0x7eb30000 0x0 0x10000>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&dma40 {
|
||||
/* The VPU firmware uses DMA channel 11 for VCHIQ */
|
||||
brcm,dma-channel-mask = <0x7000>;
|
||||
};
|
||||
|
||||
&vchiq {
|
||||
compatible = "brcm,bcm2711-vchiq";
|
||||
};
|
||||
|
||||
&firmwarekms {
|
||||
compatible = "raspberrypi,rpi-firmware-kms-2711";
|
||||
interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
&smi {
|
||||
interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
&mmc {
|
||||
interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
&mmcnr {
|
||||
interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
&csi0 {
|
||||
interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
&csi1 {
|
||||
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
&random {
|
||||
compatible = "brcm,bcm2711-rng200";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb {
|
||||
/* Enable the FIQ support */
|
||||
reg = <0x7e980000 0x10000>,
|
||||
<0x7e00b200 0x200>;
|
||||
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
&emmc2 {
|
||||
mmc-ddr-3_3v;
|
||||
};
|
||||
|
||||
&vc4 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&pixelvalve0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&pixelvalve1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&pixelvalve2 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&pixelvalve3 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&pixelvalve4 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&hdmi0 {
|
||||
dmas = <&dma (10|(1<<27))>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&ddc0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&hdmi1 {
|
||||
dmas = <&dma (17|(1<<27))>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&ddc1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&dvp {
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -318,7 +318,8 @@
|
||||
<0x7ef01f00 0x400>,
|
||||
<0x7ef00200 0x80>,
|
||||
<0x7ef04300 0x100>,
|
||||
<0x7ef20000 0x100>;
|
||||
<0x7ef20000 0x100>,
|
||||
<0x7ef00100 0x30>;
|
||||
reg-names = "hdmi",
|
||||
"dvp",
|
||||
"phy",
|
||||
@@ -327,12 +328,18 @@
|
||||
"metadata",
|
||||
"csc",
|
||||
"cec",
|
||||
"hd";
|
||||
"hd",
|
||||
"intr2";
|
||||
clocks = <&firmware_clocks 13>,
|
||||
<&firmware_clocks 14>,
|
||||
<&dvp 0>,
|
||||
<&clk_27MHz>;
|
||||
clock-names = "hdmi", "bvb", "audio", "cec";
|
||||
resets = <&dvp 0>;
|
||||
ddc = <&ddc0>;
|
||||
dmas = <&dma 10>;
|
||||
dma-names = "audio-rx";
|
||||
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -354,7 +361,8 @@
|
||||
<0x7ef06f00 0x400>,
|
||||
<0x7ef00280 0x80>,
|
||||
<0x7ef09300 0x100>,
|
||||
<0x7ef20000 0x100>;
|
||||
<0x7ef20000 0x100>,
|
||||
<0x7ef00100 0x30>;
|
||||
reg-names = "hdmi",
|
||||
"dvp",
|
||||
"phy",
|
||||
@@ -363,12 +371,18 @@
|
||||
"metadata",
|
||||
"csc",
|
||||
"cec",
|
||||
"hd";
|
||||
"hd",
|
||||
"intr2";
|
||||
ddc = <&ddc1>;
|
||||
clock-names = "hdmi", "bvb", "audio", "cec";
|
||||
clocks = <&firmware_clocks 13>,
|
||||
<&firmware_clocks 14>,
|
||||
<&dvp 0>,
|
||||
<&clk_27MHz>;
|
||||
resets = <&dvp 1>;
|
||||
dmas = <&dma 17>;
|
||||
dma-names = "audio-rx";
|
||||
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -468,14 +482,14 @@
|
||||
scb {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
|
||||
ranges = <0x0 0x7c000000 0x0 0xfc000000 0x03800000>,
|
||||
<0x6 0x00000000 0x6 0x00000000 0x40000000>;
|
||||
ranges = <0x0 0x7c000000 0x0 0xfc000000 0x0 0x03800000>,
|
||||
<0x6 0x00000000 0x6 0x00000000 0x0 0x40000000>;
|
||||
|
||||
pcie0: pcie@7d500000 {
|
||||
compatible = "brcm,bcm2711-pcie";
|
||||
reg = <0x0 0x7d500000 0x9310>;
|
||||
reg = <0x0 0x7d500000 0x0 0x9310>;
|
||||
device_type = "pci";
|
||||
#address-cells = <3>;
|
||||
#interrupt-cells = <1>;
|
||||
@@ -503,7 +517,7 @@
|
||||
|
||||
genet: ethernet@7d580000 {
|
||||
compatible = "brcm,bcm2711-genet-v5";
|
||||
reg = <0x0 0x7d580000 0x10000>;
|
||||
reg = <0x0 0x7d580000 0x0 0x10000>;
|
||||
#address-cells = <0x1>;
|
||||
#size-cells = <0x1>;
|
||||
interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
|
||||
@@ -1010,7 +1024,7 @@
|
||||
alloc-ranges = <0x0 0x00000000 0x40000000>;
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
&i2c0if {
|
||||
compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c";
|
||||
interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
26
arch/arm/boot/dts/bcm271x-rpi-bt.dtsi
Normal file
26
arch/arm/boot/dts/bcm271x-rpi-bt.dtsi
Normal file
@@ -0,0 +1,26 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
&uart0 {
|
||||
bt: bluetooth {
|
||||
compatible = "brcm,bcm43438-bt";
|
||||
max-speed = <3000000>;
|
||||
shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
minibt: bluetooth {
|
||||
compatible = "brcm,bcm43438-bt";
|
||||
max-speed = <460800>;
|
||||
shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
krnbt = <&bt>,"status";
|
||||
krnbt_baudrate = <&bt>,"max-speed:0";
|
||||
};
|
||||
};
|
||||
@@ -116,12 +116,14 @@
|
||||
compatible = "brcm,bcm2835-hdmi";
|
||||
reg = <0x7e902000 0x600>,
|
||||
<0x7e808000 0x100>;
|
||||
reg-names = "hdmi",
|
||||
"hd";
|
||||
interrupts = <2 8>, <2 9>;
|
||||
ddc = <&i2c2>;
|
||||
clocks = <&clocks BCM2835_PLLH_PIX>,
|
||||
<&clocks BCM2835_CLOCK_HSM>;
|
||||
clock-names = "pixel", "hdmi";
|
||||
dmas = <&dma 17>;
|
||||
dmas = <&dma (17|(1<<27))>;
|
||||
dma-names = "audio-rx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -126,3 +126,8 @@
|
||||
pinctrl-0 = <&uart0_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* i2c on camera/display connector is gpio 28&29 */
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio28>;
|
||||
};
|
||||
|
||||
@@ -121,3 +121,10 @@
|
||||
pinctrl-0 = <&uart0_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* i2c0 on camera/display connector is gpio 0&1. Not exposed on header.
|
||||
* To avoid having to remap everything, map both ports to gpios 0&1
|
||||
*/
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio0>;
|
||||
};
|
||||
|
||||
@@ -128,3 +128,8 @@
|
||||
pinctrl-0 = <&uart0_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* i2c on camera/display connector is gpio 28&29 */
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio28>;
|
||||
};
|
||||
|
||||
@@ -121,3 +121,10 @@
|
||||
pinctrl-0 = <&uart0_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* i2c0 on camera/display connector is gpio 0&1. Not exposed on header.
|
||||
* To avoid having to remap everything, map both ports to gpios 0&1
|
||||
*/
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio0>;
|
||||
};
|
||||
|
||||
@@ -116,3 +116,10 @@
|
||||
pinctrl-0 = <&uart0_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* camera/display connector use BSC1 on GPIOS 2&3.
|
||||
* To avoid having to remap everything, map both ports to gpios 0&1
|
||||
*/
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio0>;
|
||||
};
|
||||
|
||||
@@ -95,3 +95,8 @@
|
||||
pinctrl-0 = <&uart0_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* WHAT TO DO HERE? */
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio28>;
|
||||
};
|
||||
|
||||
@@ -149,3 +149,8 @@
|
||||
pinctrl-0 = <&uart1_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* i2c on camera/display connector is gpio 28&29 */
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio28>;
|
||||
};
|
||||
|
||||
@@ -117,3 +117,8 @@
|
||||
pinctrl-0 = <&uart0_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* i2c on camera/display connector is gpio 28&29 */
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio28>;
|
||||
};
|
||||
|
||||
@@ -19,6 +19,11 @@
|
||||
|
||||
mboxes = <&mailbox>;
|
||||
dma-ranges;
|
||||
|
||||
firmware_clocks: clocks {
|
||||
compatible = "raspberrypi,firmware-clocks";
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
power: power {
|
||||
@@ -49,13 +54,17 @@
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_gpio0>;
|
||||
&i2c0if {
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c0mux {
|
||||
pinctrl-0 = <&i2c0_gpio0>;
|
||||
/* pinctrl-1 varies based on platform */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_gpio2>;
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
soc {
|
||||
ranges = <0x7e000000 0x20000000 0x02000000>;
|
||||
dma-ranges = <0x40000000 0x00000000 0x20000000>;
|
||||
dma-ranges = <0x80000000 0x00000000 0x20000000>;
|
||||
};
|
||||
|
||||
arm-pmu {
|
||||
|
||||
@@ -128,3 +128,8 @@
|
||||
pinctrl-0 = <&uart0_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* i2c on camera/display connector is gpio 28&29 */
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio28>;
|
||||
};
|
||||
|
||||
@@ -178,3 +178,8 @@
|
||||
pinctrl-0 = <&uart1_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* i2c on camera/display connector is gpio 44&45 */
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio44>;
|
||||
};
|
||||
|
||||
@@ -181,3 +181,8 @@
|
||||
pinctrl-0 = <&uart1_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* i2c on camera/display connector is gpio 44&45 */
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio44>;
|
||||
};
|
||||
|
||||
@@ -174,3 +174,8 @@
|
||||
status = "okay";
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
/* i2c on camera/display connector is gpio 44&45 */
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio44>;
|
||||
};
|
||||
|
||||
@@ -94,3 +94,8 @@
|
||||
pinctrl-0 = <&uart0_gpio14>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* WHAT TO DO HERE? */
|
||||
&i2c0mux {
|
||||
pinctrl-1 = <&i2c0_gpio28>;
|
||||
};
|
||||
|
||||
4
arch/arm/boot/dts/bcm283x-rpi-csi0-2lane.dtsi
Normal file
4
arch/arm/boot/dts/bcm283x-rpi-csi0-2lane.dtsi
Normal file
@@ -0,0 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
&csi0 {
|
||||
brcm,num-data-lanes = <2>;
|
||||
};
|
||||
4
arch/arm/boot/dts/bcm283x-rpi-csi1-2lane.dtsi
Normal file
4
arch/arm/boot/dts/bcm283x-rpi-csi1-2lane.dtsi
Normal file
@@ -0,0 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
&csi1 {
|
||||
brcm,num-data-lanes = <2>;
|
||||
};
|
||||
4
arch/arm/boot/dts/bcm283x-rpi-csi1-4lane.dtsi
Normal file
4
arch/arm/boot/dts/bcm283x-rpi-csi1-4lane.dtsi
Normal file
@@ -0,0 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
&csi1 {
|
||||
brcm,num-data-lanes = <4>;
|
||||
};
|
||||
4
arch/arm/boot/dts/bcm283x-rpi-i2c0mux_0_28.dtsi
Normal file
4
arch/arm/boot/dts/bcm283x-rpi-i2c0mux_0_28.dtsi
Normal file
@@ -0,0 +1,4 @@
|
||||
&i2c0mux {
|
||||
pinctrl-0 = <&i2c0_gpio0>;
|
||||
pinctrl-1 = <&i2c0_gpio28>;
|
||||
};
|
||||
4
arch/arm/boot/dts/bcm283x-rpi-i2c0mux_0_44.dtsi
Normal file
4
arch/arm/boot/dts/bcm283x-rpi-i2c0mux_0_44.dtsi
Normal file
@@ -0,0 +1,4 @@
|
||||
&i2c0mux {
|
||||
pinctrl-0 = <&i2c0_gpio0>;
|
||||
pinctrl-1 = <&i2c0_gpio44>;
|
||||
};
|
||||
@@ -1,7 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
&usb {
|
||||
dr_mode = "peripheral";
|
||||
g-rx-fifo-size = <256>;
|
||||
g-np-tx-fifo-size = <32>;
|
||||
g-tx-fifo-size = <256 256 512 512 512 768 768>;
|
||||
};
|
||||
@@ -334,7 +334,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@7e205000 {
|
||||
i2c0if: i2c@7e205000 {
|
||||
compatible = "brcm,bcm2835-i2c";
|
||||
reg = <0x7e205000 0x200>;
|
||||
interrupts = <2 21>;
|
||||
@@ -344,6 +344,30 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0mux: i2c0mux {
|
||||
compatible = "i2c-mux-pinctrl";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
i2c-parent = <&i2c0if>;
|
||||
|
||||
pinctrl-names = "i2c0", "i2c_csi_dsi";
|
||||
|
||||
status = "disabled";
|
||||
|
||||
i2c0: i2c@0 {
|
||||
reg = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c_csi_dsi: i2c@1 {
|
||||
reg = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
dpi: dpi@7e208000 {
|
||||
compatible = "brcm,bcm2835-dpi";
|
||||
reg = <0x7e208000 0x8c>;
|
||||
|
||||
216
arch/arm/boot/dts/overlays/Makefile
Normal file
216
arch/arm/boot/dts/overlays/Makefile
Normal file
@@ -0,0 +1,216 @@
|
||||
# Overlays for the Raspberry Pi platform
|
||||
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += overlay_map.dtb
|
||||
|
||||
dtbo-$(CONFIG_ARCH_BCM2835) += \
|
||||
act-led.dtbo \
|
||||
adafruit18.dtbo \
|
||||
adau1977-adc.dtbo \
|
||||
adau7002-simple.dtbo \
|
||||
ads1015.dtbo \
|
||||
ads1115.dtbo \
|
||||
ads7846.dtbo \
|
||||
adv7282m.dtbo \
|
||||
adv728x-m.dtbo \
|
||||
akkordion-iqdacplus.dtbo \
|
||||
allo-boss-dac-pcm512x-audio.dtbo \
|
||||
allo-digione.dtbo \
|
||||
allo-katana-dac-audio.dtbo \
|
||||
allo-piano-dac-pcm512x-audio.dtbo \
|
||||
allo-piano-dac-plus-pcm512x-audio.dtbo \
|
||||
anyspi.dtbo \
|
||||
apds9960.dtbo \
|
||||
applepi-dac.dtbo \
|
||||
at86rf233.dtbo \
|
||||
audioinjector-addons.dtbo \
|
||||
audioinjector-isolated-soundcard.dtbo \
|
||||
audioinjector-ultra.dtbo \
|
||||
audioinjector-wm8731-audio.dtbo \
|
||||
audiosense-pi.dtbo \
|
||||
audremap.dtbo \
|
||||
balena-fin.dtbo \
|
||||
cma.dtbo \
|
||||
dht11.dtbo \
|
||||
dionaudio-loco.dtbo \
|
||||
dionaudio-loco-v2.dtbo \
|
||||
disable-bt.dtbo \
|
||||
disable-wifi.dtbo \
|
||||
dpi18.dtbo \
|
||||
dpi24.dtbo \
|
||||
draws.dtbo \
|
||||
dwc-otg.dtbo \
|
||||
dwc2.dtbo \
|
||||
enc28j60.dtbo \
|
||||
enc28j60-spi2.dtbo \
|
||||
exc3000.dtbo \
|
||||
fe-pi-audio.dtbo \
|
||||
fsm-demo.dtbo \
|
||||
ghost-amp.dtbo \
|
||||
goodix.dtbo \
|
||||
googlevoicehat-soundcard.dtbo \
|
||||
gpio-fan.dtbo \
|
||||
gpio-ir.dtbo \
|
||||
gpio-ir-tx.dtbo \
|
||||
gpio-key.dtbo \
|
||||
gpio-no-bank0-irq.dtbo \
|
||||
gpio-no-irq.dtbo \
|
||||
gpio-poweroff.dtbo \
|
||||
gpio-shutdown.dtbo \
|
||||
hd44780-lcd.dtbo \
|
||||
hdmi-backlight-hwhack-gpio.dtbo \
|
||||
hifiberry-amp.dtbo \
|
||||
hifiberry-dac.dtbo \
|
||||
hifiberry-dacplus.dtbo \
|
||||
hifiberry-dacplusadc.dtbo \
|
||||
hifiberry-dacplusadcpro.dtbo \
|
||||
hifiberry-dacplusdsp.dtbo \
|
||||
hifiberry-dacplushd.dtbo \
|
||||
hifiberry-digi.dtbo \
|
||||
hifiberry-digi-pro.dtbo \
|
||||
highperi.dtbo \
|
||||
hy28a.dtbo \
|
||||
hy28b.dtbo \
|
||||
hy28b-2017.dtbo \
|
||||
i-sabre-q2m.dtbo \
|
||||
i2c-bcm2708.dtbo \
|
||||
i2c-gpio.dtbo \
|
||||
i2c-mux.dtbo \
|
||||
i2c-pwm-pca9685a.dtbo \
|
||||
i2c-rtc.dtbo \
|
||||
i2c-rtc-gpio.dtbo \
|
||||
i2c-sensor.dtbo \
|
||||
i2c0.dtbo \
|
||||
i2c1.dtbo \
|
||||
i2c3.dtbo \
|
||||
i2c4.dtbo \
|
||||
i2c5.dtbo \
|
||||
i2c6.dtbo \
|
||||
i2s-gpio28-31.dtbo \
|
||||
ilitek251x.dtbo \
|
||||
imx219.dtbo \
|
||||
imx290.dtbo \
|
||||
imx477.dtbo \
|
||||
iqaudio-codec.dtbo \
|
||||
iqaudio-dac.dtbo \
|
||||
iqaudio-dacplus.dtbo \
|
||||
iqaudio-digi-wm8804-audio.dtbo \
|
||||
irs1125.dtbo \
|
||||
jedec-spi-nor.dtbo \
|
||||
justboom-both.dtbo \
|
||||
justboom-dac.dtbo \
|
||||
justboom-digi.dtbo \
|
||||
ltc294x.dtbo \
|
||||
max98357a.dtbo \
|
||||
maxtherm.dtbo \
|
||||
mbed-dac.dtbo \
|
||||
mcp23017.dtbo \
|
||||
mcp23s17.dtbo \
|
||||
mcp2515-can0.dtbo \
|
||||
mcp2515-can1.dtbo \
|
||||
mcp3008.dtbo \
|
||||
mcp3202.dtbo \
|
||||
mcp342x.dtbo \
|
||||
media-center.dtbo \
|
||||
merus-amp.dtbo \
|
||||
midi-uart0.dtbo \
|
||||
midi-uart1.dtbo \
|
||||
miniuart-bt.dtbo \
|
||||
mmc.dtbo \
|
||||
mpu6050.dtbo \
|
||||
mz61581.dtbo \
|
||||
ov5647.dtbo \
|
||||
ov7251.dtbo \
|
||||
ov9281.dtbo \
|
||||
papirus.dtbo \
|
||||
pca953x.dtbo \
|
||||
pibell.dtbo \
|
||||
pifacedigital.dtbo \
|
||||
piglow.dtbo \
|
||||
piscreen.dtbo \
|
||||
piscreen2r.dtbo \
|
||||
pisound.dtbo \
|
||||
pitft22.dtbo \
|
||||
pitft28-capacitive.dtbo \
|
||||
pitft28-resistive.dtbo \
|
||||
pitft35-resistive.dtbo \
|
||||
pps-gpio.dtbo \
|
||||
pwm.dtbo \
|
||||
pwm-2chan.dtbo \
|
||||
pwm-ir-tx.dtbo \
|
||||
qca7000.dtbo \
|
||||
rotary-encoder.dtbo \
|
||||
rpi-backlight.dtbo \
|
||||
rpi-cirrus-wm5102.dtbo \
|
||||
rpi-dac.dtbo \
|
||||
rpi-display.dtbo \
|
||||
rpi-ft5406.dtbo \
|
||||
rpi-poe.dtbo \
|
||||
rpi-proto.dtbo \
|
||||
rpi-sense.dtbo \
|
||||
rpi-tv.dtbo \
|
||||
rpivid-v4l2.dtbo \
|
||||
rra-digidac1-wm8741-audio.dtbo \
|
||||
sainsmart18.dtbo \
|
||||
sc16is750-i2c.dtbo \
|
||||
sc16is752-i2c.dtbo \
|
||||
sc16is752-spi0.dtbo \
|
||||
sc16is752-spi1.dtbo \
|
||||
sdhost.dtbo \
|
||||
sdio.dtbo \
|
||||
sdtweak.dtbo \
|
||||
sh1106-spi.dtbo \
|
||||
smi.dtbo \
|
||||
smi-dev.dtbo \
|
||||
smi-nand.dtbo \
|
||||
spi-gpio35-39.dtbo \
|
||||
spi-gpio40-45.dtbo \
|
||||
spi-rtc.dtbo \
|
||||
spi0-1cs.dtbo \
|
||||
spi0-2cs.dtbo \
|
||||
spi1-1cs.dtbo \
|
||||
spi1-2cs.dtbo \
|
||||
spi1-3cs.dtbo \
|
||||
spi2-1cs.dtbo \
|
||||
spi2-2cs.dtbo \
|
||||
spi2-3cs.dtbo \
|
||||
spi3-1cs.dtbo \
|
||||
spi3-2cs.dtbo \
|
||||
spi4-1cs.dtbo \
|
||||
spi4-2cs.dtbo \
|
||||
spi5-1cs.dtbo \
|
||||
spi5-2cs.dtbo \
|
||||
spi6-1cs.dtbo \
|
||||
spi6-2cs.dtbo \
|
||||
ssd1306.dtbo \
|
||||
ssd1306-spi.dtbo \
|
||||
ssd1351-spi.dtbo \
|
||||
superaudioboard.dtbo \
|
||||
sx150x.dtbo \
|
||||
tc358743.dtbo \
|
||||
tc358743-audio.dtbo \
|
||||
tinylcd35.dtbo \
|
||||
tpm-slb9670.dtbo \
|
||||
uart0.dtbo \
|
||||
uart1.dtbo \
|
||||
uart2.dtbo \
|
||||
uart3.dtbo \
|
||||
uart4.dtbo \
|
||||
uart5.dtbo \
|
||||
udrc.dtbo \
|
||||
upstream.dtbo \
|
||||
upstream-pi4.dtbo \
|
||||
vc4-fkms-v3d.dtbo \
|
||||
vc4-kms-kippah-7inch.dtbo \
|
||||
vc4-kms-v3d.dtbo \
|
||||
vc4-kms-v3d-pi4.dtbo \
|
||||
vga666.dtbo \
|
||||
w1-gpio.dtbo \
|
||||
w1-gpio-pullup.dtbo \
|
||||
w5500.dtbo \
|
||||
wittypi.dtbo
|
||||
|
||||
targets += dtbs dtbs_install
|
||||
targets += $(dtbo-y)
|
||||
|
||||
always-y := $(dtbo-y)
|
||||
clean-files := *.dtbo
|
||||
3040
arch/arm/boot/dts/overlays/README
Normal file
3040
arch/arm/boot/dts/overlays/README
Normal file
File diff suppressed because it is too large
Load Diff
27
arch/arm/boot/dts/overlays/act-led-overlay.dts
Normal file
27
arch/arm/boot/dts/overlays/act-led-overlay.dts
Normal file
@@ -0,0 +1,27 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/* Pi3 uses a GPIO expander to drive the LEDs which can only be accessed
|
||||
from the VPU. There is a special driver for this with a separate DT node,
|
||||
which has the unfortunate consequence of breaking the act_led_gpio and
|
||||
act_led_activelow dtparams.
|
||||
|
||||
This overlay changes the GPIO controller back to the standard one and
|
||||
restores the dtparams.
|
||||
*/
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&act_led>;
|
||||
frag0: __overlay__ {
|
||||
gpios = <&gpio 0 0>;
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
gpio = <&frag0>,"gpios:4";
|
||||
activelow = <&frag0>,"gpios:8";
|
||||
};
|
||||
};
|
||||
55
arch/arm/boot/dts/overlays/adafruit18-overlay.dts
Normal file
55
arch/arm/boot/dts/overlays/adafruit18-overlay.dts
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Device Tree overlay for Adafruit 1.8" TFT LCD with ST7735R chip 160x128
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spidev0>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
af18: adafruit18@0 {
|
||||
compatible = "fbtft,adafruit18";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
spi-max-frequency = <40000000>;
|
||||
rotate = <90>;
|
||||
buswidth = <8>;
|
||||
fps = <50>;
|
||||
height = <160>;
|
||||
width = <128>;
|
||||
reset-gpios = <&gpio 25 1>;
|
||||
dc-gpios = <&gpio 24 0>;
|
||||
led-gpios = <&gpio 18 0>;
|
||||
debug = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
green = <&af18>, "compatible=fbtft,adafruit18_green";
|
||||
speed = <&af18>,"spi-max-frequency:0";
|
||||
rotate = <&af18>,"rotate:0";
|
||||
fps = <&af18>,"fps:0";
|
||||
bgr = <&af18>,"bgr?";
|
||||
debug = <&af18>,"debug:0";
|
||||
dc_pin = <&af18>,"dc-gpios:4";
|
||||
reset_pin = <&af18>,"reset-gpios:4";
|
||||
led_pin = <&af18>,"led-gpios:4";
|
||||
};
|
||||
};
|
||||
40
arch/arm/boot/dts/overlays/adau1977-adc-overlay.dts
Normal file
40
arch/arm/boot/dts/overlays/adau1977-adc-overlay.dts
Normal file
@@ -0,0 +1,40 @@
|
||||
// Definitions for ADAU1977 ADC
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c>;
|
||||
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
adau1977: codec@11 {
|
||||
compatible = "adi,adau1977";
|
||||
reg = <0x11>;
|
||||
reset-gpios = <&gpio 5 0>;
|
||||
AVDD-supply = <&vdd_3v3_reg>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "adi,adau1977-adc";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
52
arch/arm/boot/dts/overlays/adau7002-simple-overlay.dts
Normal file
52
arch/arm/boot/dts/overlays/adau7002-simple-overlay.dts
Normal file
@@ -0,0 +1,52 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
adau7002_codec: adau7002-codec {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "adi,adau7002";
|
||||
/* IOVDD-supply = <&supply>;*/
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
sound_overlay: __overlay__ {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,format = "i2s";
|
||||
simple-audio-card,name = "adau7002";
|
||||
simple-audio-card,bitclock-slave = <&dailink0_slave>;
|
||||
simple-audio-card,frame-slave = <&dailink0_slave>;
|
||||
simple-audio-card,widgets =
|
||||
"Microphone", "Microphone Jack";
|
||||
simple-audio-card,routing =
|
||||
"PDM_DAT", "Microphone Jack";
|
||||
status = "okay";
|
||||
simple-audio-card,cpu {
|
||||
sound-dai = <&i2s>;
|
||||
};
|
||||
dailink0_slave: simple-audio-card,codec {
|
||||
sound-dai = <&adau7002_codec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
__overrides__ {
|
||||
card-name = <&sound_overlay>,"simple-audio-card,name";
|
||||
};
|
||||
};
|
||||
98
arch/arm/boot/dts/overlays/ads1015-overlay.dts
Normal file
98
arch/arm/boot/dts/overlays/ads1015-overlay.dts
Normal file
@@ -0,0 +1,98 @@
|
||||
/*
|
||||
* 2016 - Erik Sejr
|
||||
*/
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
/* ----------- ADS1015 ------------ */
|
||||
fragment@0 {
|
||||
target = <&i2c_arm>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
ads1015: ads1015 {
|
||||
compatible = "ti,ads1015";
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x48>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&ads1015>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
channel_a: channel_a {
|
||||
reg = <4>;
|
||||
ti,gain = <2>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&ads1015>;
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
channel_b: channel_b {
|
||||
reg = <5>;
|
||||
ti,gain = <2>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&ads1015>;
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
channel_c: channel_c {
|
||||
reg = <6>;
|
||||
ti,gain = <2>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&ads1015>;
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
channel_d: channel_d {
|
||||
reg = <7>;
|
||||
ti,gain = <2>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
addr = <&ads1015>,"reg:0";
|
||||
cha_enable = <0>,"=1";
|
||||
cha_cfg = <&channel_a>,"reg:0";
|
||||
cha_gain = <&channel_a>,"ti,gain:0";
|
||||
cha_datarate = <&channel_a>,"ti,datarate:0";
|
||||
chb_enable = <0>,"=2";
|
||||
chb_cfg = <&channel_b>,"reg:0";
|
||||
chb_gain = <&channel_b>,"ti,gain:0";
|
||||
chb_datarate = <&channel_b>,"ti,datarate:0";
|
||||
chc_enable = <0>,"=3";
|
||||
chc_cfg = <&channel_c>,"reg:0";
|
||||
chc_gain = <&channel_c>,"ti,gain:0";
|
||||
chc_datarate = <&channel_c>,"ti,datarate:0";
|
||||
chd_enable = <0>,"=4";
|
||||
chd_cfg = <&channel_d>,"reg:0";
|
||||
chd_gain = <&channel_d>,"ti,gain:0";
|
||||
chd_datarate = <&channel_d>,"ti,datarate:0";
|
||||
};
|
||||
|
||||
};
|
||||
103
arch/arm/boot/dts/overlays/ads1115-overlay.dts
Normal file
103
arch/arm/boot/dts/overlays/ads1115-overlay.dts
Normal file
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
* TI ADS1115 multi-channel ADC overlay
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c_arm>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
ads1115: ads1115 {
|
||||
compatible = "ti,ads1115";
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x48>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&ads1115>;
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel_a: channel_a {
|
||||
reg = <4>;
|
||||
ti,gain = <1>;
|
||||
ti,datarate = <7>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&ads1115>;
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel_b: channel_b {
|
||||
reg = <5>;
|
||||
ti,gain = <1>;
|
||||
ti,datarate = <7>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&ads1115>;
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel_c: channel_c {
|
||||
reg = <6>;
|
||||
ti,gain = <1>;
|
||||
ti,datarate = <7>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&ads1115>;
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel_d: channel_d {
|
||||
reg = <7>;
|
||||
ti,gain = <1>;
|
||||
ti,datarate = <7>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
addr = <&ads1115>,"reg:0";
|
||||
cha_enable = <0>,"=1";
|
||||
cha_cfg = <&channel_a>,"reg:0";
|
||||
cha_gain = <&channel_a>,"ti,gain:0";
|
||||
cha_datarate = <&channel_a>,"ti,datarate:0";
|
||||
chb_enable = <0>,"=2";
|
||||
chb_cfg = <&channel_b>,"reg:0";
|
||||
chb_gain = <&channel_b>,"ti,gain:0";
|
||||
chb_datarate = <&channel_b>,"ti,datarate:0";
|
||||
chc_enable = <0>,"=3";
|
||||
chc_cfg = <&channel_c>,"reg:0";
|
||||
chc_gain = <&channel_c>,"ti,gain:0";
|
||||
chc_datarate = <&channel_c>,"ti,datarate:0";
|
||||
chd_enable = <0>,"=4";
|
||||
chd_cfg = <&channel_d>,"reg:0";
|
||||
chd_gain = <&channel_d>,"ti,gain:0";
|
||||
chd_datarate = <&channel_d>,"ti,datarate:0";
|
||||
};
|
||||
};
|
||||
89
arch/arm/boot/dts/overlays/ads7846-overlay.dts
Normal file
89
arch/arm/boot/dts/overlays/ads7846-overlay.dts
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Generic Device Tree overlay for the ADS7846 touch controller
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spidev0>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&spidev1>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
ads7846_pins: ads7846_pins {
|
||||
brcm,pins = <255>; /* illegal default value */
|
||||
brcm,function = <0>; /* in */
|
||||
brcm,pull = <0>; /* none */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ads7846: ads7846@1 {
|
||||
compatible = "ti,ads7846";
|
||||
reg = <1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ads7846_pins>;
|
||||
|
||||
spi-max-frequency = <2000000>;
|
||||
interrupts = <255 2>; /* high-to-low edge triggered */
|
||||
interrupt-parent = <&gpio>;
|
||||
pendown-gpio = <&gpio 255 0>;
|
||||
|
||||
/* driver defaults */
|
||||
ti,x-min = /bits/ 16 <0>;
|
||||
ti,y-min = /bits/ 16 <0>;
|
||||
ti,x-max = /bits/ 16 <0x0FFF>;
|
||||
ti,y-max = /bits/ 16 <0x0FFF>;
|
||||
ti,pressure-min = /bits/ 16 <0>;
|
||||
ti,pressure-max = /bits/ 16 <0xFFFF>;
|
||||
ti,x-plate-ohms = /bits/ 16 <400>;
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
cs = <&ads7846>,"reg:0";
|
||||
speed = <&ads7846>,"spi-max-frequency:0";
|
||||
penirq = <&ads7846_pins>,"brcm,pins:0", /* REQUIRED */
|
||||
<&ads7846>,"interrupts:0",
|
||||
<&ads7846>,"pendown-gpio:4";
|
||||
penirq_pull = <&ads7846_pins>,"brcm,pull:0";
|
||||
swapxy = <&ads7846>,"ti,swap-xy?";
|
||||
xmin = <&ads7846>,"ti,x-min;0";
|
||||
ymin = <&ads7846>,"ti,y-min;0";
|
||||
xmax = <&ads7846>,"ti,x-max;0";
|
||||
ymax = <&ads7846>,"ti,y-max;0";
|
||||
pmin = <&ads7846>,"ti,pressure-min;0";
|
||||
pmax = <&ads7846>,"ti,pressure-max;0";
|
||||
xohms = <&ads7846>,"ti,x-plate-ohms;0";
|
||||
};
|
||||
};
|
||||
65
arch/arm/boot/dts/overlays/adv7282m-overlay.dts
Normal file
65
arch/arm/boot/dts/overlays/adv7282m-overlay.dts
Normal file
@@ -0,0 +1,65 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
// Definitions for Analog Devices ADV7282-M video to CSI2 bridge on VC I2C bus
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c_csi_dsi>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
adv728x: adv728x@21 {
|
||||
compatible = "adi,adv7282-m";
|
||||
reg = <0x21>;
|
||||
status = "okay";
|
||||
clock-frequency = <24000000>;
|
||||
port {
|
||||
adv728x_0: endpoint {
|
||||
remote-endpoint = <&csi1_ep>;
|
||||
clock-lanes = <0>;
|
||||
data-lanes = <1>;
|
||||
link-frequencies =
|
||||
/bits/ 64 <297000000>;
|
||||
|
||||
mclk-frequency = <12000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
fragment@1 {
|
||||
target = <&csi1>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
|
||||
port {
|
||||
csi1_ep: endpoint {
|
||||
remote-endpoint = <&adv728x_0>;
|
||||
data-lanes = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
fragment@2 {
|
||||
target = <&i2c0if>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&i2c0mux>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
addr = <&adv728x>,"reg:0";
|
||||
};
|
||||
};
|
||||
37
arch/arm/boot/dts/overlays/adv728x-m-overlay.dts
Normal file
37
arch/arm/boot/dts/overlays/adv728x-m-overlay.dts
Normal file
@@ -0,0 +1,37 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
// Definitions for Analog Devices ADV728[0|1|2]-M video to CSI2 bridges on VC
|
||||
// I2C bus
|
||||
|
||||
#include "adv7282m-overlay.dts"
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
// Fragment numbers deliberately high to avoid conflicts with the
|
||||
// included adv7282m overlay file.
|
||||
|
||||
fragment@101 {
|
||||
target = <&adv728x>;
|
||||
__dormant__ {
|
||||
compatible = "adi,adv7280-m";
|
||||
};
|
||||
};
|
||||
fragment@102 {
|
||||
target = <&adv728x>;
|
||||
__dormant__ {
|
||||
compatible = "adi,adv7281-m";
|
||||
};
|
||||
};
|
||||
fragment@103 {
|
||||
target = <&adv728x>;
|
||||
__dormant__ {
|
||||
compatible = "adi,adv7281-ma";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
adv7280m = <0>, "+101";
|
||||
adv7281m = <0>, "+102";
|
||||
adv7281ma = <0>, "+103";
|
||||
};
|
||||
};
|
||||
49
arch/arm/boot/dts/overlays/akkordion-iqdacplus-overlay.dts
Normal file
49
arch/arm/boot/dts/overlays/akkordion-iqdacplus-overlay.dts
Normal file
@@ -0,0 +1,49 @@
|
||||
// Definitions for Digital Dreamtime Akkordion using IQaudIO DAC+ or DACZero
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
pcm5122@4c {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm5122";
|
||||
reg = <0x4c>;
|
||||
AVDD-supply = <&vdd_3v3_reg>;
|
||||
DVDD-supply = <&vdd_3v3_reg>;
|
||||
CPVDD-supply = <&vdd_3v3_reg>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
frag2: __overlay__ {
|
||||
compatible = "iqaudio,iqaudio-dac";
|
||||
card_name = "Akkordion";
|
||||
dai_name = "IQaudIO DAC";
|
||||
dai_stream_name = "IQaudIO DAC HiFi";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
24db_digital_gain = <&frag2>,"iqaudio,24db_digital_gain?";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Definitions for Allo Boss DAC board
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
boss_osc: boss_osc {
|
||||
compatible = "allo,dac-clk";
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
pcm5122@4d {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm5122";
|
||||
clocks = <&boss_osc>;
|
||||
reg = <0x4d>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&sound>;
|
||||
boss_dac: __overlay__ {
|
||||
compatible = "allo,boss-dac";
|
||||
i2s-controller = <&i2s>;
|
||||
mute-gpios = <&gpio 6 1>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
24db_digital_gain = <&boss_dac>,"allo,24db_digital_gain?";
|
||||
slave = <&boss_dac>,"allo,slave?";
|
||||
};
|
||||
};
|
||||
44
arch/arm/boot/dts/overlays/allo-digione-overlay.dts
Normal file
44
arch/arm/boot/dts/overlays/allo-digione-overlay.dts
Normal file
@@ -0,0 +1,44 @@
|
||||
// Definitions for Allo DigiOne
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
wm8804@3b {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "wlf,wm8804";
|
||||
reg = <0x3b>;
|
||||
PVDD-supply = <&vdd_3v3_reg>;
|
||||
DVDD-supply = <&vdd_3v3_reg>;
|
||||
status = "okay";
|
||||
wlf,reset-gpio = <&gpio 17 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "allo,allo-digione";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
clock44-gpio = <&gpio 5 0>;
|
||||
clock48-gpio = <&gpio 6 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
57
arch/arm/boot/dts/overlays/allo-katana-dac-audio-overlay.dts
Normal file
57
arch/arm/boot/dts/overlays/allo-katana-dac-audio-overlay.dts
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Definitions for Allo Katana DAC boards
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
#sound-dai-cells = <0>;
|
||||
status = "okay";
|
||||
cpu_port: port {
|
||||
cpu_endpoint: endpoint {
|
||||
remote-endpoint = <&codec_endpoint>;
|
||||
bitclock-master = <&codec_endpoint>;
|
||||
frame-master = <&codec_endpoint>;
|
||||
dai-format = "i2s";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
allo-katana-codec@30 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "allo,allo-katana-codec";
|
||||
reg = <0x30>;
|
||||
port {
|
||||
codec_endpoint: endpoint {
|
||||
remote-endpoint = <&cpu_endpoint>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
katana_dac: __overlay__ {
|
||||
compatible = "audio-graph-card";
|
||||
label = "Allo Katana";
|
||||
dais = <&cpu_port>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Definitions for Allo Piano DAC (2.0/2.1) boards
|
||||
*
|
||||
* NB. The Piano DAC 2.1 board contains 2x TI PCM5142 DAC's. One DAC is stereo
|
||||
* (left/right) and the other provides a subwoofer output, using DSP on the
|
||||
* chip for digital high/low pass crossover.
|
||||
* The initial support for this hardware, that doesn't require any codec driver
|
||||
* modifications, uses only one DAC chip for stereo (left/right) output, the
|
||||
* chip with 0x4c slave address. The other chip at 0x4d is currently ignored!
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
pcm5142@4c {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm5142";
|
||||
reg = <0x4c>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
piano_dac: __overlay__ {
|
||||
compatible = "allo,piano-dac";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
24db_digital_gain =
|
||||
<&piano_dac>,"allo,24db_digital_gain?";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,55 @@
|
||||
// Definitions for Piano DAC
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
allo_pcm5122_4c: pcm5122@4c {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm5122";
|
||||
reg = <0x4c>;
|
||||
status = "okay";
|
||||
};
|
||||
allo_pcm5122_4d: pcm5122@4d {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm5122";
|
||||
reg = <0x4d>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
piano_dac: __overlay__ {
|
||||
compatible = "allo,piano-dac-plus";
|
||||
audio-codec = <&allo_pcm5122_4c &allo_pcm5122_4d>;
|
||||
i2s-controller = <&i2s>;
|
||||
mute1-gpios = <&gpio 6 1>;
|
||||
mute2-gpios = <&gpio 25 1>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
24db_digital_gain =
|
||||
<&piano_dac>,"allo,24db_digital_gain?";
|
||||
glb_mclk =
|
||||
<&piano_dac>,"allo,glb_mclk?";
|
||||
};
|
||||
};
|
||||
205
arch/arm/boot/dts/overlays/anyspi-overlay.dts
Executable file
205
arch/arm/boot/dts/overlays/anyspi-overlay.dts
Executable file
@@ -0,0 +1,205 @@
|
||||
/*
|
||||
* Universal device tree overlay for SPI devices
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spidev0>;
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spidev1>;
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target-path = "spi1/spidev@0";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target-path = "spi1/spidev@1";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target-path = "spi1/spidev@2";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@5 {
|
||||
target-path = "spi2/spidev@0";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@6 {
|
||||
target-path = "spi2/spidev@1";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@7 {
|
||||
target-path = "spi2/spidev@2";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@8 {
|
||||
target = <&spi0>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
anyspi_00: anyspi@0 {
|
||||
reg = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@9 {
|
||||
target = <&spi0>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
anyspi_01: anyspi@1 {
|
||||
reg = <1>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@10 {
|
||||
target = <&spi1>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
anyspi_10: anyspi@0 {
|
||||
reg = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@11 {
|
||||
target = <&spi1>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
anyspi_11: anyspi@1 {
|
||||
reg = <1>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@12 {
|
||||
target = <&spi1>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
anyspi_12: anyspi@2 {
|
||||
reg = <2>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@13 {
|
||||
target = <&spi2>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
anyspi_20: anyspi@0 {
|
||||
reg = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@14 {
|
||||
target = <&spi2>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
anyspi_21: anyspi@1 {
|
||||
reg = <1>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@15 {
|
||||
target = <&spi2>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
anyspi_22: anyspi@2 {
|
||||
reg = <2>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
spi0-0 = <0>, "+0+8";
|
||||
spi0-1 = <0>, "+1+9";
|
||||
spi1-0 = <0>, "+2+10";
|
||||
spi1-1 = <0>, "+3+11";
|
||||
spi1-2 = <0>, "+4+12";
|
||||
spi2-0 = <0>, "+5+13";
|
||||
spi2-1 = <0>, "+6+14";
|
||||
spi2-2 = <0>, "+7+15";
|
||||
dev = <&anyspi_00>,"compatible",
|
||||
<&anyspi_01>,"compatible",
|
||||
<&anyspi_10>,"compatible",
|
||||
<&anyspi_11>,"compatible",
|
||||
<&anyspi_12>,"compatible",
|
||||
<&anyspi_20>,"compatible",
|
||||
<&anyspi_21>,"compatible",
|
||||
<&anyspi_22>,"compatible";
|
||||
speed = <&anyspi_00>, "spi-max-frequency:0",
|
||||
<&anyspi_01>, "spi-max-frequency:0",
|
||||
<&anyspi_10>, "spi-max-frequency:0",
|
||||
<&anyspi_11>, "spi-max-frequency:0",
|
||||
<&anyspi_12>, "spi-max-frequency:0",
|
||||
<&anyspi_20>, "spi-max-frequency:0",
|
||||
<&anyspi_21>, "spi-max-frequency:0",
|
||||
<&anyspi_22>, "spi-max-frequency:0";
|
||||
};
|
||||
};
|
||||
57
arch/arm/boot/dts/overlays/apds9960-overlay.dts
Normal file
57
arch/arm/boot/dts/overlays/apds9960-overlay.dts
Normal file
@@ -0,0 +1,57 @@
|
||||
// Definitions for APDS-9960 ambient light and gesture sensor
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
apds9960_pins: apds9960_pins@39 {
|
||||
brcm,pins = <4>;
|
||||
brcm,function = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
apds9960: apds@39 {
|
||||
compatible = "avago,apds9960";
|
||||
reg = <0x39>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
apds9960_irq: apds@39 {
|
||||
#interrupt-cells=<2>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <4 1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
gpiopin = <&apds9960_pins>,"brcm,pins:0",
|
||||
<&apds9960_irq>,"interrupts:0";
|
||||
noints = <0>,"!1!3";
|
||||
};
|
||||
};
|
||||
|
||||
57
arch/arm/boot/dts/overlays/applepi-dac-overlay.dts
Normal file
57
arch/arm/boot/dts/overlays/applepi-dac-overlay.dts
Normal file
@@ -0,0 +1,57 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,name = "ApplePi-DAC";
|
||||
|
||||
status = "okay";
|
||||
|
||||
playback_link: simple-audio-card,dai-link@1 {
|
||||
format = "i2s";
|
||||
|
||||
p_cpu_dai: cpu {
|
||||
sound-dai = <&i2s>;
|
||||
dai-tdm-slot-num = <2>;
|
||||
dai-tdm-slot-width = <32>;
|
||||
};
|
||||
|
||||
p_codec_dai: codec {
|
||||
sound-dai = <&codec_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
codec_out: pcm1794a-codec {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm1794a";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
#sound-dai-cells = <0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
Written by: Leonid Ayzenshtat
|
||||
Company: Orchard Audio (www.orchardaudio.com)
|
||||
|
||||
compile with:
|
||||
dtc -@ -H epapr -O dtb -o ApplePi-DAC.dtbo -W no-unit_address_vs_reg ApplePi-DAC.dts
|
||||
*/
|
||||
57
arch/arm/boot/dts/overlays/at86rf233-overlay.dts
Normal file
57
arch/arm/boot/dts/overlays/at86rf233-overlay.dts
Normal file
@@ -0,0 +1,57 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/* Overlay for Atmel AT86RF233 IEEE 802.15.4 WPAN transceiver on spi0.0 */
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
status = "okay";
|
||||
|
||||
lowpan0: at86rf233@0 {
|
||||
compatible = "atmel,at86rf233";
|
||||
reg = <0>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <23 4>; /* active high */
|
||||
reset-gpio = <&gpio 24 1>;
|
||||
sleep-gpio = <&gpio 25 1>;
|
||||
spi-max-frequency = <3000000>;
|
||||
xtal-trim = /bits/ 8 <0xf>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spidev0>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
lowpan0_pins: lowpan0_pins {
|
||||
brcm,pins = <23 24 25>;
|
||||
brcm,function = <0 1 1>; /* in out out */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
interrupt = <&lowpan0>, "interrupts:0",
|
||||
<&lowpan0_pins>, "brcm,pins:0";
|
||||
reset = <&lowpan0>, "reset-gpio:4",
|
||||
<&lowpan0_pins>, "brcm,pins:4";
|
||||
sleep = <&lowpan0>, "sleep-gpio:4",
|
||||
<&lowpan0_pins>, "brcm,pins:8";
|
||||
speed = <&lowpan0>, "spi-max-frequency:0";
|
||||
trim = <&lowpan0>, "xtal-trim.0";
|
||||
};
|
||||
};
|
||||
60
arch/arm/boot/dts/overlays/audioinjector-addons-overlay.dts
Normal file
60
arch/arm/boot/dts/overlays/audioinjector-addons-overlay.dts
Normal file
@@ -0,0 +1,60 @@
|
||||
// Definitions for audioinjector.net audio add on soundcard
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
cs42448_mclk: codec-mclk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <49152000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
cs42448: cs42448@48 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "cirrus,cs42448";
|
||||
reg = <0x48>;
|
||||
clocks = <&cs42448_mclk>;
|
||||
clock-names = "mclk";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&sound>;
|
||||
snd: __overlay__ {
|
||||
compatible = "ai,audioinjector-octo-soundcard";
|
||||
mult-gpios = <&gpio 27 0>, <&gpio 22 0>, <&gpio 23 0>,
|
||||
<&gpio 24 0>;
|
||||
reset-gpios = <&gpio 5 0>;
|
||||
i2s-controller = <&i2s>;
|
||||
codec = <&cs42448>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
non-stop-clocks = <&snd>, "non-stop-clocks?";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,55 @@
|
||||
// Definitions for audioinjector.net audio isolated soundcard
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
cs4272_mclk: codec-mclk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24576000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
cs4272: cs4271@10 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "cirrus,cs4271";
|
||||
reg = <0x10>;
|
||||
reset-gpio = <&gpio 5 0>;
|
||||
clocks = <&cs4272_mclk>;
|
||||
clock-names = "mclk";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&sound>;
|
||||
snd: __overlay__ {
|
||||
compatible = "ai,audioinjector-isolated-soundcard";
|
||||
mute-gpios = <&gpio 17 0>;
|
||||
i2s-controller = <&i2s>;
|
||||
codec = <&cs4272>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
71
arch/arm/boot/dts/overlays/audioinjector-ultra-overlay.dts
Normal file
71
arch/arm/boot/dts/overlays/audioinjector-ultra-overlay.dts
Normal file
@@ -0,0 +1,71 @@
|
||||
// Definitions for audioinjector.net audio add on soundcard
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
cs4265: cs4265@4e {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "cirrus,cs4265";
|
||||
reg = <0x4e>;
|
||||
reset-gpios = <&gpio 5 0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "simple-audio-card";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
|
||||
simple-audio-card,name = "audioinjector-ultra";
|
||||
|
||||
simple-audio-card,widgets =
|
||||
"Line", "OUTPUTS",
|
||||
"Line", "INPUTS";
|
||||
|
||||
simple-audio-card,routing =
|
||||
"OUTPUTS","LINEOUTL",
|
||||
"OUTPUTS","LINEOUTR",
|
||||
"OUTPUTS","SPDIFOUT",
|
||||
"LINEINL","INPUTS",
|
||||
"LINEINR","INPUTS",
|
||||
"MICL","INPUTS",
|
||||
"MICR","INPUTS";
|
||||
|
||||
simple-audio-card,format = "i2s";
|
||||
|
||||
simple-audio-card,bitclock-master = <&sound_master>;
|
||||
simple-audio-card,frame-master = <&sound_master>;
|
||||
|
||||
simple-audio-card,cpu {
|
||||
sound-dai = <&i2s>;
|
||||
dai-tdm-slot-num = <2>;
|
||||
dai-tdm-slot-width = <32>;
|
||||
};
|
||||
|
||||
sound_master: simple-audio-card,codec {
|
||||
sound-dai = <&cs4265>;
|
||||
system-clock-frequency = <12288000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,39 @@
|
||||
// Definitions for audioinjector.net audio add on soundcard
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
wm8731@1a {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "wlf,wm8731";
|
||||
reg = <0x1a>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "ai,audioinjector-pi-soundcard";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
82
arch/arm/boot/dts/overlays/audiosense-pi-overlay.dts
Normal file
82
arch/arm/boot/dts/overlays/audiosense-pi-overlay.dts
Normal file
@@ -0,0 +1,82 @@
|
||||
// Definitions for audiosense add on soundcard
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
#include <dt-bindings/pinctrl/bcm2835.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
codec_reg_1v8: codec-reg-1v8 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "tlv320aic3204_1v8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
/* audio external oscillator */
|
||||
codec_osc: codec_osc {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <12000000>; /* 12 MHz */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
codec_rst: codec-rst {
|
||||
brcm,pins = <26>;
|
||||
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
codec: tlv320aic32x4@18 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,tlv320aic32x4";
|
||||
reg = <0x18>;
|
||||
|
||||
clocks = <&codec_osc>;
|
||||
clock-names = "mclk";
|
||||
|
||||
iov-supply = <&vdd_3v3_reg>;
|
||||
ldoin-supply = <&vdd_3v3_reg>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
reset-gpios = <&gpio 26 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "as,audiosense-pi";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
35
arch/arm/boot/dts/overlays/audremap-overlay.dts
Normal file
35
arch/arm/boot/dts/overlays/audremap-overlay.dts
Normal file
@@ -0,0 +1,35 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&audio_pins>;
|
||||
frag0: __overlay__ {
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&audio_pins>;
|
||||
__overlay__ {
|
||||
brcm,pins = < 12 13 >;
|
||||
brcm,function = < 4 >; /* alt0 alt0 */
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&audio_pins>;
|
||||
__dormant__ {
|
||||
brcm,pins = < 18 19 >;
|
||||
brcm,function = < 2 >; /* alt5 alt5 */
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
swap_lr = <&frag0>, "swap_lr?";
|
||||
enable_jack = <&frag0>, "enable_jack?";
|
||||
pins_12_13 = <0>,"+1-2";
|
||||
pins_18_19 = <0>,"-1+2";
|
||||
};
|
||||
};
|
||||
125
arch/arm/boot/dts/overlays/balena-fin-overlay.dts
Normal file
125
arch/arm/boot/dts/overlays/balena-fin-overlay.dts
Normal file
@@ -0,0 +1,125 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&mmcnr>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
bus-width = <4>;
|
||||
brcm,overclock-50 = <35>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
sdio_pins: sdio_pins {
|
||||
brcm,pins = <34 35 36 37 38 39>;
|
||||
brcm,function = <7>; /* ALT3 = SD1 */
|
||||
brcm,pull = <0 2 2 2 2 2>;
|
||||
};
|
||||
|
||||
power_ctrl_pins: power_ctrl_pins {
|
||||
brcm,pins = <40>;
|
||||
brcm,function = <1>; // out
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
// We should switch to mmc-pwrseq-sd8787 after making it
|
||||
// compatible with sd8887
|
||||
// Currently that module requires two GPIOs to function since it
|
||||
// targets a slightly different chip
|
||||
power_ctrl: power_ctrl {
|
||||
compatible = "gpio-poweroff";
|
||||
gpios = <&gpio 40 1>;
|
||||
force;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&power_ctrl_pins>;
|
||||
};
|
||||
|
||||
i2c_soft: i2c@0 {
|
||||
compatible = "i2c-gpio";
|
||||
gpios = <&gpio 43 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN) /* sda */
|
||||
&gpio 42 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN) /* scl */>;
|
||||
i2c-gpio,delay-us = <5>;
|
||||
i2c-gpio,scl-open-drain;
|
||||
i2c-gpio,sda-open-drain;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
sd8xxx-wlan {
|
||||
drvdbg = <0x6>;
|
||||
drv_mode = <0x1>;
|
||||
cfg80211_wext = <0xf>;
|
||||
sta_name = "wlan";
|
||||
wfd_name = "p2p";
|
||||
cal_data_cfg = "none";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&i2c_soft>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
gpio_expander: gpio_expander@20 {
|
||||
compatible = "nxp,pca9554";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
reg = <0x20>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
// rtc clock
|
||||
ds1307: ds1307@68 {
|
||||
compatible = "dallas,ds1307";
|
||||
reg = <0x68>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
// RGB LEDs (>= v1.1.0)
|
||||
pca9633: pca9633@62 {
|
||||
compatible = "nxp,pca9633";
|
||||
reg = <0x62>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
red@0 {
|
||||
label = "red";
|
||||
reg = <0>;
|
||||
linux,default-trigger = "none";
|
||||
};
|
||||
green@1 {
|
||||
label = "green";
|
||||
reg = <1>;
|
||||
linux,default-trigger = "none";
|
||||
};
|
||||
blue@2 {
|
||||
label = "blue";
|
||||
reg = <2>;
|
||||
linux,default-trigger = "none";
|
||||
};
|
||||
unused@3 {
|
||||
label = "unused";
|
||||
reg = <3>;
|
||||
linux,default-trigger = "none";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
36
arch/arm/boot/dts/overlays/cma-overlay.dts
Normal file
36
arch/arm/boot/dts/overlays/cma-overlay.dts
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* cma.dts
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&cma>;
|
||||
frag0: __overlay__ {
|
||||
/*
|
||||
* The default size when using this overlay is 256 MB
|
||||
* and should be kept as is for backwards
|
||||
* compatibility.
|
||||
*/
|
||||
size = <0x10000000>;
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
cma-512 = <&frag0>,"size:0=",<0x20000000>;
|
||||
cma-448 = <&frag0>,"size:0=",<0x1c000000>;
|
||||
cma-384 = <&frag0>,"size:0=",<0x18000000>;
|
||||
cma-320 = <&frag0>,"size:0=",<0x14000000>;
|
||||
cma-256 = <&frag0>,"size:0=",<0x10000000>;
|
||||
cma-192 = <&frag0>,"size:0=",<0xC000000>;
|
||||
cma-128 = <&frag0>,"size:0=",<0x8000000>;
|
||||
cma-96 = <&frag0>,"size:0=",<0x6000000>;
|
||||
cma-64 = <&frag0>,"size:0=",<0x4000000>;
|
||||
cma-size = <&frag0>,"size:0"; /* in bytes, 4MB aligned */
|
||||
cma-default = <0>,"-0";
|
||||
};
|
||||
};
|
||||
41
arch/arm/boot/dts/overlays/dht11-overlay.dts
Normal file
41
arch/arm/boot/dts/overlays/dht11-overlay.dts
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Overlay for the DHT11/21/22 humidity/temperature sensor modules.
|
||||
*/
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
|
||||
dht11: dht11@0 {
|
||||
compatible = "dht11";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dht11_pins>;
|
||||
gpios = <&gpio 4 0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
dht11_pins: dht11_pins@0 {
|
||||
brcm,pins = <4>;
|
||||
brcm,function = <0>; // in
|
||||
brcm,pull = <0>; // off
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
gpiopin = <&dht11_pins>,"brcm,pins:0",
|
||||
<&dht11_pins>, "reg:0",
|
||||
<&dht11>,"gpios:4",
|
||||
<&dht11>,"reg:0";
|
||||
};
|
||||
};
|
||||
39
arch/arm/boot/dts/overlays/dionaudio-loco-overlay.dts
Normal file
39
arch/arm/boot/dts/overlays/dionaudio-loco-overlay.dts
Normal file
@@ -0,0 +1,39 @@
|
||||
// Definitions for Dion Audio LOCO DAC-AMP
|
||||
|
||||
/*
|
||||
* PCM5242 DAC (in hardware mode) and TPA3118 AMP.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
pcm5102a-codec {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm5102a";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "dionaudio,loco-pcm5242-tpa3118";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
49
arch/arm/boot/dts/overlays/dionaudio-loco-v2-overlay.dts
Normal file
49
arch/arm/boot/dts/overlays/dionaudio-loco-v2-overlay.dts
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Definitions for Dion Audio LOCO-V2 DAC-AMP
|
||||
* eg. dtoverlay=dionaudio-loco-v2
|
||||
*
|
||||
* PCM5242 DAC (in software mode) and TPA3255 AMP.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&sound>;
|
||||
frag0: __overlay__ {
|
||||
compatible = "dionaudio,dionaudio-loco-v2";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
pcm5122@4c {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm5122";
|
||||
reg = <0x4d>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
24db_digital_gain = <&frag0>,"dionaudio,24db_digital_gain?";
|
||||
};
|
||||
};
|
||||
64
arch/arm/boot/dts/overlays/disable-bt-overlay.dts
Normal file
64
arch/arm/boot/dts/overlays/disable-bt-overlay.dts
Normal file
@@ -0,0 +1,64 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/* Disable Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15.
|
||||
To disable the systemd service that initialises the modem so it doesn't use
|
||||
the UART:
|
||||
|
||||
sudo systemctl disable hciuart
|
||||
*/
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&uart1>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&uart0>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&bt>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&uart0_pins>;
|
||||
__overlay__ {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
brcm,pull;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&bt_pins>;
|
||||
__overlay__ {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
brcm,pull;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@5 {
|
||||
target-path = "/aliases";
|
||||
__overlay__ {
|
||||
serial0 = "/soc/serial@7e201000";
|
||||
serial1 = "/soc/serial@7e215040";
|
||||
};
|
||||
};
|
||||
};
|
||||
20
arch/arm/boot/dts/overlays/disable-wifi-overlay.dts
Normal file
20
arch/arm/boot/dts/overlays/disable-wifi-overlay.dts
Normal file
@@ -0,0 +1,20 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&mmc>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&mmcnr>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
39
arch/arm/boot/dts/overlays/dpi18-overlay.dts
Normal file
39
arch/arm/boot/dts/overlays/dpi18-overlay.dts
Normal file
@@ -0,0 +1,39 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
// There is no DPI driver module, but we need a platform device
|
||||
// node (that doesn't already use pinctrl) to hang the pinctrl
|
||||
// reference on - leds will do
|
||||
|
||||
fragment@0 {
|
||||
target = <&fb>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dpi18_pins>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&vc4>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dpi18_pins>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
dpi18_pins: dpi18_pins {
|
||||
brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
|
||||
12 13 14 15 16 17 18 19 20
|
||||
21>;
|
||||
brcm,function = <6>; /* alt2 */
|
||||
brcm,pull = <0>; /* no pull */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
39
arch/arm/boot/dts/overlays/dpi24-overlay.dts
Normal file
39
arch/arm/boot/dts/overlays/dpi24-overlay.dts
Normal file
@@ -0,0 +1,39 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
// There is no DPI driver module, but we need a platform device
|
||||
// node (that doesn't already use pinctrl) to hang the pinctrl
|
||||
// reference on - leds will do
|
||||
|
||||
fragment@0 {
|
||||
target = <&fb>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dpi24_pins>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&vc4>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dpi24_pins>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
dpi24_pins: dpi24_pins {
|
||||
brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
|
||||
12 13 14 15 16 17 18 19 20
|
||||
21 22 23 24 25 26 27>;
|
||||
brcm,function = <6>; /* alt2 */
|
||||
brcm,pull = <0>; /* no pull */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
208
arch/arm/boot/dts/overlays/draws-overlay.dts
Normal file
208
arch/arm/boot/dts/overlays/draws-overlay.dts
Normal file
@@ -0,0 +1,208 @@
|
||||
#include <dt-bindings/clock/bcm2835.h>
|
||||
/*
|
||||
* Device tree overlay for the DRAWS Hardware
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
regulators {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
udrc0_ldoin: udrc0_ldoin {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "ldoin";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
sc16is752_clk: sc16is752_draws_clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <1843200>;
|
||||
};
|
||||
};
|
||||
|
||||
pps: pps {
|
||||
compatible = "pps-gpio";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pps_pins>;
|
||||
gpios = <&gpio 7 0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
iio-hwmon {
|
||||
compatible = "iio-hwmon";
|
||||
status = "okay";
|
||||
io-channels = <&tla2024 4>, <&tla2024 5>, <&tla2024 6>,
|
||||
<&tla2024 7>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2c_arm>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
tlv320aic32x4: tlv320aic32x4@18 {
|
||||
compatible = "ti,tlv320aic32x4";
|
||||
reg = <0x18>;
|
||||
#sound-dai-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
clocks = <&clocks BCM2835_CLOCK_GP0>;
|
||||
clock-names = "mclk";
|
||||
assigned-clocks = <&clocks BCM2835_CLOCK_GP0>;
|
||||
assigned-clock-rates = <25000000>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gpclk0_pin &aic3204_reset>;
|
||||
|
||||
reset-gpios = <&gpio 13 0>;
|
||||
|
||||
iov-supply = <&udrc0_ldoin>;
|
||||
ldoin-supply = <&udrc0_ldoin>;
|
||||
};
|
||||
|
||||
sc16is752: sc16is752@50 {
|
||||
compatible = "nxp,sc16is752";
|
||||
reg = <0x50>;
|
||||
clocks = <&sc16is752_clk>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <17 2>; /* IRQ_TYPE_EDGE_FALLING */
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sc16is752_irq>;
|
||||
};
|
||||
|
||||
tla2024: tla2024@48 {
|
||||
compatible = "ti,ads1015";
|
||||
reg = <0x48>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#io-channel-cells = <1>;
|
||||
|
||||
adc_ch4: channel@4 {
|
||||
reg = <4>;
|
||||
ti,gain = <1>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
|
||||
adc_ch5: channel@5 {
|
||||
reg = <5>;
|
||||
ti,gain = <1>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
|
||||
adc_ch6: channel@6 {
|
||||
reg = <6>;
|
||||
ti,gain = <2>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
|
||||
adc_ch7: channel@7 {
|
||||
reg = <7>;
|
||||
ti,gain = <2>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&sound>;
|
||||
snd: __overlay__ {
|
||||
compatible = "simple-audio-card";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
|
||||
simple-audio-card,name = "draws";
|
||||
simple-audio-card,format = "i2s";
|
||||
|
||||
simple-audio-card,bitclock-master = <&dailink0_master>;
|
||||
simple-audio-card,frame-master = <&dailink0_master>;
|
||||
|
||||
simple-audio-card,widgets =
|
||||
"Line", "Line In",
|
||||
"Line", "Line Out";
|
||||
|
||||
simple-audio-card,routing =
|
||||
"IN1_R", "Line In",
|
||||
"IN1_L", "Line In",
|
||||
"CM_L", "Line In",
|
||||
"CM_R", "Line In",
|
||||
"Line Out", "LOR",
|
||||
"Line Out", "LOL";
|
||||
|
||||
dailink0_master: simple-audio-card,cpu {
|
||||
sound-dai = <&i2s>;
|
||||
};
|
||||
|
||||
simple-audio-card,codec {
|
||||
sound-dai = <&tlv320aic32x4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
gpclk0_pin: gpclk0_pin {
|
||||
brcm,pins = <4>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
aic3204_reset: aic3204_reset {
|
||||
brcm,pins = <13>;
|
||||
brcm,function = <1>;
|
||||
brcm,pull = <1>;
|
||||
};
|
||||
|
||||
aic3204_gpio: aic3204_gpio {
|
||||
brcm,pins = <26>;
|
||||
};
|
||||
|
||||
sc16is752_irq: sc16is752_irq {
|
||||
brcm,pins = <17>;
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <2>;
|
||||
};
|
||||
|
||||
pps_pins: pps_pins {
|
||||
brcm,pins = <7>;
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
draws_adc_ch4_gain = <&adc_ch4>,"ti,gain:0";
|
||||
draws_adc_ch4_datarate = <&adc_ch4>,"ti,datarate:0";
|
||||
draws_adc_ch5_gain = <&adc_ch5>,"ti,gain:0";
|
||||
draws_adc_ch5_datarate = <&adc_ch5>,"ti,datarate:0";
|
||||
draws_adc_ch6_gain = <&adc_ch6>,"ti,gain:0";
|
||||
draws_adc_ch6_datarate = <&adc_ch6>,"ti,datarate:0";
|
||||
draws_adc_ch7_gain = <&adc_ch7>,"ti,gain:0";
|
||||
draws_adc_ch7_datarate = <&adc_ch7>,"ti,datarate:0";
|
||||
alsaname = <&snd>, "simple-audio-card,name";
|
||||
};
|
||||
};
|
||||
14
arch/arm/boot/dts/overlays/dwc-otg-overlay.dts
Normal file
14
arch/arm/boot/dts/overlays/dwc-otg-overlay.dts
Normal file
@@ -0,0 +1,14 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&usb>;
|
||||
__overlay__ {
|
||||
compatible = "brcm,bcm2708-usb";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
26
arch/arm/boot/dts/overlays/dwc2-overlay.dts
Normal file
26
arch/arm/boot/dts/overlays/dwc2-overlay.dts
Normal file
@@ -0,0 +1,26 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&usb>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
dwc2_usb: __overlay__ {
|
||||
compatible = "brcm,bcm2835-usb";
|
||||
dr_mode = "otg";
|
||||
g-np-tx-fifo-size = <32>;
|
||||
g-rx-fifo-size = <558>;
|
||||
g-tx-fifo-size = <512 512 512 512 512 256 256>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
dr_mode = <&dwc2_usb>, "dr_mode";
|
||||
g-np-tx-fifo-size = <&dwc2_usb>,"g-np-tx-fifo-size:0";
|
||||
g-rx-fifo-size = <&dwc2_usb>,"g-rx-fifo-size:0";
|
||||
};
|
||||
};
|
||||
53
arch/arm/boot/dts/overlays/enc28j60-overlay.dts
Normal file
53
arch/arm/boot/dts/overlays/enc28j60-overlay.dts
Normal file
@@ -0,0 +1,53 @@
|
||||
// Overlay for the Microchip ENC28J60 Ethernet Controller
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
status = "okay";
|
||||
|
||||
eth1: enc28j60@0{
|
||||
compatible = "microchip,enc28j60";
|
||||
reg = <0>; /* CE0 */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <ð1_pins>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <25 0x2>; /* falling edge */
|
||||
spi-max-frequency = <12000000>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spidev0>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
eth1_pins: eth1_pins {
|
||||
brcm,pins = <25>;
|
||||
brcm,function = <0>; /* in */
|
||||
brcm,pull = <0>; /* none */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
int_pin = <ð1>, "interrupts:0",
|
||||
<ð1_pins>, "brcm,pins:0";
|
||||
speed = <ð1>, "spi-max-frequency:0";
|
||||
};
|
||||
};
|
||||
47
arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts
Normal file
47
arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts
Normal file
@@ -0,0 +1,47 @@
|
||||
// Overlay for the Microchip ENC28J60 Ethernet Controller - SPI2 Compute Module
|
||||
// Interrupt pin: 39
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spi2>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
status = "okay";
|
||||
|
||||
eth1: enc28j60@0{
|
||||
compatible = "microchip,enc28j60";
|
||||
reg = <0>; /* CE0 */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <ð1_pins>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <39 0x2>; /* falling edge */
|
||||
spi-max-frequency = <12000000>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
eth1_pins: eth1_pins {
|
||||
brcm,pins = <39>;
|
||||
brcm,function = <0>; /* in */
|
||||
brcm,pull = <0>; /* none */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
int_pin = <ð1>, "interrupts:0",
|
||||
<ð1_pins>, "brcm,pins:0";
|
||||
speed = <ð1>, "spi-max-frequency:0";
|
||||
};
|
||||
};
|
||||
48
arch/arm/boot/dts/overlays/exc3000-overlay.dts
Normal file
48
arch/arm/boot/dts/overlays/exc3000-overlay.dts
Normal file
@@ -0,0 +1,48 @@
|
||||
// Device tree overlay for I2C connected EETI EXC3000 multiple touch controller
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
exc3000_pins: exc3000_pins {
|
||||
brcm,pins = <4>; // interrupt
|
||||
brcm,function = <0>; // in
|
||||
brcm,pull = <2>; // pull-up
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
exc3000: exc3000@2a {
|
||||
compatible = "eeti,exc3000";
|
||||
reg = <0x2a>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&exc3000_pins>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <4 8>; // active low level-sensitive
|
||||
touchscreen-size-x = <4096>;
|
||||
touchscreen-size-y = <4096>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
interrupt = <&exc3000_pins>,"brcm,pins:0",
|
||||
<&exc3000>,"interrupts:0";
|
||||
sizex = <&exc3000>,"touchscreen-size-x:0";
|
||||
sizey = <&exc3000>,"touchscreen-size-y:0";
|
||||
invx = <&exc3000>,"touchscreen-inverted-x?";
|
||||
invy = <&exc3000>,"touchscreen-inverted-y?";
|
||||
swapxy = <&exc3000>,"touchscreen-swapped-x-y?";
|
||||
};
|
||||
};
|
||||
70
arch/arm/boot/dts/overlays/fe-pi-audio-overlay.dts
Normal file
70
arch/arm/boot/dts/overlays/fe-pi-audio-overlay.dts
Normal file
@@ -0,0 +1,70 @@
|
||||
// Definitions for Fe-Pi Audio
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
sgtl5000_mclk: sgtl5000_mclk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <12288000>;
|
||||
clock-output-names = "sgtl5000-mclk";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&soc>;
|
||||
__overlay__ {
|
||||
reg_1v8: reg_1v8@0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "1V8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
sgtl5000@0a {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "fsl,sgtl5000";
|
||||
reg = <0x0a>;
|
||||
clocks = <&sgtl5000_mclk>;
|
||||
micbias-resistor-k-ohms = <2>;
|
||||
micbias-voltage-m-volts = <3000>;
|
||||
VDDA-supply = <&vdd_3v3_reg>;
|
||||
VDDIO-supply = <&vdd_3v3_reg>;
|
||||
VDDD-supply = <®_1v8>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "fe-pi,fe-pi-audio";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
104
arch/arm/boot/dts/overlays/fsm-demo-overlay.dts
Normal file
104
arch/arm/boot/dts/overlays/fsm-demo-overlay.dts
Normal file
@@ -0,0 +1,104 @@
|
||||
// Demo overlay for the gpio-fsm driver
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio-fsm.h>
|
||||
|
||||
#define BUTTON1 GF_IP(0)
|
||||
#define BUTTON2 GF_SW(0)
|
||||
#define RED GF_OP(0) // GPIO7
|
||||
#define AMBER GF_OP(1) // GPIO8
|
||||
#define GREEN GF_OP(2) // GPIO25
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
fsm_demo: fsm-demo {
|
||||
compatible = "rpi,gpio-fsm";
|
||||
|
||||
debug = <0>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
num-soft-gpios = <1>;
|
||||
gpio-line-names = "button2";
|
||||
input-gpios = <&gpio 6 1>; // BUTTON1 (active-low)
|
||||
output-gpios = <&gpio 7 0>, // RED
|
||||
<&gpio 8 0>, // AMBER
|
||||
<&gpio 25 0>; // GREEN
|
||||
shutdown-timeout-ms = <2000>;
|
||||
|
||||
start {
|
||||
start_state;
|
||||
set = <RED 1>, <AMBER 0>, <GREEN 0>;
|
||||
start2 = <GF_DELAY 250>;
|
||||
};
|
||||
|
||||
start2 {
|
||||
set = <RED 0>, <AMBER 1>;
|
||||
go = <GF_DELAY 250>;
|
||||
};
|
||||
|
||||
go {
|
||||
set = <RED 0>, <AMBER 0>, <GREEN 1>;
|
||||
ready_wait = <BUTTON1 0>;
|
||||
shutdown1 = <GF_SHUTDOWN 0>;
|
||||
};
|
||||
|
||||
ready_wait {
|
||||
// Clear the soft GPIO
|
||||
set = <BUTTON2 0>;
|
||||
ready = <GF_DELAY 1000>;
|
||||
shutdown1 = <GF_SHUTDOWN 0>;
|
||||
};
|
||||
|
||||
ready {
|
||||
stopping = <BUTTON1 1>, <BUTTON2 1>;
|
||||
shutdown1 = <GF_SHUTDOWN 0>;
|
||||
};
|
||||
|
||||
stopping {
|
||||
set = <GREEN 0>, <AMBER 1>;
|
||||
stopped = <GF_DELAY 1000>;
|
||||
};
|
||||
|
||||
stopped {
|
||||
set = <AMBER 0>, <RED 1>;
|
||||
get_set = <GF_DELAY 3000>;
|
||||
shutdown1 = <GF_SHUTDOWN 0>;
|
||||
};
|
||||
|
||||
get_set {
|
||||
set = <AMBER 1>;
|
||||
go = <GF_DELAY 1000>;
|
||||
};
|
||||
|
||||
shutdown1 {
|
||||
set = <RED 0>, <AMBER 0>, <GREEN 1>;
|
||||
shutdown2 = <GF_SHUTDOWN 250>;
|
||||
};
|
||||
|
||||
shutdown2 {
|
||||
set = <AMBER 1>, <GREEN 0>;
|
||||
shutdown3 = <GF_SHUTDOWN 250>;
|
||||
};
|
||||
|
||||
shutdown3 {
|
||||
set = <RED 1>, <AMBER 0>;
|
||||
shutdown4 = <GF_SHUTDOWN 250>;
|
||||
};
|
||||
|
||||
shutdown4 {
|
||||
shutdown_state;
|
||||
set = <RED 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
fsm_debug = <&fsm_demo>,"debug:0";
|
||||
};
|
||||
};
|
||||
119
arch/arm/boot/dts/overlays/ghost-amp-overlay.dts
Normal file
119
arch/arm/boot/dts/overlays/ghost-amp-overlay.dts
Normal file
@@ -0,0 +1,119 @@
|
||||
// Overlay for the PCM5122-based Ghost amplifier using gpio-fsm
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio-fsm.h>
|
||||
|
||||
#define ENABLE GF_SW(0)
|
||||
#define FAULT GF_IP(0) // GPIO5
|
||||
#define RELAY1 GF_OP(0) // GPIO22
|
||||
#define RELAY2 GF_OP(1) // GPIO23
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
pcm5122@4c {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm5122";
|
||||
reg = <0x4c>;
|
||||
AVDD-supply = <&vdd_3v3_reg>;
|
||||
DVDD-supply = <&vdd_3v3_reg>;
|
||||
CPVDD-supply = <&vdd_3v3_reg>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
iqaudio_dac: __overlay__ {
|
||||
compatible = "iqaudio,iqaudio-dac";
|
||||
i2s-controller = <&i2s>;
|
||||
mute-gpios = <& 0 0>;
|
||||
iqaudio-dac,auto-mute-amp;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
amp: ghost-amp {
|
||||
compatible = "rpi,gpio-fsm";
|
||||
|
||||
debug = <0>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
num-soft-gpios = <1>;
|
||||
gpio-line-names = "enable";
|
||||
input-gpios = <&gpio 5 1>; // FAULT (active low)
|
||||
output-gpios = <&gpio 22 0>, // RELAY1
|
||||
<&gpio 23 0>; // RELAY2
|
||||
shutdown-timeout-ms = <1000>;
|
||||
|
||||
amp_off {
|
||||
start_state;
|
||||
shutdown_state;
|
||||
|
||||
set = <RELAY2 0>,
|
||||
<RELAY1 0>;
|
||||
amp_on_1 = <ENABLE 1>;
|
||||
fault = <FAULT 1>;
|
||||
};
|
||||
|
||||
amp_on_1 {
|
||||
set = <RELAY1 1>;
|
||||
amp_on = <GF_DELAY 1500>;
|
||||
amp_off = <ENABLE 0>;
|
||||
fault = <FAULT 1>;
|
||||
};
|
||||
|
||||
amp_on {
|
||||
set = <RELAY2 1>;
|
||||
amp_off_wait = <ENABLE 0>;
|
||||
fault = <FAULT 1>;
|
||||
};
|
||||
|
||||
amp_off_wait {
|
||||
amp_off_1 = <GF_DELAY (30*60*1000)>,
|
||||
<GF_SHUTDOWN 0>;
|
||||
amp_on = <ENABLE 1>;
|
||||
fault = <FAULT 1>;
|
||||
};
|
||||
|
||||
amp_off_1 {
|
||||
set = <RELAY2 0>;
|
||||
amp_on = <ENABLE 1>;
|
||||
amp_off = <GF_DELAY 100>;
|
||||
fault = <FAULT 1>;
|
||||
};
|
||||
|
||||
// Keep this a distinct state to prevent
|
||||
// changes and for the diagnostic output
|
||||
fault {
|
||||
set = <RELAY2 0>,
|
||||
<RELAY1 0>;
|
||||
shutdown_state;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
fsm_debug = <&>,"debug:0";
|
||||
};
|
||||
};
|
||||
46
arch/arm/boot/dts/overlays/goodix-overlay.dts
Normal file
46
arch/arm/boot/dts/overlays/goodix-overlay.dts
Normal file
@@ -0,0 +1,46 @@
|
||||
// Device tree overlay for I2C connected Goodix gt9271 multiple touch controller
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
goodix_pins: goodix_pins {
|
||||
brcm,pins = <4 17>; // interrupt and reset
|
||||
brcm,function = <0 0>; // in
|
||||
brcm,pull = <2 2>; // pull-up
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
gt9271: gt9271@14 {
|
||||
compatible = "goodix,gt9271";
|
||||
reg = <0x14>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&goodix_pins>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <4 2>; // high-to-low edge triggered
|
||||
irq-gpios = <&gpio 4 0>; // Pin7 on GPIO header
|
||||
reset-gpios = <&gpio 17 1>; // Pin11 on GPIO header
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
interrupt = <&goodix_pins>,"brcm,pins:0",
|
||||
<>9271>,"interrupts:0",
|
||||
<>9271>,"irq-gpios:4";
|
||||
reset = <&goodix_pins>,"brcm,pins:4",
|
||||
<>9271>,"reset-gpios:4";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,49 @@
|
||||
// Definitions for Google voiceHAT v1 soundcard overlay
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
googlevoicehat_pins: googlevoicehat_pins {
|
||||
brcm,pins = <16>;
|
||||
brcm,function = <1>; /* out */
|
||||
brcm,pull = <0>; /* up */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
fragment@2 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
voicehat-codec {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "google,voicehat";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&googlevoicehat_pins>;
|
||||
sdmode-gpios= <&gpio 16 0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "googlevoicehat,googlevoicehat-soundcard";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
79
arch/arm/boot/dts/overlays/gpio-fan-overlay.dts
Normal file
79
arch/arm/boot/dts/overlays/gpio-fan-overlay.dts
Normal file
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Overlay for the Raspberry Pi GPIO Fan @ BCM GPIO12.
|
||||
* References:
|
||||
* - https://www.raspberrypi.org/forums/viewtopic.php?f=107&p=1367135#p1365084
|
||||
*
|
||||
* Optional parameters:
|
||||
* - "gpiopin" - BCM number of the pin driving the fan, default 12 (GPIO12);
|
||||
* - "temp" - CPU temperature at which fan is started in millicelsius, default 55000;
|
||||
*
|
||||
* Requires:
|
||||
* - kernel configurations: CONFIG_SENSORS_GPIO_FAN=m;
|
||||
* - kernel rebuild;
|
||||
* - N-MOSFET connected to gpiopin, 2N7002-[https://en.wikipedia.org/wiki/2N7000];
|
||||
* - DC Fan connected to N-MOSFET Drain terminal, a 12V fan is working fine and quite silently;
|
||||
* [https://www.tme.eu/en/details/ee40101s1-999-a/dc12v-fans/sunon/ee40101s1-1000u-999/]
|
||||
*
|
||||
* ┌─────────────────────┐
|
||||
* │Fan negative terminal│
|
||||
* └┬────────────────────┘
|
||||
* │D
|
||||
* G │──┘
|
||||
* [GPIO12]──────┤ │<─┐ 2N7002
|
||||
* │──┤
|
||||
* │S
|
||||
* ─┴─
|
||||
* GND
|
||||
*
|
||||
* Build:
|
||||
* - `sudo dtc -W no-unit_address_vs_reg -@ -I dts -O dtb -o /boot/overlays/gpio-fan.dtbo gpio-fan-overlay.dts`
|
||||
* Activate:
|
||||
* - sudo nano /boot/config.txt add "dtoverlay=gpio-fan" or "dtoverlay=gpio-fan,gpiopin=12,temp=45000"
|
||||
* or
|
||||
* - sudo sh -c 'printf "\n# Enable PI GPIO-Fan Default\ndtoverlay=gpio-fan\n" >> /boot/config.txt'
|
||||
* - sudo sh -c 'printf "\n# Enable PI GPIO-Fan Custom\ndtoverlay=gpio-fan,gpiopin=12,temp=45000\n" >> /boot/config.txt'
|
||||
*
|
||||
*/
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
fan0: gpio-fan@0 {
|
||||
compatible = "gpio-fan";
|
||||
gpios = <&gpio 12 0>;
|
||||
gpio-fan,speed-map = <0 0>,
|
||||
<5000 1>;
|
||||
#cooling-cells = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&cpu_thermal>;
|
||||
polling-delay = <2000>; /* milliseconds */
|
||||
__overlay__ {
|
||||
trips {
|
||||
cpu_hot: trip-point@0 {
|
||||
temperature = <55000>; /* (millicelsius) Fan started at 55°C */
|
||||
hysteresis = <10000>; /* (millicelsius) Fan stopped at 45°C */
|
||||
type = "active";
|
||||
};
|
||||
};
|
||||
cooling-maps {
|
||||
map0 {
|
||||
trip = <&cpu_hot>;
|
||||
cooling-device = <&fan0 1 1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
gpiopin = <&fan0>,"gpios:4", <&fan0>,"brcm,pins:0";
|
||||
temp = <&cpu_hot>,"temperature:0";
|
||||
};
|
||||
};
|
||||
49
arch/arm/boot/dts/overlays/gpio-ir-overlay.dts
Normal file
49
arch/arm/boot/dts/overlays/gpio-ir-overlay.dts
Normal file
@@ -0,0 +1,49 @@
|
||||
// Definitions for ir-gpio module
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
gpio_ir: ir-receiver@12 {
|
||||
compatible = "gpio-ir-receiver";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gpio_ir_pins>;
|
||||
|
||||
// pin number, high or low
|
||||
gpios = <&gpio 18 1>;
|
||||
|
||||
// parameter for keymap name
|
||||
linux,rc-map-name = "rc-rc6-mce";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
gpio_ir_pins: gpio_ir_pins@12 {
|
||||
brcm,pins = <18>; // pin 18
|
||||
brcm,function = <0>; // in
|
||||
brcm,pull = <2>; // up
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
// parameters
|
||||
gpio_pin = <&gpio_ir>,"gpios:4", // pin number
|
||||
<&gpio_ir>,"reg:0",
|
||||
<&gpio_ir_pins>,"brcm,pins:0",
|
||||
<&gpio_ir_pins>,"reg:0";
|
||||
gpio_pull = <&gpio_ir_pins>,"brcm,pull:0"; // pull-up/down state
|
||||
invert = <&gpio_ir>,"gpios:8"; // 0 = active high input
|
||||
|
||||
rc-map-name = <&gpio_ir>,"linux,rc-map-name"; // default rc map
|
||||
};
|
||||
};
|
||||
36
arch/arm/boot/dts/overlays/gpio-ir-tx-overlay.dts
Normal file
36
arch/arm/boot/dts/overlays/gpio-ir-tx-overlay.dts
Normal file
@@ -0,0 +1,36 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
gpio_ir_tx_pins: gpio_ir_tx_pins@12 {
|
||||
brcm,pins = <18>;
|
||||
brcm,function = <1>; // out
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
gpio_ir_tx: gpio-ir-transmitter@12 {
|
||||
compatible = "gpio-ir-tx";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gpio_ir_tx_pins>;
|
||||
gpios = <&gpio 18 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
gpio_pin = <&gpio_ir_tx>, "gpios:4", // pin number
|
||||
<&gpio_ir_tx>, "reg:0",
|
||||
<&gpio_ir_tx_pins>, "brcm,pins:0",
|
||||
<&gpio_ir_tx_pins>, "reg:0";
|
||||
invert = <&gpio_ir_tx>, "gpios:8"; // 1 = active low
|
||||
};
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user