mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 13:16:41 +00:00
Merge pull request #2917 from HiassofT/le9-slice
Slice/Slice3: fix device tree overlays
This commit is contained in:
commit
4bfe440de2
@ -3,170 +3,110 @@
|
|||||||
/plugin/;
|
/plugin/;
|
||||||
|
|
||||||
#include "dt-bindings/clock/bcm2835.h"
|
#include "dt-bindings/clock/bcm2835.h"
|
||||||
|
#include "dt-bindings/pinctrl/bcm2835.h"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
compatible = "brcm,bcm2708";
|
compatible = "brcm,bcm2708";
|
||||||
|
|
||||||
//
|
// disable analog audio
|
||||||
// Set up GPIOs:
|
|
||||||
// I2C1 on GPIO44,45
|
|
||||||
// LIRC input/output on GPIO4 and 37 (NB GPIO4 NC on Slice)
|
|
||||||
// I2S on GPIO28-31
|
|
||||||
//
|
|
||||||
fragment@0 {
|
fragment@0 {
|
||||||
target = <&gpio>;
|
|
||||||
__overlay__ {
|
|
||||||
i2c1_pins: i2c1 {
|
|
||||||
brcm,pins = <44 45>;
|
|
||||||
brcm,function = <6>; /* alt2 */
|
|
||||||
};
|
|
||||||
lirc_pins: lirc_pins {
|
|
||||||
brcm,pins = <4 37>; // <out in>
|
|
||||||
brcm,function = <1 0>; // out in
|
|
||||||
brcm,pull = <0 1>; // off down
|
|
||||||
};
|
|
||||||
i2s_pins: i2s {
|
|
||||||
brcm,pins = <28 29 30 31>;
|
|
||||||
brcm,function = <6>; /* alt2 */
|
|
||||||
};
|
|
||||||
ws2812_pins: ws2812 {
|
|
||||||
brcm,pins = <40>;
|
|
||||||
brcm,function = <4>; /* alt0 */
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// I2C at 100KHz
|
|
||||||
//
|
|
||||||
fragment@1 {
|
|
||||||
target = <&i2c1>;
|
|
||||||
__overlay__ {
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins>;
|
|
||||||
clock-frequency = <100000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// Add devices to I2C1 Bus:
|
|
||||||
// PCF8523 RTC device
|
|
||||||
// CS4265 Audio CODEC
|
|
||||||
//
|
|
||||||
fragment@2 {
|
|
||||||
target = <&i2c1>;
|
|
||||||
__overlay__ {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
status = "okay";
|
|
||||||
pcf8523@68 {
|
|
||||||
compatible = "nxp,pcf8523";
|
|
||||||
reg = <0x68>;
|
|
||||||
nxp,xtalcap-7pf; /* set crystal load to 7pf */
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
cs4265@4e {
|
|
||||||
#sound-dai-cells = <0>;
|
|
||||||
compatible = "cirrus,cs4265";
|
|
||||||
reg = <0x4e>;
|
|
||||||
cs4265-reset-gpios = <&gpio 33 0>; /* AUD_RST_N on GPIO33 */
|
|
||||||
cirrus,no-s16le; /* remove S16LE support to workaround I2S controller issue */
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// LIRC
|
|
||||||
//
|
|
||||||
fragment@3 {
|
|
||||||
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>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// Audio driver
|
|
||||||
//
|
|
||||||
fragment@4 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
target = <&sound>;
|
|
||||||
__overlay__ {
|
|
||||||
compatible = "fiveninjas,slice";
|
|
||||||
clocks = <&cprman BCM2835_CLOCK_GP0>;
|
|
||||||
clock-names = "gp0";
|
|
||||||
pinctrl-names = "default";
|
|
||||||
i2s-controller = <&i2s>;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// Enable I2S
|
|
||||||
//
|
|
||||||
fragment@5 {
|
|
||||||
target = <&i2s>;
|
|
||||||
__overlay__ {
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2s_pins>;
|
|
||||||
brcm,enable-mmap;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// WS2812B LEDs driver
|
|
||||||
//
|
|
||||||
fragment@6 {
|
|
||||||
target = <&soc>;
|
|
||||||
__overlay__ {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
ws2812: ws2812 {
|
|
||||||
compatible = "rpi,ws2812";
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&ws2812_pins>;
|
|
||||||
reg = <0x7e20c000 0x100>; /* PWM */
|
|
||||||
dmas = <&dma 5>;
|
|
||||||
dma-names = "pwm_dma";
|
|
||||||
led-en-gpios = <&gpio 43 0>;
|
|
||||||
rpi,invert = <1>;
|
|
||||||
rpi,num_leds = <25>;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// Disable standard audio
|
|
||||||
//
|
|
||||||
fragment@7 {
|
|
||||||
target = <&audio>;
|
target = <&audio>;
|
||||||
__overlay__ {
|
__overlay__ {
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// pinctrl definitions
|
||||||
|
fragment@1 {
|
||||||
|
target = <&gpio>;
|
||||||
|
__overlay__ {
|
||||||
|
// configure I2S to GPIO 28-31
|
||||||
|
slice_i2s_pins: slice_i2s_pins {
|
||||||
|
brcm,pins = <28 29 30 31>;
|
||||||
|
brcm,function = <BCM2835_FSEL_ALT2>;
|
||||||
|
};
|
||||||
|
slice_ir_pins: slice_ir_pins {
|
||||||
|
brcm,pins = <37>;
|
||||||
|
brcm,function = <BCM2835_FSEL_GPIO_IN>;
|
||||||
|
brcm,pull = <BCM2835_PUD_DOWN>;
|
||||||
|
};
|
||||||
|
cs4265_reset_pins: cs4265_reset_pins {
|
||||||
|
brcm,pins = <33>;
|
||||||
|
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// IR receiver
|
||||||
|
fragment@2 {
|
||||||
|
target-path = "/";
|
||||||
|
__overlay__ {
|
||||||
|
gpio_ir: ir-receiver {
|
||||||
|
compatible = "gpio-ir-receiver";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&slice_ir_pins>;
|
||||||
|
gpios = <&gpio 37 1>;
|
||||||
|
linux,rc-map-name = "rc-rc6-mce";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// enable I2S
|
||||||
|
fragment@3 {
|
||||||
|
target = <&i2s>;
|
||||||
|
__overlay__ {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&slice_i2s_pins>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// I2C
|
||||||
|
fragment@4 {
|
||||||
|
target = <&i2c1>;
|
||||||
|
__overlay__ {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2c1_gpio44>; // use GPIO 44/45 for I2C1
|
||||||
|
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
|
||||||
|
pcf8523@68 {
|
||||||
|
compatible = "nxp,pcf8523";
|
||||||
|
reg = <0x68>;
|
||||||
|
nxp,xtalcap-7pf; // set crystal load to 7pf
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
cs4265@4e {
|
||||||
|
#sound-dai-cells = <0>;
|
||||||
|
compatible = "cirrus,cs4265";
|
||||||
|
reg = <0x4e>;
|
||||||
|
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&cs4265_reset_pins>;
|
||||||
|
|
||||||
|
cs4265-reset-gpios = <&gpio 33 0>; /* AUD_RST_N on GPIO33 */
|
||||||
|
cirrus,no-s16le; // remove S16LE support to workaround I2S controller issue
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// Audio driver
|
||||||
|
fragment@5 {
|
||||||
|
target = <&sound>;
|
||||||
|
__overlay__ {
|
||||||
|
compatible = "fiveninjas,slice";
|
||||||
|
clocks = <&clocks BCM2835_CLOCK_GP0>;
|
||||||
|
clock-names = "gp0";
|
||||||
|
i2s-controller = <&i2s>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -2,32 +2,42 @@
|
|||||||
/plugin/;
|
/plugin/;
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
compatible = "brcm,bcm2708";
|
compatible = "brcm,bcm2708";
|
||||||
|
|
||||||
fragment@0 {
|
// disable pwm
|
||||||
target = <&soc>;
|
fragment@0 {
|
||||||
__overlay__ {
|
target = <&pwm>;
|
||||||
#address-cells = <1>;
|
__overlay__ {
|
||||||
#size-cells = <1>;
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
ws2812: ws2812 {
|
fragment@1 {
|
||||||
compatible = "rpi,ws2812";
|
target = <&soc>;
|
||||||
reg = <0x7e20c000 0x100>; /* PWM */
|
__overlay__ {
|
||||||
dmas = <&dma 5>;
|
#address-cells = <1>;
|
||||||
dma-names = "pwm_dma";
|
#size-cells = <1>;
|
||||||
led-en-gpios = <&gpio 43 0>;
|
|
||||||
|
|
||||||
rpi,invert = <1>;
|
ws2812: ws2812 {
|
||||||
rpi,num_leds = <25>;
|
compatible = "rpi,ws2812";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pwm0_gpio40>;
|
||||||
|
reg = <0x7e20c000 0x100>; /* PWM */
|
||||||
|
dmas = <&dma 5>;
|
||||||
|
dma-names = "pwm_dma";
|
||||||
|
led-en-gpios = <&gpio 43 0>;
|
||||||
|
|
||||||
status = "okay";
|
rpi,invert = <1>;
|
||||||
|
rpi,num_leds = <25>;
|
||||||
|
|
||||||
};
|
status = "okay";
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
__overrides__ {
|
};
|
||||||
invert = <&ws2812>,"rpi,invert:0";
|
};
|
||||||
num_leds = <&ws2812>,"rpi,num_leds:0";
|
};
|
||||||
};
|
|
||||||
|
__overrides__ {
|
||||||
|
invert = <&ws2812>,"rpi,invert:0";
|
||||||
|
num_leds = <&ws2812>,"rpi,num_leds:0";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -3,170 +3,110 @@
|
|||||||
/plugin/;
|
/plugin/;
|
||||||
|
|
||||||
#include "dt-bindings/clock/bcm2835.h"
|
#include "dt-bindings/clock/bcm2835.h"
|
||||||
|
#include "dt-bindings/pinctrl/bcm2835.h"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
compatible = "brcm,bcm2708";
|
compatible = "brcm,bcm2708";
|
||||||
|
|
||||||
//
|
// disable analog audio
|
||||||
// Set up GPIOs:
|
|
||||||
// I2C1 on GPIO44,45
|
|
||||||
// LIRC input/output on GPIO4 and 37 (NB GPIO4 NC on Slice)
|
|
||||||
// I2S on GPIO28-31
|
|
||||||
//
|
|
||||||
fragment@0 {
|
fragment@0 {
|
||||||
target = <&gpio>;
|
|
||||||
__overlay__ {
|
|
||||||
i2c1_pins: i2c1 {
|
|
||||||
brcm,pins = <44 45>;
|
|
||||||
brcm,function = <6>; /* alt2 */
|
|
||||||
};
|
|
||||||
lirc_pins: lirc_pins {
|
|
||||||
brcm,pins = <4 37>; // <out in>
|
|
||||||
brcm,function = <1 0>; // out in
|
|
||||||
brcm,pull = <0 1>; // off down
|
|
||||||
};
|
|
||||||
i2s_pins: i2s {
|
|
||||||
brcm,pins = <28 29 30 31>;
|
|
||||||
brcm,function = <6>; /* alt2 */
|
|
||||||
};
|
|
||||||
ws2812_pins: ws2812 {
|
|
||||||
brcm,pins = <40>;
|
|
||||||
brcm,function = <4>; /* alt0 */
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// I2C at 100KHz
|
|
||||||
//
|
|
||||||
fragment@1 {
|
|
||||||
target = <&i2c1>;
|
|
||||||
__overlay__ {
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins>;
|
|
||||||
clock-frequency = <100000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// Add devices to I2C1 Bus:
|
|
||||||
// PCF8523 RTC device
|
|
||||||
// CS4265 Audio CODEC
|
|
||||||
//
|
|
||||||
fragment@2 {
|
|
||||||
target = <&i2c1>;
|
|
||||||
__overlay__ {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
status = "okay";
|
|
||||||
pcf8523@68 {
|
|
||||||
compatible = "nxp,pcf8523";
|
|
||||||
reg = <0x68>;
|
|
||||||
nxp,xtalcap-7pf; /* set crystal load to 7pf */
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
cs4265@4e {
|
|
||||||
#sound-dai-cells = <0>;
|
|
||||||
compatible = "cirrus,cs4265";
|
|
||||||
reg = <0x4e>;
|
|
||||||
cs4265-reset-gpios = <&gpio 33 0>; /* AUD_RST_N on GPIO33 */
|
|
||||||
cirrus,no-s16le; /* remove S16LE support to workaround I2S controller issue */
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// LIRC
|
|
||||||
//
|
|
||||||
fragment@3 {
|
|
||||||
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>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// Audio driver
|
|
||||||
//
|
|
||||||
fragment@4 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
target = <&sound>;
|
|
||||||
__overlay__ {
|
|
||||||
compatible = "fiveninjas,slice";
|
|
||||||
clocks = <&cprman BCM2835_CLOCK_GP0>;
|
|
||||||
clock-names = "gp0";
|
|
||||||
pinctrl-names = "default";
|
|
||||||
i2s-controller = <&i2s>;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// Enable I2S
|
|
||||||
//
|
|
||||||
fragment@5 {
|
|
||||||
target = <&i2s>;
|
|
||||||
__overlay__ {
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2s_pins>;
|
|
||||||
brcm,enable-mmap;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// WS2812B LEDs driver
|
|
||||||
//
|
|
||||||
fragment@6 {
|
|
||||||
target = <&soc>;
|
|
||||||
__overlay__ {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
ws2812: ws2812 {
|
|
||||||
compatible = "rpi,ws2812";
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&ws2812_pins>;
|
|
||||||
reg = <0x7e20c000 0x100>; /* PWM */
|
|
||||||
dmas = <&dma 5>;
|
|
||||||
dma-names = "pwm_dma";
|
|
||||||
led-en-gpios = <&gpio 43 0>;
|
|
||||||
rpi,invert = <1>;
|
|
||||||
rpi,num_leds = <25>;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// Disable standard audio
|
|
||||||
//
|
|
||||||
fragment@7 {
|
|
||||||
target = <&audio>;
|
target = <&audio>;
|
||||||
__overlay__ {
|
__overlay__ {
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// pinctrl definitions
|
||||||
|
fragment@1 {
|
||||||
|
target = <&gpio>;
|
||||||
|
__overlay__ {
|
||||||
|
// configure I2S to GPIO 28-31
|
||||||
|
slice_i2s_pins: slice_i2s_pins {
|
||||||
|
brcm,pins = <28 29 30 31>;
|
||||||
|
brcm,function = <BCM2835_FSEL_ALT2>;
|
||||||
|
};
|
||||||
|
slice_ir_pins: slice_ir_pins {
|
||||||
|
brcm,pins = <37>;
|
||||||
|
brcm,function = <BCM2835_FSEL_GPIO_IN>;
|
||||||
|
brcm,pull = <BCM2835_PUD_DOWN>;
|
||||||
|
};
|
||||||
|
cs4265_reset_pins: cs4265_reset_pins {
|
||||||
|
brcm,pins = <33>;
|
||||||
|
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// IR receiver
|
||||||
|
fragment@2 {
|
||||||
|
target-path = "/";
|
||||||
|
__overlay__ {
|
||||||
|
gpio_ir: ir-receiver {
|
||||||
|
compatible = "gpio-ir-receiver";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&slice_ir_pins>;
|
||||||
|
gpios = <&gpio 37 1>;
|
||||||
|
linux,rc-map-name = "rc-rc6-mce";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// enable I2S
|
||||||
|
fragment@3 {
|
||||||
|
target = <&i2s>;
|
||||||
|
__overlay__ {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&slice_i2s_pins>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// I2C
|
||||||
|
fragment@4 {
|
||||||
|
target = <&i2c1>;
|
||||||
|
__overlay__ {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2c1_gpio44>; // use GPIO 44/45 for I2C1
|
||||||
|
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
|
||||||
|
pcf8523@68 {
|
||||||
|
compatible = "nxp,pcf8523";
|
||||||
|
reg = <0x68>;
|
||||||
|
nxp,xtalcap-7pf; // set crystal load to 7pf
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
cs4265@4e {
|
||||||
|
#sound-dai-cells = <0>;
|
||||||
|
compatible = "cirrus,cs4265";
|
||||||
|
reg = <0x4e>;
|
||||||
|
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&cs4265_reset_pins>;
|
||||||
|
|
||||||
|
cs4265-reset-gpios = <&gpio 33 0>; /* AUD_RST_N on GPIO33 */
|
||||||
|
cirrus,no-s16le; // remove S16LE support to workaround I2S controller issue
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// Audio driver
|
||||||
|
fragment@5 {
|
||||||
|
target = <&sound>;
|
||||||
|
__overlay__ {
|
||||||
|
compatible = "fiveninjas,slice";
|
||||||
|
clocks = <&clocks BCM2835_CLOCK_GP0>;
|
||||||
|
clock-names = "gp0";
|
||||||
|
i2s-controller = <&i2s>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -2,32 +2,42 @@
|
|||||||
/plugin/;
|
/plugin/;
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
compatible = "brcm,bcm2708";
|
compatible = "brcm,bcm2708";
|
||||||
|
|
||||||
fragment@0 {
|
// disable pwm
|
||||||
target = <&soc>;
|
fragment@0 {
|
||||||
__overlay__ {
|
target = <&pwm>;
|
||||||
#address-cells = <1>;
|
__overlay__ {
|
||||||
#size-cells = <1>;
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
ws2812: ws2812 {
|
fragment@1 {
|
||||||
compatible = "rpi,ws2812";
|
target = <&soc>;
|
||||||
reg = <0x7e20c000 0x100>; /* PWM */
|
__overlay__ {
|
||||||
dmas = <&dma 5>;
|
#address-cells = <1>;
|
||||||
dma-names = "pwm_dma";
|
#size-cells = <1>;
|
||||||
led-en-gpios = <&gpio 43 0>;
|
|
||||||
|
|
||||||
rpi,invert = <1>;
|
ws2812: ws2812 {
|
||||||
rpi,num_leds = <25>;
|
compatible = "rpi,ws2812";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pwm0_gpio40>;
|
||||||
|
reg = <0x7e20c000 0x100>; /* PWM */
|
||||||
|
dmas = <&dma 5>;
|
||||||
|
dma-names = "pwm_dma";
|
||||||
|
led-en-gpios = <&gpio 43 0>;
|
||||||
|
|
||||||
status = "okay";
|
rpi,invert = <1>;
|
||||||
|
rpi,num_leds = <25>;
|
||||||
|
|
||||||
};
|
status = "okay";
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
__overrides__ {
|
};
|
||||||
invert = <&ws2812>,"rpi,invert:0";
|
};
|
||||||
num_leds = <&ws2812>,"rpi,num_leds:0";
|
};
|
||||||
};
|
|
||||||
|
__overrides__ {
|
||||||
|
invert = <&ws2812>,"rpi,invert:0";
|
||||||
|
num_leds = <&ws2812>,"rpi,num_leds:0";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user