123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- 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(-)
- --- 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>;
- - };
- - };
- - };
- };
- --- a/sound/soc/bcm/pisound.c
- +++ b/sound/soc/bcm/pisound.c
- @@ -954,6 +954,8 @@ static int pisnd_probe(struct platform_d
-
- static int pisnd_remove(struct platform_device *pdev)
- {
- + printi("Unloading.\n");
- +
- if (pisnd_kobj) {
- kobject_put(pisnd_kobj);
- pisnd_kobj = NULL;
|