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 2aefcd576195a739a7a256099571c9c4a401005f, 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,4 +1,11 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += \
|
||||
bcm2708-rpi-b-rev1.dtb \
|
||||
bcm2708-rpi-cm.dtb \
|
||||
bcm2710-rpi-cm3.dtb \
|
||||
bcm2711-rpi-cm4.dtb
|
||||
|
||||
dtb-$(CONFIG_ARCH_ALPINE) += \
|
||||
alpine-db.dtb
|
||||
dtb-$(CONFIG_MACH_ARTPEC6) += \
|
||||
@@ -1499,3 +1506,13 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
|
||||
aspeed-bmc-portwell-neptune.dtb \
|
||||
aspeed-bmc-quanta-q71l.dtb \
|
||||
aspeed-bmc-supermicro-x11spi.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
|
||||
|
||||
129
arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
Normal file
129
arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
Normal file
@@ -0,0 +1,129 @@
|
||||
/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"
|
||||
#include "bcm283x-rpi-cam1-regulator.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: led-act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 47 0>;
|
||||
};
|
||||
|
||||
pwr_led: 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>;
|
||||
};
|
||||
|
||||
&cam1_reg {
|
||||
gpio = <&gpio 41 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__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";
|
||||
};
|
||||
};
|
||||
132
arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts
Normal file
132
arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts
Normal file
@@ -0,0 +1,132 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2708.dtsi"
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
#include "bcm283x-rpi-smsc9512.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-cam1-regulator.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: 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>;
|
||||
};
|
||||
|
||||
&cam1_reg {
|
||||
gpio = <&gpio 27 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
119
arch/arm/boot/dts/bcm2708-rpi-b.dts
Normal file
119
arch/arm/boot/dts/bcm2708-rpi-b.dts
Normal file
@@ -0,0 +1,119 @@
|
||||
/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"
|
||||
#include "bcm283x-rpi-cam1-regulator.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: 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>;
|
||||
};
|
||||
|
||||
&cam1_reg {
|
||||
gpio = <&gpio 21 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__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";
|
||||
};
|
||||
};
|
||||
112
arch/arm/boot/dts/bcm2708-rpi-cm.dts
Normal file
112
arch/arm/boot/dts/bcm2708-rpi-cm.dts
Normal file
@@ -0,0 +1,112 @@
|
||||
/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";
|
||||
|
||||
cam1_reg: cam1_reg {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "cam1-regulator";
|
||||
gpio = <&gpio 2 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
status = "disabled";
|
||||
};
|
||||
cam0_reg: cam0_reg {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "cam0-regulator";
|
||||
gpio = <&gpio 30 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
&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: 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";
|
||||
};
|
||||
};
|
||||
169
arch/arm/boot/dts/bcm2708-rpi-zero-w.dts
Normal file
169
arch/arm/boot/dts/bcm2708-rpi-zero-w.dts
Normal file
@@ -0,0 +1,169 @@
|
||||
/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"
|
||||
#include "bcm283x-rpi-cam1-regulator.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";
|
||||
};
|
||||
|
||||
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: 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>;
|
||||
brcm,disable-headphones = <1>;
|
||||
};
|
||||
|
||||
&cam1_reg {
|
||||
gpio = <&gpio 44 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
};
|
||||
};
|
||||
123
arch/arm/boot/dts/bcm2708-rpi-zero.dts
Normal file
123
arch/arm/boot/dts/bcm2708-rpi-zero.dts
Normal file
@@ -0,0 +1,123 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2708.dtsi"
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_28.dtsi"
|
||||
#include "bcm283x-rpi-cam1-regulator.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";
|
||||
};
|
||||
};
|
||||
|
||||
&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: 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>;
|
||||
brcm,disable-headphones = <1>;
|
||||
};
|
||||
|
||||
&cam1_reg {
|
||||
gpio = <&gpio 41 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__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";
|
||||
};
|
||||
129
arch/arm/boot/dts/bcm2709-rpi-2-b.dts
Normal file
129
arch/arm/boot/dts/bcm2709-rpi-2-b.dts
Normal file
@@ -0,0 +1,129 @@
|
||||
/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"
|
||||
#include "bcm283x-rpi-cam1-regulator.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: led-act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 47 0>;
|
||||
};
|
||||
|
||||
pwr_led: 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>;
|
||||
};
|
||||
|
||||
&cam1_reg {
|
||||
gpio = <&gpio 41 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__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";
|
||||
};
|
||||
};
|
||||
217
arch/arm/boot/dts/bcm270x.dtsi
Normal file
217
arch/arm/boot/dts/bcm270x.dtsi
Normal file
@@ -0,0 +1,217 @@
|
||||
/* 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";
|
||||
/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/ mmc@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_cpadhi_gpio0: dpi_18bit_cpadhi_gpio0 {
|
||||
brcm,pins = <0 1 2 3 4 5 6 7 8 9
|
||||
12 13 14 15 16 17
|
||||
20 21 22 23 24 25>;
|
||||
brcm,function = <BCM2835_FSEL_ALT2>;
|
||||
brcm,pull = <0>; /* no pull */
|
||||
};
|
||||
dpi_18bit_cpadhi_gpio2: dpi_18bit_cpadhi_gpio2 {
|
||||
brcm,pins = <2 3 4 5 6 7 8 9
|
||||
12 13 14 15 16 17
|
||||
20 21 22 23 24 25>;
|
||||
brcm,function = <BCM2835_FSEL_ALT2>;
|
||||
};
|
||||
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>;
|
||||
};
|
||||
dpi_18bit_gpio2: dpi_18bit_gpio2 {
|
||||
brcm,pins = <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>;
|
||||
firmware = <&firmware>;
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
dmas = <&dma 6>, <&dma 7>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
129
arch/arm/boot/dts/bcm2710-rpi-2-b.dts
Normal file
129
arch/arm/boot/dts/bcm2710-rpi-2-b.dts
Normal file
@@ -0,0 +1,129 @@
|
||||
/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"
|
||||
#include "bcm283x-rpi-cam1-regulator.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: led-act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 47 0>;
|
||||
};
|
||||
|
||||
pwr_led: 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>;
|
||||
};
|
||||
|
||||
&cam1_reg {
|
||||
gpio = <&gpio 41 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__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";
|
||||
};
|
||||
};
|
||||
201
arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
Normal file
201
arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
Normal file
@@ -0,0 +1,201 @@
|
||||
/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"
|
||||
#include "bcm283x-rpi-cam1-regulator.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";
|
||||
};
|
||||
|
||||
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: led-act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 29 0>;
|
||||
};
|
||||
|
||||
pwr_led: 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>;
|
||||
};
|
||||
|
||||
&cam1_reg {
|
||||
gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__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";
|
||||
};
|
||||
};
|
||||
203
arch/arm/boot/dts/bcm2710-rpi-3-b.dts
Normal file
203
arch/arm/boot/dts/bcm2710-rpi-3-b.dts
Normal file
@@ -0,0 +1,203 @@
|
||||
/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"
|
||||
#include "bcm283x-rpi-cam1-regulator.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";
|
||||
};
|
||||
|
||||
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: led-act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&virtgpio 0 0>;
|
||||
};
|
||||
|
||||
pwr_led: 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>;
|
||||
};
|
||||
|
||||
&cam1_reg {
|
||||
gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__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";
|
||||
};
|
||||
};
|
||||
148
arch/arm/boot/dts/bcm2710-rpi-cm3.dts
Normal file
148
arch/arm/boot/dts/bcm2710-rpi-cm3.dts
Normal file
@@ -0,0 +1,148 @@
|
||||
/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";
|
||||
|
||||
cam1_reg: cam1_reg {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "cam1-regulator";
|
||||
gpio = <&gpio 2 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
status = "disabled";
|
||||
};
|
||||
cam0_reg: cam0_reg {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "cam0-regulator";
|
||||
gpio = <&gpio 30 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
&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: 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";
|
||||
};
|
||||
};
|
||||
25
arch/arm/boot/dts/bcm2710.dtsi
Normal file
25
arch/arm/boot/dts/bcm2710.dtsi
Normal file
@@ -0,0 +1,25 @@
|
||||
#include "bcm2837.dtsi"
|
||||
#include "bcm270x.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2837", "brcm,bcm2836";
|
||||
|
||||
arm-pmu {
|
||||
compatible = "arm,cortex-a53-pmu", "arm,cortex-a7-pmu";
|
||||
};
|
||||
|
||||
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,7 @@
|
||||
/dts-v1/;
|
||||
#include "bcm2711.dtsi"
|
||||
#include "bcm2711-rpi.dtsi"
|
||||
#include "bcm283x-rpi-usb-peripheral.dtsi"
|
||||
//#include "bcm283x-rpi-usb-peripheral.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
|
||||
@@ -72,7 +72,7 @@
|
||||
"VDD_SD_IO_SEL",
|
||||
"CAM_GPIO",
|
||||
"SD_PWR_ON",
|
||||
"";
|
||||
"SD_OC_N";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
@@ -260,3 +260,309 @@
|
||||
&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-ds.dtsi"
|
||||
#include "bcm283x-rpi-csi1-2lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
|
||||
#include "bcm283x-rpi-cam1-regulator.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1";
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart0;
|
||||
mmc0 = &emmc2;
|
||||
mmc1 = &mmcnr;
|
||||
mmc2 = &sdhost;
|
||||
i2c3 = &i2c3;
|
||||
i2c4 = &i2c4;
|
||||
i2c5 = &i2c5;
|
||||
i2c6 = &i2c6;
|
||||
i2c20 = &ddc0;
|
||||
i2c21 = &ddc1;
|
||||
spi3 = &spi3;
|
||||
spi4 = &spi4;
|
||||
spi5 = &spi5;
|
||||
spi6 = &spi6;
|
||||
/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>;
|
||||
};
|
||||
|
||||
// =============================================
|
||||
// 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: led-act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
pwr_led: 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>;
|
||||
};
|
||||
|
||||
&cam1_reg {
|
||||
gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__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>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
#include "bcm2711-rpi-4-b.dts"
|
||||
#include "bcm2711.dtsi"
|
||||
#include "bcm2835-rpi.dtsi"
|
||||
|
||||
#include <dt-bindings/reset/raspberrypi,firmware-reset.h>
|
||||
|
||||
/ {
|
||||
compatible = "raspberrypi,400", "brcm,bcm2711";
|
||||
@@ -11,35 +14,624 @@
|
||||
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;
|
||||
blconfig = &blconfig;
|
||||
};
|
||||
|
||||
leds {
|
||||
/delete-node/ led-act;
|
||||
led-act {
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led-pwr {
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
label = "PWR";
|
||||
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||
default-state = "keep";
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
};
|
||||
|
||||
gpio-poweroff {
|
||||
compatible = "gpio-poweroff";
|
||||
gpios = <&expgpio 5 GPIO_ACTIVE_HIGH>;
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
||||
&expgpio {
|
||||
gpio-line-names = "BT_ON",
|
||||
"WL_ON",
|
||||
"",
|
||||
"GLOBAL_RESET",
|
||||
"VDD_SD_IO_SEL",
|
||||
"CAM_GPIO",
|
||||
"SD_PWR_ON",
|
||||
"SD_OC_N";
|
||||
&ddc0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ddc1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&firmware {
|
||||
firmware_clocks: clocks {
|
||||
compatible = "raspberrypi,firmware-clocks";
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
expgpio: gpio {
|
||||
compatible = "raspberrypi,firmware-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-line-names = "BT_ON",
|
||||
"WL_ON",
|
||||
"PWR_LED_OFF",
|
||||
"GLOBAL_RESET",
|
||||
"VDD_SD_IO_SEL",
|
||||
"CAM_GPIO",
|
||||
"SD_PWR_ON",
|
||||
"SD_OC_N";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
reset: reset {
|
||||
compatible = "raspberrypi,firmware-reset";
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&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";
|
||||
wifi-2.4ghz-coexistence;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi1 {
|
||||
clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
|
||||
clock-names = "hdmi", "bvb", "audio", "cec";
|
||||
wifi-2.4ghz-coexistence;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hvs {
|
||||
clocks = <&firmware_clocks 4>;
|
||||
};
|
||||
|
||||
&pixelvalve0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pixelvalve1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pixelvalve2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pixelvalve4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rmem {
|
||||
/*
|
||||
* RPi4's co-processor will copy the board's bootloader configuration
|
||||
* into memory for the OS to consume. It'll also update this node with
|
||||
* its placement information.
|
||||
*/
|
||||
blconfig: nvram@0 {
|
||||
compatible = "raspberrypi,bootloader-config", "nvmem-rmem";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x0 0x0 0x0>;
|
||||
no-map;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
/* 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 SD card */
|
||||
&emmc2 {
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
pci@0,0 {
|
||||
device-type = "pci";
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
reg = <0 0 0 0 0>;
|
||||
|
||||
usb@0,0 {
|
||||
reg = <0x0 0 0 0 0>;
|
||||
resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* 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>;
|
||||
};
|
||||
|
||||
&vc4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&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-ds.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";
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart0;
|
||||
mmc0 = &emmc2;
|
||||
mmc1 = &mmcnr;
|
||||
mmc2 = &sdhost;
|
||||
i2c3 = &i2c3;
|
||||
i2c4 = &i2c4;
|
||||
i2c5 = &i2c5;
|
||||
i2c6 = &i2c6;
|
||||
i2c20 = &ddc0;
|
||||
i2c21 = &ddc1;
|
||||
spi3 = &spi3;
|
||||
spi4 = &spi4;
|
||||
spi5 = &spi5;
|
||||
spi6 = &spi6;
|
||||
/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>;
|
||||
};
|
||||
|
||||
// =============================================
|
||||
// Board specific stuff here
|
||||
|
||||
/ {
|
||||
power_ctrl: power_ctrl {
|
||||
compatible = "gpio-poweroff";
|
||||
gpios = <&expgpio 5 0>;
|
||||
force;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&phy1 {
|
||||
led-modes = <0x00 0x08>; /* link/activity link */
|
||||
};
|
||||
|
||||
&gpio {
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <>;
|
||||
brcm,function = <>;
|
||||
};
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: led-act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "default-on";
|
||||
default-state = "on";
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
pwr_led: 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>;
|
||||
brcm,disable-headphones = <1>;
|
||||
};
|
||||
|
||||
&genet_mdio {
|
||||
clock-frequency = <1950000>;
|
||||
};
|
||||
|
||||
&pm {
|
||||
/delete-property/ system-power-controller;
|
||||
/ {
|
||||
__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>;
|
||||
};
|
||||
};
|
||||
|
||||
660
arch/arm/boot/dts/bcm2711-rpi-cm4.dts
Normal file
660
arch/arm/boot/dts/bcm2711-rpi-cm4.dts
Normal file
@@ -0,0 +1,660 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/dts-v1/;
|
||||
#include "bcm2711.dtsi"
|
||||
#include "bcm2835-rpi.dtsi"
|
||||
|
||||
#include <dt-bindings/reset/raspberrypi,firmware-reset.h>
|
||||
|
||||
/ {
|
||||
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;
|
||||
blconfig = &blconfig;
|
||||
};
|
||||
|
||||
leds {
|
||||
led-act {
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led-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 {
|
||||
firmware_clocks: clocks {
|
||||
compatible = "raspberrypi,firmware-clocks";
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
reset: reset {
|
||||
compatible = "raspberrypi,firmware-reset";
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&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";
|
||||
wifi-2.4ghz-coexistence;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi1 {
|
||||
clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
|
||||
clock-names = "hdmi", "bvb", "audio", "cec";
|
||||
wifi-2.4ghz-coexistence;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hvs {
|
||||
clocks = <&firmware_clocks 4>;
|
||||
};
|
||||
|
||||
&pixelvalve0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pixelvalve1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pixelvalve2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pixelvalve4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rmem {
|
||||
/*
|
||||
* RPi4's co-processor will copy the board's bootloader configuration
|
||||
* into memory for the OS to consume. It'll also update this node with
|
||||
* its placement information.
|
||||
*/
|
||||
blconfig: nvram@0 {
|
||||
compatible = "raspberrypi,bootloader-config", "nvmem-rmem";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x0 0x0 0x0>;
|
||||
no-map;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
/* 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@0 {
|
||||
/* No PHY interrupt */
|
||||
reg = <0x0>;
|
||||
};
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
pci@0,0 {
|
||||
device-type = "pci";
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
reg = <0 0 0 0 0>;
|
||||
|
||||
usb@0,0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* 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>;
|
||||
};
|
||||
|
||||
&vc4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&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-ds.dtsi"
|
||||
#include "bcm283x-rpi-csi0-2lane.dtsi"
|
||||
#include "bcm283x-rpi-csi1-4lane.dtsi"
|
||||
#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
|
||||
#include "bcm283x-rpi-cam1-regulator.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1";
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &uart1;
|
||||
serial1 = &uart0;
|
||||
mmc0 = &emmc2;
|
||||
mmc1 = &mmcnr;
|
||||
mmc2 = &sdhost;
|
||||
i2c3 = &i2c3;
|
||||
i2c4 = &i2c4;
|
||||
i2c5 = &i2c5;
|
||||
i2c6 = &i2c6;
|
||||
i2c20 = &ddc0;
|
||||
i2c21 = &ddc1;
|
||||
spi3 = &spi3;
|
||||
spi4 = &spi4;
|
||||
spi5 = &spi5;
|
||||
spi6 = &spi6;
|
||||
/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>;
|
||||
};
|
||||
|
||||
// =============================================
|
||||
// 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 = <>;
|
||||
brcm,function = <>;
|
||||
};
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: led-act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
pwr_led: 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>;
|
||||
brcm,disable-headphones = <1>;
|
||||
};
|
||||
|
||||
cam0_reg: &cam1_reg {
|
||||
gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__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>;
|
||||
};
|
||||
};
|
||||
205
arch/arm/boot/dts/bcm2711-rpi-ds.dtsi
Normal file
205
arch/arm/boot/dts/bcm2711-rpi-ds.dtsi
Normal file
@@ -0,0 +1,205 @@
|
||||
// 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 */
|
||||
};
|
||||
};
|
||||
|
||||
&vc4 {
|
||||
raspberrypi,firmware = <&firmware>;
|
||||
};
|
||||
|
||||
&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)|(1<<24)|(10<<16)|(15<<20))>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&ddc0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&hdmi1 {
|
||||
dmas = <&dma (17|(1<<27)|(1<<24)|(10<<16)|(15<<20))>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&ddc1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&dvp {
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -323,6 +323,7 @@
|
||||
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hdmi0: hdmi@7ef00700 {
|
||||
@@ -335,7 +336,8 @@
|
||||
<0x7ef01f00 0x400>,
|
||||
<0x7ef00200 0x80>,
|
||||
<0x7ef04300 0x100>,
|
||||
<0x7ef20000 0x100>;
|
||||
<0x7ef20000 0x100>,
|
||||
<0x7ef00100 0x30>;
|
||||
reg-names = "hdmi",
|
||||
"dvp",
|
||||
"phy",
|
||||
@@ -344,7 +346,12 @@
|
||||
"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>;
|
||||
interrupt-parent = <&aon_intr>;
|
||||
@@ -353,7 +360,7 @@
|
||||
interrupt-names = "cec-tx", "cec-rx", "cec-low",
|
||||
"wakeup", "hpd-connected", "hpd-removed";
|
||||
ddc = <&ddc0>;
|
||||
dmas = <&dma 10>;
|
||||
dmas = <&dma (10 | (1 << 27) | (1 << 24)| (15 << 20) | (10 << 16))>;
|
||||
dma-names = "audio-rx";
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -376,7 +383,8 @@
|
||||
<0x7ef06f00 0x400>,
|
||||
<0x7ef00280 0x80>,
|
||||
<0x7ef09300 0x100>,
|
||||
<0x7ef20000 0x100>;
|
||||
<0x7ef20000 0x100>,
|
||||
<0x7ef00100 0x30>;
|
||||
reg-names = "hdmi",
|
||||
"dvp",
|
||||
"phy",
|
||||
@@ -385,16 +393,21 @@
|
||||
"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>;
|
||||
interrupt-parent = <&aon_intr>;
|
||||
interrupts = <8>, <7>, <6>,
|
||||
<9>, <10>, <11>;
|
||||
interrupt-names = "cec-tx", "cec-rx", "cec-low",
|
||||
"wakeup", "hpd-connected", "hpd-removed";
|
||||
dmas = <&dma 17>;
|
||||
dmas = <&dma (17 | (1 << 27) | (1 << 24)| (15 << 20) | (10 << 16))>;
|
||||
dma-names = "audio-rx";
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -495,14 +508,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>;
|
||||
@@ -522,8 +535,8 @@
|
||||
msi-controller;
|
||||
msi-parent = <&pcie0>;
|
||||
|
||||
ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000
|
||||
0x0 0x04000000>;
|
||||
ranges = <0x02000000 0x0 0xc0000000 0x6 0x00000000
|
||||
0x0 0x40000000>;
|
||||
/*
|
||||
* The wrapper around the PCIe block has a bug
|
||||
* preventing it from accessing beyond the first 3GB of
|
||||
@@ -536,7 +549,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>,
|
||||
@@ -1046,7 +1059,7 @@
|
||||
alloc-ranges = <0x0 0x00000000 0x40000000>;
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
&i2c0if {
|
||||
compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c";
|
||||
interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
@@ -1102,8 +1115,3 @@
|
||||
&usb {
|
||||
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
&vec {
|
||||
compatible = "brcm,bcm2711-vec";
|
||||
interrupts = <GIC_SPI 123 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";
|
||||
};
|
||||
};
|
||||
@@ -124,12 +124,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)|(1<<24))>;
|
||||
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>;
|
||||
@@ -67,6 +76,10 @@
|
||||
power-domains = <&power RPI_POWER_DOMAIN_USB>;
|
||||
};
|
||||
|
||||
&vc4 {
|
||||
raspberrypi,firmware = <&firmware>;
|
||||
};
|
||||
|
||||
&vec {
|
||||
power-domains = <&power RPI_POWER_DOMAIN_VEC>;
|
||||
status = "okay";
|
||||
|
||||
@@ -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>;
|
||||
};
|
||||
|
||||
10
arch/arm/boot/dts/bcm283x-rpi-cam1-regulator.dtsi
Normal file
10
arch/arm/boot/dts/bcm283x-rpi-cam1-regulator.dtsi
Normal file
@@ -0,0 +1,10 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
/ {
|
||||
cam1_reg: cam1_reg {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "cam1-reg";
|
||||
enable-active-high;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
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>;
|
||||
};
|
||||
@@ -336,7 +336,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@7e205000 {
|
||||
i2c0if: i2c@7e205000 {
|
||||
compatible = "brcm,bcm2835-i2c";
|
||||
reg = <0x7e205000 0x200>;
|
||||
interrupts = <2 21>;
|
||||
@@ -346,6 +346,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>;
|
||||
|
||||
248
arch/arm/boot/dts/overlays/Makefile
Normal file
248
arch/arm/boot/dts/overlays/Makefile
Normal file
@@ -0,0 +1,248 @@
|
||||
# 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-boss2-dac-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 \
|
||||
cap1106.dtbo \
|
||||
chipdip-dac.dtbo \
|
||||
cma.dtbo \
|
||||
dht11.dtbo \
|
||||
dionaudio-loco.dtbo \
|
||||
dionaudio-loco-v2.dtbo \
|
||||
disable-bt.dtbo \
|
||||
disable-wifi.dtbo \
|
||||
dpi18.dtbo \
|
||||
dpi18cpadhi.dtbo \
|
||||
dpi24.dtbo \
|
||||
draws.dtbo \
|
||||
dwc-otg.dtbo \
|
||||
dwc2.dtbo \
|
||||
edt-ft5406.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-led.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-amp100.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 \
|
||||
imx378.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 \
|
||||
mcp251xfd.dtbo \
|
||||
mcp3008.dtbo \
|
||||
mcp3202.dtbo \
|
||||
mcp342x.dtbo \
|
||||
media-center.dtbo \
|
||||
merus-amp.dtbo \
|
||||
midi-uart0.dtbo \
|
||||
midi-uart1.dtbo \
|
||||
midi-uart2.dtbo \
|
||||
midi-uart3.dtbo \
|
||||
midi-uart4.dtbo \
|
||||
midi-uart5.dtbo \
|
||||
minipitft13.dtbo \
|
||||
miniuart-bt.dtbo \
|
||||
mmc.dtbo \
|
||||
mpu6050.dtbo \
|
||||
mz61581.dtbo \
|
||||
ov5647.dtbo \
|
||||
ov7251.dtbo \
|
||||
ov9281.dtbo \
|
||||
papirus.dtbo \
|
||||
pca953x.dtbo \
|
||||
pcie-32bit-dma.dtbo \
|
||||
pibell.dtbo \
|
||||
pifacedigital.dtbo \
|
||||
pifi-40.dtbo \
|
||||
pifi-dac-hd.dtbo \
|
||||
pifi-dac-zero.dtbo \
|
||||
pifi-mini-210.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 \
|
||||
qca7000-uart0.dtbo \
|
||||
rotary-encoder.dtbo \
|
||||
rpi-backlight.dtbo \
|
||||
rpi-cirrus-wm5102.dtbo \
|
||||
rpi-dac.dtbo \
|
||||
rpi-display.dtbo \
|
||||
rpi-ft5406.dtbo \
|
||||
rpi-poe.dtbo \
|
||||
rpi-poe-plus.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 \
|
||||
seeed-can-fd-hat-v1.dtbo \
|
||||
seeed-can-fd-hat-v2.dtbo \
|
||||
sh1106-spi.dtbo \
|
||||
si446x-spi0.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 \
|
||||
ssd1331-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 \
|
||||
ugreen-dabboard.dtbo \
|
||||
upstream.dtbo \
|
||||
upstream-pi4.dtbo \
|
||||
vc4-fkms-v3d.dtbo \
|
||||
vc4-fkms-v3d-pi4.dtbo \
|
||||
vc4-kms-dpi-at056tn53v1.dtbo \
|
||||
vc4-kms-dsi-7inch.dtbo \
|
||||
vc4-kms-dsi-lt070me05000.dtbo \
|
||||
vc4-kms-dsi-lt070me05000-v2.dtbo \
|
||||
vc4-kms-kippah-7inch.dtbo \
|
||||
vc4-kms-v3d.dtbo \
|
||||
vc4-kms-v3d-pi4.dtbo \
|
||||
vc4-kms-vga666.dtbo \
|
||||
vga666.dtbo \
|
||||
w1-gpio.dtbo \
|
||||
w1-gpio-pullup.dtbo \
|
||||
w5500.dtbo \
|
||||
wittypi.dtbo \
|
||||
wm8960-soundcard.dtbo
|
||||
|
||||
targets += dtbs dtbs_install
|
||||
targets += $(dtbo-y)
|
||||
|
||||
always-y := $(dtbo-y)
|
||||
clean-files := *.dtbo
|
||||
3530
arch/arm/boot/dts/overlays/README
Normal file
3530
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@48 {
|
||||
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@48 {
|
||||
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?";
|
||||
};
|
||||
};
|
||||
57
arch/arm/boot/dts/overlays/allo-boss2-dac-audio-overlay.dts
Normal file
57
arch/arm/boot/dts/overlays/allo-boss2-dac-audio-overlay.dts
Normal file
@@ -0,0 +1,57 @@
|
||||
/* * Definitions for Allo Boss2 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-cs43130@30 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "allo,allo-cs43198";
|
||||
clock44-gpio = <&gpio 5 0>;
|
||||
clock48-gpio = <&gpio 6 0>;
|
||||
reg = <0x30>;
|
||||
port {
|
||||
codec_endpoint: endpoint {
|
||||
remote-endpoint = <&cpu_endpoint>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
boss2_dac: __overlay__ {
|
||||
compatible = "audio-graph-card";
|
||||
label = "Allo Boss2";
|
||||
dais = <&cpu_port>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
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,57 @@
|
||||
// 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>;
|
||||
sound-name-prefix = "Main";
|
||||
status = "okay";
|
||||
};
|
||||
allo_pcm5122_4d: pcm5122@4d {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm5122";
|
||||
reg = <0x4d>;
|
||||
sound-name-prefix = "Sub";
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
42
arch/arm/boot/dts/overlays/audremap-overlay.dts
Normal file
42
arch/arm/boot/dts/overlays/audremap-overlay.dts
Normal file
@@ -0,0 +1,42 @@
|
||||
/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 */
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&audio>;
|
||||
__overlay__ {
|
||||
brcm,disable-headphones = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
__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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
52
arch/arm/boot/dts/overlays/cap1106-overlay.dts
Normal file
52
arch/arm/boot/dts/overlays/cap1106-overlay.dts
Normal file
@@ -0,0 +1,52 @@
|
||||
// Overlay for cap1106 from Microchip Semiconductor
|
||||
// add CONFIG_KEYBOARD_CAP11XX=y
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
fragment@0 {
|
||||
target = <&i2c1>;
|
||||
__overlay__{
|
||||
status = "okay";
|
||||
cap1106: cap1106@28 {
|
||||
compatible = "microchip,cap1106";
|
||||
pinctrl-0 = <&cap1106_pins>;
|
||||
pinctrl-names = "default";
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <4 2>;
|
||||
reg = <0x28>;
|
||||
autorepeat;
|
||||
microchip,sensor-gain = <2>;
|
||||
|
||||
linux,keycodes = <2>, /* KEY_1 */
|
||||
<3>, /* KEY_2 */
|
||||
<4>, /* KEY_3 */
|
||||
<5>, /* KEY_4 */
|
||||
<6>, /* KEY_5 */
|
||||
<7>; /* KEY_6 */
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
cap1106_pins: cap1106_pins {
|
||||
brcm,pins = <4>;
|
||||
brcm,function = <0>; /* in */
|
||||
brcm,pull = <0>; /* none */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
int_pin = <&cap1106>, "interrupts:0",
|
||||
<&cap1106_pins>, "brcm,pins:0";
|
||||
};
|
||||
};
|
||||
46
arch/arm/boot/dts/overlays/chipdip-dac-overlay.dts
Normal file
46
arch/arm/boot/dts/overlays/chipdip-dac-overlay.dts
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Device Tree overlay for ChipDip DAC
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
spdif-transmitter {
|
||||
#address-cells = <0>;
|
||||
#size-cells = <0>;
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "linux,spdif-dit";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "chipdip,chipdip-dac";
|
||||
i2s-controller = <&i2s>;
|
||||
sr0-gpios = <&gpio 5 0>;
|
||||
sr1-gpios = <&gpio 6 0>;
|
||||
sr2-gpios = <&gpio 12 0>;
|
||||
res0-gpios = <&gpio 24 0>;
|
||||
res1-gpios = <&gpio 27 0>;
|
||||
mute-gpios = <&gpio 4 0>;
|
||||
sdwn-gpios = <&gpio 13 0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
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 */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
26
arch/arm/boot/dts/overlays/dpi18cpadhi-overlay.dts
Normal file
26
arch/arm/boot/dts/overlays/dpi18cpadhi-overlay.dts
Normal file
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* dpi18cpadhi-overlay.dts
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target = <&fb>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dpi_18bit_cpadhi_gpio0>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&vc4>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dpi_18bit_cpadhi_gpio0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
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";
|
||||
};
|
||||
};
|
||||
10
arch/arm/boot/dts/overlays/edt-ft5406-overlay.dts
Normal file
10
arch/arm/boot/dts/overlays/edt-ft5406-overlay.dts
Normal file
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
* Device Tree overlay for EDT 5406 touchscreen controller, as used on the
|
||||
* Raspberry Pi 7" panel
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include "edt-ft5406.dtsi"
|
||||
55
arch/arm/boot/dts/overlays/edt-ft5406.dtsi
Normal file
55
arch/arm/boot/dts/overlays/edt-ft5406.dtsi
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Device Tree overlay for an EDT FT5406 touchscreen
|
||||
*
|
||||
* Note that this is included from vc4-kms-dsi-7inch, hence the
|
||||
* fragment numbers not starting at 0.
|
||||
*/
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@10 {
|
||||
target = <&ft5406>;
|
||||
__overlay__ {
|
||||
touchscreen-inverted-x;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@11 {
|
||||
target = <&ft5406>;
|
||||
__overlay__ {
|
||||
touchscreen-inverted-y;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@12 {
|
||||
target = <&i2c_csi_dsi>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
ft5406: ts@38 {
|
||||
compatible = "edt,edt-ft5406";
|
||||
reg = <0x38>;
|
||||
|
||||
touchscreen-size-x = < 800 >;
|
||||
touchscreen-size-y = < 480 >;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@13 {
|
||||
target = <&i2c0if>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
sizex = <&ft5406>,"touchscreen-size-x:0";
|
||||
sizey = <&ft5406>,"touchscreen-size-y:0";
|
||||
invx = <0>, "-10";
|
||||
invy = <0>, "-11";
|
||||
swapxy = <&ft5406>,"touchscreen-swapped-x-y?";
|
||||
};
|
||||
};
|
||||
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-swgpios = <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>, <AMBER 0>, <GREEN 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
fsm_debug = <&fsm_demo>,"debug:0";
|
||||
};
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user