Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1641151 > unrolled thread
| Started by | Icenowy Zheng <icenowy@aosc.io> |
|---|---|
| First post | 2017-05-14 18:40 +0200 |
| Last post | 2017-05-17 11:40 +0200 |
| Articles | 4 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH v7 11/13] ARM: sun8i: v3s: add device nodes for DE2 display pipeline Icenowy Zheng <icenowy@aosc.io> - 2017-05-14 18:40 +0200
Re: [PATCH v7 11/13] ARM: sun8i: v3s: add device nodes for DE2 display pipeline Maxime Ripard <maxime.ripard@free-electrons.com> - 2017-05-15 11:30 +0200
Re: [PATCH v7 11/13] ARM: sun8i: v3s: add device nodes for DE2 display pipeline icenowy@aosc.io - 2017-05-17 11:30 +0200
Re: [PATCH v7 11/13] ARM: sun8i: v3s: add device nodes for DE2 display pipeline icenowy@aosc.io - 2017-05-17 11:40 +0200
| From | Icenowy Zheng <icenowy@aosc.io> |
|---|---|
| Date | 2017-05-14 18:40 +0200 |
| Subject | [PATCH v7 11/13] ARM: sun8i: v3s: add device nodes for DE2 display pipeline |
| Message-ID | <tH4IO-3Wa-23@gated-at.bofh.it> |
Allwinner V3s SoC features a "Display Engine 2.0" with only one mixer
and only one TCON connected to this mixer, which have RGB LCD output.
Add device nodes for this display pipeline.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
---
Changes in v7:
- Change DE2 clock compatible to V3s one.
- Mention only one TCON in commit message.
- Changed commit brief.
arch/arm/boot/dts/sun8i-v3s.dtsi | 87 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 87 insertions(+)
diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
index 71075969e5e6..b71b35734515 100644
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
@@ -41,6 +41,10 @@
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/sun8i-v3s-ccu.h>
+#include <dt-bindings/clock/sun8i-de2.h>
+#include <dt-bindings/reset/sun8i-v3s-ccu.h>
+#include <dt-bindings/reset/sun8i-de2.h>
/ {
#address-cells = <1>;
@@ -59,6 +63,12 @@
};
};
+ de: display-engine {
+ compatible = "allwinner,sun8i-v3s-display-engine";
+ allwinner,pipelines = <&de2_mixer0>;
+ status = "disabled";
+ };
+
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
@@ -93,6 +103,83 @@
#size-cells = <1>;
ranges;
+ de2_clocks: clock@1000000 {
+ compatible = "allwinner,sun8i-v3s-de2-clk";
+ reg = <0x01000000 0x100000>;
+ clocks = <&ccu CLK_DE>,
+ <&ccu CLK_BUS_DE>;
+ clock-names = "mod",
+ "bus";
+ resets = <&ccu RST_BUS_DE>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ };
+
+ de2_mixer0: mixer@1100000 {
+ compatible = "allwinner,sun8i-v3s-de2-mixer";
+ reg = <0x01100000 0x100000>;
+ clocks = <&de2_clocks CLK_MIXER0>,
+ <&de2_clocks CLK_BUS_MIXER0>;
+ clock-names = "mod",
+ "bus";
+ resets = <&de2_clocks RST_MIXER0>;
+ assigned-clocks = <&de2_clocks CLK_MIXER0>;
+ assigned-clock-rates = <150000000>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ mixer0_out: port@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+
+ mixer0_out_tcon0: endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&tcon0_in_mixer0>;
+ };
+ };
+ };
+ };
+
+ tcon0: lcd-controller@1c0c000 {
+ compatible = "allwinner,sun8i-v3s-tcon";
+ reg = <0x01c0c000 0x1000>;
+ interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&ccu CLK_BUS_TCON0>,
+ <&ccu CLK_TCON0>;
+ clock-names = "ahb",
+ "tcon-ch0";
+ clock-output-names = "tcon-pixel-clock";
+ resets = <&ccu RST_BUS_TCON0>;
+ reset-names = "lcd";
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ tcon0_in: port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+
+ tcon0_in_mixer0: endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&mixer0_out_tcon0>;
+ };
+ };
+
+ tcon0_out: port@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+ };
+ };
+ };
+
+
mmc0: mmc@01c0f000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c0f000 0x1000>;
--
2.12.2
[toc] | [next] | [standalone]
| From | Maxime Ripard <maxime.ripard@free-electrons.com> |
|---|---|
| Date | 2017-05-15 11:30 +0200 |
| Subject | Re: [PATCH v7 11/13] ARM: sun8i: v3s: add device nodes for DE2 display pipeline |
| Message-ID | <tHkue-6eH-5@gated-at.bofh.it> |
| In reply to | #1641151 |
[Multipart message — attachments visible in raw view] — view raw
On Mon, May 15, 2017 at 12:30:43AM +0800, Icenowy Zheng wrote:
> + de2_clocks: clock@1000000 {
display_clocks would be better there, we don't have to dissociate de1
with de2
> + compatible = "allwinner,sun8i-v3s-de2-clk";
> + reg = <0x01000000 0x100000>;
> + clocks = <&ccu CLK_DE>,
> + <&ccu CLK_BUS_DE>;
> + clock-names = "mod",
> + "bus";
> + resets = <&ccu RST_BUS_DE>;
> + #clock-cells = <1>;
> + #reset-cells = <1>;
> + };
> +
> + de2_mixer0: mixer@1100000 {
and mixer0 here is enough too.
Is there several of them? Why not just use mixer if there's only one?
> + compatible = "allwinner,sun8i-v3s-de2-mixer";
> + reg = <0x01100000 0x100000>;
> + clocks = <&de2_clocks CLK_MIXER0>,
> + <&de2_clocks CLK_BUS_MIXER0>;
> + clock-names = "mod",
> + "bus";
> + resets = <&de2_clocks RST_MIXER0>;
> + assigned-clocks = <&de2_clocks CLK_MIXER0>;
> + assigned-clock-rates = <150000000>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + mixer0_out: port@1 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <1>;
> +
> + mixer0_out_tcon0: endpoint@0 {
> + reg = <0>;
> + remote-endpoint = <&tcon0_in_mixer0>;
> + };
> + };
> + };
> + };
> +
> + tcon0: lcd-controller@1c0c000 {
> + compatible = "allwinner,sun8i-v3s-tcon";
> + reg = <0x01c0c000 0x1000>;
> + interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&ccu CLK_BUS_TCON0>,
> + <&ccu CLK_TCON0>;
> + clock-names = "ahb",
> + "tcon-ch0";
> + clock-output-names = "tcon-pixel-clock";
> + resets = <&ccu RST_BUS_TCON0>;
> + reset-names = "lcd";
> + status = "disabled";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + tcon0_in: port@0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0>;
> +
> + tcon0_in_mixer0: endpoint@0 {
> + reg = <0>;
> + remote-endpoint = <&mixer0_out_tcon0>;
> + };
> + };
> +
> + tcon0_out: port@1 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <1>;
> + };
> + };
> + };
> +
> +
You have an extra new line here.
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
[toc] | [prev] | [next] | [standalone]
| From | icenowy@aosc.io |
|---|---|
| Date | 2017-05-17 11:30 +0200 |
| Subject | Re: [PATCH v7 11/13] ARM: sun8i: v3s: add device nodes for DE2 display pipeline |
| Message-ID | <tI3rj-1fU-7@gated-at.bofh.it> |
| In reply to | #1641462 |
在 2017-05-15 17:24,Maxime Ripard 写道:
> On Mon, May 15, 2017 at 12:30:43AM +0800, Icenowy Zheng wrote:
>> + de2_clocks: clock@1000000 {
>
> display_clocks would be better there, we don't have to dissociate de1
> with de2
How about de_clocks ? (See A80 DTSI)
>
>> + compatible = "allwinner,sun8i-v3s-de2-clk";
>> + reg = <0x01000000 0x100000>;
>> + clocks = <&ccu CLK_DE>,
>> + <&ccu CLK_BUS_DE>;
>> + clock-names = "mod",
>> + "bus";
>> + resets = <&ccu RST_BUS_DE>;
>> + #clock-cells = <1>;
>> + #reset-cells = <1>;
>> + };
>> +
>> + de2_mixer0: mixer@1100000 {
>
> and mixer0 here is enough too.
>
> Is there several of them? Why not just use mixer if there's only one?
Nope, here it's tagged 0 only for consistency with other SoCs.
>
>> + compatible = "allwinner,sun8i-v3s-de2-mixer";
>> + reg = <0x01100000 0x100000>;
>> + clocks = <&de2_clocks CLK_MIXER0>,
>> + <&de2_clocks CLK_BUS_MIXER0>;
>> + clock-names = "mod",
>> + "bus";
>> + resets = <&de2_clocks RST_MIXER0>;
>> + assigned-clocks = <&de2_clocks CLK_MIXER0>;
>> + assigned-clock-rates = <150000000>;
>> +
>> + ports {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + mixer0_out: port@1 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + reg = <1>;
>> +
>> + mixer0_out_tcon0: endpoint@0 {
>> + reg = <0>;
>> + remote-endpoint = <&tcon0_in_mixer0>;
>> + };
>> + };
>> + };
>> + };
>> +
>> + tcon0: lcd-controller@1c0c000 {
>> + compatible = "allwinner,sun8i-v3s-tcon";
>> + reg = <0x01c0c000 0x1000>;
>> + interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
>> + clocks = <&ccu CLK_BUS_TCON0>,
>> + <&ccu CLK_TCON0>;
>> + clock-names = "ahb",
>> + "tcon-ch0";
>> + clock-output-names = "tcon-pixel-clock";
>> + resets = <&ccu RST_BUS_TCON0>;
>> + reset-names = "lcd";
>> + status = "disabled";
>> +
>> + ports {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + tcon0_in: port@0 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + reg = <0>;
>> +
>> + tcon0_in_mixer0: endpoint@0 {
>> + reg = <0>;
>> + remote-endpoint = <&mixer0_out_tcon0>;
>> + };
>> + };
>> +
>> + tcon0_out: port@1 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + reg = <1>;
>> + };
>> + };
>> + };
>> +
>> +
>
> You have an extra new line here.
>
> Maxime
[toc] | [prev] | [next] | [standalone]
| From | icenowy@aosc.io |
|---|---|
| Date | 2017-05-17 11:40 +0200 |
| Subject | Re: [PATCH v7 11/13] ARM: sun8i: v3s: add device nodes for DE2 display pipeline |
| Message-ID | <tI3AZ-1j2-5@gated-at.bofh.it> |
| In reply to | #1643170 |
在 2017-05-17 17:27,icenowy@aosc.io 写道:
> 在 2017-05-15 17:24,Maxime Ripard 写道:
>> On Mon, May 15, 2017 at 12:30:43AM +0800, Icenowy Zheng wrote:
>>> + de2_clocks: clock@1000000 {
>>
>> display_clocks would be better there, we don't have to dissociate de1
>> with de2
>
> How about de_clocks ? (See A80 DTSI)
Oh I regretted... de here indicates "de1".
display_clocks is better.
>
>>
>>> + compatible = "allwinner,sun8i-v3s-de2-clk";
>>> + reg = <0x01000000 0x100000>;
>>> + clocks = <&ccu CLK_DE>,
>>> + <&ccu CLK_BUS_DE>;
>>> + clock-names = "mod",
>>> + "bus";
>>> + resets = <&ccu RST_BUS_DE>;
>>> + #clock-cells = <1>;
>>> + #reset-cells = <1>;
>>> + };
>>> +
>>> + de2_mixer0: mixer@1100000 {
>>
>> and mixer0 here is enough too.
>>
>> Is there several of them? Why not just use mixer if there's only one?
>
> Nope, here it's tagged 0 only for consistency with other SoCs.
>
>>
>>> + compatible = "allwinner,sun8i-v3s-de2-mixer";
>>> + reg = <0x01100000 0x100000>;
>>> + clocks = <&de2_clocks CLK_MIXER0>,
>>> + <&de2_clocks CLK_BUS_MIXER0>;
>>> + clock-names = "mod",
>>> + "bus";
>>> + resets = <&de2_clocks RST_MIXER0>;
>>> + assigned-clocks = <&de2_clocks CLK_MIXER0>;
>>> + assigned-clock-rates = <150000000>;
>>> +
>>> + ports {
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> +
>>> + mixer0_out: port@1 {
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> + reg = <1>;
>>> +
>>> + mixer0_out_tcon0: endpoint@0 {
>>> + reg = <0>;
>>> + remote-endpoint = <&tcon0_in_mixer0>;
>>> + };
>>> + };
>>> + };
>>> + };
>>> +
>>> + tcon0: lcd-controller@1c0c000 {
>>> + compatible = "allwinner,sun8i-v3s-tcon";
>>> + reg = <0x01c0c000 0x1000>;
>>> + interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
>>> + clocks = <&ccu CLK_BUS_TCON0>,
>>> + <&ccu CLK_TCON0>;
>>> + clock-names = "ahb",
>>> + "tcon-ch0";
>>> + clock-output-names = "tcon-pixel-clock";
>>> + resets = <&ccu RST_BUS_TCON0>;
>>> + reset-names = "lcd";
>>> + status = "disabled";
>>> +
>>> + ports {
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> +
>>> + tcon0_in: port@0 {
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> + reg = <0>;
>>> +
>>> + tcon0_in_mixer0: endpoint@0 {
>>> + reg = <0>;
>>> + remote-endpoint = <&mixer0_out_tcon0>;
>>> + };
>>> + };
>>> +
>>> + tcon0_out: port@1 {
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> + reg = <1>;
>>> + };
>>> + };
>>> + };
>>> +
>>> +
>>
>> You have an extra new line here.
>>
>> Maxime
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web