[PATCH 0/5] arm64: dts: allwinner: a64: Enable deinterlace core

60 views
Skip to first unread message

Jernej Skrabec

unread,
Jan 25, 2020, 6:04:03 AM1/25/20
to mri...@kernel.org, we...@csie.org, mch...@kernel.org, rob...@kernel.org, mark.r...@arm.com, linux...@vger.kernel.org, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com
Allwinner A64 contains deinterlace core, compatible to the one found in
H3. It can be used in combination with VPU to playback interlaced videos.

Please take a look.

Best regards,
Jernej

Jernej Skrabec (5):
dt-bindings: interconnect: sunxi: Add A64 MBUS compatible
clk: sunxi-ng: a64: Export MBUS clock
arm64: dts: allwinner: a64: Add MBUS controller node
media: dt-bindings: media: Add Allwinner A64 deinterlace compatible
arm64: dts: allwinner: a64: Add deinterlace core node

.../arm/sunxi/allwinner,sun4i-a10-mbus.yaml | 1 +
.../media/allwinner,sun8i-h3-deinterlace.yaml | 6 ++++-
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 22 +++++++++++++++++++
drivers/clk/sunxi-ng/ccu-sun50i-a64.h | 4 ----
include/dt-bindings/clock/sun50i-a64-ccu.h | 2 +-
5 files changed, 29 insertions(+), 6 deletions(-)

--
2.25.0

Jernej Skrabec

unread,
Jan 25, 2020, 6:04:05 AM1/25/20
to mri...@kernel.org, we...@csie.org, mch...@kernel.org, rob...@kernel.org, mark.r...@arm.com, linux...@vger.kernel.org, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com
A64 contains MBUS controller. Add a compatible for it.

Signed-off-by: Jernej Skrabec <jernej....@siol.net>
---
.../devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml | 1 +
1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml b/Documentation/devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml
index 9370e64992dd..aa0738b4d534 100644
--- a/Documentation/devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml
+++ b/Documentation/devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml
@@ -30,6 +30,7 @@ properties:
enum:
- allwinner,sun5i-a13-mbus
- allwinner,sun8i-h3-mbus
+ - allwinner,sun50i-a64-mbus

reg:
maxItems: 1
--
2.25.0

Jernej Skrabec

unread,
Jan 25, 2020, 6:04:07 AM1/25/20
to mri...@kernel.org, we...@csie.org, mch...@kernel.org, rob...@kernel.org, mark.r...@arm.com, linux...@vger.kernel.org, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com
MBUS clock will be referenced in MBUS controller node.

Export it.

Signed-off-by: Jernej Skrabec <jernej....@siol.net>
---
drivers/clk/sunxi-ng/ccu-sun50i-a64.h | 4 ----
include/dt-bindings/clock/sun50i-a64-ccu.h | 2 +-
2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-a64.h b/drivers/clk/sunxi-ng/ccu-sun50i-a64.h
index 116e6f826d04..54d1f96f4b68 100644
--- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.h
+++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.h
@@ -55,10 +55,6 @@

/* All the DRAM gates are exported */

-/* Some more module clocks are exported */
-
-#define CLK_MBUS 112
-
/* And the DSI and GPU module clock is exported */

#define CLK_NUMBER (CLK_GPU + 1)
diff --git a/include/dt-bindings/clock/sun50i-a64-ccu.h b/include/dt-bindings/clock/sun50i-a64-ccu.h
index e512a1c9b0fc..318eb15c414c 100644
--- a/include/dt-bindings/clock/sun50i-a64-ccu.h
+++ b/include/dt-bindings/clock/sun50i-a64-ccu.h
@@ -131,7 +131,7 @@
#define CLK_AVS 109
#define CLK_HDMI 110
#define CLK_HDMI_DDC 111
-
+#define CLK_MBUS 112
#define CLK_DSI_DPHY 113
#define CLK_GPU 114

--
2.25.0

Jernej Skrabec

unread,
Jan 25, 2020, 6:04:09 AM1/25/20
to mri...@kernel.org, we...@csie.org, mch...@kernel.org, rob...@kernel.org, mark.r...@arm.com, linux...@vger.kernel.org, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com
A64 contains MBUS, which is the bus used by DMA devices to access
system memory.

MBUS controller is responsible for arbitration between channels based
on set priority and can do some other things as well, like report
bandwidth used. It also maps RAM region to different address than CPU.

Signed-off-by: Jernej Skrabec <jernej....@siol.net>
---
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
index 862b47dc9dc9..d225ea1f3b87 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -1061,6 +1061,14 @@ pwm: pwm@1c21400 {
status = "disabled";
};

