openwrt/target/linux/bcm27xx/patches-4.19/950-0800-adds-LED-OFF-feature-to-HiFiBerry-DAC-DAC-PRO-sound-.patch
Adrian Schmutzler 7d7aa2fd92 brcm2708: rename target to bcm27xx
This change makes the names of Broadcom targets consistent by using
the common notation based on SoC/CPU ID (which is used internally
anyway), bcmXXXX instead of brcmXXXX.
This is even used for target TITLE in make menuconfig already,
only the short target name used brcm so far.

Despite, since subtargets range from bcm2708 to bcm2711, it seems
appropriate to use bcm27xx instead of bcm2708 (again, as already done
for BOARDNAME).

This also renames the packages brcm2708-userland and brcm2708-gpu-fw.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-02-14 14:10:51 +01:00

78 lines
3.0 KiB
Diff

From 5eccee0e620b799558d89ebee29280116ad37e4f Mon Sep 17 00:00:00 2001
From: j-schambacher <joerg@i2audio.com>
Date: Mon, 27 Jan 2020 20:58:24 +0100
Subject: [PATCH] adds LED OFF feature to HiFiBerry DAC+/DAC+PRO sound
cards
This adds a DT overlay parameter 'leds_off' which allows
to switch off the onboard activity LEDs at all times
which has been requested by some users.
Signed-off-by: Joerg Schambacher <joerg@i2audio.com>
---
arch/arm/boot/dts/overlays/README | 2 ++
.../boot/dts/overlays/hifiberry-dacplus-overlay.dts | 1 +
sound/soc/bcm/hifiberry_dacplus.c | 10 +++++++++-
3 files changed, 12 insertions(+), 1 deletion(-)
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -906,6 +906,8 @@ Params: 24db_digital_gain Allow ga
that does not result in clipping/distortion!)
slave Force DAC+ Pro into slave mode, using Pi as
master for bit clock and frame clock.
+ leds_off If set to 'true' the onboard indicator LEDs
+ are switched off at all times.
Name: hifiberry-dacplusadc
--- a/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
+++ b/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
@@ -55,5 +55,6 @@
24db_digital_gain =
<&hifiberry_dacplus>,"hifiberry,24db_digital_gain?";
slave = <&hifiberry_dacplus>,"hifiberry-dacplus,slave?";
+ leds_off = <&hifiberry_dacplus>,"hifiberry-dacplus,leds_off?";
};
};
--- a/sound/soc/bcm/hifiberry_dacplus.c
+++ b/sound/soc/bcm/hifiberry_dacplus.c
@@ -50,6 +50,7 @@ struct pcm512x_priv {
static bool slave;
static bool snd_rpi_hifiberry_is_dacpro;
static bool digital_gain_0db_limit = true;
+static bool leds_off;
static void snd_rpi_hifiberry_dacplus_select_clk(struct snd_soc_component *component,
int clk_id)
@@ -171,7 +172,10 @@ static int snd_rpi_hifiberry_dacplus_ini
snd_soc_component_update_bits(component, PCM512x_GPIO_EN, 0x08, 0x08);
snd_soc_component_update_bits(component, PCM512x_GPIO_OUTPUT_4, 0x0f, 0x02);
- snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x08, 0x08);
+ if (leds_off)
+ snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x08, 0x00);
+ else
+ snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x08, 0x08);
if (digital_gain_0db_limit)
{
@@ -251,6 +255,8 @@ static int snd_rpi_hifiberry_dacplus_sta
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_component *component = rtd->codec_dai->component;
+ if (leds_off)
+ return 0;
snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x08, 0x08);
return 0;
}
@@ -319,6 +325,8 @@ static int snd_rpi_hifiberry_dacplus_pro
pdev->dev.of_node, "hifiberry,24db_digital_gain");
slave = of_property_read_bool(pdev->dev.of_node,
"hifiberry-dacplus,slave");
+ leds_off = of_property_read_bool(pdev->dev.of_node,
+ "hifiberry-dacplus,leds_off");
}
ret = devm_snd_soc_register_card(&pdev->dev,