* [PATCH v6 0/3] Add support for codec of F1C100s
@ 2024-11-23 12:38 Csókás, Bence
2024-11-23 12:38 ` [PATCH v6 1/5] ASoC: sun4i-codec: Add DMA Max Burst field Csókás, Bence
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Csókás, Bence @ 2024-11-23 12:38 UTC (permalink / raw)
To: linux-sound, linux-arm-kernel, linux-sunxi, linux-kernel
Cc: Csókás, Bence, Mesih Kilinc, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai, Chen-Yu Tsai, Jernej Skrabec,
Samuel Holland, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Maxime Ripard
Support for Allwinner F1C100s/200s series audio was
submitted in 2018 as an RFC series, but was not merged,
despite having only minor errors. However, this is
essential for having audio on these SoCs.
This series was forward-ported/rebased to the best of
my abilities, on top of Linus' tree as of now:
commit 28eb75e178d3 ("Merge tag 'drm-next-2024-11-21' of https://gitlab.freedesktop.org/drm/kernel")
Link: https://lore.kernel.org/all/cover.1543782328.git.mesihkilinc@gmail.com/
As requested by many, this series will now be split in 2, the DMA and the
ALSA/ASoC codec driver. This is the codec part of the series.
The first part (DMA) is at the link below. The first 3 patches of this
series can be applied and built without the former series, but for working
audio you need them both, plus the last 2 Device Tree patches in this series.
Link: https://lore.kernel.org/linux-kernel/20241122161128.2619172-1-csokas.bence@prolan.hu/
Csókás, Bence (1):
dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec
Mesih Kilinc (4):
ASoC: sun4i-codec: Add DMA Max Burst field
ASoC: sun4i-codec: Add support for Allwinner suniv F1C100s
ARM: dts: suniv: f1c100s: Add support for Audio Codec
ARM: dts: suniv: f1c100s: Activate Audio Codec for Lichee Pi Nano
.../sound/allwinner,sun4i-a10-codec.yaml | 31 ++
.../allwinner/suniv-f1c100s-licheepi-nano.dts | 8 +
.../arm/boot/dts/allwinner/suniv-f1c100s.dtsi | 14 +
sound/soc/sunxi/sun4i-codec.c | 367 +++++++++++++++++-
4 files changed, 418 insertions(+), 2 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread* [PATCH v6 1/5] ASoC: sun4i-codec: Add DMA Max Burst field 2024-11-23 12:38 [PATCH v6 0/3] Add support for codec of F1C100s Csókás, Bence @ 2024-11-23 12:38 ` Csókás, Bence 2024-11-23 12:39 ` [PATCH v6 2/5] dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec Csókás, Bence ` (3 subsequent siblings) 4 siblings, 0 replies; 11+ messages in thread From: Csókás, Bence @ 2024-11-23 12:38 UTC (permalink / raw) To: linux-sound, linux-arm-kernel, linux-sunxi, linux-kernel Cc: Mesih Kilinc, Csókás, Bence, Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland From: Mesih Kilinc <mesihkilinc@gmail.com> Allwinner suniv F1C100s has similar DMA engine to sun4i but it has smaller max burst size compared to sun4i. Add a quirk field to differantitate between them. Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com> [ csokas.bence: Rebased on current master ] Signed-off-by: Csókás, Bence <csokas.bence@prolan.hu> --- sound/soc/sunxi/sun4i-codec.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c index 933a0913237c..275f77f60830 100644 --- a/sound/soc/sunxi/sun4i-codec.c +++ b/sound/soc/sunxi/sun4i-codec.c @@ -265,6 +265,8 @@ /* TODO H3 DAP (Digital Audio Processing) bits */ +#define SUN4I_DMA_MAX_BURST (8) + struct sun4i_codec { struct device *dev; struct regmap *regmap; @@ -1761,6 +1763,7 @@ struct sun4i_codec_quirks { unsigned int reg_adc_rxdata; /* RX FIFO offset for DMA config */ bool has_reset; bool playback_only; + u32 dma_max_burst; }; static const struct sun4i_codec_quirks sun4i_codec_quirks = { @@ -1771,6 +1774,7 @@ static const struct sun4i_codec_quirks sun4i_codec_quirks = { .reg_dac_fifoc = REG_FIELD(SUN4I_CODEC_DAC_FIFOC, 0, 31), .reg_dac_txdata = SUN4I_CODEC_DAC_TXDATA, .reg_adc_rxdata = SUN4I_CODEC_ADC_RXDATA, + .dma_max_burst = SUN4I_DMA_MAX_BURST, }; static const struct sun4i_codec_quirks sun6i_a31_codec_quirks = { @@ -1782,6 +1786,7 @@ static const struct sun4i_codec_quirks sun6i_a31_codec_quirks = { .reg_dac_txdata = SUN4I_CODEC_DAC_TXDATA, .reg_adc_rxdata = SUN6I_CODEC_ADC_RXDATA, .has_reset = true, + .dma_max_burst = SUN4I_DMA_MAX_BURST, }; static const struct sun4i_codec_quirks sun7i_codec_quirks = { @@ -1792,6 +1797,7 @@ static const struct sun4i_codec_quirks sun7i_codec_quirks = { .reg_dac_fifoc = REG_FIELD(SUN4I_CODEC_DAC_FIFOC, 0, 31), .reg_dac_txdata = SUN4I_CODEC_DAC_TXDATA, .reg_adc_rxdata = SUN4I_CODEC_ADC_RXDATA, + .dma_max_burst = SUN4I_DMA_MAX_BURST, }; static const struct sun4i_codec_quirks sun8i_a23_codec_quirks = { @@ -1803,6 +1809,7 @@ static const struct sun4i_codec_quirks sun8i_a23_codec_quirks = { .reg_dac_txdata = SUN4I_CODEC_DAC_TXDATA, .reg_adc_rxdata = SUN6I_CODEC_ADC_RXDATA, .has_reset = true, + .dma_max_burst = SUN4I_DMA_MAX_BURST, }; static const struct sun4i_codec_quirks sun8i_h3_codec_quirks = { @@ -1819,6 +1826,7 @@ static const struct sun4i_codec_quirks sun8i_h3_codec_quirks = { .reg_dac_txdata = SUN8I_H3_CODEC_DAC_TXDATA, .reg_adc_rxdata = SUN6I_CODEC_ADC_RXDATA, .has_reset = true, + .dma_max_burst = SUN4I_DMA_MAX_BURST, }; static const struct sun4i_codec_quirks sun8i_v3s_codec_quirks = { @@ -1834,6 +1842,7 @@ static const struct sun4i_codec_quirks sun8i_v3s_codec_quirks = { .reg_dac_txdata = SUN8I_H3_CODEC_DAC_TXDATA, .reg_adc_rxdata = SUN6I_CODEC_ADC_RXDATA, .has_reset = true, + .dma_max_burst = SUN4I_DMA_MAX_BURST, }; static const struct sun4i_codec_quirks sun50i_h616_codec_quirks = { @@ -1843,6 +1852,7 @@ static const struct sun4i_codec_quirks sun50i_h616_codec_quirks = { .reg_dac_fifoc = REG_FIELD(SUN50I_H616_CODEC_DAC_FIFOC, 0, 31), .reg_dac_txdata = SUN8I_H3_CODEC_DAC_TXDATA, .has_reset = true, + .dma_max_burst = SUN4I_DMA_MAX_BURST, }; static const struct of_device_id sun4i_codec_of_match[] = { @@ -1979,14 +1989,14 @@ static int sun4i_codec_probe(struct platform_device *pdev) /* DMA configuration for TX FIFO */ scodec->playback_dma_data.addr = res->start + quirks->reg_dac_txdata; - scodec->playback_dma_data.maxburst = 8; + scodec->playback_dma_data.maxburst = quirks->dma_max_burst; scodec->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES; if (!quirks->playback_only) { /* DMA configuration for RX FIFO */ scodec->capture_dma_data.addr = res->start + quirks->reg_adc_rxdata; - scodec->capture_dma_data.maxburst = 8; + scodec->capture_dma_data.maxburst = quirks->dma_max_burst; scodec->capture_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES; } -- 2.34.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v6 2/5] dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec 2024-11-23 12:38 [PATCH v6 0/3] Add support for codec of F1C100s Csókás, Bence 2024-11-23 12:38 ` [PATCH v6 1/5] ASoC: sun4i-codec: Add DMA Max Burst field Csókás, Bence @ 2024-11-23 12:39 ` Csókás, Bence 2024-11-23 16:22 ` Krzysztof Kozlowski 2024-11-25 14:20 ` Rob Herring (Arm) 2024-11-23 12:39 ` [PATCH v6 3/5] ASoC: sun4i-codec: Add support for Allwinner suniv F1C100s Csókás, Bence ` (2 subsequent siblings) 4 siblings, 2 replies; 11+ messages in thread From: Csókás, Bence @ 2024-11-23 12:39 UTC (permalink / raw) To: Chen-Yu Tsai, Maxime Ripard, linux-sound, devicetree, linux-arm-kernel, linux-sunxi, linux-kernel Cc: Csókás, Bence, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jernej Skrabec, Samuel Holland Add compatible string for Allwinner suniv F1C100s audio codec. [ csokas.bence: Reimplement Mesih Kilinc's binding in YAML ] Signed-off-by: Csókás, Bence <csokas.bence@prolan.hu> --- .../sound/allwinner,sun4i-a10-codec.yaml | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-codec.yaml b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-codec.yaml index ebc9097f936a..ccae64ce3071 100644 --- a/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-codec.yaml +++ b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-codec.yaml @@ -23,6 +23,7 @@ properties: - allwinner,sun8i-h3-codec - allwinner,sun8i-v3s-codec - allwinner,sun50i-h616-codec + - allwinner,suniv-f1c100s-codec reg: maxItems: 1 @@ -77,6 +78,7 @@ properties: - MIC1 - MIC2 - MIC3 + - MIC # Microphone Biases from the SoC - HBIAS @@ -87,6 +89,8 @@ properties: - Headset Mic - Line In - Line Out + - Right FM In + - Left FM In - Mic - Speaker @@ -270,6 +274,33 @@ allOf: - const: rx - const: tx + - if: + properties: + compatible: + enum: + - allwinner,suniv-f1c100s-codec + + then: + properties: + allwinner,audio-routing: + items: + enum: + - HP + - HPCOM + - LINEIN + - LINEOUT + - MIC + - HBIAS + - MBIAS + - Headphone + - Headset Mic + - Line In + - Line Out + - Right FM In + - Left FM In + - Mic + - Speaker + unevaluatedProperties: false examples: -- 2.34.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v6 2/5] dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec 2024-11-23 12:39 ` [PATCH v6 2/5] dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec Csókás, Bence @ 2024-11-23 16:22 ` Krzysztof Kozlowski 2024-11-23 22:09 ` Csókás Bence 2024-11-25 14:20 ` Rob Herring (Arm) 1 sibling, 1 reply; 11+ messages in thread From: Krzysztof Kozlowski @ 2024-11-23 16:22 UTC (permalink / raw) To: Csókás, Bence Cc: Chen-Yu Tsai, Maxime Ripard, linux-sound, devicetree, linux-arm-kernel, linux-sunxi, linux-kernel, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jernej Skrabec, Samuel Holland On Sat, Nov 23, 2024 at 01:39:00PM +0100, Csókás, Bence wrote: > Add compatible string for Allwinner suniv F1C100s audio codec. > > [ csokas.bence: Reimplement Mesih Kilinc's binding in YAML ] > Signed-off-by: Csókás, Bence <csokas.bence@prolan.hu> > --- > .../sound/allwinner,sun4i-a10-codec.yaml | 31 +++++++++++++++++++ > 1 file changed, 31 insertions(+) > Missing changelog - what happened here? If no changes, why ignoring received tag? <form letter> This is a friendly reminder during the review process. It looks like you received a tag and forgot to add it. If you do not know the process, here is a short explanation: Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions, under or above your Signed-off-by tag. Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply. https://elixir.bootlin.com/linux/v6.5-rc3/source/Documentation/process/submitting-patches.rst#L577 If a tag was not added on purpose, please state why and what changed. </form letter> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v6 2/5] dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec 2024-11-23 16:22 ` Krzysztof Kozlowski @ 2024-11-23 22:09 ` Csókás Bence 0 siblings, 0 replies; 11+ messages in thread From: Csókás Bence @ 2024-11-23 22:09 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Chen-Yu Tsai, Maxime Ripard, linux-sound, devicetree, linux-arm-kernel, linux-sunxi, linux-kernel, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jernej Skrabec, Samuel Holland Hi, On 2024. 11. 23. 17:22, Krzysztof Kozlowski wrote: > On Sat, Nov 23, 2024 at 01:39:00PM +0100, Csókás, Bence wrote: >> Add compatible string for Allwinner suniv F1C100s audio codec. >> >> [ csokas.bence: Reimplement Mesih Kilinc's binding in YAML ] >> Signed-off-by: Csókás, Bence <csokas.bence@prolan.hu> >> --- >> .../sound/allwinner,sun4i-a10-codec.yaml | 31 +++++++++++++++++++ >> 1 file changed, 31 insertions(+) >> > > Missing changelog - what happened here? If no changes, why ignoring > received tag? Sorry, I just forgot to collect it, that's all. > <form letter> > This is a friendly reminder during the review process. > > It looks like you received a tag and forgot to add it. > > If you do not know the process, here is a short explanation: Please add > Acked-by/Reviewed-by/Tested-by tags when posting new versions, under > or above your Signed-off-by tag. Tag is "received", when provided > in a message replied to you on the mailing list. Tools like b4 can help > here. However, there's no need to repost patches *only* to add the tags. > The upstream maintainer will do that for tags received on the version > they apply. > > https://elixir.bootlin.com/linux/v6.5-rc3/source/Documentation/process/submitting-patches.rst#L577 > > If a tag was not added on purpose, please state why and what changed. > </form letter> > > Best regards, > Krzysztof Bence ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v6 2/5] dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec 2024-11-23 12:39 ` [PATCH v6 2/5] dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec Csókás, Bence 2024-11-23 16:22 ` Krzysztof Kozlowski @ 2024-11-25 14:20 ` Rob Herring (Arm) 1 sibling, 0 replies; 11+ messages in thread From: Rob Herring (Arm) @ 2024-11-25 14:20 UTC (permalink / raw) To: Csókás, Bence Cc: linux-kernel, Jernej Skrabec, Samuel Holland, Conor Dooley, Chen-Yu Tsai, Maxime Ripard, Mark Brown, linux-sunxi, Krzysztof Kozlowski, Liam Girdwood, linux-arm-kernel, devicetree, linux-sound On Sat, 23 Nov 2024 13:39:00 +0100, Csókás, Bence wrote: > Add compatible string for Allwinner suniv F1C100s audio codec. > > [ csokas.bence: Reimplement Mesih Kilinc's binding in YAML ] > Signed-off-by: Csókás, Bence <csokas.bence@prolan.hu> > --- > .../sound/allwinner,sun4i-a10-codec.yaml | 31 +++++++++++++++++++ > 1 file changed, 31 insertions(+) > Please add Acked-by/Reviewed-by tags when posting new versions. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for acks received on the version they apply. If a tag was not added on purpose, please state why and what changed. Missing tags: Reviewed-by: Rob Herring (Arm) <robh@kernel.org> ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v6 3/5] ASoC: sun4i-codec: Add support for Allwinner suniv F1C100s 2024-11-23 12:38 [PATCH v6 0/3] Add support for codec of F1C100s Csókás, Bence 2024-11-23 12:38 ` [PATCH v6 1/5] ASoC: sun4i-codec: Add DMA Max Burst field Csókás, Bence 2024-11-23 12:39 ` [PATCH v6 2/5] dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec Csókás, Bence @ 2024-11-23 12:39 ` Csókás, Bence 2024-11-26 12:18 ` Mark Brown 2024-12-03 17:50 ` (subset) [PATCH v6 0/3] Add support for codec of F1C100s Mark Brown 2024-12-05 14:25 ` Chen-Yu Tsai 4 siblings, 1 reply; 11+ messages in thread From: Csókás, Bence @ 2024-11-23 12:39 UTC (permalink / raw) To: linux-sound, linux-arm-kernel, linux-sunxi, linux-kernel Cc: Mesih Kilinc, Csókás, Bence, Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland From: Mesih Kilinc <mesihkilinc@gmail.com> Allwinner suniv F1C100s has similar but primitive audio codec comparared to sun4i. Add support for it. Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com> [ csokas.bence: Remove `non_legacy_dai_naming`, add `reg_dac_fifoc` ] Signed-off-by: Csókás, Bence <csokas.bence@prolan.hu> --- Notes: Changes in v2: * Whitespace Changes in v6: * Rebase again on current master * Add `reg_dac_fifoc` sound/soc/sunxi/sun4i-codec.c | 353 ++++++++++++++++++++++++++++++++++ 1 file changed, 353 insertions(+) diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c index 275f77f60830..3d6156fefe75 100644 --- a/sound/soc/sunxi/sun4i-codec.c +++ b/sound/soc/sunxi/sun4i-codec.c @@ -5,6 +5,7 @@ * Copyright 2015 Maxime Ripard <maxime.ripard@free-electrons.com> * Copyright 2015 Adam Sampson <ats@offog.org> * Copyright 2016 Chen-Yu Tsai <wens@csie.org> + * Copyright 2018 Mesih Kilinc <mesihkilinc@gmail.com> * * Based on the Allwinner SDK driver, released under the GPL. */ @@ -267,6 +268,62 @@ #define SUN4I_DMA_MAX_BURST (8) +/* suniv specific registers */ + +#define SUNIV_DMA_MAX_BURST (4) + +/* Codec DAC digital controls and FIFO registers */ +#define SUNIV_CODEC_ADC_FIFOC (0x10) +#define SUNIV_CODEC_ADC_FIFOC_EN_AD (28) +#define SUNIV_CODEC_ADC_FIFOS (0x14) +#define SUNIV_CODEC_ADC_RXDATA (0x18) + +/* Output mixer and gain controls */ +#define SUNIV_CODEC_OM_DACA_CTRL (0x20) +#define SUNIV_CODEC_OM_DACA_CTRL_DACAREN (31) +#define SUNIV_CODEC_OM_DACA_CTRL_DACALEN (30) +#define SUNIV_CODEC_OM_DACA_CTRL_RMIXEN (29) +#define SUNIV_CODEC_OM_DACA_CTRL_LMIXEN (28) +#define SUNIV_CODEC_OM_DACA_CTRL_RHPPAMUTE (27) +#define SUNIV_CODEC_OM_DACA_CTRL_LHPPAMUTE (26) +#define SUNIV_CODEC_OM_DACA_CTRL_RHPIS (25) +#define SUNIV_CODEC_OM_DACA_CTRL_LHPIS (24) +#define SUNIV_CODEC_OM_DACA_CTRL_HPCOM_CTL (22) +#define SUNIV_CODEC_OM_DACA_CTRL_COMPTEN (21) +#define SUNIV_CODEC_OM_DACA_CTRL_RMIXMUTE_MICIN (20) +#define SUNIV_CODEC_OM_DACA_CTRL_RMIXMUTE_LINEIN (19) +#define SUNIV_CODEC_OM_DACA_CTRL_RMIXMUTE_FMIN (18) +#define SUNIV_CODEC_OM_DACA_CTRL_RMIXMUTE_RDAC (17) +#define SUNIV_CODEC_OM_DACA_CTRL_RMIXMUTE_LDAC (16) +#define SUNIV_CODEC_OM_DACA_CTRL_HPPAEN (15) +#define SUNIV_CODEC_OM_DACA_CTRL_LMIXMUTE_MICIN (12) +#define SUNIV_CODEC_OM_DACA_CTRL_LMIXMUTE_LINEIN (11) +#define SUNIV_CODEC_OM_DACA_CTRL_LMIXMUTE_FMIN (10) +#define SUNIV_CODEC_OM_DACA_CTRL_LMIXMUTE_LDAC (9) +#define SUNIV_CODEC_OM_DACA_CTRL_LMIXMUTE_RDAC (8) +#define SUNIV_CODEC_OM_DACA_CTRL_LTLNMUTE (7) +#define SUNIV_CODEC_OM_DACA_CTRL_RTLNMUTE (6) +#define SUNIV_CODEC_OM_DACA_CTRL_HPVOL (0) + +/* Analog Input Mixer controls */ +#define SUNIV_CODEC_ADC_ACTL (0x24) +#define SUNIV_CODEC_ADC_ADCEN (31) +#define SUNIV_CODEC_ADC_MICG (24) +#define SUNIV_CODEC_ADC_LINEINVOL (21) +#define SUNIV_CODEC_ADC_ADCG (16) +#define SUNIV_CODEC_ADC_ADCMIX_MIC (13) +#define SUNIV_CODEC_ADC_ADCMIX_FMINL (12) +#define SUNIV_CODEC_ADC_ADCMIX_FMINR (11) +#define SUNIV_CODEC_ADC_ADCMIX_LINEIN (10) +#define SUNIV_CODEC_ADC_ADCMIX_LOUT (9) +#define SUNIV_CODEC_ADC_ADCMIX_ROUT (8) +#define SUNIV_CODEC_ADC_PASPEEDSELECT (7) +#define SUNIV_CODEC_ADC_FMINVOL (4) +#define SUNIV_CODEC_ADC_MICAMPEN (3) +#define SUNIV_CODEC_ADC_MICBOOST (0) + +#define SUNIV_CODEC_ADC_DBG (0x4c) + struct sun4i_codec { struct device *dev; struct regmap *regmap; @@ -1257,6 +1314,228 @@ static const struct snd_soc_component_driver sun8i_a23_codec_codec = { .endianness = 1, }; +/*suniv F1C100s codec */ + +/* headphone controls */ +static const char * const suniv_codec_hp_src_enum_text[] = { + "DAC", "Mixer", +}; + +static SOC_ENUM_DOUBLE_DECL(suniv_codec_hp_src_enum, + SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_LHPIS, + SUNIV_CODEC_OM_DACA_CTRL_RHPIS, + suniv_codec_hp_src_enum_text); + +static const struct snd_kcontrol_new suniv_codec_hp_src[] = { + SOC_DAPM_ENUM("Headphone Source Playback Route", + suniv_codec_hp_src_enum), +}; + +/* mixer controls */ +static const struct snd_kcontrol_new suniv_codec_adc_mixer_controls[] = { + SOC_DAPM_SINGLE("Right Out Capture Switch", SUNIV_CODEC_ADC_ACTL, + SUNIV_CODEC_ADC_ADCMIX_ROUT, 1, 0), + SOC_DAPM_SINGLE("Left Out Capture Switch", SUNIV_CODEC_ADC_ACTL, + SUNIV_CODEC_ADC_ADCMIX_LOUT, 1, 0), + SOC_DAPM_SINGLE("Line In Capture Switch", SUNIV_CODEC_ADC_ACTL, + SUNIV_CODEC_ADC_ADCMIX_LINEIN, 1, 0), + SOC_DAPM_SINGLE("Right FM In Capture Switch", SUNIV_CODEC_ADC_ACTL, + SUNIV_CODEC_ADC_ADCMIX_FMINR, 1, 0), + SOC_DAPM_SINGLE("Left FM In Capture Switch", SUNIV_CODEC_ADC_ACTL, + SUNIV_CODEC_ADC_ADCMIX_FMINL, 1, 0), + SOC_DAPM_SINGLE("Mic Capture Switch", SUNIV_CODEC_ADC_ACTL, + SUNIV_CODEC_ADC_ADCMIX_MIC, 1, 0), +}; + +static const struct snd_kcontrol_new suniv_codec_dac_lmixer_controls[] = { + SOC_DAPM_SINGLE("Right DAC Playback Switch", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_LMIXMUTE_RDAC, 1, 0), + SOC_DAPM_SINGLE("Left DAC Playback Switch", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_LMIXMUTE_LDAC, 1, 0), + SOC_DAPM_SINGLE("FM In Playback Switch", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_LMIXMUTE_FMIN, 1, 0), + SOC_DAPM_SINGLE("Line In Playback Switch", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_LMIXMUTE_LINEIN, 1, 0), + SOC_DAPM_SINGLE("Mic In Playback Switch", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_LMIXMUTE_MICIN, 1, 0), +}; + +static const struct snd_kcontrol_new suniv_codec_dac_rmixer_controls[] = { + SOC_DAPM_SINGLE("Left DAC Playback Switch", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_RMIXMUTE_LDAC, 1, 0), + SOC_DAPM_SINGLE("Right DAC Playback Switch", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_RMIXMUTE_RDAC, 1, 0), + SOC_DAPM_SINGLE("FM In Playback Switch", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_RMIXMUTE_FMIN, 1, 0), + SOC_DAPM_SINGLE("Line In Playback Switch", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_RMIXMUTE_LINEIN, 1, 0), + SOC_DAPM_SINGLE("Mic In Playback Switch", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_RMIXMUTE_MICIN, 1, 0), +}; + +static const DECLARE_TLV_DB_SCALE(suniv_codec_dvol_scale, -7308, 116, 0); +static const DECLARE_TLV_DB_SCALE(suniv_codec_hp_vol_scale, -6300, 100, 1); +static const DECLARE_TLV_DB_SCALE(suniv_codec_out_mixer_pregain_scale, + -450, 150, 0); + +static const DECLARE_TLV_DB_RANGE(suniv_codec_mic_gain_scale, + 0, 0, TLV_DB_SCALE_ITEM(0, 0, 0), + 1, 7, TLV_DB_SCALE_ITEM(2400, 300, 0), +); + +static const struct snd_kcontrol_new suniv_codec_codec_widgets[] = { + SOC_SINGLE_TLV("DAC Playback Volume", SUN4I_CODEC_DAC_DPC, + SUN4I_CODEC_DAC_DPC_DVOL, 0x3f, 1, + suniv_codec_dvol_scale), + SOC_SINGLE_TLV("Headphone Playback Volume", + SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_HPVOL, 0x3f, 0, + suniv_codec_hp_vol_scale), + SOC_DOUBLE("Headphone Playback Switch", + SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_LHPPAMUTE, + SUNIV_CODEC_OM_DACA_CTRL_RHPPAMUTE, 1, 0), + SOC_SINGLE_TLV("Line In Playback Volume", + SUNIV_CODEC_ADC_ACTL, SUNIV_CODEC_ADC_LINEINVOL, + 0x7, 0, suniv_codec_out_mixer_pregain_scale), + SOC_SINGLE_TLV("FM In Playback Volume", + SUNIV_CODEC_ADC_ACTL, SUNIV_CODEC_ADC_FMINVOL, + 0x7, 0, suniv_codec_out_mixer_pregain_scale), + SOC_SINGLE_TLV("Mic In Playback Volume", + SUNIV_CODEC_ADC_ACTL, SUNIV_CODEC_ADC_MICG, + 0x7, 0, suniv_codec_out_mixer_pregain_scale), + + /* Microphone Amp boost gains */ + SOC_SINGLE_TLV("Mic Boost Volume", SUNIV_CODEC_ADC_ACTL, + SUNIV_CODEC_ADC_MICBOOST, 0x7, 0, + suniv_codec_mic_gain_scale), + SOC_SINGLE_TLV("ADC Capture Volume", + SUNIV_CODEC_ADC_ACTL, SUNIV_CODEC_ADC_ADCG, + 0x7, 0, suniv_codec_out_mixer_pregain_scale), +}; + +static const struct snd_soc_dapm_widget suniv_codec_codec_dapm_widgets[] = { + /* Microphone inputs */ + SND_SOC_DAPM_INPUT("MIC"), + + /* Microphone Bias */ + /* deleted: HBIAS, MBIAS */ + + /* Mic input path */ + SND_SOC_DAPM_PGA("Mic Amplifier", SUNIV_CODEC_ADC_ACTL, + SUNIV_CODEC_ADC_MICAMPEN, 0, NULL, 0), + + /* Line In */ + SND_SOC_DAPM_INPUT("LINEIN"), + + /* FM In */ + SND_SOC_DAPM_INPUT("FMINR"), + SND_SOC_DAPM_INPUT("FMINL"), + + /* Digital parts of the ADCs */ + SND_SOC_DAPM_SUPPLY("ADC Enable", SUNIV_CODEC_ADC_FIFOC, + SUNIV_CODEC_ADC_FIFOC_EN_AD, 0, + NULL, 0), + + /* Analog parts of the ADCs */ + SND_SOC_DAPM_ADC("ADC", "Codec Capture", SUNIV_CODEC_ADC_ACTL, + SUNIV_CODEC_ADC_ADCEN, 0), + + /* ADC Mixers */ + SOC_MIXER_ARRAY("ADC Mixer", SUNIV_CODEC_ADC_ACTL, + SND_SOC_NOPM, 0, + suniv_codec_adc_mixer_controls), + + /* Digital parts of the DACs */ + SND_SOC_DAPM_SUPPLY("DAC Enable", SUN4I_CODEC_DAC_DPC, + SUN4I_CODEC_DAC_DPC_EN_DA, 0, + NULL, 0), + + /* Analog parts of the DACs */ + SND_SOC_DAPM_DAC("Left DAC", "Codec Playback", + SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_DACALEN, 0), + SND_SOC_DAPM_DAC("Right DAC", "Codec Playback", + SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_DACAREN, 0), + + /* Mixers */ + SOC_MIXER_ARRAY("Left Mixer", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_LMIXEN, 0, + suniv_codec_dac_lmixer_controls), + SOC_MIXER_ARRAY("Right Mixer", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_RMIXEN, 0, + suniv_codec_dac_rmixer_controls), + + /* Headphone output path */ + SND_SOC_DAPM_MUX("Headphone Source Playback Route", + SND_SOC_NOPM, 0, 0, suniv_codec_hp_src), + SND_SOC_DAPM_OUT_DRV("Headphone Amp", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_HPPAEN, 0, NULL, 0), + SND_SOC_DAPM_SUPPLY("HPCOM Protection", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_COMPTEN, 0, NULL, 0), + SND_SOC_DAPM_REG(snd_soc_dapm_supply, "HPCOM", SUNIV_CODEC_OM_DACA_CTRL, + SUNIV_CODEC_OM_DACA_CTRL_HPCOM_CTL, 0x3, 0x3, 0), + SND_SOC_DAPM_OUTPUT("HP"), +}; + +static const struct snd_soc_dapm_route suniv_codec_codec_dapm_routes[] = { + /* DAC Routes */ + { "Left DAC", NULL, "DAC Enable" }, + { "Right DAC", NULL, "DAC Enable" }, + + /* Microphone Routes */ + { "Mic Amplifier", NULL, "MIC"}, + + /* Left Mixer Routes */ + { "Left Mixer", "Right DAC Playback Switch", "Right DAC" }, + { "Left Mixer", "Left DAC Playback Switch", "Left DAC" }, + { "Left Mixer", "FM In Playback Switch", "FMINL" }, + { "Left Mixer", "Line In Playback Switch", "LINEIN" }, + { "Left Mixer", "Mic In Playback Switch", "Mic Amplifier" }, + + /* Right Mixer Routes */ + { "Right Mixer", "Left DAC Playback Switch", "Left DAC" }, + { "Right Mixer", "Right DAC Playback Switch", "Right DAC" }, + { "Right Mixer", "FM In Playback Switch", "FMINR" }, + { "Right Mixer", "Line In Playback Switch", "LINEIN" }, + { "Right Mixer", "Mic In Playback Switch", "Mic Amplifier" }, + + /* ADC Mixer Routes */ + { "ADC Mixer", "Right Out Capture Switch", "Right Mixer" }, + { "ADC Mixer", "Left Out Capture Switch", "Left Mixer" }, + { "ADC Mixer", "Line In Capture Switch", "LINEIN" }, + { "ADC Mixer", "Right FM In Capture Switch", "FMINR" }, + { "ADC Mixer", "Left FM In Capture Switch", "FMINL" }, + { "ADC Mixer", "Mic Capture Switch", "Mic Amplifier" }, + + /* Headphone Routes */ + { "Headphone Source Playback Route", "DAC", "Left DAC" }, + { "Headphone Source Playback Route", "DAC", "Right DAC" }, + { "Headphone Source Playback Route", "Mixer", "Left Mixer" }, + { "Headphone Source Playback Route", "Mixer", "Right Mixer" }, + { "Headphone Amp", NULL, "Headphone Source Playback Route" }, + { "HP", NULL, "Headphone Amp" }, + { "HPCOM", NULL, "HPCOM Protection" }, + + /* ADC Routes */ + { "ADC", NULL, "ADC Mixer" }, + { "ADC", NULL, "ADC Enable" }, +}; + +static const struct snd_soc_component_driver suniv_codec_codec = { + .controls = suniv_codec_codec_widgets, + .num_controls = ARRAY_SIZE(suniv_codec_codec_widgets), + .dapm_widgets = suniv_codec_codec_dapm_widgets, + .num_dapm_widgets = ARRAY_SIZE(suniv_codec_codec_dapm_widgets), + .dapm_routes = suniv_codec_codec_dapm_routes, + .num_dapm_routes = ARRAY_SIZE(suniv_codec_codec_dapm_routes), + .idle_bias_on = 1, + .use_pmdown_time = 1, + .endianness = 1, +}; + static const struct snd_soc_component_driver sun4i_codec_component = { .name = "sun4i-codec", .legacy_dai_naming = 1, @@ -1703,6 +1982,56 @@ static struct snd_soc_card *sun50i_h616_codec_create_card(struct device *dev) return card; }; +static const struct snd_soc_dapm_widget suniv_codec_card_dapm_widgets[] = { + SND_SOC_DAPM_HP("Headphone", NULL), + SND_SOC_DAPM_LINE("Line In", NULL), + SND_SOC_DAPM_LINE("Right FM In", NULL), + SND_SOC_DAPM_LINE("Left FM In", NULL), + SND_SOC_DAPM_MIC("Mic", NULL), + SND_SOC_DAPM_SPK("Speaker", sun4i_codec_spk_event), +}; + +/* Connect digital side enables to analog side widgets */ +static const struct snd_soc_dapm_route suniv_codec_card_routes[] = { + /* ADC Routes */ + { "ADC", NULL, "ADC Enable" }, + { "Codec Capture", NULL, "ADC" }, + + /* DAC Routes */ + { "Left DAC", NULL, "DAC Enable" }, + { "Right DAC", NULL, "DAC Enable" }, + { "Left DAC", NULL, "Codec Playback" }, + { "Right DAC", NULL, "Codec Playback" }, +}; + +static struct snd_soc_card *suniv_codec_create_card(struct device *dev) +{ + struct snd_soc_card *card; + int ret; + + card = devm_kzalloc(dev, sizeof(*card), GFP_KERNEL); + if (!card) + return ERR_PTR(-ENOMEM); + + card->dai_link = sun4i_codec_create_link(dev, &card->num_links); + if (!card->dai_link) + return ERR_PTR(-ENOMEM); + + card->dev = dev; + card->name = "F1C100s Audio Codec"; + card->dapm_widgets = suniv_codec_card_dapm_widgets; + card->num_dapm_widgets = ARRAY_SIZE(suniv_codec_card_dapm_widgets); + card->dapm_routes = suniv_codec_card_routes; + card->num_dapm_routes = ARRAY_SIZE(suniv_codec_card_routes); + card->fully_routed = true; + + ret = snd_soc_of_parse_audio_routing(card, "allwinner,audio-routing"); + if (ret) + dev_warn(dev, "failed to parse audio-routing: %d\n", ret); + + return card; +}; + static const struct regmap_config sun4i_codec_regmap_config = { .reg_bits = 32, .reg_stride = 4, @@ -1753,6 +2082,13 @@ static const struct regmap_config sun50i_h616_codec_regmap_config = { .cache_type = REGCACHE_NONE, }; +static const struct regmap_config suniv_codec_regmap_config = { + .reg_bits = 32, + .reg_stride = 4, + .val_bits = 32, + .max_register = SUNIV_CODEC_ADC_DBG, +}; + struct sun4i_codec_quirks { const struct regmap_config *regmap_config; const struct snd_soc_component_driver *codec; @@ -1855,6 +2191,18 @@ static const struct sun4i_codec_quirks sun50i_h616_codec_quirks = { .dma_max_burst = SUN4I_DMA_MAX_BURST, }; +static const struct sun4i_codec_quirks suniv_f1c100s_codec_quirks = { + .regmap_config = &suniv_codec_regmap_config, + .codec = &suniv_codec_codec, + .create_card = suniv_codec_create_card, + .reg_adc_fifoc = REG_FIELD(SUNIV_CODEC_ADC_FIFOC, 0, 31), + .reg_dac_fifoc = REG_FIELD(SUN4I_CODEC_DAC_FIFOC, 0, 31), + .reg_dac_txdata = SUN4I_CODEC_DAC_TXDATA, + .reg_adc_rxdata = SUNIV_CODEC_ADC_RXDATA, + .has_reset = true, + .dma_max_burst = SUNIV_DMA_MAX_BURST, +}; + static const struct of_device_id sun4i_codec_of_match[] = { { .compatible = "allwinner,sun4i-a10-codec", @@ -1884,6 +2232,10 @@ static const struct of_device_id sun4i_codec_of_match[] = { .compatible = "allwinner,sun50i-h616-codec", .data = &sun50i_h616_codec_quirks, }, + { + .compatible = "allwinner,suniv-f1c100s-codec", + .data = &suniv_f1c100s_codec_quirks, + }, {} }; MODULE_DEVICE_TABLE(of, sun4i_codec_of_match); @@ -2073,4 +2425,5 @@ MODULE_AUTHOR("Jon Smirl <jonsmirl@gmail.com>"); MODULE_AUTHOR("Maxime Ripard <maxime.ripard@free-electrons.com>"); MODULE_AUTHOR("Chen-Yu Tsai <wens@csie.org>"); MODULE_AUTHOR("Ryan Walklin <ryan@testtoast.com"); +MODULE_AUTHOR("Mesih Kilinc <mesikilinc@gmail.com>"); MODULE_LICENSE("GPL"); -- 2.34.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v6 3/5] ASoC: sun4i-codec: Add support for Allwinner suniv F1C100s 2024-11-23 12:39 ` [PATCH v6 3/5] ASoC: sun4i-codec: Add support for Allwinner suniv F1C100s Csókás, Bence @ 2024-11-26 12:18 ` Mark Brown 2024-11-27 7:12 ` Csókás Bence 0 siblings, 1 reply; 11+ messages in thread From: Mark Brown @ 2024-11-26 12:18 UTC (permalink / raw) To: Csókás, Bence Cc: linux-sound, linux-arm-kernel, linux-sunxi, linux-kernel, Mesih Kilinc, Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland [-- Attachment #1: Type: text/plain, Size: 363 bytes --] On Sat, Nov 23, 2024 at 01:39:02PM +0100, Csókás, Bence wrote: > Signed-off-by: Csókás, Bence <csokas.bence@prolan.hu> When you write your signoffs like this with the , but no "" (like in your From:) it confuses software and causes everything after the , to get deleted. Probably just including the quotes is the best option to match the email header. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v6 3/5] ASoC: sun4i-codec: Add support for Allwinner suniv F1C100s 2024-11-26 12:18 ` Mark Brown @ 2024-11-27 7:12 ` Csókás Bence 0 siblings, 0 replies; 11+ messages in thread From: Csókás Bence @ 2024-11-27 7:12 UTC (permalink / raw) To: Mark Brown Cc: linux-sound, linux-arm-kernel, linux-sunxi, linux-kernel, Mesih Kilinc, Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland Hi, On 2024. 11. 26. 13:18, Mark Brown wrote: > On Sat, Nov 23, 2024 at 01:39:02PM +0100, Csókás, Bence wrote: > >> Signed-off-by: Csókás, Bence <csokas.bence@prolan.hu> > > When you write your signoffs like this with the , but no "" (like in > your From:) it confuses software and causes everything after the , to > get deleted. Probably just including the quotes is the best option to > match the email header. Git handles it fine since 2.46, before that there was some weirdness in send-email not adding it to the Cc: correctly, but git am & co. worked fine. b4 still has issues with it unfortunately. Link: https://github.com/mricon/b4/issues/50 However, the real problem I think is that git format-patch doesn't add the quotes. What's worse, you'll have a real hard time trying to git config --global user.name "a quoted string". Git tries *really* hard to remove surrounding quotation (and is further aided by the shell). I'll see what I can do. Bence ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: (subset) [PATCH v6 0/3] Add support for codec of F1C100s 2024-11-23 12:38 [PATCH v6 0/3] Add support for codec of F1C100s Csókás, Bence ` (2 preceding siblings ...) 2024-11-23 12:39 ` [PATCH v6 3/5] ASoC: sun4i-codec: Add support for Allwinner suniv F1C100s Csókás, Bence @ 2024-12-03 17:50 ` Mark Brown 2024-12-05 14:25 ` Chen-Yu Tsai 4 siblings, 0 replies; 11+ messages in thread From: Mark Brown @ 2024-12-03 17:50 UTC (permalink / raw) To: linux-sound, linux-arm-kernel, linux-sunxi, linux-kernel, Csókás, Bence Cc: Mesih Kilinc, Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Ripard On Sat, 23 Nov 2024 13:38:55 +0100, Csókás, Bence wrote: > Support for Allwinner F1C100s/200s series audio was > submitted in 2018 as an RFC series, but was not merged, > despite having only minor errors. However, this is > essential for having audio on these SoCs. > This series was forward-ported/rebased to the best of > my abilities, on top of Linus' tree as of now: > commit 28eb75e178d3 ("Merge tag 'drm-next-2024-11-21' of https://gitlab.freedesktop.org/drm/kernel") > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next Thanks! [1/5] ASoC: sun4i-codec: Add DMA Max Burst field commit: cabd4ac290a6ceb87c8dbfb5a3251750e24529e7 [2/5] dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec commit: bb2cc3014d74dfdab0b358b4539a9d2747598663 [3/5] ASoC: sun4i-codec: Add support for Allwinner suniv F1C100s commit: 2198deb823a6ebe110b737614421a4687d3327f4 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v6 0/3] Add support for codec of F1C100s 2024-11-23 12:38 [PATCH v6 0/3] Add support for codec of F1C100s Csókás, Bence ` (3 preceding siblings ...) 2024-12-03 17:50 ` (subset) [PATCH v6 0/3] Add support for codec of F1C100s Mark Brown @ 2024-12-05 14:25 ` Chen-Yu Tsai 4 siblings, 0 replies; 11+ messages in thread From: Chen-Yu Tsai @ 2024-12-05 14:25 UTC (permalink / raw) To: linux-sound, linux-arm-kernel, linux-sunxi, linux-kernel, Csókás, Bence Cc: Mesih Kilinc, Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai, Jernej Skrabec, Samuel Holland, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Ripard On Sat, 23 Nov 2024 13:38:55 +0100, Csókás, Bence wrote: > Support for Allwinner F1C100s/200s series audio was > submitted in 2018 as an RFC series, but was not merged, > despite having only minor errors. However, this is > essential for having audio on these SoCs. > This series was forward-ported/rebased to the best of > my abilities, on top of Linus' tree as of now: > commit 28eb75e178d3 ("Merge tag 'drm-next-2024-11-21' of https://gitlab.freedesktop.org/drm/kernel") > > [...] Applied to dt-for-6.14 in git@github.com:linux-sunxi/linux-sunxi.git, thanks! [1/5] ASoC: sun4i-codec: Add DMA Max Burst field (no commit info) [2/5] dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec (no commit info) [3/5] ASoC: sun4i-codec: Add support for Allwinner suniv F1C100s (no commit info) [4/5] ARM: dts: suniv: f1c100s: Add support for Audio Codec commit: 95b570f7ded1e921eb3fd256d0a70b294f31bd0c [5/5] ARM: dts: suniv: f1c100s: Activate Audio Codec for Lichee Pi Nano commit: 20296f8baa25839585b9060079946f7333a5c5aa Best regards, -- Chen-Yu Tsai <wens@csie.org> ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-12-05 14:25 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-11-23 12:38 [PATCH v6 0/3] Add support for codec of F1C100s Csókás, Bence 2024-11-23 12:38 ` [PATCH v6 1/5] ASoC: sun4i-codec: Add DMA Max Burst field Csókás, Bence 2024-11-23 12:39 ` [PATCH v6 2/5] dt-bindings: sound: Add Allwinner suniv F1C100s Audio Codec Csókás, Bence 2024-11-23 16:22 ` Krzysztof Kozlowski 2024-11-23 22:09 ` Csókás Bence 2024-11-25 14:20 ` Rob Herring (Arm) 2024-11-23 12:39 ` [PATCH v6 3/5] ASoC: sun4i-codec: Add support for Allwinner suniv F1C100s Csókás, Bence 2024-11-26 12:18 ` Mark Brown 2024-11-27 7:12 ` Csókás Bence 2024-12-03 17:50 ` (subset) [PATCH v6 0/3] Add support for codec of F1C100s Mark Brown 2024-12-05 14:25 ` Chen-Yu Tsai
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox