aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.4/0562-Pisound-dynamic-overlay-1760.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.4/0562-Pisound-dynamic-overlay-1760.patch')
-rw-r--r--target/linux/brcm2708/patches-4.4/0562-Pisound-dynamic-overlay-1760.patch151
1 files changed, 151 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.4/0562-Pisound-dynamic-overlay-1760.patch b/target/linux/brcm2708/patches-4.4/0562-Pisound-dynamic-overlay-1760.patch
new file mode 100644
index 0000000000..b1aa05f90e
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.4/0562-Pisound-dynamic-overlay-1760.patch
@@ -0,0 +1,151 @@
+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
+