mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
BCM2708: Add core Device Tree support
Add the bare minimum needed to boot BCM2708 from a Device Tree. Signed-off-by: Noralf Tronnes <notro@tronnes.org> BCM2708: DT: change 'axi' nodename to 'soc' Change DT node named 'axi' to 'soc' so it matches ARCH_BCM2835. The VC4 bootloader fills in certain properties in the 'axi' subtree, but since this is part of an upstreaming effort, the name is changed. Signed-off-by: Noralf Tronnes notro@tronnes.org BCM2708_DT: Correct length of the peripheral space Use dts-dirs feature for overlays. The kernel makefiles have a dts-dirs target that is for vendor subdirectories. Using this fixes the install_dtbs target, which previously did not install the overlays. BCM270X_DT: configure I2S DMA channels Signed-off-by: Matthias Reichl <hias@horus.com> BCM270X_DT: switch to bcm2835-i2s I2S soundcard drivers with proper devicetree support (i.e. not linking to the cpu_dai/platform via name but to cpu/platform via of_node) will work out of the box without any modifications. When the kernel is compiled without devicetree support the platform code will instantiate the bcm2708-i2s driver and I2S soundcard drivers will link to it via name, as before. Signed-off-by: Matthias Reichl <hias@horus.com> SDIO-overlay: add poll_once-boolean parameter Add paramter to toggle sdio-device-polling done every second or once at boot-time. Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de> BCM270X_DT: Make mmc overlay compatible with current firmware The original DT overlay logic followed a merge-then-patch procedure, i.e. parameters are applied to the loaded overlay before the overlay is merged into the base DTB. This sequence has been changed to patch-then-merge, in order to support parameterised node names, and to protect against bad overlays. As a result, overrides (parameters) must only target labels in the overlay, but the overlay can obviously target nodes in the base DTB. mmc-overlay.dts (that switches back to the original mmc sdcard driver) is the only overlay violating that rule, and this patch fixes it. bcm270x_dt: Use the sdhost MMC controller by default The "mmc" overlay reverts to using the other controller. squash: Add cprman to dt BCM270X_DT: Use clk_core for I2C interfaces BCM270X_DT: Use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi The mainline Device Tree files are quite close to downstream now. Let's use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi as base files for our dts files. Mainline dts files are based on these files: bcm2835-rpi.dtsi bcm2835.dtsi bcm2836.dtsi bcm283x.dtsi Current downstream are based on these: bcm2708.dtsi bcm2709.dtsi bcm2710.dtsi bcm2708_common.dtsi This patch introduces this dependency: bcm2708.dtsi bcm2709.dtsi bcm2708-rpi.dtsi bcm270x.dtsi bcm2835.dtsi bcm2836.dtsi bcm283x.dtsi And: bcm2710.dtsi bcm2708-rpi.dtsi bcm270x.dtsi bcm283x.dtsi bcm270x.dtsi contains the downstream bcm283x.dtsi diff. bcm2708-rpi.dtsi is the downstream version of bcm2835-rpi.dtsi. Other changes: - The led node has moved from /soc/leds to /leds. This is not a problem since the label is used to reference it. - The clk_osc reg property changes from 6 to 3. - The gpu nodes has their interrupt property set in the base file. - the clocks label does not point to the /clocks node anymore, but points to the cprman node. This is not a problem since the overlays that use the clock node refer to it directly: target-path = "/clocks"; - some nodes now have 2 labels since mainline and downstream differs in this respect: cprman/clocks, spi0/spi, gpu/vc4. - some nodes doesn't have an explicit status = "okay" since they're not disabled in the base file: watchdog and random. - gpiomem doesn't need an explicit status = "okay". - bcm2708-rpi-cm.dts got the hpd-gpios property from bcm2708_common.dtsi, it's now set directly in that file. - bcm2709-rpi-2-b.dts has the timer node moved from /soc/timer to /timer. - Removed clock-frequency property on the bcm{2709,2710}.dtsi timer nodes. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> BCM270X_DT: Use raspberrypi-power to turn on USB power Use the raspberrypi-power driver to turn on USB power. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> BCM270X_DT: Add a .dtbo target, use for overlays Change the filenames and extensions to keep the pre-DDT style of overlay (<name>-overlay.dtb) distinct from new ones that use a different style of local fixups (<name>.dtbo), and to match other platforms. The RPi firmware uses the DDTK trailer atom to choose which type of overlay to use for each kernel. Signed-off-by: Phil Elwell <phil@raspberrypi.org> BCM270X_DT: Don't generate "linux,phandle" props The EPAPR standard says to use "phandle" properties to store phandles, rather than the deprecated "linux,phandle" version. By default, dtc generates both, but adding "-H epapr" causes it to only generate "phandle"s, saving some space and clutter. Signed-off-by: Phil Elwell <phil@raspberrypi.org> BCM270X_DT: Add overlay for enc28j60 on SPI2 Works on SPI2 for compute module BCM270X_DT: Add midi-uart0 overlay MIDI requires 31.25kbaud, a baudrate unsupported by Linux. The midi-uart0 overlay configures uart0 (ttyAMA0) to use a fake clock so that requesting 38.4kbaud actually gets 31.25kbaud. Signed-off-by: Phil Elwell <phil@raspberrypi.org> BCM270X_DT: Add i2c-sensor overlay The i2c-sensor overlay is a container for various pressure and temperature sensors, currently bmp085 and bmp280. The standalone bmp085_i2c-sensor overlay is now deprecated. Signed-off-by: Phil Elwell <phil@raspberrypi.org> BCM270X_DT: overlays/*-overlay.dtb -> overlays/*.dtbo (#1752) We now create overlays as .dtbo files. build: support for .dtbo files for dtb overlays Kernel 4.4.6+ on RaspberryPi support .dtbo files for overlays, instead of .dtb. Patch the kernel, which has faulty rules to generate .dtbo the way yocto does Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
@@ -338,6 +338,8 @@ $(INSTALL_TARGETS):
|
||||
|
||||
%.dtb: | scripts
|
||||
$(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
|
||||
%.dtbo: | scripts
|
||||
$(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
|
||||
|
||||
PHONY += dtbs dtbs_install
|
||||
|
||||
|
||||
2
arch/arm/boot/.gitignore
vendored
2
arch/arm/boot/.gitignore
vendored
@@ -3,4 +3,4 @@ zImage
|
||||
xipImage
|
||||
bootpImage
|
||||
uImage
|
||||
*.dtb
|
||||
*.dtb*
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
ifeq ($(CONFIG_OF),y)
|
||||
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += \
|
||||
bcm2708-rpi-b.dtb \
|
||||
bcm2708-rpi-b-plus.dtb \
|
||||
bcm2708-rpi-cm.dtb \
|
||||
bcm2709-rpi-2-b.dtb \
|
||||
bcm2710-rpi-3-b.dtb \
|
||||
bcm2710-rpi-cm3.dtb
|
||||
|
||||
dtb-$(CONFIG_ARCH_ALPINE) += \
|
||||
alpine-db.dtb
|
||||
dtb-$(CONFIG_MACH_ARTPEC6) += \
|
||||
@@ -984,10 +992,21 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
|
||||
dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
|
||||
dtb-$(CONFIG_ARCH_ASPEED) += aspeed-bmc-opp-palmetto.dtb \
|
||||
aspeed-ast2500-evb.dtb
|
||||
|
||||
targets += dtbs dtbs_install
|
||||
targets += $(dtb-y)
|
||||
|
||||
endif
|
||||
|
||||
dtstree := $(srctree)/$(src)
|
||||
dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
|
||||
|
||||
always := $(dtb-y)
|
||||
subdir-y := overlays
|
||||
clean-files := *.dtb
|
||||
|
||||
# Enable fixups to support overlays on BCM2835 platforms
|
||||
ifeq ($(CONFIG_ARCH_BCM2835),y)
|
||||
DTC_FLAGS ?= -@ -H epapr
|
||||
dts-dirs += overlays
|
||||
endif
|
||||
|
||||
156
arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
Normal file
156
arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
Normal file
@@ -0,0 +1,156 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2708.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Raspberry Pi Model B+";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
sdhost_pins: sdhost_pins {
|
||||
brcm,pins = <48 49 50 51 52 53>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdhost_pins>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&fb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&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 = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 47 0>;
|
||||
};
|
||||
|
||||
pwr_led: pwr {
|
||||
label = "led1";
|
||||
linux,default-trigger = "input";
|
||||
gpios = <&gpio 35 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
i2c1 = <&i2c1>,"status";
|
||||
i2c2_iknowwhatimdoing = <&i2c2>,"status";
|
||||
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
|
||||
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
|
||||
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
|
||||
|
||||
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";
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
146
arch/arm/boot/dts/bcm2708-rpi-b.dts
Normal file
146
arch/arm/boot/dts/bcm2708-rpi-b.dts
Normal file
@@ -0,0 +1,146 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2708.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Raspberry Pi Model B";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
sdhost_pins: sdhost_pins {
|
||||
brcm,pins = <48 49 50 51 52 53>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdhost_pins>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&fb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&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 = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 16 1>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
i2c1 = <&i2c1>,"status";
|
||||
i2c2_iknowwhatimdoing = <&i2c2>,"status";
|
||||
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
|
||||
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
|
||||
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
|
||||
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
105
arch/arm/boot/dts/bcm2708-rpi-cm.dts
Normal file
105
arch/arm/boot/dts/bcm2708-rpi-cm.dts
Normal file
@@ -0,0 +1,105 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2708-rpi-cm.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Raspberry Pi Compute Module";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
};
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
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>;
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
i2c1 = <&i2c1>,"status";
|
||||
i2c2_iknowwhatimdoing = <&i2c2>,"status";
|
||||
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
|
||||
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
|
||||
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
|
||||
};
|
||||
};
|
||||
50
arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
Normal file
50
arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
Normal file
@@ -0,0 +1,50 @@
|
||||
#include "bcm2708.dtsi"
|
||||
|
||||
&gpio {
|
||||
sdhost_pins: sdhost_pins {
|
||||
brcm,pins = <48 49 50 51 52 53>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
mmc_pins: mmc_pins {
|
||||
brcm,pins = <48 49 50 51 52 53>;
|
||||
brcm,function = <7>; /* alt3 */
|
||||
};
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 47 0>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
&sdhost {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdhost_pins>;
|
||||
non-removable;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
brcm,overclock-50 = <0>;
|
||||
};
|
||||
|
||||
&fb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
audio = <&audio>,"status";
|
||||
watchdog = <&watchdog>,"status";
|
||||
random = <&random>,"status";
|
||||
sd_overclock = <&mmc>,"brcm,overclock-50:0";
|
||||
};
|
||||
};
|
||||
109
arch/arm/boot/dts/bcm2708-rpi.dtsi
Normal file
109
arch/arm/boot/dts/bcm2708-rpi.dtsi
Normal file
@@ -0,0 +1,109 @@
|
||||
/* Downstream version of bcm2835-rpi.dtsi */
|
||||
|
||||
#include <dt-bindings/power/raspberrypi-power.h>
|
||||
|
||||
/ {
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0>;
|
||||
};
|
||||
|
||||
aliases {
|
||||
audio = &audio;
|
||||
aux = &aux;
|
||||
sound = &sound;
|
||||
soc = &soc;
|
||||
dma = &dma;
|
||||
intc = &intc;
|
||||
watchdog = &watchdog;
|
||||
random = &random;
|
||||
mailbox = &mailbox;
|
||||
gpio = &gpio;
|
||||
uart0 = &uart0;
|
||||
sdhost = &sdhost;
|
||||
i2s = &i2s;
|
||||
spi0 = &spi0;
|
||||
i2c0 = &i2c0;
|
||||
uart1 = &uart1;
|
||||
spi1 = &spi1;
|
||||
spi2 = &spi2;
|
||||
mmc = &mmc;
|
||||
i2c1 = &i2c1;
|
||||
i2c2 = &i2c2;
|
||||
usb = &usb;
|
||||
leds = &leds;
|
||||
fb = &fb;
|
||||
vchiq = &vchiq;
|
||||
thermal = &thermal;
|
||||
};
|
||||
|
||||
leds: leds {
|
||||
compatible = "gpio-leds";
|
||||
};
|
||||
|
||||
soc {
|
||||
gpiomem {
|
||||
compatible = "brcm,bcm2835-gpiomem";
|
||||
reg = <0x7e200000 0x1000>;
|
||||
};
|
||||
|
||||
firmware: firmware {
|
||||
compatible = "raspberrypi,bcm2835-firmware";
|
||||
mboxes = <&mailbox>;
|
||||
};
|
||||
|
||||
power: power {
|
||||
compatible = "raspberrypi,bcm2835-power";
|
||||
firmware = <&firmware>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
|
||||
fb: fb {
|
||||
compatible = "brcm,bcm2708-fb";
|
||||
firmware = <&firmware>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
vchiq: vchiq {
|
||||
compatible = "brcm,bcm2835-vchiq";
|
||||
reg = <0x7e00b840 0xf>;
|
||||
interrupts = <0 2>;
|
||||
cache-line-size = <32>;
|
||||
firmware = <&firmware>;
|
||||
};
|
||||
|
||||
thermal: thermal@7e212000 {
|
||||
firmware = <&firmware>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* Onboard audio */
|
||||
audio: audio {
|
||||
compatible = "brcm,bcm2835-audio";
|
||||
brcm,pwm-channels = <8>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* External sound card */
|
||||
sound: sound {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
cache_line_size = <&vchiq>, "cache-line-size:0";
|
||||
};
|
||||
};
|
||||
|
||||
&dma {
|
||||
brcm,dma-channel-mask = <0x7f34>;
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
|
||||
};
|
||||
|
||||
&usb {
|
||||
power-domains = <&power RPI_POWER_DOMAIN_USB>;
|
||||
};
|
||||
16
arch/arm/boot/dts/bcm2708.dtsi
Normal file
16
arch/arm/boot/dts/bcm2708.dtsi
Normal file
@@ -0,0 +1,16 @@
|
||||
#include "bcm2835.dtsi"
|
||||
#include "bcm270x.dtsi"
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
|
||||
/ {
|
||||
soc {
|
||||
timer@7e003000 {
|
||||
compatible = "brcm,bcm2835-system-timer";
|
||||
reg = <0x7e003000 0x1000>;
|
||||
interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
|
||||
clock-frequency = <1000000>;
|
||||
};
|
||||
};
|
||||
|
||||
/delete-node/ cpus;
|
||||
};
|
||||
156
arch/arm/boot/dts/bcm2709-rpi-2-b.dts
Normal file
156
arch/arm/boot/dts/bcm2709-rpi-2-b.dts
Normal file
@@ -0,0 +1,156 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2709.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Raspberry Pi 2 Model B";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
sdhost_pins: sdhost_pins {
|
||||
brcm,pins = <48 49 50 51 52 53>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdhost_pins>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&fb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&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 = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&gpio 47 0>;
|
||||
};
|
||||
|
||||
pwr_led: pwr {
|
||||
label = "led1";
|
||||
linux,default-trigger = "input";
|
||||
gpios = <&gpio 35 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
i2c1 = <&i2c1>,"status";
|
||||
i2c2_iknowwhatimdoing = <&i2c2>,"status";
|
||||
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
|
||||
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
|
||||
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
|
||||
|
||||
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";
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
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"
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
|
||||
/ {
|
||||
soc {
|
||||
ranges = <0x7e000000 0x3f000000 0x01000000>,
|
||||
<0x40000000 0x40000000 0x00040000>;
|
||||
|
||||
syscon@40000000 {
|
||||
compatible = "brcm,bcm2836-arm-local", "syscon";
|
||||
reg = <0x40000000 0x100>;
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
arm_freq = <&v7_cpu0>, "clock-frequency:0",
|
||||
<&v7_cpu1>, "clock-frequency:0",
|
||||
<&v7_cpu2>, "clock-frequency:0",
|
||||
<&v7_cpu3>, "clock-frequency:0";
|
||||
};
|
||||
};
|
||||
141
arch/arm/boot/dts/bcm270x.dtsi
Normal file
141
arch/arm/boot/dts/bcm270x.dtsi
Normal file
@@ -0,0 +1,141 @@
|
||||
/* Downstream bcm283x.dtsi diff */
|
||||
#include "dt-bindings/power/raspberrypi-power.h"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
bootargs = "";
|
||||
};
|
||||
|
||||
soc: soc {
|
||||
|
||||
/delete-node/ timer@7e003000;
|
||||
|
||||
watchdog: watchdog@7e100000 {
|
||||
/* Add alias */
|
||||
};
|
||||
|
||||
cprman: cprman@7e101000 {
|
||||
/* Add alias */
|
||||
};
|
||||
|
||||
random: rng@7e104000 {
|
||||
/* Add alias */
|
||||
};
|
||||
|
||||
gpio@7e200000 { /* gpio */
|
||||
interrupts = <2 17>, <2 18>;
|
||||
};
|
||||
|
||||
sdhost: sdhost@7e202000 {
|
||||
compatible = "brcm,bcm2835-sdhost";
|
||||
reg = <0x7e202000 0x100>;
|
||||
interrupts = <2 24>;
|
||||
clocks = <&clocks BCM2835_CLOCK_VPU>;
|
||||
dmas = <&dma 13>;
|
||||
dma-names = "rx-tx";
|
||||
brcm,overclock-50 = <0>;
|
||||
brcm,pio-limit = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2s@7e203000 { /* i2s */
|
||||
#sound-dai-cells = <0>;
|
||||
reg = <0x7e203000 0x24>;
|
||||
clocks = <&clocks BCM2835_CLOCK_PCM>;
|
||||
};
|
||||
|
||||
spi0: spi@7e204000 {
|
||||
/* Add alias */
|
||||
dmas = <&dma 6>, <&dma 7>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
|
||||
pixelvalve0: pixelvalve@7e206000 {
|
||||
/* Add alias */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pixelvalve1: pixelvalve@7e207000 {
|
||||
/* Add alias */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dpi: dpi@7e208000 {
|
||||
compatible = "brcm,bcm2835-dpi";
|
||||
reg = <0x7e208000 0x8c>;
|
||||
clocks = <&clocks BCM2835_CLOCK_VPU>,
|
||||
<&clocks BCM2835_CLOCK_DPI>;
|
||||
clock-names = "core", "pixel";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/delete-node/ sdhci@7e300000;
|
||||
|
||||
mmc: mmc@7e300000 {
|
||||
compatible = "brcm,bcm2835-mmc";
|
||||
reg = <0x7e300000 0x100>;
|
||||
interrupts = <2 30>;
|
||||
clocks = <&clocks BCM2835_CLOCK_EMMC>;
|
||||
dmas = <&dma 11>;
|
||||
dma-names = "rx-tx";
|
||||
brcm,overclock-50 = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hvs: hvs@7e400000 {
|
||||
/* Add alias */
|
||||
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 = <&cprman BCM2835_CLOCK_SMI>;
|
||||
assigned-clock-rates = <125000000>;
|
||||
dmas = <&dma 4>;
|
||||
dma-names = "rx-tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pixelvalve2: pixelvalve@7e807000 {
|
||||
/* Add alias */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hdmi@7e902000 { /* hdmi */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb@7e980000 { /* usb */
|
||||
compatible = "brcm,bcm2708-usb";
|
||||
reg = <0x7e980000 0x10000>,
|
||||
<0x7e006000 0x1000>;
|
||||
interrupts = <2 0>,
|
||||
<1 9>;
|
||||
};
|
||||
|
||||
v3d@7ec00000 { /* vd3 */
|
||||
compatible = "brcm,vc4-v3d";
|
||||
power-domains = <&power RPI_POWER_DOMAIN_V3D>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpu: gpu {
|
||||
/* Add alias */
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
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/;
|
||||
|
||||
#ifdef RPI364
|
||||
/memreserve/ 0x00000000 0x00001000;
|
||||
#endif
|
||||
|
||||
#include "bcm2710.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Raspberry Pi 3 Model B";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
sdhost_pins: sdhost_pins {
|
||||
brcm,pins = <48 49 50 51 52 53>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdhost_pins>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
non-removable;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
brcm,overclock-50 = <0>;
|
||||
};
|
||||
|
||||
&soc {
|
||||
virtgpio: virtgpio {
|
||||
compatible = "brcm,bcm2835-virtgpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
firmware = <&firmware>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&fb {
|
||||
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 = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&virtgpio 0 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
bootargs = "8250.nr_uarts=1";
|
||||
};
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
i2c1 = <&i2c1>,"status";
|
||||
i2c2_iknowwhatimdoing = <&i2c2>,"status";
|
||||
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
|
||||
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
|
||||
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
|
||||
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
155
arch/arm/boot/dts/bcm2710-rpi-cm3.dts
Normal file
155
arch/arm/boot/dts/bcm2710-rpi-cm3.dts
Normal file
@@ -0,0 +1,155 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2710.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Raspberry Pi Compute Module 3";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
sdhost_pins: sdhost_pins {
|
||||
brcm,pins = <48 49 50 51 52 53>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
brcm,pull = <0 2 2 2 2 2>;
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdhost_pins>;
|
||||
non-removable;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
brcm,overclock-50 = <0>;
|
||||
};
|
||||
|
||||
&soc {
|
||||
virtgpio: virtgpio {
|
||||
compatible = "brcm,bcm2835-virtgpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
firmware = <&firmware>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&fb {
|
||||
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 = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&virtgpio 0 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
i2c1 = <&i2c1>,"status";
|
||||
i2c2_iknowwhatimdoing = <&i2c2>,"status";
|
||||
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
|
||||
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
|
||||
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
|
||||
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
155
arch/arm/boot/dts/bcm2710.dtsi
Normal file
155
arch/arm/boot/dts/bcm2710.dtsi
Normal file
@@ -0,0 +1,155 @@
|
||||
#include "bcm283x.dtsi"
|
||||
#include "bcm270x.dtsi"
|
||||
#include "bcm2708-rpi.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2837", "brcm,bcm2836";
|
||||
model = "BCM2837";
|
||||
|
||||
soc {
|
||||
ranges = <0x7e000000 0x3f000000 0x01000000>,
|
||||
<0x40000000 0x40000000 0x00040000>;
|
||||
dma-ranges = <0xc0000000 0x00000000 0x3f000000>;
|
||||
|
||||
local_intc: local_intc {
|
||||
compatible = "brcm,bcm2836-l1-intc";
|
||||
reg = <0x40000000 0x100>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-parent = <&local_intc>;
|
||||
};
|
||||
|
||||
arm-pmu {
|
||||
#ifdef RPI364
|
||||
compatible = "arm,armv8-pmuv3", "arm,cortex-a7-pmu";
|
||||
#else
|
||||
compatible = "arm,cortex-a7-pmu";
|
||||
#endif
|
||||
interrupt-parent = <&local_intc>;
|
||||
interrupts = <9>;
|
||||
};
|
||||
|
||||
timer {
|
||||
#ifdef RPI364
|
||||
compatible = "arm,armv8-timer", "arm,armv7-timer";
|
||||
#else
|
||||
compatible = "arm,armv7-timer";
|
||||
#endif
|
||||
interrupt-parent = <&local_intc>;
|
||||
interrupts = <0>, // PHYS_SECURE_PPI
|
||||
<1>, // PHYS_NONSECURE_PPI
|
||||
<3>, // VIRT_PPI
|
||||
<2>; // HYP_PPI
|
||||
always-on;
|
||||
};
|
||||
|
||||
syscon@40000000 {
|
||||
compatible = "brcm,bcm2836-arm-local", "syscon";
|
||||
reg = <0x40000000 0x100>;
|
||||
};
|
||||
};
|
||||
|
||||
#ifdef RPI364
|
||||
cpus: cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
v8_cpu0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0>;
|
||||
clock-frequency = <1200000000>;
|
||||
};
|
||||
|
||||
v8_cpu1: cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x1>;
|
||||
clock-frequency = <1200000000>;
|
||||
enable-method = "spin-table";
|
||||
cpu-release-addr = <0x0 0x000000e0>;
|
||||
};
|
||||
|
||||
v8_cpu2: cpu@2 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x2>;
|
||||
clock-frequency = <1200000000>;
|
||||
enable-method = "spin-table";
|
||||
cpu-release-addr = <0x0 0x000000e8>;
|
||||
};
|
||||
|
||||
v8_cpu3: cpu@3 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x3>;
|
||||
clock-frequency = <1200000000>;
|
||||
enable-method = "spin-table";
|
||||
cpu-release-addr = <0x0 0x000000f0>;
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
arm_freq = <&v8_cpu0>, "clock-frequency:0",
|
||||
<&v8_cpu1>, "clock-frequency:0",
|
||||
<&v8_cpu2>, "clock-frequency:0",
|
||||
<&v8_cpu3>, "clock-frequency:0";
|
||||
};
|
||||
|
||||
#else
|
||||
cpus: cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
v7_cpu0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a7";
|
||||
reg = <0x000>;
|
||||
clock-frequency = <800000000>;
|
||||
};
|
||||
|
||||
v7_cpu1: cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a7";
|
||||
reg = <0x001>;
|
||||
clock-frequency = <800000000>;
|
||||
};
|
||||
|
||||
v7_cpu2: cpu@2 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a7";
|
||||
reg = <0x002>;
|
||||
clock-frequency = <800000000>;
|
||||
};
|
||||
|
||||
v7_cpu3: cpu@3 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a7";
|
||||
reg = <0x003>;
|
||||
clock-frequency = <800000000>;
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
arm_freq = <&v7_cpu0>, "clock-frequency:0",
|
||||
<&v7_cpu1>, "clock-frequency:0",
|
||||
<&v7_cpu2>, "clock-frequency:0",
|
||||
<&v7_cpu3>, "clock-frequency:0";
|
||||
};
|
||||
#endif
|
||||
};
|
||||
|
||||
&intc {
|
||||
compatible = "brcm,bcm2836-armctrl-ic";
|
||||
reg = <0x7e00b200 0x200>;
|
||||
interrupt-parent = <&local_intc>;
|
||||
interrupts = <8>;
|
||||
};
|
||||
|
||||
#ifdef RPI364
|
||||
&usb {
|
||||
compatible = "brcm,bcm2835-usb";
|
||||
reg = <0x7e980000 0x10000>;
|
||||
interrupts = <1 9>;
|
||||
};
|
||||
#endif
|
||||
105
arch/arm/boot/dts/overlays/Makefile
Normal file
105
arch/arm/boot/dts/overlays/Makefile
Normal file
@@ -0,0 +1,105 @@
|
||||
# Overlays for the Raspberry Pi platform
|
||||
|
||||
dtbo-$(CONFIG_ARCH_BCM2835) += \
|
||||
adau1977-adc.dtbo \
|
||||
ads1015.dtbo \
|
||||
ads7846.dtbo \
|
||||
akkordion-iqdacplus.dtbo \
|
||||
allo-piano-dac-pcm512x-audio.dtbo \
|
||||
at86rf233.dtbo \
|
||||
audioinjector-wm8731-audio.dtbo \
|
||||
audremap.dtbo \
|
||||
bmp085_i2c-sensor.dtbo \
|
||||
dht11.dtbo \
|
||||
dionaudio-loco.dtbo \
|
||||
dpi18.dtbo \
|
||||
dpi24.dtbo \
|
||||
dwc-otg.dtbo \
|
||||
dwc2.dtbo \
|
||||
enc28j60.dtbo \
|
||||
enc28j60-spi2.dtbo \
|
||||
gpio-ir.dtbo \
|
||||
gpio-poweroff.dtbo \
|
||||
hifiberry-amp.dtbo \
|
||||
hifiberry-dac.dtbo \
|
||||
hifiberry-dacplus.dtbo \
|
||||
hifiberry-digi.dtbo \
|
||||
hifiberry-digi-pro.dtbo \
|
||||
hy28a.dtbo \
|
||||
hy28b.dtbo \
|
||||
i2c-bcm2708.dtbo \
|
||||
i2c-gpio.dtbo \
|
||||
i2c-mux.dtbo \
|
||||
i2c-pwm-pca9685a.dtbo \
|
||||
i2c-rtc.dtbo \
|
||||
i2c-sensor.dtbo \
|
||||
i2c0-bcm2708.dtbo \
|
||||
i2c1-bcm2708.dtbo \
|
||||
i2s-gpio28-31.dtbo \
|
||||
iqaudio-dac.dtbo \
|
||||
iqaudio-dacplus.dtbo \
|
||||
iqaudio-digi-wm8804-audio.dtbo \
|
||||
justboom-dac.dtbo \
|
||||
justboom-digi.dtbo \
|
||||
lirc-rpi.dtbo \
|
||||
mcp23017.dtbo \
|
||||
mcp23s17.dtbo \
|
||||
mcp2515-can0.dtbo \
|
||||
mcp2515-can1.dtbo \
|
||||
midi-uart0.dtbo \
|
||||
mmc.dtbo \
|
||||
mz61581.dtbo \
|
||||
pi3-act-led.dtbo \
|
||||
pi3-disable-bt.dtbo \
|
||||
pi3-miniuart-bt.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 \
|
||||
qca7000.dtbo \
|
||||
raspidac3.dtbo \
|
||||
rpi-backlight.dtbo \
|
||||
rpi-dac.dtbo \
|
||||
rpi-display.dtbo \
|
||||
rpi-ft5406.dtbo \
|
||||
rpi-proto.dtbo \
|
||||
rpi-sense.dtbo \
|
||||
rra-digidac1-wm8741-audio.dtbo \
|
||||
sc16is750-i2c.dtbo \
|
||||
sc16is752-spi1.dtbo \
|
||||
sdhost.dtbo \
|
||||
sdio.dtbo \
|
||||
sdio-1bit.dtbo \
|
||||
sdtweak.dtbo \
|
||||
smi.dtbo \
|
||||
smi-dev.dtbo \
|
||||
smi-nand.dtbo \
|
||||
spi-gpio35-39.dtbo \
|
||||
spi-rtc.dtbo \
|
||||
spi0-hw-cs.dtbo \
|
||||
spi1-1cs.dtbo \
|
||||
spi1-2cs.dtbo \
|
||||
spi1-3cs.dtbo \
|
||||
spi2-1cs.dtbo \
|
||||
spi2-2cs.dtbo \
|
||||
spi2-3cs.dtbo \
|
||||
tinylcd35.dtbo \
|
||||
uart1.dtbo \
|
||||
vc4-fkms-v3d.dtbo \
|
||||
vc4-kms-v3d.dtbo \
|
||||
vga666.dtbo \
|
||||
w1-gpio.dtbo \
|
||||
w1-gpio-pullup.dtbo \
|
||||
wittypi.dtbo
|
||||
|
||||
targets += dtbs dtbs_install
|
||||
targets += $(dtbo-y)
|
||||
|
||||
always := $(dtbo-y)
|
||||
clean-files := *.dtbo
|
||||
1368
arch/arm/boot/dts/overlays/README
Normal file
1368
arch/arm/boot/dts/overlays/README
Normal file
File diff suppressed because it is too large
Load Diff
53
arch/arm/boot/dts/overlays/adau1977-adc-overlay.dts
Normal file
53
arch/arm/boot/dts/overlays/adau1977-adc-overlay.dts
Normal file
@@ -0,0 +1,53 @@
|
||||
// Definitions for ADAU1977 ADC
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&soc>;
|
||||
|
||||
__overlay__ {
|
||||
codec_supply: fixedregulator@0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "AVDD";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
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 = <&codec_supply>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "adi,adau1977-adc";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
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,bcm2708";
|
||||
/* ----------- ADS1015 ------------ */
|
||||
fragment@0 {
|
||||
target = <&i2c_arm>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
ads1015: ads1015 {
|
||||
compatible = "ti,ads1015";
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x48>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "i2c_arm/ads1015";
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
channel_a: channel_a {
|
||||
reg = <4>;
|
||||
ti,gain = <2>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target-path = "i2c_arm/ads1015";
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
channel_b: channel_b {
|
||||
reg = <5>;
|
||||
ti,gain = <2>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target-path = "i2c_arm/ads1015";
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
channel_c: channel_c {
|
||||
reg = <6>;
|
||||
ti,gain = <2>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target-path = "i2c_arm/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";
|
||||
};
|
||||
|
||||
};
|
||||
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", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
46
arch/arm/boot/dts/overlays/akkordion-iqdacplus-overlay.dts
Normal file
46
arch/arm/boot/dts/overlays/akkordion-iqdacplus-overlay.dts
Normal file
@@ -0,0 +1,46 @@
|
||||
// Definitions for Digital Dreamtime Akkordion using IQaudIO DAC+ or DACZero
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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>;
|
||||
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,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,bcm2708";
|
||||
|
||||
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?";
|
||||
};
|
||||
};
|
||||
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", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,39 @@
|
||||
// Definitions for audioinjector.net audio add on soundcard
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
19
arch/arm/boot/dts/overlays/audremap-overlay.dts
Normal file
19
arch/arm/boot/dts/overlays/audremap-overlay.dts
Normal file
@@ -0,0 +1,19 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&audio_pins>;
|
||||
frag0: __overlay__ {
|
||||
brcm,pins = < 12 13 >;
|
||||
brcm,function = < 4 >; /* alt0 alt0 */
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
swap_lr = <&frag0>, "swap_lr?";
|
||||
enable_jack = <&frag0>, "enable_jack?";
|
||||
};
|
||||
};
|
||||
23
arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts
Normal file
23
arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts
Normal file
@@ -0,0 +1,23 @@
|
||||
// Definitions for BMP085/BMP180 digital barometric pressure and temperature sensors from Bosch Sensortec
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c_arm>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
bmp085@77 {
|
||||
compatible = "bosch,bmp085";
|
||||
reg = <0x77>;
|
||||
default-oversampling = <3>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
39
arch/arm/boot/dts/overlays/dht11-overlay.dts
Normal file
39
arch/arm/boot/dts/overlays/dht11-overlay.dts
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Overlay for the DHT11/21/22 humidity/temperature sensor modules.
|
||||
*/
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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 {
|
||||
brcm,pins = <4>;
|
||||
brcm,function = <0>; // in
|
||||
brcm,pull = <0>; // off
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
gpiopin = <&dht11_pins>,"brcm,pins:0",
|
||||
<&dht11>,"gpios:4";
|
||||
};
|
||||
};
|
||||
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,bcm2708";
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
31
arch/arm/boot/dts/overlays/dpi18-overlay.dts
Normal file
31
arch/arm/boot/dts/overlays/dpi18-overlay.dts
Normal file
@@ -0,0 +1,31 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
// 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 = <&leds>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dpi18_pins>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
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 */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
31
arch/arm/boot/dts/overlays/dpi24-overlay.dts
Normal file
31
arch/arm/boot/dts/overlays/dpi24-overlay.dts
Normal file
@@ -0,0 +1,31 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
// 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 = <&leds>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dpi24_pins>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
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 */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
20
arch/arm/boot/dts/overlays/dwc-otg-overlay.dts
Normal file
20
arch/arm/boot/dts/overlays/dwc-otg-overlay.dts
Normal file
@@ -0,0 +1,20 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&usb>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
__overlay__ {
|
||||
compatible = "brcm,bcm2708-usb";
|
||||
reg = <0x7e980000 0x10000>,
|
||||
<0x7e006000 0x1000>;
|
||||
interrupts = <2 0>,
|
||||
<1 9>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
29
arch/arm/boot/dts/overlays/dwc2-overlay.dts
Normal file
29
arch/arm/boot/dts/overlays/dwc2-overlay.dts
Normal file
@@ -0,0 +1,29 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&usb>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
dwc2_usb: __overlay__ {
|
||||
compatible = "brcm,bcm2835-usb";
|
||||
reg = <0x7e980000 0x10000>;
|
||||
interrupts = <1 9>;
|
||||
dr_mode = "otg";
|
||||
g-np-tx-fifo-size = <32>;
|
||||
g-rx-fifo-size = <256>;
|
||||
g-tx-fifo-size = <256 128 128 64 64 64 32>;
|
||||
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";
|
||||
g-tx-fifo-size = <&dwc2_usb>,"g-tx-fifo-size:0";
|
||||
};
|
||||
};
|
||||
53
arch/arm/boot/dts/overlays/enc28j60-overlay.dts
Normal file
53
arch/arm/boot/dts/overlays/enc28j60-overlay.dts
Normal file
@@ -0,0 +1,53 @@
|
||||
// Overlay for the Microchip ENC28J60 Ethernet Controller
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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,bcm2708";
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
44
arch/arm/boot/dts/overlays/gpio-ir-overlay.dts
Normal file
44
arch/arm/boot/dts/overlays/gpio-ir-overlay.dts
Normal file
@@ -0,0 +1,44 @@
|
||||
// Definitions for ir-gpio module
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
gpio_ir: ir-receiver {
|
||||
compatible = "gpio-ir-receiver";
|
||||
|
||||
// pin number, high or low
|
||||
gpios = <&gpio 18 1>;
|
||||
|
||||
// parameter for keymap name
|
||||
linux,rc-map-name = "rc-rc6-mce";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
gpio_ir_pins: gpio_ir_pins {
|
||||
brcm,pins = <18>; // pin 18
|
||||
brcm,function = <0>; // in
|
||||
brcm,pull = <1>; // down
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
// parameters
|
||||
gpio_pin = <&gpio_ir>,"gpios:4",
|
||||
<&gpio_ir_pins>,"brcm,pins:0"; // pin number
|
||||
gpio_pull = <&gpio_ir_pins>,"brcm,pull:0"; // pull-up/down state
|
||||
|
||||
rc-map-name = <&gpio_ir>,"linux,rc-map-name"; // default rc map
|
||||
};
|
||||
};
|
||||
34
arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts
Normal file
34
arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts
Normal file
@@ -0,0 +1,34 @@
|
||||
// Definitions for gpio-poweroff module
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
power_ctrl: power_ctrl {
|
||||
compatible = "gpio-poweroff";
|
||||
gpios = <&gpio 26 0>;
|
||||
force;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
power_ctrl_pins: power_ctrl_pins {
|
||||
brcm,pins = <26>;
|
||||
brcm,function = <1>; // out
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
gpiopin = <&power_ctrl>,"gpios:4",
|
||||
<&power_ctrl_pins>,"brcm,pins:0";
|
||||
active_low = <&power_ctrl>,"gpios:8";
|
||||
};
|
||||
};
|
||||
39
arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts
Normal file
39
arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts
Normal file
@@ -0,0 +1,39 @@
|
||||
// Definitions for HiFiBerry Amp/Amp+
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
tas5713@1b {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,tas5713";
|
||||
reg = <0x1b>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "hifiberry,hifiberry-amp";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
34
arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts
Normal file
34
arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts
Normal file
@@ -0,0 +1,34 @@
|
||||
// Definitions for HiFiBerry DAC
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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 = "hifiberry,hifiberry-dac";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
56
arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
Normal file
56
arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
Normal file
@@ -0,0 +1,56 @@
|
||||
// Definitions for HiFiBerry DAC+
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/clocks";
|
||||
__overlay__ {
|
||||
dacpro_osc: dacpro_osc {
|
||||
compatible = "hifiberry,dacpro-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";
|
||||
reg = <0x4d>;
|
||||
clocks = <&dacpro_osc>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&sound>;
|
||||
hifiberry_dacplus: __overlay__ {
|
||||
compatible = "hifiberry,hifiberry-dacplus";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
24db_digital_gain =
|
||||
<&hifiberry_dacplus>,"hifiberry,24db_digital_gain?";
|
||||
slave = <&hifiberry_dacplus>,"hifiberry-dacplus,slave?";
|
||||
};
|
||||
};
|
||||
39
arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts
Normal file
39
arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts
Normal file
@@ -0,0 +1,39 @@
|
||||
// Definitions for HiFiBerry Digi
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "hifiberry,hifiberry-digi";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
41
arch/arm/boot/dts/overlays/hifiberry-digi-pro-overlay.dts
Normal file
41
arch/arm/boot/dts/overlays/hifiberry-digi-pro-overlay.dts
Normal file
@@ -0,0 +1,41 @@
|
||||
// Definitions for HiFiBerry Digi Pro
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "hifiberry,hifiberry-digi";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
clock44-gpio = <&gpio 5 0>;
|
||||
clock48-gpio = <&gpio 6 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
93
arch/arm/boot/dts/overlays/hy28a-overlay.dts
Normal file
93
arch/arm/boot/dts/overlays/hy28a-overlay.dts
Normal file
@@ -0,0 +1,93 @@
|
||||
/*
|
||||
* Device Tree overlay for HY28A display
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
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__ {
|
||||
hy28a_pins: hy28a_pins {
|
||||
brcm,pins = <17 25 18>;
|
||||
brcm,function = <0 1 1>; /* in out out */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
hy28a: hy28a@0{
|
||||
compatible = "ilitek,ili9320";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&hy28a_pins>;
|
||||
|
||||
spi-max-frequency = <32000000>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
rotate = <270>;
|
||||
bgr;
|
||||
fps = <50>;
|
||||
buswidth = <8>;
|
||||
startbyte = <0x70>;
|
||||
reset-gpios = <&gpio 25 0>;
|
||||
led-gpios = <&gpio 18 1>;
|
||||
debug = <0>;
|
||||
};
|
||||
|
||||
hy28a_ts: hy28a-ts@1 {
|
||||
compatible = "ti,ads7846";
|
||||
reg = <1>;
|
||||
|
||||
spi-max-frequency = <2000000>;
|
||||
interrupts = <17 2>; /* high-to-low edge triggered */
|
||||
interrupt-parent = <&gpio>;
|
||||
pendown-gpio = <&gpio 17 0>;
|
||||
ti,x-plate-ohms = /bits/ 16 <100>;
|
||||
ti,pressure-max = /bits/ 16 <255>;
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
speed = <&hy28a>,"spi-max-frequency:0";
|
||||
rotate = <&hy28a>,"rotate:0";
|
||||
fps = <&hy28a>,"fps:0";
|
||||
debug = <&hy28a>,"debug:0";
|
||||
xohms = <&hy28a_ts>,"ti,x-plate-ohms;0";
|
||||
resetgpio = <&hy28a>,"reset-gpios:4",
|
||||
<&hy28a_pins>, "brcm,pins:1";
|
||||
ledgpio = <&hy28a>,"led-gpios:4",
|
||||
<&hy28a_pins>, "brcm,pins:2";
|
||||
};
|
||||
};
|
||||
148
arch/arm/boot/dts/overlays/hy28b-overlay.dts
Normal file
148
arch/arm/boot/dts/overlays/hy28b-overlay.dts
Normal file
@@ -0,0 +1,148 @@
|
||||
/*
|
||||
* Device Tree overlay for HY28b display shield by Texy
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
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__ {
|
||||
hy28b_pins: hy28b_pins {
|
||||
brcm,pins = <17 25 18>;
|
||||
brcm,function = <0 1 1>; /* in out out */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
hy28b: hy28b@0{
|
||||
compatible = "ilitek,ili9325";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&hy28b_pins>;
|
||||
|
||||
spi-max-frequency = <48000000>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
rotate = <270>;
|
||||
bgr;
|
||||
fps = <50>;
|
||||
buswidth = <8>;
|
||||
startbyte = <0x70>;
|
||||
reset-gpios = <&gpio 25 0>;
|
||||
led-gpios = <&gpio 18 1>;
|
||||
|
||||
gamma = "04 1F 4 7 7 0 7 7 6 0\n0F 00 1 7 4 0 0 0 6 7";
|
||||
|
||||
init = <0x10000e7 0x0010
|
||||
0x1000000 0x0001
|
||||
0x1000001 0x0100
|
||||
0x1000002 0x0700
|
||||
0x1000003 0x1030
|
||||
0x1000004 0x0000
|
||||
0x1000008 0x0207
|
||||
0x1000009 0x0000
|
||||
0x100000a 0x0000
|
||||
0x100000c 0x0001
|
||||
0x100000d 0x0000
|
||||
0x100000f 0x0000
|
||||
0x1000010 0x0000
|
||||
0x1000011 0x0007
|
||||
0x1000012 0x0000
|
||||
0x1000013 0x0000
|
||||
0x2000032
|
||||
0x1000010 0x1590
|
||||
0x1000011 0x0227
|
||||
0x2000032
|
||||
0x1000012 0x009c
|
||||
0x2000032
|
||||
0x1000013 0x1900
|
||||
0x1000029 0x0023
|
||||
0x100002b 0x000e
|
||||
0x2000032
|
||||
0x1000020 0x0000
|
||||
0x1000021 0x0000
|
||||
0x2000032
|
||||
0x1000050 0x0000
|
||||
0x1000051 0x00ef
|
||||
0x1000052 0x0000
|
||||
0x1000053 0x013f
|
||||
0x1000060 0xa700
|
||||
0x1000061 0x0001
|
||||
0x100006a 0x0000
|
||||
0x1000080 0x0000
|
||||
0x1000081 0x0000
|
||||
0x1000082 0x0000
|
||||
0x1000083 0x0000
|
||||
0x1000084 0x0000
|
||||
0x1000085 0x0000
|
||||
0x1000090 0x0010
|
||||
0x1000092 0x0000
|
||||
0x1000093 0x0003
|
||||
0x1000095 0x0110
|
||||
0x1000097 0x0000
|
||||
0x1000098 0x0000
|
||||
0x1000007 0x0133
|
||||
0x1000020 0x0000
|
||||
0x1000021 0x0000
|
||||
0x2000064>;
|
||||
debug = <0>;
|
||||
};
|
||||
|
||||
hy28b_ts: hy28b-ts@1 {
|
||||
compatible = "ti,ads7846";
|
||||
reg = <1>;
|
||||
|
||||
spi-max-frequency = <2000000>;
|
||||
interrupts = <17 2>; /* high-to-low edge triggered */
|
||||
interrupt-parent = <&gpio>;
|
||||
pendown-gpio = <&gpio 17 0>;
|
||||
ti,x-plate-ohms = /bits/ 16 <100>;
|
||||
ti,pressure-max = /bits/ 16 <255>;
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
speed = <&hy28b>,"spi-max-frequency:0";
|
||||
rotate = <&hy28b>,"rotate:0";
|
||||
fps = <&hy28b>,"fps:0";
|
||||
debug = <&hy28b>,"debug:0";
|
||||
xohms = <&hy28b_ts>,"ti,x-plate-ohms;0";
|
||||
resetgpio = <&hy28b>,"reset-gpios:4",
|
||||
<&hy28b_pins>, "brcm,pins:1";
|
||||
ledgpio = <&hy28b>,"led-gpios:4",
|
||||
<&hy28b_pins>, "brcm,pins:2";
|
||||
};
|
||||
};
|
||||
13
arch/arm/boot/dts/overlays/i2c-bcm2708-overlay.dts
Normal file
13
arch/arm/boot/dts/overlays/i2c-bcm2708-overlay.dts
Normal file
@@ -0,0 +1,13 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c_arm>;
|
||||
__overlay__ {
|
||||
compatible = "brcm,bcm2708-i2c";
|
||||
};
|
||||
};
|
||||
};
|
||||
43
arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts
Normal file
43
arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts
Normal file
@@ -0,0 +1,43 @@
|
||||
// Overlay for i2c_gpio bitbanging host bus.
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
i2c_gpio: i2c@0 {
|
||||
compatible = "i2c-gpio";
|
||||
gpios = <&gpio 23 0 /* sda */
|
||||
&gpio 24 0 /* scl */
|
||||
>;
|
||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/aliases";
|
||||
__overlay__ {
|
||||
i2c_gpio = "/i2c@0";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target-path = "/__symbols__";
|
||||
__overlay__ {
|
||||
i2c_gpio = "/i2c@0";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
i2c_gpio_sda = <&i2c_gpio>,"gpios:4";
|
||||
i2c_gpio_scl = <&i2c_gpio>,"gpios:16";
|
||||
i2c_gpio_delay_us = <&i2c_gpio>,"i2c-gpio,delay-us:0";
|
||||
};
|
||||
};
|
||||
|
||||
139
arch/arm/boot/dts/overlays/i2c-mux-overlay.dts
Normal file
139
arch/arm/boot/dts/overlays/i2c-mux-overlay.dts
Normal file
@@ -0,0 +1,139 @@
|
||||
// Umbrella I2C Mux overlay
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c_arm>;
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
pca9542: mux@70 {
|
||||
compatible = "nxp,pca9542";
|
||||
reg = <0x70>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
i2c@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
};
|
||||
i2c@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c_arm>;
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
pca9545: mux@70 {
|
||||
compatible = "nxp,pca9545";
|
||||
reg = <0x70>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
i2c@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
};
|
||||
i2c@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
};
|
||||
i2c@2 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <2>;
|
||||
};
|
||||
i2c@3 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2c_arm>;
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
pca9548: mux@70 {
|
||||
compatible = "nxp,pca9548";
|
||||
reg = <0x70>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
i2c@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
};
|
||||
i2c@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
};
|
||||
i2c@2 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <2>;
|
||||
};
|
||||
i2c@3 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <3>;
|
||||
};
|
||||
i2c@4 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <4>;
|
||||
};
|
||||
i2c@5 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <5>;
|
||||
};
|
||||
i2c@6 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <6>;
|
||||
};
|
||||
i2c@7 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <7>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
pca9542 = <0>, "+0";
|
||||
pca9545 = <0>, "+1";
|
||||
pca9548 = <0>, "+2";
|
||||
|
||||
addr = <&pca9542>,"reg:0",
|
||||
<&pca9545>,"reg:0",
|
||||
<&pca9548>,"reg:0";
|
||||
};
|
||||
};
|
||||
26
arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
Normal file
26
arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
Normal file
@@ -0,0 +1,26 @@
|
||||
// Definitions for NXP PCA9685A I2C PWM controller on ARM I2C bus.
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c_arm>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
pca: pca@40 {
|
||||
compatible = "nxp,pca9685";
|
||||
#pwm-cells = <2>;
|
||||
reg = <0x40>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
addr = <&pca>,"reg:0";
|
||||
};
|
||||
};
|
||||
83
arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts
Normal file
83
arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts
Normal file
@@ -0,0 +1,83 @@
|
||||
// Definitions for several I2C based Real Time Clocks
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c_arm>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
abx80x: abx80x@69 {
|
||||
compatible = "abracon,abx80x";
|
||||
reg = <0x69>;
|
||||
abracon,tc-diode = "standard";
|
||||
abracon,tc-resistor = <0>;
|
||||
status = "disable";
|
||||
};
|
||||
ds1307: ds1307@68 {
|
||||
compatible = "maxim,ds1307";
|
||||
reg = <0x68>;
|
||||
status = "disable";
|
||||
};
|
||||
ds1339: ds1339@68 {
|
||||
compatible = "dallas,ds1339";
|
||||
trickle-resistor-ohms = <0>;
|
||||
reg = <0x68>;
|
||||
status = "disable";
|
||||
};
|
||||
mcp7940x: mcp7940x@6f {
|
||||
compatible = "microchip,mcp7940x";
|
||||
reg = <0x6f>;
|
||||
status = "disable";
|
||||
};
|
||||
mcp7941x: mcp7941x@6f {
|
||||
compatible = "microchip,mcp7941x";
|
||||
reg = <0x6f>;
|
||||
status = "disable";
|
||||
};
|
||||
ds3231: ds3231@68 {
|
||||
compatible = "maxim,ds3231";
|
||||
reg = <0x68>;
|
||||
status = "disable";
|
||||
};
|
||||
pcf2127: pcf2127@51 {
|
||||
compatible = "nxp,pcf2127";
|
||||
reg = <0x51>;
|
||||
status = "disable";
|
||||
};
|
||||
pcf8523: pcf8523@68 {
|
||||
compatible = "nxp,pcf8523";
|
||||
reg = <0x68>;
|
||||
status = "disable";
|
||||
};
|
||||
pcf8563: pcf8563@51 {
|
||||
compatible = "nxp,pcf8563";
|
||||
reg = <0x51>;
|
||||
status = "disable";
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
abx80x = <&abx80x>,"status";
|
||||
ds1307 = <&ds1307>,"status";
|
||||
ds1339 = <&ds1339>,"status";
|
||||
ds3231 = <&ds3231>,"status";
|
||||
mcp7940x = <&mcp7940x>,"status";
|
||||
mcp7941x = <&mcp7941x>,"status";
|
||||
pcf2127 = <&pcf2127>,"status";
|
||||
pcf8523 = <&pcf8523>,"status";
|
||||
pcf8563 = <&pcf8563>,"status";
|
||||
trickle-diode-type = <&abx80x>,"abracon,tc-diode";
|
||||
trickle-resistor-ohms = <&ds1339>,"trickle-resistor-ohms:0",
|
||||
<&abx80x>,"abracon,tc-resistor";
|
||||
wakeup-source = <&ds1339>,"wakeup-source?",
|
||||
<&ds3231>,"wakeup-source?",
|
||||
<&mcp7940x>,"wakeup-source?",
|
||||
<&mcp7941x>,"wakeup-source?";
|
||||
};
|
||||
};
|
||||
34
arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
Normal file
34
arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
Normal file
@@ -0,0 +1,34 @@
|
||||
// Definitions for a few digital barometric pressure and temperature sensors
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c_arm>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
bmp085: bmp085@77 {
|
||||
compatible = "bosch,bmp085";
|
||||
reg = <0x77>;
|
||||
default-oversampling = <3>;
|
||||
status = "disable";
|
||||
};
|
||||
|
||||
bmp280: bmp280@76 {
|
||||
compatible = "bosch,bmp280";
|
||||
reg = <0x76>;
|
||||
status = "disable";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
bmp085 = <&bmp085>,"status";
|
||||
bmp280 = <&bmp280>,"status";
|
||||
};
|
||||
};
|
||||
61
arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts
Normal file
61
arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts
Normal file
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Device tree overlay for i2c_bcm2708, i2c0 bus
|
||||
*
|
||||
* Compile:
|
||||
* dtc -@ -I dts -O dtb -o i2c0-bcm2708-overlay.dtb i2c0-bcm2708-overlay.dts
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c0>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c0_pins>;
|
||||
frag1: __overlay__ {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2c0_pins>;
|
||||
__dormant__ {
|
||||
brcm,pins = <28 29>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&i2c0_pins>;
|
||||
__dormant__ {
|
||||
brcm,pins = <44 45>;
|
||||
brcm,function = <5>; /* alt1 */
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&i2c0_pins>;
|
||||
__dormant__ {
|
||||
brcm,pins = <46 47>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
sda0_pin = <&frag1>,"brcm,pins:0";
|
||||
scl0_pin = <&frag1>,"brcm,pins:4";
|
||||
pins_0_1 = <0>,"+1-2-3-4";
|
||||
pins_28_29 = <0>,"-1+2-3-4";
|
||||
pins_44_45 = <0>,"-1-2+3-4";
|
||||
pins_46_47 = <0>,"-1-2-3+4";
|
||||
};
|
||||
};
|
||||
37
arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts
Normal file
37
arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Device tree overlay for i2c_bcm2708, i2c1 bus
|
||||
*
|
||||
* Compile:
|
||||
* dtc -@ -I dts -O dtb -o i2c1-bcm2708-overlay.dtb i2c1-bcm2708-overlay.dts
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
sda1_pin = <&i2c1_pins>,"brcm,pins:0";
|
||||
scl1_pin = <&i2c1_pins>,"brcm,pins:4";
|
||||
pin_func = <&i2c1_pins>,"brcm,function:0";
|
||||
};
|
||||
};
|
||||
18
arch/arm/boot/dts/overlays/i2s-gpio28-31-overlay.dts
Normal file
18
arch/arm/boot/dts/overlays/i2s-gpio28-31-overlay.dts
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Device tree overlay to move i2s to gpio 28 to 31 on CM
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s_pins>;
|
||||
__overlay__ {
|
||||
brcm,pins = <28 29 30 31>;
|
||||
brcm,function = <6>; /* alt2 */
|
||||
};
|
||||
};
|
||||
};
|
||||
43
arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts
Normal file
43
arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts
Normal file
@@ -0,0 +1,43 @@
|
||||
// Definitions for IQaudIO DAC
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
frag2: __overlay__ {
|
||||
compatible = "iqaudio,iqaudio-dac";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
24db_digital_gain = <&frag2>,"iqaudio,24db_digital_gain?";
|
||||
};
|
||||
};
|
||||
46
arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts
Normal file
46
arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts
Normal file
@@ -0,0 +1,46 @@
|
||||
// Definitions for IQaudIO DAC+
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
iqaudio_dac: __overlay__ {
|
||||
compatible = "iqaudio,iqaudio-dac";
|
||||
i2s-controller = <&i2s>;
|
||||
mute-gpios = <&gpio 22 0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
24db_digital_gain = <&iqaudio_dac>,"iqaudio,24db_digital_gain?";
|
||||
auto_mute_amp = <&iqaudio_dac>,"iqaudio-dac,auto-mute-amp?";
|
||||
unmute_amp = <&iqaudio_dac>,"iqaudio-dac,unmute-amp?";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,47 @@
|
||||
// Definitions for IQAudIO Digi WM8804 audio board
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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>;
|
||||
status = "okay";
|
||||
// DVDD-supply = <®_3v3>;
|
||||
// PVDD-supply = <®_3v3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
wm8804_digi: __overlay__ {
|
||||
compatible = "iqaudio,wm8804-digi";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
card_name = <&wm8804_digi>,"wm8804-digi,card-name";
|
||||
dai_name = <&wm8804_digi>,"wm8804-digi,dai-name";
|
||||
dai_stream_name = <&wm8804_digi>,"wm8804-digi,dai-stream-name";
|
||||
};
|
||||
};
|
||||
43
arch/arm/boot/dts/overlays/justboom-dac-overlay.dts
Normal file
43
arch/arm/boot/dts/overlays/justboom-dac-overlay.dts
Normal file
@@ -0,0 +1,43 @@
|
||||
// Definitions for JustBoom DAC
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
pcm5122@4d {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm5122";
|
||||
reg = <0x4d>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
frag2: __overlay__ {
|
||||
compatible = "justboom,justboom-dac";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
24db_digital_gain = <&frag2>,"justboom,24db_digital_gain?";
|
||||
};
|
||||
};
|
||||
39
arch/arm/boot/dts/overlays/justboom-digi-overlay.dts
Normal file
39
arch/arm/boot/dts/overlays/justboom-digi-overlay.dts
Normal file
@@ -0,0 +1,39 @@
|
||||
// Definitions for JustBoom Digi
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "justboom,justboom-digi";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
57
arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts
Normal file
57
arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts
Normal file
@@ -0,0 +1,57 @@
|
||||
// Definitions for lirc-rpi module
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
lirc_rpi: lirc_rpi {
|
||||
compatible = "rpi,lirc-rpi";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&lirc_pins>;
|
||||
status = "okay";
|
||||
|
||||
// Override autodetection of IR receiver circuit
|
||||
// (0 = active high, 1 = active low, -1 = no override )
|
||||
rpi,sense = <0xffffffff>;
|
||||
|
||||
// Software carrier
|
||||
// (0 = off, 1 = on)
|
||||
rpi,softcarrier = <1>;
|
||||
|
||||
// Invert output
|
||||
// (0 = off, 1 = on)
|
||||
rpi,invert = <0>;
|
||||
|
||||
// Enable debugging messages
|
||||
// (0 = off, 1 = on)
|
||||
rpi,debug = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
lirc_pins: lirc_pins {
|
||||
brcm,pins = <17 18>;
|
||||
brcm,function = <1 0>; // out in
|
||||
brcm,pull = <0 1>; // off down
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
gpio_out_pin = <&lirc_pins>,"brcm,pins:0";
|
||||
gpio_in_pin = <&lirc_pins>,"brcm,pins:4";
|
||||
gpio_in_pull = <&lirc_pins>,"brcm,pull:4";
|
||||
|
||||
sense = <&lirc_rpi>,"rpi,sense:0";
|
||||
softcarrier = <&lirc_rpi>,"rpi,softcarrier:0";
|
||||
invert = <&lirc_rpi>,"rpi,invert:0";
|
||||
debug = <&lirc_rpi>,"rpi,debug:0";
|
||||
};
|
||||
};
|
||||
54
arch/arm/boot/dts/overlays/mcp23017-overlay.dts
Normal file
54
arch/arm/boot/dts/overlays/mcp23017-overlay.dts
Normal file
@@ -0,0 +1,54 @@
|
||||
// Definitions for MCP23017 Gpio Extender from Microchip Semiconductor
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
mcp23017_pins: mcp23017_pins {
|
||||
brcm,pins = <4>;
|
||||
brcm,function = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
mcp23017: mcp@20 {
|
||||
compatible = "microchip,mcp23017";
|
||||
reg = <0x20>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
#interrupt-cells=<2>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <4 2>;
|
||||
interrupt-controller;
|
||||
microchip,irq-mirror;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
gpiopin = <&mcp23017_pins>,"brcm,pins:0",
|
||||
<&mcp23017>,"interrupts:0";
|
||||
addr = <&mcp23017>,"reg:0";
|
||||
};
|
||||
};
|
||||
|
||||
732
arch/arm/boot/dts/overlays/mcp23s17-overlay.dts
Normal file
732
arch/arm/boot/dts/overlays/mcp23s17-overlay.dts
Normal file
@@ -0,0 +1,732 @@
|
||||
// Overlay for MCP23S08/17 GPIO Extenders from Microchip Semiconductor
|
||||
|
||||
// dtparams:
|
||||
// s08-spi<n>-<m>-present - 4-bit integer, bitmap indicating MCP23S08 devices present on SPI<n>, CS#<m>.
|
||||
// s17-spi<n>-<m>-present - 8-bit integer, bitmap indicating MCP23S17 devices present on SPI<n>, CS#<m>.
|
||||
// s08-spi<n>-<m>-int-gpio - integer, enables interrupts on a single MCP23S08 device on SPI<n>, CS#<m>, specifies the GPIO pin to which INT output is connected.
|
||||
// s17-spi<n>-<m>-int-gpio - integer, enables mirrored interrupts on a single MCP23S17 device on SPI<n>, CS#<m>, specifies the GPIO pin to which either INTA or INTB output is connected.
|
||||
//
|
||||
// If devices are present on SPI1 or SPI2, those interfaces must be enabled with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
|
||||
// If interrupts are enabled for a device on a given CS# on a SPI bus, that device must be the only one present on that SPI bus/CS#.
|
||||
//
|
||||
// Example 1: A single MCP23S17 device on SPI0, CS#0 with its SPI addr set to 0 and INTA output connected to GPIO25:
|
||||
// dtoverlay=mcp23s17:s17-spi0-0-present=1,s17-spi0-0-int-gpio=25
|
||||
//
|
||||
// Example 2: Two MCP23S08 devices on SPI1, CS#0 with their addrs set to 2 and 3. Three MCP23S17 devices on SPI1, CS#1 with their addrs set to 0, 1 and 7:
|
||||
// dtoverlay=spi1-2cs
|
||||
// dtoverlay=mcp23s17:s08-spi1-0-present=12,s17-spi1-1-present=131
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
// disable spi-dev on spi0.0
|
||||
fragment@0 {
|
||||
target = <&spidev0>;
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
// disable spi-dev on spi0.1
|
||||
fragment@1 {
|
||||
target = <&spidev1>;
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
// disable spi-dev on spi1.0
|
||||
fragment@2 {
|
||||
target-path = "spi1/spidev@0";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
// disable spi-dev on spi1.1
|
||||
fragment@3 {
|
||||
target-path = "spi1/spidev@1";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
// disable spi-dev on spi1.2
|
||||
fragment@4 {
|
||||
target-path = "spi1/spidev@2";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
// disable spi-dev on spi2.0
|
||||
fragment@5 {
|
||||
target-path = "spi2/spidev@0";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
// disable spi-dev on spi2.1
|
||||
fragment@6 {
|
||||
target-path = "spi2/spidev@1";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
// disable spi-dev on spi2.2
|
||||
fragment@7 {
|
||||
target-path = "spi2/spidev@2";
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s08s on spi0.0
|
||||
fragment@8 {
|
||||
target = <&spi0>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s08_00: mcp23s08@0 {
|
||||
compatible = "microchip,mcp23s08";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi0-0-present parameter */
|
||||
reg = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi0-0-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s08s on spi0.1
|
||||
fragment@9 {
|
||||
target = <&spi0>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s08_01: mcp23s08@1 {
|
||||
compatible = "microchip,mcp23s08";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi0-1-present parameter */
|
||||
reg = <1>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi0-1-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s08s on spi1.0
|
||||
fragment@10 {
|
||||
target = <&spi1>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s08_10: mcp23s08@0 {
|
||||
compatible = "microchip,mcp23s08";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi1-0-present parameter */
|
||||
reg = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi1-0-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s08s on spi1.1
|
||||
fragment@11 {
|
||||
target = <&spi1>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s08_11: mcp23s08@1 {
|
||||
compatible = "microchip,mcp23s08";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi1-1-present parameter */
|
||||
reg = <1>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi1-1-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s08s on spi1.2
|
||||
fragment@12 {
|
||||
target = <&spi1>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s08_12: mcp23s08@2 {
|
||||
compatible = "microchip,mcp23s08";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi1-2-present parameter */
|
||||
reg = <2>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi1-2-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s08s on spi2.0
|
||||
fragment@13 {
|
||||
target = <&spi2>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s08_20: mcp23s08@0 {
|
||||
compatible = "microchip,mcp23s08";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi2-0-present parameter */
|
||||
reg = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi2-0-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s08s on spi2.1
|
||||
fragment@14 {
|
||||
target = <&spi2>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s08_21: mcp23s08@1 {
|
||||
compatible = "microchip,mcp23s08";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi2-1-present parameter */
|
||||
reg = <1>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi2-1-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s08s on spi2.2
|
||||
fragment@15 {
|
||||
target = <&spi2>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s08_22: mcp23s08@2 {
|
||||
compatible = "microchip,mcp23s08";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s08-spi2-2-present parameter */
|
||||
reg = <2>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s08-spi2-2-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s17s on spi0.0
|
||||
fragment@16 {
|
||||
target = <&spi0>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s17_00: mcp23s17@0 {
|
||||
compatible = "microchip,mcp23s17";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi0-0-present parameter */
|
||||
reg = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi0-0-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s17s on spi0.1
|
||||
fragment@17 {
|
||||
target = <&spi0>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s17_01: mcp23s17@1 {
|
||||
compatible = "microchip,mcp23s17";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi0-1-present parameter */
|
||||
reg = <1>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi0-1-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s17s on spi1.0
|
||||
fragment@18 {
|
||||
target = <&spi1>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s17_10: mcp23s17@0 {
|
||||
compatible = "microchip,mcp23s17";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi1-0-present parameter */
|
||||
reg = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi1-0-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s17s on spi1.1
|
||||
fragment@19 {
|
||||
target = <&spi1>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s17_11: mcp23s17@1 {
|
||||
compatible = "microchip,mcp23s17";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi1-1-present parameter */
|
||||
reg = <1>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi1-1-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s17s on spi1.2
|
||||
fragment@20 {
|
||||
target = <&spi1>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s17_12: mcp23s17@2 {
|
||||
compatible = "microchip,mcp23s17";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi1-2-present parameter */
|
||||
reg = <2>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi1-2-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s17s on spi2.0
|
||||
fragment@21 {
|
||||
target = <&spi2>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s17_20: mcp23s17@0 {
|
||||
compatible = "microchip,mcp23s17";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi2-0-present parameter */
|
||||
reg = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi2-0-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s17s on spi2.1
|
||||
fragment@22 {
|
||||
target = <&spi2>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s17_21: mcp23s17@1 {
|
||||
compatible = "microchip,mcp23s17";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi2-1-present parameter */
|
||||
reg = <1>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi2-1-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// enable one or more mcp23s17s on spi2.2
|
||||
fragment@23 {
|
||||
target = <&spi2>;
|
||||
__dormant__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mcp23s17_22: mcp23s17@2 {
|
||||
compatible = "microchip,mcp23s17";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
microchip,spi-present-mask = <0x00>; /* overwritten by mcp23s17-spi2-2-present parameter */
|
||||
reg = <2>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
#interrupt-cells=<2>;
|
||||
interrupts = <0 2>; /* 1st word overwritten by mcp23s17-spi2-2-int-gpio parameter */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi0.0 as a input with no pull-up/down
|
||||
fragment@24 {
|
||||
target = <&gpio>;
|
||||
__dormant__ {
|
||||
spi0_0_int_pins: spi0_0_int_pins {
|
||||
brcm,pins = <0>; /* overwritten by mcp23s08/17-spi0-0-int-gpio parameter */
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi0.1 as a input with no pull-up/down
|
||||
fragment@25 {
|
||||
target = <&gpio>;
|
||||
__dormant__ {
|
||||
spi0_1_int_pins: spi0_1_int_pins {
|
||||
brcm,pins = <0>; /* overwritten by mcp23s08/17-spi0-1-int-gpio parameter */
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi1.0 as a input with no pull-up/down
|
||||
fragment@26 {
|
||||
target = <&gpio>;
|
||||
__dormant__ {
|
||||
spi1_0_int_pins: spi1_0_int_pins {
|
||||
brcm,pins = <0>; /* overwritten by mcp23s08/17-spi1-0-int-gpio parameter */
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi1.1 as a input with no pull-up/down
|
||||
fragment@27 {
|
||||
target = <&gpio>;
|
||||
__dormant__ {
|
||||
spi1_1_int_pins: spi1_1_int_pins {
|
||||
brcm,pins = <0>; /* overwritten by mcp23s08/17-spi1-1-int-gpio parameter */
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi1.2 as a input with no pull-up/down
|
||||
fragment@28 {
|
||||
target = <&gpio>;
|
||||
__dormant__ {
|
||||
spi1_2_int_pins: spi1_2_int_pins {
|
||||
brcm,pins = <0>; /* overwritten by mcp23s08/17-spi1-2-int-gpio parameter */
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi2.0 as a input with no pull-up/down
|
||||
fragment@29 {
|
||||
target = <&gpio>;
|
||||
__dormant__ {
|
||||
spi2_0_int_pins: spi2_0_int_pins {
|
||||
brcm,pins = <0>; /* overwritten by mcp23s08/17-spi2-0-int-gpio parameter */
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi2.1 as a input with no pull-up/down
|
||||
fragment@30 {
|
||||
target = <&gpio>;
|
||||
__dormant__ {
|
||||
spi2_1_int_pins: spi2_1_int_pins {
|
||||
brcm,pins = <0>; /* overwritten by mcp23s08/17-spi2-1-int-gpio parameter */
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Configure GPIO pin connected to INT(A/B) output of mcp23s08/17 on spi2.2 as a input with no pull-up/down
|
||||
fragment@31 {
|
||||
target = <&gpio>;
|
||||
__dormant__ {
|
||||
spi2_2_int_pins: spi2_2_int_pins {
|
||||
brcm,pins = <0>; /* overwritten by mcp23s08/17-spi2-2-int-gpio parameter */
|
||||
brcm,function = <0>;
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s08 on spi0.0.
|
||||
// Use default active low interrupt signalling.
|
||||
fragment@32 {
|
||||
target = <&mcp23s08_00>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s08 on spi0.1.
|
||||
// Use default active low interrupt signalling.
|
||||
fragment@33 {
|
||||
target = <&mcp23s08_01>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s08 on spi1.0.
|
||||
// Use default active low interrupt signalling.
|
||||
fragment@34 {
|
||||
target = <&mcp23s08_10>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s08 on spi1.1.
|
||||
// Use default active low interrupt signalling.
|
||||
fragment@35 {
|
||||
target = <&mcp23s08_11>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s08 on spi1.2.
|
||||
// Use default active low interrupt signalling.
|
||||
fragment@36 {
|
||||
target = <&mcp23s08_12>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s08 on spi2.0.
|
||||
// Use default active low interrupt signalling.
|
||||
fragment@37 {
|
||||
target = <&mcp23s08_20>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s08 on spi2.1.
|
||||
// Use default active low interrupt signalling.
|
||||
fragment@38 {
|
||||
target = <&mcp23s08_21>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s08 on spi2.2.
|
||||
// Use default active low interrupt signalling.
|
||||
fragment@39 {
|
||||
target = <&mcp23s08_22>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s17 on spi0.0.
|
||||
// Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
|
||||
// Use default active low interrupt signalling.
|
||||
fragment@40 {
|
||||
target = <&mcp23s17_00>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
microchip,irq-mirror;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s17 on spi0.1.
|
||||
// Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
|
||||
// Configure INTA/B outputs of mcp23s08/17 as active low.
|
||||
fragment@41 {
|
||||
target = <&mcp23s17_01>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
microchip,irq-mirror;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s17 on spi1.0.
|
||||
// Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
|
||||
// Configure INTA/B outputs of mcp23s08/17 as active low.
|
||||
fragment@42 {
|
||||
target = <&mcp23s17_10>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
microchip,irq-mirror;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s17 on spi1.1.
|
||||
// Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
|
||||
// Configure INTA/B outputs of mcp23s08/17 as active low.
|
||||
fragment@43 {
|
||||
target = <&mcp23s17_11>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
microchip,irq-mirror;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s17 on spi1.2.
|
||||
// Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
|
||||
// Configure INTA/B outputs of mcp23s08/17 as active low.
|
||||
fragment@44 {
|
||||
target = <&mcp23s17_12>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
microchip,irq-mirror;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s17 on spi2.0.
|
||||
// Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
|
||||
// Configure INTA/B outputs of mcp23s08/17 as active low.
|
||||
fragment@45 {
|
||||
target = <&mcp23s17_20>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
microchip,irq-mirror;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s17 on spi2.1.
|
||||
// Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
|
||||
// Configure INTA/B outputs of mcp23s08/17 as active low.
|
||||
fragment@46 {
|
||||
target = <&mcp23s17_21>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
microchip,irq-mirror;
|
||||
};
|
||||
};
|
||||
|
||||
// Enable interrupts for a mcp23s17 on spi2.2.
|
||||
// Enable mirroring so that either INTA or INTB output of mcp23s17 can be connected to the GPIO pin.
|
||||
// Configure INTA/B outputs of mcp23s08/17 as active low.
|
||||
fragment@47 {
|
||||
target = <&mcp23s17_22>;
|
||||
__dormant__ {
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
microchip,irq-mirror;
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
s08-spi0-0-present = <0>,"+0+8", <&mcp23s08_00>,"microchip,spi-present-mask:0";
|
||||
s08-spi0-1-present = <0>,"+1+9", <&mcp23s08_01>,"microchip,spi-present-mask:0";
|
||||
s08-spi1-0-present = <0>,"+2+10", <&mcp23s08_10>,"microchip,spi-present-mask:0";
|
||||
s08-spi1-1-present = <0>,"+3+11", <&mcp23s08_11>,"microchip,spi-present-mask:0";
|
||||
s08-spi1-2-present = <0>,"+4+12", <&mcp23s08_12>,"microchip,spi-present-mask:0";
|
||||
s08-spi2-0-present = <0>,"+5+13", <&mcp23s08_20>,"microchip,spi-present-mask:0";
|
||||
s08-spi2-1-present = <0>,"+6+14", <&mcp23s08_21>,"microchip,spi-present-mask:0";
|
||||
s08-spi2-2-present = <0>,"+7+15", <&mcp23s08_22>,"microchip,spi-present-mask:0";
|
||||
s17-spi0-0-present = <0>,"+0+16", <&mcp23s17_00>,"microchip,spi-present-mask:0";
|
||||
s17-spi0-1-present = <0>,"+1+17", <&mcp23s17_01>,"microchip,spi-present-mask:0";
|
||||
s17-spi1-0-present = <0>,"+2+18", <&mcp23s17_10>,"microchip,spi-present-mask:0";
|
||||
s17-spi1-1-present = <0>,"+3+19", <&mcp23s17_11>,"microchip,spi-present-mask:0";
|
||||
s17-spi1-2-present = <0>,"+4+20", <&mcp23s17_12>,"microchip,spi-present-mask:0";
|
||||
s17-spi2-0-present = <0>,"+5+21", <&mcp23s17_20>,"microchip,spi-present-mask:0";
|
||||
s17-spi2-1-present = <0>,"+6+22", <&mcp23s17_21>,"microchip,spi-present-mask:0";
|
||||
s17-spi2-2-present = <0>,"+7+23", <&mcp23s17_22>,"microchip,spi-present-mask:0";
|
||||
s08-spi0-0-int-gpio = <0>,"+24+32", <&spi0_0_int_pins>,"brcm,pins:0", <&mcp23s08_00>,"interrupts:0";
|
||||
s08-spi0-1-int-gpio = <0>,"+25+33", <&spi0_1_int_pins>,"brcm,pins:0", <&mcp23s08_01>,"interrupts:0";
|
||||
s08-spi1-0-int-gpio = <0>,"+26+34", <&spi1_0_int_pins>,"brcm,pins:0", <&mcp23s08_10>,"interrupts:0";
|
||||
s08-spi1-1-int-gpio = <0>,"+27+35", <&spi1_1_int_pins>,"brcm,pins:0", <&mcp23s08_11>,"interrupts:0";
|
||||
s08-spi1-2-int-gpio = <0>,"+28+36", <&spi1_2_int_pins>,"brcm,pins:0", <&mcp23s08_12>,"interrupts:0";
|
||||
s08-spi2-0-int-gpio = <0>,"+29+37", <&spi2_0_int_pins>,"brcm,pins:0", <&mcp23s08_20>,"interrupts:0";
|
||||
s08-spi2-1-int-gpio = <0>,"+30+38", <&spi2_1_int_pins>,"brcm,pins:0", <&mcp23s08_21>,"interrupts:0";
|
||||
s08-spi2-2-int-gpio = <0>,"+31+39", <&spi2_2_int_pins>,"brcm,pins:0", <&mcp23s08_22>,"interrupts:0";
|
||||
s17-spi0-0-int-gpio = <0>,"+24+40", <&spi0_0_int_pins>,"brcm,pins:0", <&mcp23s17_00>,"interrupts:0";
|
||||
s17-spi0-1-int-gpio = <0>,"+25+41", <&spi0_1_int_pins>,"brcm,pins:0", <&mcp23s17_01>,"interrupts:0";
|
||||
s17-spi1-0-int-gpio = <0>,"+26+42", <&spi1_0_int_pins>,"brcm,pins:0", <&mcp23s17_10>,"interrupts:0";
|
||||
s17-spi1-1-int-gpio = <0>,"+27+43", <&spi1_1_int_pins>,"brcm,pins:0", <&mcp23s17_11>,"interrupts:0";
|
||||
s17-spi1-2-int-gpio = <0>,"+28+44", <&spi1_2_int_pins>,"brcm,pins:0", <&mcp23s17_12>,"interrupts:0";
|
||||
s17-spi2-0-int-gpio = <0>,"+29+45", <&spi2_0_int_pins>,"brcm,pins:0", <&mcp23s17_20>,"interrupts:0";
|
||||
s17-spi2-1-int-gpio = <0>,"+30+46", <&spi2_1_int_pins>,"brcm,pins:0", <&mcp23s17_21>,"interrupts:0";
|
||||
s17-spi2-2-int-gpio = <0>,"+31+47", <&spi2_2_int_pins>,"brcm,pins:0", <&mcp23s17_22>,"interrupts:0";
|
||||
};
|
||||
};
|
||||
|
||||
73
arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts
Executable file
73
arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts
Executable file
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* Device tree overlay for mcp251x/can0 on spi0.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
|
||||
/* disable spi-dev for spi0.0 */
|
||||
fragment@0 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spidev0>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
/* the interrupt pin of the can-controller */
|
||||
fragment@2 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
can0_pins: can0_pins {
|
||||
brcm,pins = <25>;
|
||||
brcm,function = <0>; /* input */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* the clock/oscillator of the can-controller */
|
||||
fragment@3 {
|
||||
target-path = "/clocks";
|
||||
__overlay__ {
|
||||
/* external oscillator of mcp2515 on SPI0.0 */
|
||||
can0_osc: can0_osc {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <16000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* the spi config of the can-controller itself binding everything together */
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
can0: mcp2515@0 {
|
||||
reg = <0>;
|
||||
compatible = "microchip,mcp2515";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&can0_pins>;
|
||||
spi-max-frequency = <10000000>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <25 0x2>;
|
||||
clocks = <&can0_osc>;
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
oscillator = <&can0_osc>,"clock-frequency:0";
|
||||
spimaxfrequency = <&can0>,"spi-max-frequency:0";
|
||||
interrupt = <&can0_pins>,"brcm,pins:0",<&can0>,"interrupts:0";
|
||||
};
|
||||
};
|
||||
73
arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts
Normal file
73
arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts
Normal file
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* Device tree overlay for mcp251x/can1 on spi0.1 edited by petit_miner
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
|
||||
/* disable spi-dev for spi0.1 */
|
||||
fragment@0 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spidev1>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
/* the interrupt pin of the can-controller */
|
||||
fragment@2 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
can1_pins: can1_pins {
|
||||
brcm,pins = <25>;
|
||||
brcm,function = <0>; /* input */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* the clock/oscillator of the can-controller */
|
||||
fragment@3 {
|
||||
target-path = "/clocks";
|
||||
__overlay__ {
|
||||
/* external oscillator of mcp2515 on spi0.1 */
|
||||
can1_osc: can1_osc {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <16000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* the spi config of the can-controller itself binding everything together */
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
can1: mcp2515@1 {
|
||||
reg = <1>;
|
||||
compatible = "microchip,mcp2515";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&can1_pins>;
|
||||
spi-max-frequency = <10000000>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <25 0x2>;
|
||||
clocks = <&can1_osc>;
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
oscillator = <&can1_osc>,"clock-frequency:0";
|
||||
spimaxfrequency = <&can1>,"spi-max-frequency:0";
|
||||
interrupt = <&can1_pins>,"brcm,pins:0",<&can1>,"interrupts:0";
|
||||
};
|
||||
};
|
||||
36
arch/arm/boot/dts/overlays/midi-uart0-overlay.dts
Normal file
36
arch/arm/boot/dts/overlays/midi-uart0-overlay.dts
Normal file
@@ -0,0 +1,36 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/clock/bcm2835.h>
|
||||
|
||||
/*
|
||||
* Fake a higher clock rate to get a larger divisor, and thereby a lower
|
||||
* baudrate. The real clock is 48MHz, which we scale so that requesting
|
||||
* 38.4kHz results in an actual 31.25kHz.
|
||||
*
|
||||
* 48000000*38400/31250 = 58982400
|
||||
*/
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2835";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/clocks";
|
||||
__overlay__ {
|
||||
midi_clk: midi_clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "uart0_pclk";
|
||||
clock-frequency = <58982400>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&uart0>;
|
||||
__overlay__ {
|
||||
clocks = <&midi_clk>,
|
||||
<&clocks BCM2835_CLOCK_VPU>;
|
||||
};
|
||||
};
|
||||
};
|
||||
38
arch/arm/boot/dts/overlays/mmc-overlay.dts
Normal file
38
arch/arm/boot/dts/overlays/mmc-overlay.dts
Normal file
@@ -0,0 +1,38 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&mmc>;
|
||||
frag0: __overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc_pins>;
|
||||
bus-width = <4>;
|
||||
brcm,overclock-50 = <0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
mmc_pins: mmc_pins {
|
||||
brcm,pins = <48 49 50 51 52 53>;
|
||||
brcm,function = <7>; /* alt3 */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sdhost>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
overclock_50 = <&frag0>,"brcm,overclock-50:0";
|
||||
};
|
||||
};
|
||||
117
arch/arm/boot/dts/overlays/mz61581-overlay.dts
Normal file
117
arch/arm/boot/dts/overlays/mz61581-overlay.dts
Normal file
@@ -0,0 +1,117 @@
|
||||
/*
|
||||
* Device Tree overlay for MZ61581-PI-EXT 2014.12.28 by Tontec
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
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__ {
|
||||
mz61581_pins: mz61581_pins {
|
||||
brcm,pins = <4 15 18 25>;
|
||||
brcm,function = <0 1 1 1>; /* in out out out */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
mz61581: mz61581@0{
|
||||
compatible = "samsung,s6d02a1";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mz61581_pins>;
|
||||
|
||||
spi-max-frequency = <128000000>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
|
||||
width = <320>;
|
||||
height = <480>;
|
||||
rotate = <270>;
|
||||
bgr;
|
||||
fps = <30>;
|
||||
buswidth = <8>;
|
||||
txbuflen = <32768>;
|
||||
|
||||
reset-gpios = <&gpio 15 0>;
|
||||
dc-gpios = <&gpio 25 0>;
|
||||
led-gpios = <&gpio 18 0>;
|
||||
|
||||
init = <0x10000b0 00
|
||||
0x1000011
|
||||
0x20000ff
|
||||
0x10000b3 0x02 0x00 0x00 0x00
|
||||
0x10000c0 0x13 0x3b 0x00 0x02 0x00 0x01 0x00 0x43
|
||||
0x10000c1 0x08 0x16 0x08 0x08
|
||||
0x10000c4 0x11 0x07 0x03 0x03
|
||||
0x10000c6 0x00
|
||||
0x10000c8 0x03 0x03 0x13 0x5c 0x03 0x07 0x14 0x08 0x00 0x21 0x08 0x14 0x07 0x53 0x0c 0x13 0x03 0x03 0x21 0x00
|
||||
0x1000035 0x00
|
||||
0x1000036 0xa0
|
||||
0x100003a 0x55
|
||||
0x1000044 0x00 0x01
|
||||
0x10000d0 0x07 0x07 0x1d 0x03
|
||||
0x10000d1 0x03 0x30 0x10
|
||||
0x10000d2 0x03 0x14 0x04
|
||||
0x1000029
|
||||
0x100002c>;
|
||||
|
||||
/* This is a workaround to make sure the init sequence slows down and doesn't fail */
|
||||
debug = <3>;
|
||||
};
|
||||
|
||||
mz61581_ts: mz61581_ts@1 {
|
||||
compatible = "ti,ads7846";
|
||||
reg = <1>;
|
||||
|
||||
spi-max-frequency = <2000000>;
|
||||
interrupts = <4 2>; /* high-to-low edge triggered */
|
||||
interrupt-parent = <&gpio>;
|
||||
pendown-gpio = <&gpio 4 0>;
|
||||
|
||||
ti,x-plate-ohms = /bits/ 16 <60>;
|
||||
ti,pressure-max = /bits/ 16 <255>;
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
speed = <&mz61581>, "spi-max-frequency:0";
|
||||
rotate = <&mz61581>, "rotate:0";
|
||||
fps = <&mz61581>, "fps:0";
|
||||
txbuflen = <&mz61581>, "txbuflen:0";
|
||||
debug = <&mz61581>, "debug:0";
|
||||
xohms = <&mz61581_ts>,"ti,x-plate-ohms;0";
|
||||
};
|
||||
};
|
||||
27
arch/arm/boot/dts/overlays/pi3-act-led-overlay.dts
Normal file
27
arch/arm/boot/dts/overlays/pi3-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,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&act_led>;
|
||||
frag0: __overlay__ {
|
||||
gpios = <&gpio 0 0>;
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
gpio = <&frag0>,"gpios:4";
|
||||
activelow = <&frag0>,"gpios:8";
|
||||
};
|
||||
};
|
||||
46
arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts
Normal file
46
arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts
Normal file
@@ -0,0 +1,46 @@
|
||||
/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
|
||||
*/
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&uart1>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&uart0>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&uart0_pins>;
|
||||
__overlay__ {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
brcm,pull;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target-path = "/aliases";
|
||||
__overlay__ {
|
||||
serial0 = "/soc/serial@7e201000";
|
||||
serial1 = "/soc/serial@7e215040";
|
||||
};
|
||||
};
|
||||
};
|
||||
64
arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts
Normal file
64
arch/arm/boot/dts/overlays/pi3-miniuart-bt-overlay.dts
Normal file
@@ -0,0 +1,64 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/* Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore
|
||||
UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum
|
||||
usable baudrate.
|
||||
|
||||
It is also necessary to edit /lib/systemd/system/hciuart.service and
|
||||
replace ttyAMA0 with ttyS0, unless you have a system with udev rules
|
||||
that create /dev/serial0 and /dev/serial1, in which case use /dev/serial1
|
||||
instead because it will always be correct.
|
||||
|
||||
If cmdline.txt uses the alias serial0 to refer to the user-accessable port
|
||||
then the firmware will replace with the appropriate port whether or not
|
||||
this overlay is used.
|
||||
*/
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&uart0>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&uart1>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins &bt_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&uart0_pins>;
|
||||
__overlay__ {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
brcm,pull;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&uart1_pins>;
|
||||
__overlay__ {
|
||||
brcm,pins = <32 33>;
|
||||
brcm,function = <2>; /* alt5=UART1 */
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target-path = "/aliases";
|
||||
__overlay__ {
|
||||
serial0 = "/soc/serial@7e201000";
|
||||
serial1 = "/soc/serial@7e215040";
|
||||
};
|
||||
};
|
||||
};
|
||||
102
arch/arm/boot/dts/overlays/piscreen-overlay.dts
Normal file
102
arch/arm/boot/dts/overlays/piscreen-overlay.dts
Normal file
@@ -0,0 +1,102 @@
|
||||
/*
|
||||
* Device Tree overlay for PiScreen 3.5" display shield by Ozzmaker
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
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__ {
|
||||
piscreen_pins: piscreen_pins {
|
||||
brcm,pins = <17 25 24 22>;
|
||||
brcm,function = <0 1 1 1>; /* in out out out */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
piscreen: piscreen@0{
|
||||
compatible = "ilitek,ili9486";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&piscreen_pins>;
|
||||
|
||||
spi-max-frequency = <24000000>;
|
||||
rotate = <270>;
|
||||
bgr;
|
||||
fps = <30>;
|
||||
buswidth = <8>;
|
||||
regwidth = <16>;
|
||||
reset-gpios = <&gpio 25 0>;
|
||||
dc-gpios = <&gpio 24 0>;
|
||||
led-gpios = <&gpio 22 1>;
|
||||
debug = <0>;
|
||||
|
||||
init = <0x10000b0 0x00
|
||||
0x1000011
|
||||
0x20000ff
|
||||
0x100003a 0x55
|
||||
0x1000036 0x28
|
||||
0x10000c2 0x44
|
||||
0x10000c5 0x00 0x00 0x00 0x00
|
||||
0x10000e0 0x0f 0x1f 0x1c 0x0c 0x0f 0x08 0x48 0x98 0x37 0x0a 0x13 0x04 0x11 0x0d 0x00
|
||||
0x10000e1 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00
|
||||
0x10000e2 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00
|
||||
0x1000011
|
||||
0x1000029>;
|
||||
};
|
||||
|
||||
piscreen_ts: piscreen-ts@1 {
|
||||
compatible = "ti,ads7846";
|
||||
reg = <1>;
|
||||
|
||||
spi-max-frequency = <2000000>;
|
||||
interrupts = <17 2>; /* high-to-low edge triggered */
|
||||
interrupt-parent = <&gpio>;
|
||||
pendown-gpio = <&gpio 17 0>;
|
||||
ti,swap-xy;
|
||||
ti,x-plate-ohms = /bits/ 16 <100>;
|
||||
ti,pressure-max = /bits/ 16 <255>;
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
speed = <&piscreen>,"spi-max-frequency:0";
|
||||
rotate = <&piscreen>,"rotate:0";
|
||||
fps = <&piscreen>,"fps:0";
|
||||
debug = <&piscreen>,"debug:0";
|
||||
xohms = <&piscreen_ts>,"ti,x-plate-ohms;0";
|
||||
};
|
||||
};
|
||||
106
arch/arm/boot/dts/overlays/piscreen2r-overlay.dts
Normal file
106
arch/arm/boot/dts/overlays/piscreen2r-overlay.dts
Normal file
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Device Tree overlay for PiScreen2 3.5" TFT with resistive touch by Ozzmaker.com
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
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__ {
|
||||
piscreen2_pins: piscreen2_pins {
|
||||
brcm,pins = <17 25 24 22>;
|
||||
brcm,function = <0 1 1 1>; /* in out out out */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
piscreen2: piscreen2@0{
|
||||
compatible = "ilitek,ili9486";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&piscreen2_pins>;
|
||||
bgr;
|
||||
spi-max-frequency = <64000000>;
|
||||
rotate = <90>;
|
||||
fps = <30>;
|
||||
buswidth = <8>;
|
||||
regwidth = <16>;
|
||||
txbuflen = <32768>;
|
||||
reset-gpios = <&gpio 25 0>;
|
||||
dc-gpios = <&gpio 24 0>;
|
||||
led-gpios = <&gpio 22 1>;
|
||||
debug = <0>;
|
||||
|
||||
init = <0x10000b0 0x00
|
||||
0x1000011
|
||||
0x20000ff
|
||||
0x100003a 0x55
|
||||
0x1000036 0x28
|
||||
0x10000c0 0x11 0x09
|
||||
0x10000c1 0x41
|
||||
0x10000c5 0x00 0x00 0x00 0x00
|
||||
0x10000b6 0x00 0x02
|
||||
0x10000f7 0xa9 0x51 0x2c 0x2
|
||||
0x10000be 0x00 0x04
|
||||
0x10000e9 0x00
|
||||
0x1000011
|
||||
0x1000029>;
|
||||
|
||||
};
|
||||
|
||||
piscreen2_ts: piscreen2-ts@1 {
|
||||
compatible = "ti,ads7846";
|
||||
reg = <1>;
|
||||
|
||||
spi-max-frequency = <2000000>;
|
||||
interrupts = <17 2>; /* high-to-low edge triggered */
|
||||
interrupt-parent = <&gpio>;
|
||||
pendown-gpio = <&gpio 17 0>;
|
||||
ti,swap-xy;
|
||||
ti,x-plate-ohms = /bits/ 16 <100>;
|
||||
ti,pressure-max = /bits/ 16 <255>;
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
speed = <&piscreen2>,"spi-max-frequency:0";
|
||||
rotate = <&piscreen2>,"rotate:0";
|
||||
fps = <&piscreen2>,"fps:0";
|
||||
debug = <&piscreen2>,"debug:0";
|
||||
xohms = <&piscreen2_ts>,"ti,x-plate-ohms;0";
|
||||
};
|
||||
};
|
||||
|
||||
114
arch/arm/boot/dts/overlays/pisound-overlay.dts
Normal file
114
arch/arm/boot/dts/overlays/pisound-overlay.dts
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* pisound Linux kernel module.
|
||||
* Copyright (C) 2016 Vilniaus Blokas UAB, http://blokas.io/pisound
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; version 2 of the
|
||||
* License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "blokaslabs,pisound";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
|
||||
pinctrl-0 = <&pisound_button_pins>;
|
||||
|
||||
osr-gpios =
|
||||
<&gpio 13 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio 26 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio 16 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
reset-gpios =
|
||||
<&gpio 12 GPIO_ACTIVE_HIGH>,
|
||||
<&gpio 24 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
data_available-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
button-gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pisound_button_pins>;
|
||||
|
||||
pisound_button_pins: pisound_button_pins {
|
||||
brcm,pins = <17>;
|
||||
brcm,function = <0>; // Input
|
||||
brcm,pull = <2>; // Pull-Up
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
pcm5102a-codec {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm5102a";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
|
||||
spidev@0{
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spidev@1{
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@5 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pisound_spi: pisound_spi@0{
|
||||
compatible = "blokaslabs,pisound-spi";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins>;
|
||||
spi-max-frequency = <1000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
69
arch/arm/boot/dts/overlays/pitft22-overlay.dts
Normal file
69
arch/arm/boot/dts/overlays/pitft22-overlay.dts
Normal file
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Device Tree overlay for pitft by Adafruit
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
|
||||
spidev@0{
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spidev@1{
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
pitft_pins: pitft_pins {
|
||||
brcm,pins = <25>;
|
||||
brcm,function = <1>; /* out */
|
||||
brcm,pull = <0>; /* none */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pitft: pitft@0{
|
||||
compatible = "ilitek,ili9340";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pitft_pins>;
|
||||
|
||||
spi-max-frequency = <32000000>;
|
||||
rotate = <90>;
|
||||
fps = <25>;
|
||||
bgr;
|
||||
buswidth = <8>;
|
||||
dc-gpios = <&gpio 25 0>;
|
||||
debug = <0>;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
speed = <&pitft>,"spi-max-frequency:0";
|
||||
rotate = <&pitft>,"rotate:0";
|
||||
fps = <&pitft>,"fps:0";
|
||||
debug = <&pitft>,"debug:0";
|
||||
};
|
||||
};
|
||||
91
arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts
Normal file
91
arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts
Normal file
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
* Device Tree overlay for Adafruit PiTFT 2.8" capacitive touch screen
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spidev0>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
pitft_pins: pitft_pins {
|
||||
brcm,pins = <24 25>;
|
||||
brcm,function = <0 1>; /* in out */
|
||||
brcm,pull = <2 0>; /* pullup none */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pitft: pitft@0{
|
||||
compatible = "ilitek,ili9340";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pitft_pins>;
|
||||
|
||||
spi-max-frequency = <32000000>;
|
||||
rotate = <90>;
|
||||
fps = <25>;
|
||||
bgr;
|
||||
buswidth = <8>;
|
||||
dc-gpios = <&gpio 25 0>;
|
||||
debug = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ft6236: ft6236@38 {
|
||||
compatible = "focaltech,ft6236";
|
||||
reg = <0x38>;
|
||||
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <24 2>;
|
||||
touchscreen-size-x = <240>;
|
||||
touchscreen-size-y = <320>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
speed = <&pitft>,"spi-max-frequency:0";
|
||||
rotate = <&pitft>,"rotate:0";
|
||||
fps = <&pitft>,"fps:0";
|
||||
debug = <&pitft>,"debug:0";
|
||||
touch-sizex = <&ft6236>,"touchscreen-size-x?";
|
||||
touch-sizey = <&ft6236>,"touchscreen-size-y?";
|
||||
touch-invx = <&ft6236>,"touchscreen-inverted-x?";
|
||||
touch-invy = <&ft6236>,"touchscreen-inverted-y?";
|
||||
touch-swapxy = <&ft6236>,"touchscreen-swapped-x-y?";
|
||||
};
|
||||
};
|
||||
121
arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts
Normal file
121
arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts
Normal file
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* Device Tree overlay for Adafruit PiTFT 2.8" resistive touch screen
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
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__ {
|
||||
pitft_pins: pitft_pins {
|
||||
brcm,pins = <24 25>;
|
||||
brcm,function = <0 1>; /* in out */
|
||||
brcm,pull = <2 0>; /* pullup none */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pitft: pitft@0{
|
||||
compatible = "ilitek,ili9340";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pitft_pins>;
|
||||
|
||||
spi-max-frequency = <32000000>;
|
||||
rotate = <90>;
|
||||
fps = <25>;
|
||||
bgr;
|
||||
buswidth = <8>;
|
||||
dc-gpios = <&gpio 25 0>;
|
||||
debug = <0>;
|
||||
};
|
||||
|
||||
pitft_ts@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "st,stmpe610";
|
||||
reg = <1>;
|
||||
|
||||
spi-max-frequency = <500000>;
|
||||
irq-gpio = <&gpio 24 0x2>; /* IRQF_TRIGGER_FALLING */
|
||||
interrupts = <24 2>; /* high-to-low edge triggered */
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
|
||||
stmpe_touchscreen {
|
||||
compatible = "st,stmpe-ts";
|
||||
st,sample-time = <4>;
|
||||
st,mod-12b = <1>;
|
||||
st,ref-sel = <0>;
|
||||
st,adc-freq = <2>;
|
||||
st,ave-ctrl = <3>;
|
||||
st,touch-det-delay = <4>;
|
||||
st,settling = <2>;
|
||||
st,fraction-z = <7>;
|
||||
st,i-drive = <0>;
|
||||
};
|
||||
|
||||
stmpe_gpio: stmpe_gpio {
|
||||
#gpio-cells = <2>;
|
||||
compatible = "st,stmpe-gpio";
|
||||
/*
|
||||
* only GPIO2 is wired/available
|
||||
* and it is wired to the backlight
|
||||
*/
|
||||
st,norequest-mask = <0x7b>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@5 {
|
||||
target-path = "/soc";
|
||||
__overlay__ {
|
||||
backlight {
|
||||
compatible = "gpio-backlight";
|
||||
gpios = <&stmpe_gpio 2 0>;
|
||||
default-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
speed = <&pitft>,"spi-max-frequency:0";
|
||||
rotate = <&pitft>,"rotate:0";
|
||||
fps = <&pitft>,"fps:0";
|
||||
debug = <&pitft>,"debug:0";
|
||||
};
|
||||
};
|
||||
121
arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts
Normal file
121
arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts
Normal file
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* Device Tree overlay for Adafruit PiTFT 3.5" resistive touch screen
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
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__ {
|
||||
pitft_pins: pitft_pins {
|
||||
brcm,pins = <24 25>;
|
||||
brcm,function = <0 1>; /* in out */
|
||||
brcm,pull = <2 0>; /* pullup none */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pitft: pitft@0{
|
||||
compatible = "himax,hx8357d";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pitft_pins>;
|
||||
|
||||
spi-max-frequency = <32000000>;
|
||||
rotate = <90>;
|
||||
fps = <25>;
|
||||
bgr;
|
||||
buswidth = <8>;
|
||||
dc-gpios = <&gpio 25 0>;
|
||||
debug = <0>;
|
||||
};
|
||||
|
||||
pitft_ts@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "st,stmpe610";
|
||||
reg = <1>;
|
||||
|
||||
spi-max-frequency = <500000>;
|
||||
irq-gpio = <&gpio 24 0x2>; /* IRQF_TRIGGER_FALLING */
|
||||
interrupts = <24 2>; /* high-to-low edge triggered */
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupt-controller;
|
||||
|
||||
stmpe_touchscreen {
|
||||
compatible = "st,stmpe-ts";
|
||||
st,sample-time = <4>;
|
||||
st,mod-12b = <1>;
|
||||
st,ref-sel = <0>;
|
||||
st,adc-freq = <2>;
|
||||
st,ave-ctrl = <3>;
|
||||
st,touch-det-delay = <4>;
|
||||
st,settling = <2>;
|
||||
st,fraction-z = <7>;
|
||||
st,i-drive = <0>;
|
||||
};
|
||||
|
||||
stmpe_gpio: stmpe_gpio {
|
||||
#gpio-cells = <2>;
|
||||
compatible = "st,stmpe-gpio";
|
||||
/*
|
||||
* only GPIO2 is wired/available
|
||||
* and it is wired to the backlight
|
||||
*/
|
||||
st,norequest-mask = <0x7b>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@5 {
|
||||
target-path = "/soc";
|
||||
__overlay__ {
|
||||
backlight {
|
||||
compatible = "gpio-backlight";
|
||||
gpios = <&stmpe_gpio 2 0>;
|
||||
default-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
speed = <&pitft>,"spi-max-frequency:0";
|
||||
rotate = <&pitft>,"rotate:0";
|
||||
fps = <&pitft>,"fps:0";
|
||||
debug = <&pitft>,"debug:0";
|
||||
};
|
||||
};
|
||||
35
arch/arm/boot/dts/overlays/pps-gpio-overlay.dts
Normal file
35
arch/arm/boot/dts/overlays/pps-gpio-overlay.dts
Normal file
@@ -0,0 +1,35 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
pps: pps {
|
||||
compatible = "pps-gpio";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pps_pins>;
|
||||
gpios = <&gpio 18 0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
pps_pins: pps_pins {
|
||||
brcm,pins = <18>;
|
||||
brcm,function = <0>; // in
|
||||
brcm,pull = <0>; // off
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
gpiopin = <&pps>,"gpios:4",
|
||||
<&pps_pins>,"brcm,pins:0";
|
||||
assert_falling_edge = <&pps>,"assert-falling-edge?";
|
||||
};
|
||||
};
|
||||
47
arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts
Normal file
47
arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts
Normal file
@@ -0,0 +1,47 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/*
|
||||
This is the 2-channel overlay - only use it if you need both channels.
|
||||
|
||||
Legal pin,function combinations for each channel:
|
||||
PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1)
|
||||
PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
|
||||
|
||||
N.B.:
|
||||
1) Pin 18 is the only one available on all platforms, and
|
||||
it is the one used by the I2S audio interface.
|
||||
Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
|
||||
2) The onboard analogue audio output uses both PWM channels.
|
||||
3) So be careful mixing audio and PWM.
|
||||
*/
|
||||
|
||||
/ {
|
||||
fragment@0 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
pwm_pins: pwm_pins {
|
||||
brcm,pins = <18 19>;
|
||||
brcm,function = <2 2>; /* Alt5 */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&pwm>;
|
||||
frag1: __overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm_pins>;
|
||||
assigned-clock-rates = <100000000>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
pin = <&pwm_pins>,"brcm,pins:0";
|
||||
pin2 = <&pwm_pins>,"brcm,pins:4";
|
||||
func = <&pwm_pins>,"brcm,function:0";
|
||||
func2 = <&pwm_pins>,"brcm,function:4";
|
||||
clock = <&frag1>,"assigned-clock-rates:0";
|
||||
};
|
||||
};
|
||||
43
arch/arm/boot/dts/overlays/pwm-overlay.dts
Normal file
43
arch/arm/boot/dts/overlays/pwm-overlay.dts
Normal file
@@ -0,0 +1,43 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/*
|
||||
Legal pin,function combinations for each channel:
|
||||
PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0) 52,5(Alt1)
|
||||
PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
|
||||
|
||||
N.B.:
|
||||
1) Pin 18 is the only one available on all platforms, and
|
||||
it is the one used by the I2S audio interface.
|
||||
Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
|
||||
2) The onboard analogue audio output uses both PWM channels.
|
||||
3) So be careful mixing audio and PWM.
|
||||
*/
|
||||
|
||||
/ {
|
||||
fragment@0 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
pwm_pins: pwm_pins {
|
||||
brcm,pins = <18>;
|
||||
brcm,function = <2>; /* Alt5 */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&pwm>;
|
||||
frag1: __overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm_pins>;
|
||||
assigned-clock-rates = <100000000>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
pin = <&pwm_pins>,"brcm,pins:0";
|
||||
func = <&pwm_pins>,"brcm,function:0";
|
||||
clock = <&frag1>,"assigned-clock-rates:0";
|
||||
};
|
||||
};
|
||||
52
arch/arm/boot/dts/overlays/qca7000-overlay.dts
Normal file
52
arch/arm/boot/dts/overlays/qca7000-overlay.dts
Normal file
@@ -0,0 +1,52 @@
|
||||
// Overlay for the Qualcomm Atheros QCA7000 on I2SE's PLC Stamp micro EVK
|
||||
// Visit: https://www.i2se.com/product/plc-stamp-micro-evk for details
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
status = "okay";
|
||||
|
||||
spidev@0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
eth1: qca7000@0 {
|
||||
compatible = "qca,qca7000";
|
||||
reg = <0>; /* CE0 */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <ð1_pins>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <23 0x1>; /* rising edge */
|
||||
spi-max-frequency = <12000000>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
eth1_pins: eth1_pins {
|
||||
brcm,pins = <23>;
|
||||
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";
|
||||
};
|
||||
};
|
||||
45
arch/arm/boot/dts/overlays/raspidac3-overlay.dts
Normal file
45
arch/arm/boot/dts/overlays/raspidac3-overlay.dts
Normal file
@@ -0,0 +1,45 @@
|
||||
// Definitions for RaspiDACv3
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
tpa6130a2: tpa6130a2@60 {
|
||||
compatible = "ti,tpa6130a2";
|
||||
reg = <0x60>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "jg,raspidacv3";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
21
arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts
Normal file
21
arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts
Normal file
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Devicetree overlay for mailbox-driven Raspberry Pi DSI Display
|
||||
* backlight controller
|
||||
*/
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
rpi_backlight: rpi_backlight {
|
||||
compatible = "raspberrypi,rpi-backlight";
|
||||
firmware = <&firmware>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
34
arch/arm/boot/dts/overlays/rpi-dac-overlay.dts
Normal file
34
arch/arm/boot/dts/overlays/rpi-dac-overlay.dts
Normal file
@@ -0,0 +1,34 @@
|
||||
// Definitions for RPi DAC
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
pcm1794a-codec {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "ti,pcm1794a";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "rpi,rpi-dac";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
89
arch/arm/boot/dts/overlays/rpi-display-overlay.dts
Normal file
89
arch/arm/boot/dts/overlays/rpi-display-overlay.dts
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Device Tree overlay for rpi-display by Watterott
|
||||
*
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
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__ {
|
||||
rpi_display_pins: rpi_display_pins {
|
||||
brcm,pins = <18 23 24 25>;
|
||||
brcm,function = <1 1 1 0>; /* out out out in */
|
||||
brcm,pull = <0 0 0 2>; /* - - - up */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
rpidisplay: rpi-display@0{
|
||||
compatible = "ilitek,ili9341";
|
||||
reg = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rpi_display_pins>;
|
||||
|
||||
spi-max-frequency = <32000000>;
|
||||
rotate = <270>;
|
||||
bgr;
|
||||
fps = <30>;
|
||||
buswidth = <8>;
|
||||
reset-gpios = <&gpio 23 0>;
|
||||
dc-gpios = <&gpio 24 0>;
|
||||
led-gpios = <&gpio 18 1>;
|
||||
debug = <0>;
|
||||
};
|
||||
|
||||
rpidisplay_ts: rpi-display-ts@1 {
|
||||
compatible = "ti,ads7846";
|
||||
reg = <1>;
|
||||
|
||||
spi-max-frequency = <2000000>;
|
||||
interrupts = <25 2>; /* high-to-low edge triggered */
|
||||
interrupt-parent = <&gpio>;
|
||||
pendown-gpio = <&gpio 25 0>;
|
||||
ti,x-plate-ohms = /bits/ 16 <60>;
|
||||
ti,pressure-max = /bits/ 16 <255>;
|
||||
};
|
||||
};
|
||||
};
|
||||
__overrides__ {
|
||||
speed = <&rpidisplay>,"spi-max-frequency:0";
|
||||
rotate = <&rpidisplay>,"rotate:0";
|
||||
fps = <&rpidisplay>,"fps:0";
|
||||
debug = <&rpidisplay>,"debug:0";
|
||||
xohms = <&rpidisplay_ts>,"ti,x-plate-ohms;0";
|
||||
swapxy = <&rpidisplay_ts>,"ti,swap-xy?";
|
||||
};
|
||||
};
|
||||
17
arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts
Normal file
17
arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts
Normal file
@@ -0,0 +1,17 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
rpi_ft5406: rpi_ft5406 {
|
||||
compatible = "rpi,rpi-ft5406";
|
||||
firmware = <&firmware>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
39
arch/arm/boot/dts/overlays/rpi-proto-overlay.dts
Normal file
39
arch/arm/boot/dts/overlays/rpi-proto-overlay.dts
Normal file
@@ -0,0 +1,39 @@
|
||||
// Definitions for Rpi-Proto
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
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 = "rpi,rpi-proto";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
47
arch/arm/boot/dts/overlays/rpi-sense-overlay.dts
Normal file
47
arch/arm/boot/dts/overlays/rpi-sense-overlay.dts
Normal file
@@ -0,0 +1,47 @@
|
||||
// rpi-sense HAT
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
rpi-sense@46 {
|
||||
compatible = "rpi,rpi-sense";
|
||||
reg = <0x46>;
|
||||
keys-int-gpios = <&gpio 23 1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
lsm9ds1-magn@1c {
|
||||
compatible = "st,lsm9ds1-magn";
|
||||
reg = <0x1c>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
lsm9ds1-accel6a {
|
||||
compatible = "st,lsm9ds1-accel";
|
||||
reg = <0x6a>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
lps25h-press@5c {
|
||||
compatible = "st,lps25h-press";
|
||||
reg = <0x5c>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
hts221-humid@5f {
|
||||
compatible = "st,hts221-humid";
|
||||
reg = <0x5f>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,81 @@
|
||||
// Definitions for RRA DigiDAC1 Audio card
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target-path = "/";
|
||||
__overlay__ {
|
||||
aliases {
|
||||
ldo0 = &ldo0;
|
||||
ldo1 = &ldo1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/soc";
|
||||
__overlay__ {
|
||||
|
||||
ldo1: ldo1 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "DC_5V";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo0: ldo0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "DC_3V3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&i2c1>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
wm8804@3b {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "wlf,wm8804";
|
||||
reg = <0x3b>;
|
||||
status = "okay";
|
||||
PVDD-supply = <&ldo0>;
|
||||
DVDD-supply = <&ldo0>;
|
||||
};
|
||||
|
||||
wm8742: wm8741@1a {
|
||||
compatible = "wlf,wm8741";
|
||||
reg = <0x1a>;
|
||||
status = "okay";
|
||||
AVDD-supply = <&ldo1>;
|
||||
DVDD-supply = <&ldo0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "rra,digidac1-soundcard";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
37
arch/arm/boot/dts/overlays/sc16is750-i2c-overlay.dts
Normal file
37
arch/arm/boot/dts/overlays/sc16is750-i2c-overlay.dts
Normal file
@@ -0,0 +1,37 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
fragment@0 {
|
||||
target = <&i2c_arm>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
sc16is750: sc16is750@48 {
|
||||
compatible = "nxp,sc16is750";
|
||||
reg = <0x48>; /* address */
|
||||
clocks = <&sc16is750_clk>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
|
||||
#gpio-cells = <2>;
|
||||
|
||||
sc16is750_clk: sc16is750_clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <14745600>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
__overrides__ {
|
||||
int_pin = <&sc16is750>,"interrupts:0";
|
||||
addr = <&sc16is750>,"reg:0";
|
||||
};
|
||||
|
||||
};
|
||||
61
arch/arm/boot/dts/overlays/sc16is752-spi1-overlay.dts
Normal file
61
arch/arm/boot/dts/overlays/sc16is752-spi1-overlay.dts
Normal file
@@ -0,0 +1,61 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
fragment@0 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
spi1_pins: spi1_pins {
|
||||
brcm,pins = <19 20 21>;
|
||||
brcm,function = <3>; /* alt4 */
|
||||
};
|
||||
|
||||
spi1_cs_pins: spi1_cs_pins {
|
||||
brcm,pins = <18>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spi1>;
|
||||
frag1: __overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi1_pins &spi1_cs_pins>;
|
||||
cs-gpios = <&gpio 18 1>;
|
||||
status = "okay";
|
||||
|
||||
sc16is752: sc16is752@0 {
|
||||
compatible = "nxp,sc16is752";
|
||||
reg = <0>; /* CE0 */
|
||||
clocks = <&sc16is752_clk>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
|
||||
#gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
spi-max-frequency = <4000000>;
|
||||
|
||||
sc16is752_clk: sc16is752_clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <14745600>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&aux>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
int_pin = <&sc16is752>,"interrupts:0";
|
||||
};
|
||||
};
|
||||
32
arch/arm/boot/dts/overlays/sdhost-overlay.dts
Normal file
32
arch/arm/boot/dts/overlays/sdhost-overlay.dts
Normal file
@@ -0,0 +1,32 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/* Provide backwards compatible aliases for the old sdhost dtparams. */
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&sdhost>;
|
||||
frag0: __overlay__ {
|
||||
brcm,overclock-50 = <0>;
|
||||
brcm,pio-limit = <1>;
|
||||
brcm,debug-flags = <0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&mmc>;
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
overclock_50 = <&frag0>,"brcm,overclock-50:0";
|
||||
force_pio = <&frag0>,"brcm,force-pio?";
|
||||
pio_limit = <&frag0>,"brcm,pio-limit:0";
|
||||
debug = <&frag0>,"brcm,debug?";
|
||||
};
|
||||
};
|
||||
36
arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts
Normal file
36
arch/arm/boot/dts/overlays/sdio-1bit-overlay.dts
Normal file
@@ -0,0 +1,36 @@
|
||||
/* Enable 1-bit SDIO from MMC interface via GPIOs 22-25. Includes sdhost overlay. */
|
||||
|
||||
/include/ "sdhost-overlay.dts"
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@3 {
|
||||
target = <&mmc>;
|
||||
sdio_mmc: __overlay__ {
|
||||
compatible = "brcm,bcm2835-mmc";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
non-removable;
|
||||
bus-width = <1>;
|
||||
brcm,overclock-50 = <0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
sdio_pins: sdio_pins {
|
||||
brcm,pins = <22 23 24 25>;
|
||||
brcm,function = <7 7 7 7>; /* ALT3 = SD1 */
|
||||
brcm,pull = <0 2 2 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
poll_once = <&sdio_mmc>,"non-removable?";
|
||||
sdio_overclock = <&sdio_mmc>,"brcm,overclock-50:0";
|
||||
};
|
||||
};
|
||||
36
arch/arm/boot/dts/overlays/sdio-overlay.dts
Normal file
36
arch/arm/boot/dts/overlays/sdio-overlay.dts
Normal file
@@ -0,0 +1,36 @@
|
||||
/* Enable SDIO from MMC interface via GPIOs 22-27. Includes sdhost overlay. */
|
||||
|
||||
/include/ "sdhost-overlay.dts"
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@3 {
|
||||
target = <&mmc>;
|
||||
sdio_mmc: __overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
non-removable;
|
||||
bus-width = <4>;
|
||||
brcm,overclock-50 = <0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@4 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
sdio_pins: sdio_pins {
|
||||
brcm,pins = <22 23 24 25 26 27>;
|
||||
brcm,function = <7 7 7 7 7 7>; /* ALT3 = SD1 */
|
||||
brcm,pull = <0 2 2 2 2 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
poll_once = <&sdio_mmc>,"non-removable?";
|
||||
bus_width = <&sdio_mmc>,"bus-width:0";
|
||||
sdio_overclock = <&sdio_mmc>,"brcm,overclock-50:0";
|
||||
};
|
||||
};
|
||||
23
arch/arm/boot/dts/overlays/sdtweak-overlay.dts
Normal file
23
arch/arm/boot/dts/overlays/sdtweak-overlay.dts
Normal file
@@ -0,0 +1,23 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/* Provide backwards compatible aliases for the old sdhost dtparams. */
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&sdhost>;
|
||||
frag0: __overlay__ {
|
||||
brcm,overclock-50 = <0>;
|
||||
brcm,pio-limit = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
overclock_50 = <&frag0>,"brcm,overclock-50:0";
|
||||
force_pio = <&frag0>,"brcm,force-pio?";
|
||||
pio_limit = <&frag0>,"brcm,pio-limit:0";
|
||||
debug = <&frag0>,"brcm,debug?";
|
||||
};
|
||||
};
|
||||
18
arch/arm/boot/dts/overlays/smi-dev-overlay.dts
Normal file
18
arch/arm/boot/dts/overlays/smi-dev-overlay.dts
Normal file
@@ -0,0 +1,18 @@
|
||||
// Description: Overlay to enable character device interface for SMI.
|
||||
// Author: Luke Wren <luke@raspberrypi.org>
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
fragment@0 {
|
||||
target = <&soc>;
|
||||
__overlay__ {
|
||||
smi_dev {
|
||||
compatible = "brcm,bcm2835-smi-dev";
|
||||
smi_handle = <&smi>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
69
arch/arm/boot/dts/overlays/smi-nand-overlay.dts
Normal file
69
arch/arm/boot/dts/overlays/smi-nand-overlay.dts
Normal file
@@ -0,0 +1,69 @@
|
||||
// Description: Overlay to enable NAND flash through
|
||||
// the secondary memory interface
|
||||
// Author: Luke Wren
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&smi>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&smi_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&soc>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
nand: flash@0 {
|
||||
compatible = "brcm,bcm2835-smi-nand";
|
||||
smi_handle = <&smi>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
status = "okay";
|
||||
|
||||
partition@0 {
|
||||
label = "stage2";
|
||||
// 128k
|
||||
reg = <0 0x20000>;
|
||||
read-only;
|
||||
};
|
||||
partition@1 {
|
||||
label = "firmware";
|
||||
// 16M
|
||||
reg = <0x20000 0x1000000>;
|
||||
read-only;
|
||||
};
|
||||
partition@2 {
|
||||
label = "root";
|
||||
// 2G (will need to use 64 bit for >=4G)
|
||||
reg = <0x1020000 0x80000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
smi_pins: smi_pins {
|
||||
brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
|
||||
12 13 14 15>;
|
||||
/* Alt 1: SMI */
|
||||
brcm,function = <5 5 5 5 5 5 5 5 5 5 5
|
||||
5 5 5 5 5>;
|
||||
/* /CS, /WE and /OE are pulled high, as they are
|
||||
generally active low signals */
|
||||
brcm,pull = <2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
37
arch/arm/boot/dts/overlays/smi-overlay.dts
Normal file
37
arch/arm/boot/dts/overlays/smi-overlay.dts
Normal file
@@ -0,0 +1,37 @@
|
||||
// Description: Overlay to enable the secondary memory interface peripheral
|
||||
// Author: Luke Wren
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/{
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&smi>;
|
||||
__overlay__ {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&smi_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
smi_pins: smi_pins {
|
||||
/* Don't configure the top two address bits, as
|
||||
these are already used as ID_SD and ID_SC */
|
||||
brcm,pins = <2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
16 17 18 19 20 21 22 23 24 25>;
|
||||
/* Alt 0: SMI */
|
||||
brcm,function = <5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
|
||||
5 5 5 5 5 5 5 5 5>;
|
||||
/* /CS, /WE and /OE are pulled high, as they are
|
||||
generally active low signals */
|
||||
brcm,pull = <2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
31
arch/arm/boot/dts/overlays/spi-gpio35-39-overlay.dts
Normal file
31
arch/arm/boot/dts/overlays/spi-gpio35-39-overlay.dts
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Device tree overlay to move spi0 to gpio 35 to 39 on CM
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
cs-gpios = <&gpio 36 1>, <&gpio 35 1>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spi0_cs_pins>;
|
||||
__overlay__ {
|
||||
brcm,pins = <36 35>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&spi0_pins>;
|
||||
__overlay__ {
|
||||
brcm,pins = <37 38 39>;
|
||||
};
|
||||
};
|
||||
};
|
||||
33
arch/arm/boot/dts/overlays/spi-rtc-overlay.dts
Normal file
33
arch/arm/boot/dts/overlays/spi-rtc-overlay.dts
Normal file
@@ -0,0 +1,33 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spidev0>;
|
||||
__dormant__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spi0>;
|
||||
__dormant__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
rtc-pcf2123@0 {
|
||||
compatible = "nxp,rtc-pcf2123";
|
||||
spi-max-frequency = <5000000>;
|
||||
spi-cs-high = <1>;
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
pcf2123 = <0>, "=0=1";
|
||||
};
|
||||
};
|
||||
26
arch/arm/boot/dts/overlays/spi0-hw-cs-overlay.dts
Normal file
26
arch/arm/boot/dts/overlays/spi0-hw-cs-overlay.dts
Normal file
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Device tree overlay to re-enable hardware CS for SPI0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
fragment@0 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
cs-gpios = <0>, <0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spi0_cs_pins>;
|
||||
__overlay__ {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
};
|
||||
};
|
||||
57
arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts
Normal file
57
arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts
Normal file
@@ -0,0 +1,57 @@
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
||||
|
||||
fragment@0 {
|
||||
target = <&gpio>;
|
||||
__overlay__ {
|
||||
spi1_pins: spi1_pins {
|
||||
brcm,pins = <19 20 21>;
|
||||
brcm,function = <3>; /* alt4 */
|
||||
};
|
||||
|
||||
spi1_cs_pins: spi1_cs_pins {
|
||||
brcm,pins = <18>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spi1>;
|
||||
frag1: __overlay__ {
|
||||
/* needed to avoid dtc warning */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi1_pins &spi1_cs_pins>;
|
||||
cs-gpios = <&gpio 18 1>;
|
||||
status = "okay";
|
||||
|
||||
spidev1_0: spidev@0 {
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&aux>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
cs0_pin = <&spi1_cs_pins>,"brcm,pins:0",
|
||||
<&frag1>,"cs-gpios:4";
|
||||
cs0_spidev = <&spidev1_0>,"status";
|
||||
};
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user