Message ID | 20190527201459.20130-1-peron.clem@gmail.com |
---|---|
Headers | show |
Series | Allwinner H6 DMA support | expand |
On Mon, May 27, 2019 at 10:14:52PM +0200, Clément Péron wrote: > Hi, > > This series has been first proposed by Jernej Skrabec[1]. > As this series is mandatory for SPDIF/I2S support and because he is > busy on Cedrus stuff. I asked him to make the minor change requested > and repost it. > Authorship remains to him. > > I have tested this series with SPDIF driver and added a patch to enable > DMA_SUN6I_CONFIG for arm64. > > Original Post: > " > DMA engine engine on H6 almost the same as on older SoCs. The biggest > difference is that it has slightly rearranged bits in registers and > it needs additional clock, probably due to iommu. > > These patches were tested with I2S connected to HDMI. I2S needs > additional patches which will be sent later. For the whole series, Acked-by: Maxime Ripard <maxime.ripard@bootlin.com> Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
On 27-05-19, 22:14, Clément Péron wrote: > From: Jernej Skrabec <jernej.skrabec@siol.net> > > H6 DMA controller needs additional mbus clock to be enabled. > > Add a quirk for it and handle it accordingly. Applied, thanks
On 27-05-19, 22:14, Clément Péron wrote: > From: Jernej Skrabec <jernej.skrabec@siol.net> > > H6 DMA has more than 32 possible DRQs. That means that current maximum > of 31 DRQs is not enough anymore. > > Add a quirk which will set source and destination DRQ number. Applied, thanks
On 27-05-19, 22:14, Clément Péron wrote: > From: Jernej Skrabec <jernej.skrabec@siol.net> > > H6 DMA has mode fields in different position than any other currently > supported DMA controller. > > Add a quirk for that. Applied, thanks
On 27-05-19, 22:14, Clément Péron wrote: > From: Jernej Skrabec <jernej.skrabec@siol.net> > > H6 DMA has more than 32 supported DRQs, which means that configuration > register is slightly rearranged. It also needs additional clock to be > enabled. > > Add support for it. Applied, thanks
Hi Maxime, On Tue, 28 May 2019 at 13:10, Maxime Ripard <maxime.ripard@bootlin.com> wrote: > > On Mon, May 27, 2019 at 10:14:52PM +0200, Clément Péron wrote: > > Hi, > > > > This series has been first proposed by Jernej Skrabec[1]. > > As this series is mandatory for SPDIF/I2S support and because he is > > busy on Cedrus stuff. I asked him to make the minor change requested > > and repost it. > > Authorship remains to him. > > > > I have tested this series with SPDIF driver and added a patch to enable > > DMA_SUN6I_CONFIG for arm64. > > > > Original Post: > > " > > DMA engine engine on H6 almost the same as on older SoCs. The biggest > > difference is that it has slightly rearranged bits in registers and > > it needs additional clock, probably due to iommu. > > > > These patches were tested with I2S connected to HDMI. I2S needs > > additional patches which will be sent later. > > For the whole series, > Acked-by: Maxime Ripard <maxime.ripard@bootlin.com> Thanks, Is it ok to pick patch 5/6/7 to sunxi tree ? Regards, Clément > > Maxime > > -- > Maxime Ripard, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com
Hi, I tried applying this patch, and it conflicts. There's also a minor issue that sohuld be fixed On Mon, May 27, 2019 at 10:14:58PM +0200, Clément Péron wrote: > From: Jernej Skrabec <jernej.skrabec@siol.net> > > H6 has DMA controller which supports 16 channels. > > Add a node for it. > > Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> > Signed-off-by: Clément Péron <peron.clem@gmail.com> > --- > arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > index 16c5c3d0fd81..f4ea596c82ce 100644 > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > @@ -208,6 +208,18 @@ > reg = <0x03006000 0x400>; > }; > > + dma: dma-controller@3002000 { > + compatible = "allwinner,sun50i-h6-dma"; > + reg = <0x03002000 0x1000>; > + interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>; > + clock-names = "bus", "mbus"; > + dma-channels = <16>; > + dma-requests = <46>; > + resets = <&ccu RST_BUS_DMA>; > + #dma-cells = <1>; > + }; > + > pio: pinctrl@300b000 { > compatible = "allwinner,sun50i-h6-pinctrl"; > reg = <0x0300b000 0x400>; DT nodes are ordered by increasing physical addresses, so this node shouldn't be there. Thanks! Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
On Mon, May 27, 2019 at 10:14:59PM +0200, Clément Péron wrote: > Allwinner sun6i DMA drivers is used on A64 and H6 boards. > > Enable it as a module. > > Signed-off-by: Clément Péron <peron.clem@gmail.com> Applied, thanks Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com