+ mbus: dram-controller@1c62000 {
+ compatible = "allwinner,sun50i-a64-mbus";
+ reg = <0x01c62000 0x1000>;
+ clocks = <&ccu CLK_MBUS>;
+ dma-ranges = <0x00000000 0x40000000 0xc0000000>;
+ #interconnect-cells = <1>;
+ };
+
csi: csi@1cb0000 {
compatible = "allwinner,sun50i-a64-csi";
reg = <0x01cb0000 0x1000>;
--
2.25.0

Jernej Skrabec

unread,
Jan 25, 2020, 6:04:12 AM1/25/20
to mri...@kernel.org, we...@csie.org, mch...@kernel.org, rob...@kernel.org, mark.r...@arm.com, linux...@vger.kernel.org, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com
Allwinner A64 SoC also contains deinterlace core, compatible to H3.

Add compatible string for it.

Signed-off-by: Jernej Skrabec <jernej....@siol.net>
---
.../bindings/media/allwinner,sun8i-h3-deinterlace.yaml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/media/allwinner,sun8i-h3-deinterlace.yaml b/Documentation/devicetree/bindings/media/allwinner,sun8i-h3-deinterlace.yaml
index 2e40f700e84f..8707df613f6c 100644
--- a/Documentation/devicetree/bindings/media/allwinner,sun8i-h3-deinterlace.yaml
+++ b/Documentation/devicetree/bindings/media/allwinner,sun8i-h3-deinterlace.yaml
@@ -17,7 +17,11 @@ description: |-

properties:
compatible:
- const: allwinner,sun8i-h3-deinterlace
+ oneOf:
+ - const: allwinner,sun8i-h3-deinterlace
+ - items:
+ - const: allwinner,sun50i-a64-deinterlace
+ - const: allwinner,sun8i-h3-deinterlace

Jernej Skrabec

unread,
Jan 25, 2020, 6:04:14 AM1/25/20
to mri...@kernel.org, we...@csie.org, mch...@kernel.org, rob...@kernel.org, mark.r...@arm.com, linux...@vger.kernel.org, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com
A64 contains deinterlace core, compatible to the one found in H3.
It can be used in combination with VPU unit to decode and process
interlaced videos.

Add a node for it.

Signed-off-by: Jernej Skrabec <jernej....@siol.net>
---
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
index d225ea1f3b87..ddaf25782f1f 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -1114,6 +1114,20 @@ dphy: d-phy@1ca1000 {
#phy-cells = <0>;
};

+ deinterlace: deinterlace@1e00000 {
+ compatible = "allwinner,sun50i-a64-deinterlace",
+ "allwinner,sun8i-h3-deinterlace";
+ reg = <0x01e00000 0x20000>;
+ clocks = <&ccu CLK_BUS_DEINTERLACE>,
+ <&ccu CLK_DEINTERLACE>,
+ <&ccu CLK_DRAM_DEINTERLACE>;
+ clock-names = "bus", "mod", "ram";
+ resets = <&ccu RST_BUS_DEINTERLACE>;
+ interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
+ interconnects = <&mbus 9>;
+ interconnect-names = "dma-mem";
+ };
+
hdmi: hdmi@1ee0000 {
compatible = "allwinner,sun50i-a64-dw-hdmi",
"allwinner,sun8i-a83t-dw-hdmi";
--
2.25.0

Jernej Škrabec

unread,
Jan 27, 2020, 2:05:32 PM1/27/20
to Maxime Ripard, we...@csie.org, mch...@kernel.org, rob...@kernel.org, mark.r...@arm.com, linux...@vger.kernel.org, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com
Dne ponedeljek, 27. januar 2020 ob 15:59:31 CET je Maxime Ripard napisal(a):
> Hi,
>
> On Sat, Jan 25, 2020 at 12:03:51PM +0100, Jernej Skrabec wrote:
> > A64 contains MBUS, which is the bus used by DMA devices to access
> > system memory.
> >
> > MBUS controller is responsible for arbitration between channels based
> > on set priority and can do some other things as well, like report
> > bandwidth used. It also maps RAM region to different address than CPU.
> >
> > Signed-off-by: Jernej Skrabec <jernej....@siol.net>
> > ---
> >
> > arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> > b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi index
> > 862b47dc9dc9..d225ea1f3b87 100644
> > --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> > +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> > @@ -1061,6 +1061,14 @@ pwm: pwm@1c21400 {
> >
> > status = "disabled";
> >
> > };
> >
> > + mbus: dram-controller@1c62000 {
> > + compatible = "allwinner,sun50i-a64-mbus";
> > + reg = <0x01c62000 0x1000>;
> > + clocks = <&ccu CLK_MBUS>;
>
> We're merging the clock header patch and the DT through two different
> trees, so you can't use it right away. You should use the raw ID here.

Ok.

>
> (also, as a general remark, it's easier on us to not send the patches
> during the rc6 <-> rc1 phase), so if you can resend them as soon as
> rc1 is out, that would be great :)

Ok, I'll send v2 then.

Best regards,
Jernej


Rob Herring

unread,
Feb 3, 2020, 10:49:17 AM2/3/20
to Jernej Skrabec, mri...@kernel.org, we...@csie.org, mch...@kernel.org, rob...@kernel.org, mark.r...@arm.com, linux...@vger.kernel.org, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com
On Sat, 25 Jan 2020 12:03:49 +0100, Jernej Skrabec wrote:
>
> A64 contains MBUS controller. Add a compatible for it.
>
> Signed-off-by: Jernej Skrabec <jernej....@siol.net>
> ---
> .../devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml | 1 +
> 1 file changed, 1 insertion(+)
>

Acked-by: Rob Herring <ro...@kernel.org>

Rob Herring

unread,
Feb 3, 2020, 10:50:59 AM2/3/20
to Jernej Skrabec, mri...@kernel.org, we...@csie.org, mch...@kernel.org, rob...@kernel.org, mark.r...@arm.com, linux...@vger.kernel.org, devic...@vger.kernel.org, linux-ar...@lists.infradead.org, linux-...@vger.kernel.org, linux...@googlegroups.com
On Sat, 25 Jan 2020 12:03:52 +0100, Jernej Skrabec wrote:
>
> Allwinner A64 SoC also contains deinterlace core, compatible to H3.
>
> Add compatible string for it.
>
> Signed-off-by: Jernej Skrabec <jernej....@siol.net>
> ---
> .../bindings/media/allwinner,sun8i-h3-deinterlace.yaml | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>

Acked-by: Rob Herring <ro...@kernel.org>
Reply all
Reply to author
Forward
0 new messages