openwrt/target/linux/brcm2708/patches-4.4/0562-Pisound-dynamic-overlay-1760.patch
Álvaro Fernández Rojas 8b52a8906b brcm2708: update linux 4.4 patches to latest version
As usual these patches were extracted and rebased from the raspberry pi repo:
https://github.com/raspberrypi/linux/tree/rpi-4.4.y

- led1 can't be controlled on rpi-3 for linux 4.4, remove it.
- Fix modules.mk typos.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2017-03-08 09:54:01 +01:00

152 lines
3.0 KiB
Diff

From cdf6acdd6a6270538b0fdd08e79986d4a553062a Mon Sep 17 00:00:00 2001
From: gtrainavicius <gtrainavicius@users.noreply.github.com>
Date: Sat, 10 Dec 2016 16:05:25 +0200
Subject: [PATCH] Pisound dynamic overlay (#1760)
Restructuring pisound-overlay.dts, so it can be loaded and unloaded dynamically using dtoverlay.
Print a logline when the kernel module is removed.
---
arch/arm/boot/dts/overlays/pisound-overlay.dts | 94 ++++++++++++++------------
sound/soc/bcm/pisound.c | 2 +
2 files changed, 52 insertions(+), 44 deletions(-)
diff --git a/arch/arm/boot/dts/overlays/pisound-overlay.dts b/arch/arm/boot/dts/overlays/pisound-overlay.dts
index 7cdfc29..5197e65 100644
--- a/arch/arm/boot/dts/overlays/pisound-overlay.dts
+++ b/arch/arm/boot/dts/overlays/pisound-overlay.dts
@@ -26,6 +26,54 @@
compatible = "brcm,bcm2708";
fragment@0 {
+ target = <&spi0>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+ fragment@1 {
+ target = <&spidev0>;
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@2 {
+ target = <&spidev1>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+ fragment@3 {
+ 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>;
+ };
+ };
+ };
+
+ fragment@4 {
+ target-path = "/";
+ __overlay__ {
+ pcm5102a-codec {
+ #sound-dai-cells = <0>;
+ compatible = "ti,pcm5102a";
+ status = "okay";
+ };
+ };
+ };
+
+ fragment@5 {
target = <&sound>;
__overlay__ {
compatible = "blokaslabs,pisound";
@@ -49,7 +97,7 @@
};
};
- fragment@1 {
+ fragment@6 {
target = <&gpio>;
__overlay__ {
pinctrl-names = "default";
@@ -63,52 +111,10 @@
};
};
- fragment@2 {
+ fragment@7 {
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>;
- };
- };
- };
};
diff --git a/sound/soc/bcm/pisound.c b/sound/soc/bcm/pisound.c
index a3cd089..30903fcf 100644
--- a/sound/soc/bcm/pisound.c
+++ b/sound/soc/bcm/pisound.c
@@ -954,6 +954,8 @@ static int pisnd_probe(struct platform_device *pdev)
static int pisnd_remove(struct platform_device *pdev)
{
+ printi("Unloading.\n");
+
if (pisnd_kobj) {
kobject_put(pisnd_kobj);
pisnd_kobj = NULL;
--
2.1.4