mbox series

[v4,00/10] Add audio support for LPC32XX CPUs

Message ID 20240620175657.358273-1-piotr.wojtaszczyk@timesys.com
Headers show
Series Add audio support for LPC32XX CPUs | expand

Message

Piotr Wojtaszczyk June 20, 2024, 5:56 p.m. UTC
This pach set is to bring back audio to machines with a LPC32XX CPU.
The legacy LPC32XX SoC used to have audio spport in linux 2.6.27.
The support was dropped due to lack of interest from mainaeners.

Piotr Wojtaszczyk (10):
  dt-bindings: dma: pl08x: Add dma-cells description
  dt-bindings: dma: Add lpc32xx DMA mux binding
  ASoC: dt-bindings: lpc32xx: Add lpc32xx i2s DT binding
  ARM: dts: lpc32xx: Add missing dma and i2s properties
  clk: lpc32xx: initialize regmap using parent syscon
  dmaengine: Add dma router for pl08x in LPC32XX SoC
  ARM: lpc32xx: Remove pl08x platform data in favor for device tree
  mtd: rawnand: lpx32xx: Request DMA channels using DT entries
  ASoC: fsl: Add i2s and pcm drivers for LPC32xx CPUs
  i2x: pnx: Use threaded irq to fix warning from del_timer_sync()

 .../devicetree/bindings/dma/arm-pl08x.yaml    |   7 +
 .../bindings/dma/nxp,lpc3220-dmamux.yaml      |  56 +++
 .../bindings/sound/nxp,lpc3220-i2s.yaml       |  73 ++++
 MAINTAINERS                                   |  21 +
 arch/arm/boot/dts/nxp/lpc/lpc32xx.dtsi        |  53 ++-
 arch/arm/mach-lpc32xx/phy3250.c               |  54 ---
 drivers/clk/Kconfig                           |   1 +
 drivers/clk/nxp/clk-lpc32xx.c                 |  10 +-
 drivers/dma/Kconfig                           |   9 +
 drivers/dma/Makefile                          |   1 +
 drivers/dma/lpc32xx-dmamux.c                  | 195 +++++++++
 drivers/i2c/busses/i2c-pnx.c                  |   4 +-
 drivers/mtd/nand/raw/lpc32xx_mlc.c            |  10 +-
 drivers/mtd/nand/raw/lpc32xx_slc.c            |  10 +-
 sound/soc/fsl/Kconfig                         |   7 +
 sound/soc/fsl/Makefile                        |   2 +
 sound/soc/fsl/lpc3xxx-i2s.c                   | 376 ++++++++++++++++++
 sound/soc/fsl/lpc3xxx-i2s.h                   |  79 ++++
 sound/soc/fsl/lpc3xxx-pcm.c                   |  73 ++++
 19 files changed, 954 insertions(+), 87 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/dma/nxp,lpc3220-dmamux.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/nxp,lpc3220-i2s.yaml
 create mode 100644 drivers/dma/lpc32xx-dmamux.c
 create mode 100644 sound/soc/fsl/lpc3xxx-i2s.c
 create mode 100644 sound/soc/fsl/lpc3xxx-i2s.h
 create mode 100644 sound/soc/fsl/lpc3xxx-pcm.c

Comments

Markus Elfring June 21, 2024, 5:45 a.m. UTC | #1
> This allows to share the regmap with other simple-mfd devices like
> nxp,lpc32xx-dmamux

Please choose an imperative wording for an improved change description.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.10-rc4#n94

Regards,
Markus
Markus Elfring June 21, 2024, 5:56 a.m. UTC | #2
> With the driver for nxp,lpc3220-dmamux we can remove the pl08x platform
> data and let pl08x driver to create peripheral channels from the DT
> properties.

Do you see opportunities to improve such a change description?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.10-rc4#n94

Regards,
Markus
Krzysztof Kozlowski June 21, 2024, 6:12 a.m. UTC | #3
On 20/06/2024 19:56, Piotr Wojtaszczyk wrote:
> Recover dma-cells description from the legacy DT binding.

Fixes: 6f64aa5746d2 ("dt-bindings: dma: convert arm-pl08x to yaml")
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>


Best regards,
Krzysztof
Krzysztof Kozlowski June 21, 2024, 6:18 a.m. UTC | #4
On 20/06/2024 19:56, Piotr Wojtaszczyk wrote:
> Add nxp,lpc3220-i2s DT binding documentation.
> 
> Signed-off-by: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>

Thanks for doing this. Appreciated.

>  
> +FREESCALE SOC LPC32XX SOUND DRIVERS
> +M:	J.M.B. Downing <jonathan.downing@nautel.com>
> +M:	Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
> +R:	Vladimir Zapolskiy <vz@mleia.com>
> +L:	alsa-devel@alsa-project.org (moderated for non-subscribers)
> +L:	linuxppc-dev@lists.ozlabs.org
> +S:	Maintained
> +F:	Documentation/devicetree/bindings/sound/nxp,lpc3220-i2s.yaml
> +N:	lpc32xx

Drop the last "N:".

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof
Krzysztof Kozlowski June 21, 2024, 6:21 a.m. UTC | #5
On 20/06/2024 19:56, Piotr Wojtaszczyk wrote:
>  
> -	base = of_iomap(np, 0);
> -	if (!base) {
> -		pr_err("failed to map system control block registers\n");
> -		return;
> -	}
> -
> -	clk_regmap = regmap_init_mmio(NULL, base, &lpc32xx_scb_regmap_config);
> +	clk_regmap = syscon_node_to_regmap(np->parent);
>  	if (IS_ERR(clk_regmap)) {
>  		pr_err("failed to regmap system control block: %ld\n",
>  			PTR_ERR(clk_regmap));
> -		iounmap(base);

This looks backwards incompatible. You should keep the fallback way.

Best regards,
Krzysztof
Krzysztof Kozlowski June 21, 2024, 6:25 a.m. UTC | #6
On 21/06/2024 07:56, Markus Elfring wrote:
>> With the driver for nxp,lpc3220-dmamux we can remove the pl08x platform
>> data and let pl08x driver to create peripheral channels from the DT
>> properties.
> 
> Do you see opportunities to improve such a change description?
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.10-rc4#n94

<form letter>
Feel free to ignore all comments from Markus, regardless whether the
suggestion is reasonable or not. This person is banned from LKML and
several maintainers ignore Markus' feedback, because it is just a waste
of time.
</form letter>

Best regards,
Krzysztof