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
|
# 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) += \
|
dtb-$(CONFIG_ARCH_ALPINE) += \
|
||||||
alpine-db.dtb
|
alpine-db.dtb
|
||||||
dtb-$(CONFIG_MACH_ARTPEC6) += \
|
dtb-$(CONFIG_MACH_ARTPEC6) += \
|
||||||
@@ -1499,3 +1506,13 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
|
|||||||
aspeed-bmc-portwell-neptune.dtb \
|
aspeed-bmc-portwell-neptune.dtb \
|
||||||
aspeed-bmc-quanta-q71l.dtb \
|
aspeed-bmc-quanta-q71l.dtb \
|
||||||
aspeed-bmc-supermicro-x11spi.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/;
|
/dts-v1/;
|
||||||
#include "bcm2711.dtsi"
|
#include "bcm2711.dtsi"
|
||||||
#include "bcm2711-rpi.dtsi"
|
#include "bcm2711-rpi.dtsi"
|
||||||
#include "bcm283x-rpi-usb-peripheral.dtsi"
|
//#include "bcm283x-rpi-usb-peripheral.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
|
compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
"VDD_SD_IO_SEL",
|
"VDD_SD_IO_SEL",
|
||||||
"CAM_GPIO",
|
"CAM_GPIO",
|
||||||
"SD_PWR_ON",
|
"SD_PWR_ON",
|
||||||
"";
|
"SD_OC_N";
|
||||||
};
|
};
|
||||||
|
|
||||||
&gpio {
|
&gpio {
|
||||||
@@ -260,3 +260,309 @@
|
|||||||
&vec {
|
&vec {
|
||||||
status = "disabled";
|
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
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/dts-v1/;
|
/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";
|
compatible = "raspberrypi,400", "brcm,bcm2711";
|
||||||
@@ -11,35 +14,624 @@
|
|||||||
stdout-path = "serial1:115200n8";
|
stdout-path = "serial1:115200n8";
|
||||||
};
|
};
|
||||||
|
|
||||||
leds {
|
/* Will be filled by the bootloader */
|
||||||
/delete-node/ led-act;
|
memory@0 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0 0 0>;
|
||||||
|
};
|
||||||
|
|
||||||
led-pwr {
|
aliases {
|
||||||
|
emmc2bus = &emmc2bus;
|
||||||
|
ethernet0 = &genet;
|
||||||
|
pcie0 = &pcie0;
|
||||||
|
blconfig = &blconfig;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
led-act {
|
||||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
gpio-poweroff {
|
led-pwr {
|
||||||
compatible = "gpio-poweroff";
|
label = "PWR";
|
||||||
gpios = <&expgpio 5 GPIO_ACTIVE_HIGH>;
|
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||||
|
default-state = "keep";
|
||||||
|
linux,default-trigger = "default-on";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&expgpio {
|
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",
|
gpio-line-names = "BT_ON",
|
||||||
"WL_ON",
|
"WL_ON",
|
||||||
"",
|
"PWR_LED_OFF",
|
||||||
"GLOBAL_RESET",
|
"GLOBAL_RESET",
|
||||||
"VDD_SD_IO_SEL",
|
"VDD_SD_IO_SEL",
|
||||||
"CAM_GPIO",
|
"CAM_GPIO",
|
||||||
"SD_PWR_ON",
|
"SD_PWR_ON",
|
||||||
"SD_OC_N";
|
"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 {
|
&genet_mdio {
|
||||||
clock-frequency = <1950000>;
|
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>;
|
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
hdmi0: hdmi@7ef00700 {
|
hdmi0: hdmi@7ef00700 {
|
||||||
@@ -335,7 +336,8 @@
|
|||||||
<0x7ef01f00 0x400>,
|
<0x7ef01f00 0x400>,
|
||||||
<0x7ef00200 0x80>,
|
<0x7ef00200 0x80>,
|
||||||
<0x7ef04300 0x100>,
|
<0x7ef04300 0x100>,
|
||||||
<0x7ef20000 0x100>;
|
<0x7ef20000 0x100>,
|
||||||
|
<0x7ef00100 0x30>;
|
||||||
reg-names = "hdmi",
|
reg-names = "hdmi",
|
||||||
"dvp",
|
"dvp",
|
||||||
"phy",
|
"phy",
|
||||||
@@ -344,7 +346,12 @@
|
|||||||
"metadata",
|
"metadata",
|
||||||
"csc",
|
"csc",
|
||||||
"cec",
|
"cec",
|
||||||
"hd";
|
"hd",
|
||||||
|
"intr2";
|
||||||
|
clocks = <&firmware_clocks 13>,
|
||||||
|
<&firmware_clocks 14>,
|
||||||
|
<&dvp 0>,
|
||||||
|
<&clk_27MHz>;
|
||||||
clock-names = "hdmi", "bvb", "audio", "cec";
|
clock-names = "hdmi", "bvb", "audio", "cec";
|
||||||
resets = <&dvp 0>;
|
resets = <&dvp 0>;
|
||||||
interrupt-parent = <&aon_intr>;
|
interrupt-parent = <&aon_intr>;
|
||||||
@@ -353,7 +360,7 @@
|
|||||||
interrupt-names = "cec-tx", "cec-rx", "cec-low",
|
interrupt-names = "cec-tx", "cec-rx", "cec-low",
|
||||||
"wakeup", "hpd-connected", "hpd-removed";
|
"wakeup", "hpd-connected", "hpd-removed";
|
||||||
ddc = <&ddc0>;
|
ddc = <&ddc0>;
|
||||||
dmas = <&dma 10>;
|
dmas = <&dma (10 | (1 << 27) | (1 << 24)| (15 << 20) | (10 << 16))>;
|
||||||
dma-names = "audio-rx";
|
dma-names = "audio-rx";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
@@ -376,7 +383,8 @@
|
|||||||
<0x7ef06f00 0x400>,
|
<0x7ef06f00 0x400>,
|
||||||
<0x7ef00280 0x80>,
|
<0x7ef00280 0x80>,
|
||||||
<0x7ef09300 0x100>,
|
<0x7ef09300 0x100>,
|
||||||
<0x7ef20000 0x100>;
|
<0x7ef20000 0x100>,
|
||||||
|
<0x7ef00100 0x30>;
|
||||||
reg-names = "hdmi",
|
reg-names = "hdmi",
|
||||||
"dvp",
|
"dvp",
|
||||||
"phy",
|
"phy",
|
||||||
@@ -385,16 +393,21 @@
|
|||||||
"metadata",
|
"metadata",
|
||||||
"csc",
|
"csc",
|
||||||
"cec",
|
"cec",
|
||||||
"hd";
|
"hd",
|
||||||
|
"intr2";
|
||||||
ddc = <&ddc1>;
|
ddc = <&ddc1>;
|
||||||
clock-names = "hdmi", "bvb", "audio", "cec";
|
clock-names = "hdmi", "bvb", "audio", "cec";
|
||||||
|
clocks = <&firmware_clocks 13>,
|
||||||
|
<&firmware_clocks 14>,
|
||||||
|
<&dvp 0>,
|
||||||
|
<&clk_27MHz>;
|
||||||
resets = <&dvp 1>;
|
resets = <&dvp 1>;
|
||||||
interrupt-parent = <&aon_intr>;
|
interrupt-parent = <&aon_intr>;
|
||||||
interrupts = <8>, <7>, <6>,
|
interrupts = <8>, <7>, <6>,
|
||||||
<9>, <10>, <11>;
|
<9>, <10>, <11>;
|
||||||
interrupt-names = "cec-tx", "cec-rx", "cec-low",
|
interrupt-names = "cec-tx", "cec-rx", "cec-low",
|
||||||
"wakeup", "hpd-connected", "hpd-removed";
|
"wakeup", "hpd-connected", "hpd-removed";
|
||||||
dmas = <&dma 17>;
|
dmas = <&dma (17 | (1 << 27) | (1 << 24)| (15 << 20) | (10 << 16))>;
|
||||||
dma-names = "audio-rx";
|
dma-names = "audio-rx";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
@@ -495,14 +508,14 @@
|
|||||||
scb {
|
scb {
|
||||||
compatible = "simple-bus";
|
compatible = "simple-bus";
|
||||||
#address-cells = <2>;
|
#address-cells = <2>;
|
||||||
#size-cells = <1>;
|
#size-cells = <2>;
|
||||||
|
|
||||||
ranges = <0x0 0x7c000000 0x0 0xfc000000 0x03800000>,
|
ranges = <0x0 0x7c000000 0x0 0xfc000000 0x0 0x03800000>,
|
||||||
<0x6 0x00000000 0x6 0x00000000 0x40000000>;
|
<0x6 0x00000000 0x6 0x00000000 0x0 0x40000000>;
|
||||||
|
|
||||||
pcie0: pcie@7d500000 {
|
pcie0: pcie@7d500000 {
|
||||||
compatible = "brcm,bcm2711-pcie";
|
compatible = "brcm,bcm2711-pcie";
|
||||||
reg = <0x0 0x7d500000 0x9310>;
|
reg = <0x0 0x7d500000 0x0 0x9310>;
|
||||||
device_type = "pci";
|
device_type = "pci";
|
||||||
#address-cells = <3>;
|
#address-cells = <3>;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
@@ -522,8 +535,8 @@
|
|||||||
msi-controller;
|
msi-controller;
|
||||||
msi-parent = <&pcie0>;
|
msi-parent = <&pcie0>;
|
||||||
|
|
||||||
ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000
|
ranges = <0x02000000 0x0 0xc0000000 0x6 0x00000000
|
||||||
0x0 0x04000000>;
|
0x0 0x40000000>;
|
||||||
/*
|
/*
|
||||||
* The wrapper around the PCIe block has a bug
|
* The wrapper around the PCIe block has a bug
|
||||||
* preventing it from accessing beyond the first 3GB of
|
* preventing it from accessing beyond the first 3GB of
|
||||||
@@ -536,7 +549,7 @@
|
|||||||
|
|
||||||
genet: ethernet@7d580000 {
|
genet: ethernet@7d580000 {
|
||||||
compatible = "brcm,bcm2711-genet-v5";
|
compatible = "brcm,bcm2711-genet-v5";
|
||||||
reg = <0x0 0x7d580000 0x10000>;
|
reg = <0x0 0x7d580000 0x0 0x10000>;
|
||||||
#address-cells = <0x1>;
|
#address-cells = <0x1>;
|
||||||
#size-cells = <0x1>;
|
#size-cells = <0x1>;
|
||||||
interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
|
interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
@@ -1046,7 +1059,7 @@
|
|||||||
alloc-ranges = <0x0 0x00000000 0x40000000>;
|
alloc-ranges = <0x0 0x00000000 0x40000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0if {
|
||||||
compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c";
|
compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c";
|
||||||
interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
};
|
};
|
||||||
@@ -1102,8 +1115,3 @@
|
|||||||
&usb {
|
&usb {
|
||||||
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
|
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";
|
compatible = "brcm,bcm2835-hdmi";
|
||||||
reg = <0x7e902000 0x600>,
|
reg = <0x7e902000 0x600>,
|
||||||
<0x7e808000 0x100>;
|
<0x7e808000 0x100>;
|
||||||
|
reg-names = "hdmi",
|
||||||
|
"hd";
|
||||||
interrupts = <2 8>, <2 9>;
|
interrupts = <2 8>, <2 9>;
|
||||||
ddc = <&i2c2>;
|
ddc = <&i2c2>;
|
||||||
clocks = <&clocks BCM2835_PLLH_PIX>,
|
clocks = <&clocks BCM2835_PLLH_PIX>,
|
||||||
<&clocks BCM2835_CLOCK_HSM>;
|
<&clocks BCM2835_CLOCK_HSM>;
|
||||||
clock-names = "pixel", "hdmi";
|
clock-names = "pixel", "hdmi";
|
||||||
dmas = <&dma 17>;
|
dmas = <&dma (17|(1<<27)|(1<<24))>;
|
||||||
dma-names = "audio-rx";
|
dma-names = "audio-rx";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -126,3 +126,8 @@
|
|||||||
pinctrl-0 = <&uart0_gpio14>;
|
pinctrl-0 = <&uart0_gpio14>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* i2c on camera/display connector is gpio 28&29 */
|
||||||
|
&i2c0mux {
|
||||||
|
pinctrl-1 = <&i2c0_gpio28>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -121,3 +121,10 @@
|
|||||||
pinctrl-0 = <&uart0_gpio14>;
|
pinctrl-0 = <&uart0_gpio14>;
|
||||||
status = "okay";
|
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>;
|
pinctrl-0 = <&uart0_gpio14>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* i2c on camera/display connector is gpio 28&29 */
|
||||||
|
&i2c0mux {
|
||||||
|
pinctrl-1 = <&i2c0_gpio28>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -121,3 +121,10 @@
|
|||||||
pinctrl-0 = <&uart0_gpio14>;
|
pinctrl-0 = <&uart0_gpio14>;
|
||||||
status = "okay";
|
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>;
|
pinctrl-0 = <&uart0_gpio14>;
|
||||||
status = "okay";
|
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>;
|
pinctrl-0 = <&uart0_gpio14>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* WHAT TO DO HERE? */
|
||||||
|
&i2c0mux {
|
||||||
|
pinctrl-1 = <&i2c0_gpio28>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -149,3 +149,8 @@
|
|||||||
pinctrl-0 = <&uart1_gpio14>;
|
pinctrl-0 = <&uart1_gpio14>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* i2c on camera/display connector is gpio 28&29 */
|
||||||
|
&i2c0mux {
|
||||||
|
pinctrl-1 = <&i2c0_gpio28>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -117,3 +117,8 @@
|
|||||||
pinctrl-0 = <&uart0_gpio14>;
|
pinctrl-0 = <&uart0_gpio14>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* i2c on camera/display connector is gpio 28&29 */
|
||||||
|
&i2c0mux {
|
||||||
|
pinctrl-1 = <&i2c0_gpio28>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -19,6 +19,11 @@
|
|||||||
|
|
||||||
mboxes = <&mailbox>;
|
mboxes = <&mailbox>;
|
||||||
dma-ranges;
|
dma-ranges;
|
||||||
|
|
||||||
|
firmware_clocks: clocks {
|
||||||
|
compatible = "raspberrypi,firmware-clocks";
|
||||||
|
#clock-cells = <1>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
power: power {
|
power: power {
|
||||||
@@ -49,13 +54,17 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0if {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_gpio0>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
clock-frequency = <100000>;
|
clock-frequency = <100000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&i2c0mux {
|
||||||
|
pinctrl-0 = <&i2c0_gpio0>;
|
||||||
|
/* pinctrl-1 varies based on platform */
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&i2c1_gpio2>;
|
pinctrl-0 = <&i2c1_gpio2>;
|
||||||
@@ -67,6 +76,10 @@
|
|||||||
power-domains = <&power RPI_POWER_DOMAIN_USB>;
|
power-domains = <&power RPI_POWER_DOMAIN_USB>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&vc4 {
|
||||||
|
raspberrypi,firmware = <&firmware>;
|
||||||
|
};
|
||||||
|
|
||||||
&vec {
|
&vec {
|
||||||
power-domains = <&power RPI_POWER_DOMAIN_VEC>;
|
power-domains = <&power RPI_POWER_DOMAIN_VEC>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
soc {
|
soc {
|
||||||
ranges = <0x7e000000 0x20000000 0x02000000>;
|
ranges = <0x7e000000 0x20000000 0x02000000>;
|
||||||
dma-ranges = <0x40000000 0x00000000 0x20000000>;
|
dma-ranges = <0x80000000 0x00000000 0x20000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
arm-pmu {
|
arm-pmu {
|
||||||
|
|||||||
@@ -128,3 +128,8 @@
|
|||||||
pinctrl-0 = <&uart0_gpio14>;
|
pinctrl-0 = <&uart0_gpio14>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* i2c on camera/display connector is gpio 28&29 */
|
||||||
|
&i2c0mux {
|
||||||
|
pinctrl-1 = <&i2c0_gpio28>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -178,3 +178,8 @@
|
|||||||
pinctrl-0 = <&uart1_gpio14>;
|
pinctrl-0 = <&uart1_gpio14>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* i2c on camera/display connector is gpio 44&45 */
|
||||||
|
&i2c0mux {
|
||||||
|
pinctrl-1 = <&i2c0_gpio44>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -181,3 +181,8 @@
|
|||||||
pinctrl-0 = <&uart1_gpio14>;
|
pinctrl-0 = <&uart1_gpio14>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* i2c on camera/display connector is gpio 44&45 */
|
||||||
|
&i2c0mux {
|
||||||
|
pinctrl-1 = <&i2c0_gpio44>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -174,3 +174,8 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
bus-width = <4>;
|
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>;
|
pinctrl-0 = <&uart0_gpio14>;
|
||||||
status = "okay";
|
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";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c0: i2c@7e205000 {
|
i2c0if: i2c@7e205000 {
|
||||||
compatible = "brcm,bcm2835-i2c";
|
compatible = "brcm,bcm2835-i2c";
|
||||||
reg = <0x7e205000 0x200>;
|
reg = <0x7e205000 0x200>;
|
||||||
interrupts = <2 21>;
|
interrupts = <2 21>;
|
||||||
@@ -346,6 +346,30 @@
|
|||||||
status = "disabled";
|
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 {
|
dpi: dpi@7e208000 {
|
||||||
compatible = "brcm,bcm2835-dpi";
|
compatible = "brcm,bcm2835-dpi";
|
||||||
reg = <0x7e208000 0x8c>;
|
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