MIPS: CI20: add HDMI out support
Subsystems (7)
v2 cover MIPS: CI20: add HDMI out support
* Converted .txt bindings to .yaml (by Sam Ravnborg <[email protected]> - big THANKS)
RFC V1 2020-02-26 20:13:06:
This patch series adds HDMI output to the jz4780/CI20 board.
It is based on taking the old 3.18 vendor kernel and trying to achieve the same with modern DTS setup and new/modified drivers.
Unfortunately, in this first RFC, only EDID and creation of /dev/fb0 are working. Also, HDMI hot plugging is detected.
But there is no HDMI output signal. So some tiny piece seems to be missing to enable/configure the Synposys HDMI controller.
We need help from the community to fix this.
Original authors of most patches are
* Paul Boddie <[email protected]>
* Zubair Lutfullah Kakakhel <[email protected]>
H. Nikolaus Schaller (2):
drm: ingenic-drm: add MODULE_DEVICE_TABLE
MIPS: CI20: defconfig: configure for DRM_DW_HDMI_JZ4780
Paul Boddie (4):
drm: ingenic: add jz4780 Synopsys HDMI driver.
pinctrl: ingenic: add hdmi-ddc pin control group
MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller
MIPS: DTS: CI20: add HDMI setup
Sam Ravnborg (2):
dt-bindings: display: add ingenic-jz4780-lcd DT Schema
dt-bindings: display: add ingenic-jz4780-hdmi DT Schema
.../bindings/display/ingenic-jz4780-hdmi.yaml | 83 ++++++++++++ .../bindings/display/ingenic-jz4780-lcd.yaml | 78 ++++++++++++ arch/mips/boot/dts/ingenic/ci20.dts | 64 ++++++++++ arch/mips/boot/dts/ingenic/jz4780.dtsi | 32 +++++ arch/mips/configs/ci20_defconfig | 3 + drivers/gpu/drm/ingenic/Kconfig | 8 ++ drivers/gpu/drm/ingenic/Makefile | 1 + drivers/gpu/drm/ingenic/dw_hdmi-jz4780.c | 120 ++++++++++++++++++ drivers/gpu/drm/ingenic/ingenic-drm.c | 2 + drivers/pinctrl/pinctrl-ingenic.c | 7 + 10 files changed, 398 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml create mode 100644 drivers/gpu/drm/ingenic/dw_hdmi-jz4780.c
Signature · 1 line
2.23.0
RFC v2 1/8 dt-bindings: display: add ingenic-jz4780-lcd DT Schema
From: Sam Ravnborg <[email protected]>
Add DT bindings for the LCD controller on the jz4780 SoC Based on .txt binding from Zubair Lutfullah Kakakhel
--- .../bindings/display/ingenic-jz4780-lcd.yaml | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +78 -0
@@ -0,0 +1,78 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/ingenic-jz4780-lcd.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Bindings for Ingenic JZ4780 LCD Controller + +maintainers: + - Zubair Lutfullah Kakakhel <[email protected]> + - H. Nikolaus Schaller <[email protected]> + +description: | + LCD Controller is the Display Controller for the Ingenic JZ4780 SoC + +properties: + compatible: + items: + - const: ingenic,jz4780-lcd + + reg: + maxItems: 1 + description: the address & size of the LCD controller registers + + interrupts: + maxItems: 1 + description: Specifies the interrupt provided by parent + + clocks: + maxItems: 2 + description: Clock specifiers for the JZ4780_CLK_TVE JZ4780_CLK_LCD0PIXCLK + + clock-names: + items: + - const: lcd_clk + - const: lcd_pixclk + + port: + type: object + description: | + A port node with endpoint definitions as defined in + Documentation/devicetree/bindings/media/video-interfaces.txt + +required: + - compatible + - reg + - interrupts + - clocks + - clock-names + - port + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/jz4780-cgu.h> + lcd: jz4780-lcdk@0x13050000 { + compatible = "ingenic,jz4780-lcd"; + reg = <0x13050000 0x1800>; + + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>; + clock-names = "lcd_clk", "lcd_pixclk"; + + interrupt-parent = <&intc>; + interrupts = <31>; + + jz4780_lcd_out: port { + #address-cells = <1>; + #size-cells = <0>; + + jz4780_out_hdmi: endpoint@0 { + reg = <0>; + remote-endpoint = <&hdmi_in_lcd>; + }; + }; + }; + +...
Signature · 1 line
2.23.0
Re: [RFC v2 1/8] dt-bindings: display: add ingenic-jz4780-lcd DT Schema
Hi Nikolaus.
Quoted 10 lines · H. Nikolaus Schaller
From: Sam Ravnborg <[email protected]>
Add DT bindings for the LCD controller on the jz4780 SoC Based on .txt binding from Zubair Lutfullah Kakakhel
Signed-off-by Sam Ravnborg <[email protected]>Cc Zubair Lutfullah Kakakhel <[email protected]>Cc H. Nikolaus Schaller <[email protected]>Cc Rob Herring <[email protected]>
As this patch was sent to you and you forward it you need to testify that this is OK.
To do so follow the rules of the Developemnt Certificate of Origin as can be found in SubmittingPatches.rst.
In other words - you need to add your Signed-off-by: xxx <mail> to the patch.
In the end we want to be able to see the patch the patch has taken reading the Signed-off-by: lines from top to bottom.
Please check other patches in this series for the same issue.
Sam
Quoted 91 lines
--- .../bindings/display/ingenic-jz4780-lcd.yaml | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yamlDocumentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +78
-0@@ -0,0 +1,78 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/ingenic-jz4780-lcd.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Bindings for Ingenic JZ4780 LCD Controller + +maintainers: + - Zubair Lutfullah Kakakhel <[email protected]> + - H. Nikolaus Schaller <[email protected]> + +description: | + LCD Controller is the Display Controller for the Ingenic JZ4780 SoC + +properties: + compatible: + items: + - const: ingenic,jz4780-lcd + + reg: + maxItems: 1 + description: the address & size of the LCD controller registers + + interrupts: + maxItems: 1 + description: Specifies the interrupt provided by parent + + clocks: + maxItems: 2 + description: Clock specifiers for the JZ4780_CLK_TVE JZ4780_CLK_LCD0PIXCLK + + clock-names: + items: + - const: lcd_clk + - const: lcd_pixclk + + port: + type: object + description: | + A port node with endpoint definitions as defined in + Documentation/devicetree/bindings/media/video-interfaces.txt + +required: + - compatible + - reg + - interrupts + - clocks + - clock-names + - port + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/jz4780-cgu.h> + lcd: jz4780-lcdk@0x13050000 { + compatible = "ingenic,jz4780-lcd"; + reg = <0x13050000 0x1800>; + + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>; + clock-names = "lcd_clk", "lcd_pixclk"; + + interrupt-parent = <&intc>; + interrupts = <31>; + + jz4780_lcd_out: port { + #address-cells = <1>; + #size-cells = <0>; + + jz4780_out_hdmi: endpoint@0 { + reg = <0>; + remote-endpoint = <&hdmi_in_lcd>; + }; + }; + }; + +...Signature · 1 line
2.23.0
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [RFC v2 1/8] dt-bindings: display: add ingenic-jz4780-lcd DT Schema
Hi Sam,
Quoted 21 lines
Am 28.02.2020 um 19:42 schrieb Sam Ravnborg <[email protected]>:
Hi Nikolaus.
Quoted 10 lines · H. Nikolaus Schaller
From: Sam Ravnborg <[email protected]>
Add DT bindings for the LCD controller on the jz4780 SoC Based on .txt binding from Zubair Lutfullah Kakakhel
Signed-off-by Sam Ravnborg <[email protected]>Cc Zubair Lutfullah Kakakhel <[email protected]>Cc H. Nikolaus Schaller <[email protected]>Cc Rob Herring <[email protected]>As this patch was sent to you and you forward it you need to testify that this is OK.
To do so follow the rules of the Developemnt Certificate of Origin as can be found inSubmittingPatches.rst.
Quoted 4 lines
In other words - you need to add your Signed-off-by: xxx <mail> to the patch.
In the end we want to be able to see the patch the patch has taken reading the Signed-off-by: lines from top to bottom.
Ok, never someone explained this as precise as you did. Thanks!
Quoted 1 line
Please check other patches in this series for the same issue.
Ok.
BR and thanks,
Nikolaus
Quoted 86 lines
Sam
Quoted 83 lines
---
.../bindings/display/ingenic-jz4780-lcd.yaml| 78 +++++++++++++++++++1 file changed, 78 insertions(+)create mode 100644
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yamlDocumentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +72
-0@@ -0,0 +1,78 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/ingenic-jz4780-lcd.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Bindings for Ingenic JZ4780 LCD Controller + +maintainers: + - Zubair Lutfullah Kakakhel <[email protected]> + - H. Nikolaus Schaller <[email protected]> + +description: | + LCD Controller is the Display Controller for the Ingenic JZ4780 SoC + +properties: + compatible: + items: + - const: ingenic,jz4780-lcd + + reg: + maxItems: 1 + description: the address & size of the LCD controller registers + + interrupts: + maxItems: 1 + description: Specifies the interrupt provided by parent + + clocks: + maxItems: 2 + description: Clock specifiers for the JZ4780_CLK_TVE JZ4780_CLK_LCD0PIXCLK + + clock-names: + items: + - const: lcd_clk + - const: lcd_pixclk + + port: + type: object + description: | + A port node with endpoint definitions as defined in + Documentation/devicetree/bindings/media/video-interfaces.txt + +required: + - compatible + - reg + - interrupts + - clocks + - clock-names + - port + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/jz4780-cgu.h> + lcd: jz4780-lcdk@0x13050000 { + compatible = "ingenic,jz4780-lcd"; + reg = <0x13050000 0x1800>; + + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>; + clock-names = "lcd_clk", "lcd_pixclk"; + + interrupt-parent = <&intc>; + interrupts = <31>; + + jz4780_lcd_out: port { + #address-cells = <1>; + #size-cells = <0>; + + jz4780_out_hdmi: endpoint@0 { + reg = <0>;
Quoted 8 lines
Quoted 8 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +6
-0+ remote-endpoint = <&hdmi_in_lcd>; + }; + }; + }; + +...Signature · 1 line
2.23.0
Dr. Nikolaus Schaller
Geschäftsführer / Managing Director
Modiblast Pharma GmbH
Buchenstraße 3
82041 Oberhaching
Tel. +49-89-1226-4666
Mail [email protected]
Der Inhalt dieser E-Mail (einschliesslich etwaiger beigefuegter Dateien) ist vertraulich und nur für den Empfaenger bestimmt. Sollten Sie nicht der bestimmungsgemaesse Empfaenger sein, ist Ihnen jegliche Offenlegung, Vervielfaeltigung, Weitergabe oder Nutzung des Inhalts untersagt. Bitte informieren Sie in diesem Fall unverzueglich den Absender und loeschen Sie die E-Mail (einschliesslich etwaiger beigefuegter Dateien) von Ihrem System. Vielen Dank.
The contents of this e-mail (including any attachments) are confidential and may be legally privileged. If you are not the intended recipient of this e-mail, any disclosure, copying, distribution or use of its contents is strictly prohibited, and you should please notify the sender immediately and then delete it (including any attachments) from your system. Thank you.
HRB 254854 (Amtsgericht München)
Geschäftsführer: Prof. Dr. Helga Schmetzer, Dr. Octavian Schatz, Dr. Nikolaus Schaller www.modiblast.com
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Rob Herring
maintainerRe: [RFC v2 1/8] dt-bindings: display: add ingenic-jz4780-lcd DT Schema
In reply to H. Nikolaus SchallerQuoted 10 lines · H. Nikolaus Schaller
From: Sam Ravnborg <[email protected]>
Add DT bindings for the LCD controller on the jz4780 SoC Based on .txt binding from Zubair Lutfullah Kakakhel
Signed-off-by Sam Ravnborg <[email protected]>Cc Zubair Lutfullah Kakakhel <[email protected]>Cc H. Nikolaus Schaller <[email protected]>Cc Rob Herring <[email protected]>
Quoted 5 lines
--- .../bindings/display/ingenic-jz4780-lcd.yaml | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml
My bot found errors running 'make dt_binding_check' on your patch:
Documentation/devicetree/bindings/display/simple-framebuffer.example.dts:21.16-37.11: Warning (chosen_node_is_root): /example-0/chosen: chosen node must be at root node
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.example.dt.yaml: example-0: 'jz4780-lcdk@0x13050000' does not match any of the regexes: '.*-names$', '.*-supply$', '^#.*-cells$', '^#[a-zA-Z0-9,+\\-._]{0,63}$', '^[a-zA-Z][a-zA-Z0-9,+\\-._]{0,63}$', '^[a-zA-Z][a-zA-Z0-9,+\\-._]{0,63}@[0-9a-fA-F]+(,[0-9a-fA-F]+)*$', '^__.*__$', 'pinctrl-[0-9]+'
See https://patchwork.ozlabs.org/patch/1246780
Please check and re-submit.
Paul Cercueil
maintainerRe: [RFC v2 1/8] dt-bindings: display: add ingenic-jz4780-lcd DT Schema
In reply to H. Nikolaus SchallerHi Nikolaus,
Quoted 4 lines · H. Nikolaus Schaller
From: Sam Ravnborg <[email protected]>
Add DT bindings for the LCD controller on the jz4780 SoC Based on .txt binding from Zubair Lutfullah Kakakhel
If you mean Documentation/devicetree/bindings/display/ingenic,lcd.txt then it was written by me.
Quoted 20 lines
Signed-off-by Sam Ravnborg <[email protected]>Cc Zubair Lutfullah Kakakhel <[email protected]>Cc H. Nikolaus Schaller <[email protected]>Cc Rob Herring <[email protected]>--- .../bindings/display/ingenic-jz4780-lcd.yaml | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml(quoted diff) +0
-0
b/Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yamlDocumentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +1
-0@@ -0,0 +1,78 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 11
Quoted 10 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +10
-0+%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/ingenic-jz4780-lcd.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Bindings for Ingenic JZ4780 LCD Controller + +maintainers: + - Zubair Lutfullah Kakakhel <[email protected]> + - H. Nikolaus Schaller <[email protected]>
I'm the author of the driver, please put me here; and remove Zubair, which 1. didn't touch the DRM driver at all, and 2. isn't working at ImgTec anymore. Also, no need to put yourself here, unless you maintain the Ingenic DRM/KMS driver.
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 16
Quoted 5 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +5
-0+ +description: | + LCD Controller is the Display Controller for the Ingenic JZ4780 SoC + +properties:
You should add a '$nodename' property.
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 19
Quoted 3 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +3
-0+ compatible: + items: + - const: ingenic,jz4780-lcd
The .txt lists more compatible strings. Please add them all.
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 23
Quoted 4 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +4
-0+ + reg: + maxItems: 1 + description: the address & size of the LCD controller registers
Drop the description here,
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 27
Quoted 4 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +4
-0+ + interrupts: + maxItems: 1 + description: Specifies the interrupt provided by parent
and here.
Quoted 5 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +4
-0+ + clocks: + maxItems: 2 + description: Clock specifiers for the JZ4780_CLK_TVE
JZ4780_CLK_LCD0PIXCLK
Add one 'description:' per item.
Quoted 16 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +16
-0+ + clock-names: + items: + - const: lcd_clk + - const: lcd_pixclk + + port: + type: object + description: | + A port node with endpoint definitions as defined in + Documentation/devicetree/bindings/media/video-interfaces.txt + +required: + - compatible + - reg + - interrupts
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 57
Quoted 10 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +10
-0+ - clocks + - clock-names + - port + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/jz4780-cgu.h> + lcd: jz4780-lcdk@0x13050000 {
The node name does not comply with the DT spec, it should be 'lcd-controller'.
Cheers,
-Paul
Quoted 24 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +21
-1+ compatible = "ingenic,jz4780-lcd"; + reg = <0x13050000 0x1800>; + + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>; + clock-names = "lcd_clk", "lcd_pixclk"; + + interrupt-parent = <&intc>; + interrupts = <31>; + + jz4780_lcd_out: port { + #address-cells = <1>; + #size-cells = <0>; + + jz4780_out_hdmi: endpoint@0 { + reg = <0>; + remote-endpoint = <&hdmi_in_lcd>; + }; + }; + }; + +... --2.23.0
Re: [RFC v2 1/8] dt-bindings: display: add ingenic-jz4780-lcd DT Schema
Hi Paul,
Quoted 11 lines
Am 02.03.2020 um 20:10 schrieb Paul Cercueil <[email protected]>:
Hi Nikolaus,
Quoted 3 lines · H. Nikolaus Schaller
From: Sam Ravnborg <[email protected]>
Add DT bindings for the LCD controller on the jz4780 SoC Based on .txt binding from Zubair Lutfullah KakakhelIf you mean
Documentation/devicetree/bindings/display/ingenic,lcd.txtthen it was written by me.
Ah, ok. We didn't recognise this before. 6 eyes see more than 4...
I just did cherry-pick this old 4.0 patch from 2015 by Zubair and it created a ingenic-jz4780-lcd.txt:
https://lore.kernel.org/patchwork/patch/547872/
and Sam was so kind to convert it to yaml.
Quoted 21 lines
Quoted 21 lines
Signed-off-by Sam Ravnborg <[email protected]>Cc Zubair Lutfullah Kakakhel <[email protected]>Cc H. Nikolaus Schaller <[email protected]>Cc Rob Herring <[email protected]>---
.../bindings/display/ingenic-jz4780-lcd.yaml| 78 +++++++++++++++++++1 file changed, 78 insertions(+)create mode 100644
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yamlDocumentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +5
-0@@ -0,0 +1,78 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/ingenic-jz4780-lcd.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
Quoted 8 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 11
Quoted 6 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +6
-0+ +title: Bindings for Ingenic JZ4780 LCD Controller + +maintainers: + - Zubair Lutfullah Kakakhel <[email protected]> + - H. Nikolaus Schaller <[email protected]>I'm the author of the driver, please put me here; and remove Zubair, which 1. didn't touch the DRM driver at all, and 2. isn't working at ImgTec anymore.
Yes that is true.
Quoted 1 line
Also, no need to put yourself here, unless you maintain the Ingenic DRM/KMS driver.
Agreed. That was suggested by Sam.
Quoted 56 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 16
Quoted 6 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +5
-0+ +description: | + LCD Controller is the Display Controller for the Ingenic JZ4780 SoC + +properties:You should add a '$nodename' property.
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 19
Quoted 3 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +3
-0+ compatible: + items: + - const: ingenic,jz4780-lcdThe .txt lists more compatible strings. Please add them all.
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 23
Quoted 4 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +4
-0+ + reg: + maxItems: 1 + description: the address & size of the LCD controller registersDrop the description here,
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 27
Quoted 4 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +4
-0+ + interrupts: + maxItems: 1 + description: Specifies the interrupt provided by parentand here.
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 31
Quoted 4 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +4
-0+ + clocks: + maxItems: 2 + description: Clock specifiers for the JZ4780_CLK_TVE JZ4780_CLK_LCD0PIXCLKAdd one 'description:' per item.
Quoted 20 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +20
-0+ + clock-names: + items: + - const: lcd_clk + - const: lcd_pixclk + + port: + type: object + description: | + A port node with endpoint definitions as defined in + Documentation/devicetree/bindings/media/video-interfaces.txt + +required: + - compatible + - reg + - interrupts + - clocks + - clock-names + - port +
Quoted 8 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml line 57
Quoted 6 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml new file +6
-0+additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/jz4780-cgu.h> + lcd: jz4780-lcdk@0x13050000 {The node name does not comply with the DT spec, it should be 'lcd-controller'.
Ok, I think I'll review all so that it does match/replace Documentation/devicetree/bindings/display/ingenic,lcd.txt and no information is lost.
Quoted 3 lines
Cheers,
-Paul
BR and thanks,
Nikolaus
RFC v2 2/8 dt-bindings: display: add ingenic-jz4780-hdmi DT Schema
In reply to H. Nikolaus SchallerFrom: Sam Ravnborg <[email protected]>
Add DT bindings for the hdmi driver for the Ingenic JZ4780 SoC. Based on .txt binding from Zubair Lutfullah Kakakhel
--- .../bindings/display/ingenic-jz4780-hdmi.yaml | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +83 -0
@@ -0,0 +1,83 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/ingenic-jz4780-hdmi.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Bindings for Ingenic JZ4780 HDMI Transmitter + +maintainers: + - Zubair Lutfullah Kakakhel <[email protected]> + - H. Nikolaus Schaller <[email protected]> + +description: | + The HDMI Transmitter in the Ingenic JZ4780 is a Synopsys DesignWare HDMI 1.4 + TX controller IP with accompanying PHY IP. + +allOf: + - $ref: panel/panel-common.yaml# + +properties: + compatible: + items: + - const: ingenic,jz4780-hdmi + + reg: + maxItems: 1 + description: the address & size of the LCD controller registers + + reg-io-width: + const: 4 + + interrupts: + maxItems: 1 + description: Specifies the interrupt provided by parent + + clocks: + maxItems: 2 + description: Clock specifiers for isrf and iahb clocks + + clock-names: + items: + - const: isfr + - const: iahb + + ddc-i2c-bus: true + ports: true + +required: + - compatible + - clocks + - clock-names + - ports + - reg-io-width + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/jz4780-cgu.h> + + hdmi: hdmi@10180000 { + compatible = "ingenic,jz4780-hdmi"; + reg = <0x10180000 0x8000>; + reg-io-width = <4>; + ddc-i2c-bus = <&i2c4>; + interrupt-parent = <&intc>; + interrupts = <3>; + clocks = <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_AHB0>; + clock-names = "isfr", "iahb"; + + ports { + hdmi_in: port { + #address-cells = <1>; + #size-cells = <0>; + hdmi_in_lcd: endpoint@0 { + reg = <0>; + remote-endpoint = <&jz4780_out_hdmi>; + }; + }; + }; + }; + +...
Signature · 1 line
2.23.0
Paul Cercueil
maintainerRe: [RFC v2 2/8] dt-bindings: display: add ingenic-jz4780-hdmi DT Schema
Hi Nikolaus,
Quoted 25 lines · H. Nikolaus Schaller
From: Sam Ravnborg <[email protected]>
Add DT bindings for the hdmi driver for the Ingenic JZ4780 SoC. Based on .txt binding from Zubair Lutfullah Kakakhel
Signed-off-by Sam Ravnborg <[email protected]>Cc Zubair Lutfullah Kakakhel <[email protected]>Cc H. Nikolaus Schaller <[email protected]>Cc Rob Herring <[email protected]>--- .../bindings/display/ingenic-jz4780-hdmi.yaml | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml(quoted diff) +0
-0
b/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yamlDocumentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +1
-0@@ -0,0 +1,83 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml line 11
Quoted 10 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +10
-0+%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/ingenic-jz4780-hdmi.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Bindings for Ingenic JZ4780 HDMI Transmitter + +maintainers: + - Zubair Lutfullah Kakakhel <[email protected]> + - H. Nikolaus Schaller <[email protected]>
Did Zubair write this glue driver? He's been MIA for a while, doesn't work at ImgTec anymore, and this email doesn't work.
Quoted 7 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +3
-0+ +description: | + The HDMI Transmitter in the Ingenic JZ4780 is a SynopsysDesignWare HDMI 1.4
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +3
-0+ TX controller IP with accompanying PHY IP. + +allOf:
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml line 27
Quoted 10 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +10
-0+ - $ref: panel/panel-common.yaml# + +properties: + compatible: + items: + - const: ingenic,jz4780-hdmi + + reg: + maxItems: 1 + description: the address & size of the LCD controller registers
Remove the description here,
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml line 34
Quoted 7 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +7
-0+ + reg-io-width: + const: 4 + + interrupts: + maxItems: 1 + description: Specifies the interrupt provided by parent
and here.
The rule is that if there is only one "reg", "interrupts" or "clocks" entry then a description is not needed as it's pretty obvious what it's for.
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml line 38
Quoted 4 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +4
-0+ + clocks: + maxItems: 2 + description: Clock specifiers for isrf and iahb clocks
You need two 'description:' like this:
clocks:
items:
- description: ISRF clock
- description: IAHB clock
Cheers,
-Paul
Quoted 48 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +45
-1+ + clock-names: + items: + - const: isfr + - const: iahb + + ddc-i2c-bus: true + ports: true + +required: + - compatible + - clocks + - clock-names + - ports + - reg-io-width + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/jz4780-cgu.h> + + hdmi: hdmi@10180000 { + compatible = "ingenic,jz4780-hdmi"; + reg = <0x10180000 0x8000>; + reg-io-width = <4>; + ddc-i2c-bus = <&i2c4>; + interrupt-parent = <&intc>; + interrupts = <3>; + clocks = <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_AHB0>; + clock-names = "isfr", "iahb"; + + ports { + hdmi_in: port { + #address-cells = <1>; + #size-cells = <0>; + hdmi_in_lcd: endpoint@0 { + reg = <0>; + remote-endpoint = <&jz4780_out_hdmi>; + }; + }; + }; + }; + +... --2.23.0
Re: [RFC v2 2/8] dt-bindings: display: add ingenic-jz4780-hdmi DT Schema
Quoted 30 lines
Am 02.03.2020 um 20:19 schrieb Paul Cercueil <[email protected]>:
Hi Nikolaus,
Quoted 23 lines · H. Nikolaus Schaller
From: Sam Ravnborg <[email protected]>
Add DT bindings for the hdmi driver for the Ingenic JZ4780 SoC. Based on .txt binding from Zubair Lutfullah KakakhelSigned-off-by Sam Ravnborg <[email protected]>Cc Zubair Lutfullah Kakakhel <[email protected]>Cc H. Nikolaus Schaller <[email protected]>Cc Rob Herring <[email protected]>---
.../bindings/display/ingenic-jz4780-hdmi.yaml| 83 +++++++++++++++++++1 file changed, 83 insertions(+)create mode 100644
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yamlDocumentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +5
-0@@ -0,0 +1,83 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/ingenic-jz4780-hdmi.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
Quoted 8 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml line 11
Quoted 6 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +6
-0+ +title: Bindings for Ingenic JZ4780 HDMI Transmitter + +maintainers: + - Zubair Lutfullah Kakakhel <[email protected]> + - H. Nikolaus Schaller <[email protected]>Did Zubair write this glue driver? He's been MIA for a while, doesn't work at ImgTec anymore, and this email doesn't work.
He did write the original .txt version of [RFC v1 2/8] and Sam simply added him.
Quoted 37 lines
Quoted 7 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +6
-0+ +description: | + The HDMI Transmitter in the Ingenic JZ4780 is a Synopsys DesignWare HDMI 1.4 + TX controller IP with accompanying PHY IP. + +allOf:Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml line 27
Quoted 10 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +10
-0+ - $ref: panel/panel-common.yaml# + +properties: + compatible: + items: + - const: ingenic,jz4780-hdmi + + reg: + maxItems: 1 + description: the address & size of the LCD controller registersRemove the description here,
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml line 34
Quoted 7 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +7
-0+ + reg-io-width: + const: 4 + + interrupts: + maxItems: 1 + description: Specifies the interrupt provided by parentand here.
The rule is that if there is only one "reg", "interrupts" or "clocks" entry then a description is not needed as it's pretty obvious what it's for.
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml line 38
Quoted 4 lines
Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml new file +4
-0+ + clocks: + maxItems: 2 + description: Clock specifiers for isrf and iahb clocks
Quoted 6 lines
You need two 'description:' like this:
clocks:
items:
- description: ISRF clock
- description: IAHB clock
Ok.
BR and thanks,
Nikolaus
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
RFC v2 3/8 drm: ingenic-drm: add MODULE_DEVICE_TABLE
In reply to H. Nikolaus Schallerso that the driver can load by matching the device tree if compiled as module.
--- drivers/gpu/drm/ingenic/ingenic-drm.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/gpu/drm/ingenic/ingenic-drm.c +2 -0
@@ -844,6 +844,8 @@ static const struct of_device_id ingenic_drm_of_match[] = { { /* sentinel */ }, }; +MODULE_DEVICE_TABLE (of, ingenic_drm_of_match); +static struct platform_driver ingenic_drm_driver = { .driver = { .name ="ingenic-drm" ,
Signature · 1 line
2.23.0
Paul Cercueil
maintainerRe: [RFC v2 3/8] drm: ingenic-drm: add MODULE_DEVICE_TABLE
Hi Nikolaus,
Quoted 13 lines · H. Nikolaus Schaller
so that the driver can load by matching the device tree if compiled as module.
Signed-off-by H. Nikolaus Schaller <[email protected]>--- drivers/gpu/drm/ingenic/ingenic-drm.c | 2 ++ 1 file changed, 2 insertions(+)drivers/gpu/drm/ingenic/ingenic-drm.c +0
-0
drivers/gpu/drm/ingenic/ingenic-drm.c static const struct of_device_id · line 848
Quoted 5 lines
drivers/gpu/drm/ingenic/ingenic-drm.c +1
-0@@ -844,6 +844,8 @@ static const struct of_device_id ingenic_drm_of_match[] = { {/* sentinel */ }, }; +MODULE_DEVICE_TABLE (of, ingenic_drm_of_match);
Please remove the blank line above the MODULE_DEVICE_TABLE() macro.
-Paul
Quoted 7 lines
drivers/gpu/drm/ingenic/ingenic-drm.c +1
-0+static struct platform_driver ingenic_drm_driver = { .driver = {.name = "ingenic-drm",
--
2.23.0
Re: [RFC v2 3/8] drm: ingenic-drm: add MODULE_DEVICE_TABLE
Quoted 7 lines
Am 02.03.2020 um 20:21 schrieb Paul Cercueil <[email protected]>:
Hi Nikolaus,
Le ven., févr. 28, 2020 at 19:19, H. Nikolaus Schaller <[email protected]> a écrit :
Quoted 16 lines
Quoted 11 lines
so that the driver can load by matching the device tree if compiled as module.
Signed-off-by H. Nikolaus Schaller <[email protected]>---
drivers/gpu/drm/ingenic/ingenic-drm.c| 2 ++1 file changed, 2 insertions(+)drivers/gpu/drm/ingenic/ingenic-drm.c +0
-0drivers/gpu/drm/ingenic/ingenic-drm.c static const struct of_device_id ingenic_drm_of_match[] = { · line 846
Quoted 3 lines
drivers/gpu/drm/ingenic/ingenic-drm.c +1
-0@@ -844,6 +844,8 @@ static const struct of_device_id ingenic_drm_of_match[] = { { /* sentinel */ }, }; +MODULE_DEVICE_TABLE (of, ingenic_drm_of_match);Please remove the blank line above the
MODULE_DEVICE_TABLE()macro.
Ok.
Quoted 11 lines
-Paul
Quoted 6 lines
drivers/gpu/drm/ingenic/ingenic-drm.c +1
-1+static struct platform_driver ingenic_drm_driver = { .driver = { .name ="ingenic-drm" , --2.23.0
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
RFC v2 4/8 drm: ingenic: add jz4780 Synopsys HDMI driver.
In reply to H. Nikolaus SchallerFrom: Paul Boddie <[email protected]>
A specialisation of the generic Synopsys HDMI driver is employed for JZ4780 HDMI support. This requires a new driver, plus device tree and configuration modifications.
--- drivers/gpu/drm/ingenic/Kconfig | 8 ++ drivers/gpu/drm/ingenic/Makefile | 1 + drivers/gpu/drm/ingenic/dw_hdmi-jz4780.c | 120 +++++++++++++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 drivers/gpu/drm/ingenic/dw_hdmi-jz4780.c
drivers/gpu/drm/ingenic/Kconfig +8 -0
@@ -14,3 +14,11 @@ config DRM_INGENIC Choose this option for DRM support for the Ingenic SoCs. If M is selected the module will be called ingenic-drm. + +config DRM_DW_HDMI_JZ4780 + tristate "HDMI Support for Ingenic JZ4780" + depends on DRM_INGENIC + depends on OF + select DRM_DW_HDMI + help + Choose this option for HDMI output from the Ingenic JZ4780.
drivers/gpu/drm/ingenic/Makefile +1 -0
@@ -1 +1,2 @@ obj-$(CONFIG_DRM_INGENIC) += ingenic-drm.o +obj-$(CONFIG_DRM_DW_HDMI_JZ4780) += dw_hdmi-jz4780.o
drivers/gpu/drm/ingenic/dw_hdmi-jz4780.c new file +120 -0
120 lines not on this page · raw message
Signature · 1 line
2.23.0
RFC v2 5/8 pinctrl: ingenic: add hdmi-ddc pin control group
In reply to H. Nikolaus SchallerFrom: Paul Boddie <[email protected]>
--- drivers/pinctrl/pinctrl-ingenic.c | 7 +++++++ 1 file changed, 7 insertions(+)
drivers/pinctrl/pinctrl-ingenic.c +7 -0
@@ -4,6 +4,7 @@* * Copyright (c) 2017 Paul Cercueil <[email protected]> * Copyright (c) 2019 周琰杰 (Zhou Yanjie) <[email protected]> +* Copyright (c) 2017, 2019 Paul Boddie <[email protected]> */ #include <linux/compiler.h>
@@ -900,6 +901,7 @@ static int jz4780_mmc0_8bit_a_pins[] = { 0x04, 0x05, 0x06, 0x07, 0x18, };static int jz4780_i2c3_pins[] = {0x6a ,0x6b , };static int jz4780_i2c4_e_pins[] = {0x8c ,0x8d , };static int jz4780_i2c4_f_pins[] = {0xb9 ,0xb8 , }; +static int jz4780_hdmi_ddc_pins[] = {0xb9 ,0xb8 , };static int jz4780_uart2_data_funcs[] = {1 ,1 , };static int jz4780_uart2_hwflow_funcs[] = {1 ,1 , };
@@ -908,6 +910,7 @@ static int jz4780_mmc0_8bit_a_funcs[] = { 1, 1, 1, 1, 1, };static int jz4780_i2c3_funcs[] = {1 ,1 , };static int jz4780_i2c4_e_funcs[] = {1 ,1 , };static int jz4780_i2c4_f_funcs[] = {1 ,1 , }; +static int jz4780_hdmi_ddc_funcs[] = {0 ,0 , };static const struct group_desc jz4780_groups[] = {INGENIC_PIN_GROUP ("uart0-data" , jz4770_uart0_data),
@@ -950,6 +953,7 @@ static const struct group_desc jz4780_groups[] = {INGENIC_PIN_GROUP ("i2c3-data" , jz4780_i2c3),INGENIC_PIN_GROUP ("i2c4-data-e" , jz4780_i2c4_e),INGENIC_PIN_GROUP ("i2c4-data-f" , jz4780_i2c4_f), +INGENIC_PIN_GROUP ("hdmi-ddc" , jz4780_hdmi_ddc),INGENIC_PIN_GROUP ("cim-data" , jz4770_cim_8bit),INGENIC_PIN_GROUP ("lcd-24bit" , jz4770_lcd_24bit), { "lcd-no-pins", },
@@ -982,6 +986,7 @@ static const char *jz4780_nemc_groups[] = {static const char *jz4780_i2c3_groups[] = {"i2c3-data" , };static const char *jz4780_i2c4_groups[] = {"i2c4-data-e" ,"i2c4-data-f" , };static const char *jz4780_cim_groups[] = {"cim-data" , }; +static const char *jz4780_hdmi_ddc_groups[] = {"hdmi-ddc" , };static const struct function_desc jz4780_functions[] = { {"uart0" , jz4770_uart0_groups,ARRAY_SIZE (jz4770_uart0_groups), },
@@ -1014,6 +1019,8 @@ static const struct function_desc jz4780_functions[] = { { "pwm5", jz4770_pwm5_groups, ARRAY_SIZE(jz4770_pwm5_groups), }, { "pwm6", jz4770_pwm6_groups, ARRAY_SIZE(jz4770_pwm6_groups), }, { "pwm7", jz4770_pwm7_groups, ARRAY_SIZE(jz4770_pwm7_groups), }, + { "hdmi-ddc", jz4780_hdmi_ddc_groups, + ARRAY_SIZE(jz4780_hdmi_ddc_groups), }, }; static const struct ingenic_chip_info jz4780_chip_info = {
Signature · 1 line
2.23.0
Re: [RFC v2 5/8] pinctrl: ingenic: add hdmi-ddc pin control group
Quoted 4 lines · H. Nikolaus Schaller
From: Paul Boddie <[email protected]>
Signed-off-by Paul Boddie <[email protected]>Signed-off-by H. Nikolaus Schaller <[email protected]>
This looks good, can I just apply this to the pinctrl tree?
Yours,
Linus Walleij
Re: [RFC v2 5/8] pinctrl: ingenic: add hdmi-ddc pin control group
Quoted 11 lines
Am 28.02.2020 um 23:05 schrieb Linus Walleij <[email protected]>:
Quoted 4 lines · H. Nikolaus Schaller
From: Paul Boddie <[email protected]>
Signed-off-by Paul Boddie <[email protected]>Signed-off-by H. Nikolaus Schaller <[email protected]>This looks good, can I just apply this to the pinctrl tree?
Yes. It is more or less a base commit for the others.
Quoted 3 lines
Yours,
Linus Walleij
BR and thanks,
Nikolaus
Re: [RFC v2 5/8] pinctrl: ingenic: add hdmi-ddc pin control group
In reply to H. Nikolaus SchallerQuoted 4 lines · H. Nikolaus Schaller
From: Paul Boddie <[email protected]>
Signed-off-by Paul Boddie <[email protected]>Signed-off-by H. Nikolaus Schaller <[email protected]>
Patch applied to the pinctrl tree, it should be fine to merge the rest of the patches in another tree since there are no compile-time dependencies.
Yours,
Linus Walleij
RFC v2 6/8 MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller
In reply to H. Nikolaus SchallerFrom: Paul Boddie <[email protected]>
A specialisation of the generic Synopsys HDMI driver is employed for JZ4780 HDMI support. This requires a new driver, plus device tree and configuration modifications.
--- arch/mips/boot/dts/ingenic/jz4780.dtsi | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+)
arch/mips/boot/dts/ingenic/jz4780.dtsi +32 -0
@@ -433,4 +433,36 @@ status = "disabled"; }; + + hdmi: hdmi@10180000 { + compatible = "ingenic,jz4780-dw-hdmi"; + reg = <0x10180000 0x8000>; + reg-io-width = <4>; + + clocks = <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_AHB0>; + clock-names = "isfr" , "iahb"; + + assigned-clocks = <&cgu JZ4780_CLK_HDMI>; + assigned-clock-rates = <27000000>; + + interrupt-parent = <&intc>; + interrupts = <3>; + + /* ddc-i2c-bus = <&i2c4>; */ + + status = "disabled"; + }; + + lcd: lcd@13050000 { + compatible = "ingenic,jz4740-lcd"; + reg = <0x13050000 0x1800>; + + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>; + clock-names = "lcd", "lcd_pclk"; + + interrupt-parent = <&intc>; + interrupts = <31>; + + status = "disabled"; + }; };
Signature · 1 line
2.23.0
Paul Cercueil
maintainerRe: [RFC v2 6/8] MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller
Hi Nikolaus,
Quoted 22 lines · H. Nikolaus Schaller
From: Paul Boddie <[email protected]>
A specialisation of the generic Synopsys HDMI driver is employed for JZ4780 HDMI support. This requires a new driver, plus device tree and configuration modifications.
Signed-off-by Paul Boddie <[email protected]>Signed-off-by H. Nikolaus Schaller <[email protected]>--- arch/mips/boot/dts/ingenic/jz4780.dtsi | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+)arch/mips/boot/dts/ingenic/jz4780.dtsi +1
-0@@ -433,4 +433,36 @@ status = "disabled"; }; +
arch/mips/boot/dts/ingenic/jz4780.dtsi line 446
Quoted 10 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi +10
-0+ hdmi: hdmi@10180000 { + compatible = "ingenic,jz4780-dw-hdmi"; + reg = <0x10180000 0x8000>; + reg-io-width = <4>; + + clocks = <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_AHB0>; + clock-names = "isfr" , "iahb"; + + assigned-clocks = <&cgu JZ4780_CLK_HDMI>; + assigned-clock-rates = <27000000>;
I *think* this should go to the board file.
arch/mips/boot/dts/ingenic/jz4780.dtsi line 456
Quoted 10 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi +10
-0+ + interrupt-parent = <&intc>; + interrupts = <3>; + + /* ddc-i2c-bus = <&i2c4>; */ + + status = "disabled"; + }; + + lcd: lcd@13050000 {
The node name should be 'lcd-controller'.
arch/mips/boot/dts/ingenic/jz4780.dtsi line 457
Quoted 1 line
arch/mips/boot/dts/ingenic/jz4780.dtsi +1
-0+ compatible = "ingenic,jz4740-lcd";
The JZ4780's LCD controller is much newer than the JZ4740 one, so even if it works with the "ingenic,jz4740-lcd" compatible string, you want it as a fallback. So this should be: compatible = "ingenic,jz4780-lcd", "ingenic,jz4740-lcd".
That means the YAML should be updated too.
-Paul
Quoted 14 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi +10
-1+ reg = <0x13050000 0x1800>; + + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>; + clock-names = "lcd", "lcd_pclk"; + + interrupt-parent = <&intc>; + interrupts = <31>; + + status = "disabled"; + }; }; --2.23.0
Re: [RFC v2 6/8] MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller
Hi Paul,
Quoted 27 lines
Am 02.03.2020 um 20:27 schrieb Paul Cercueil <[email protected]>:
Hi Nikolaus,
Quoted 21 lines · H. Nikolaus Schaller
From: Paul Boddie <[email protected]>
A specialisation of the generic Synopsys HDMI driver is employed for JZ4780 HDMI support. This requires a new driver, plus device tree and configuration modifications.Signed-off-by Paul Boddie <[email protected]>Signed-off-by H. Nikolaus Schaller <[email protected]>---
arch/mips/boot/dts/ingenic/jz4780.dtsi| 32 ++++++++++++++++++++++++++1 file changed, 32 insertions(+)arch/mips/boot/dts/ingenic/jz4780.dtsi +5
-0@@ -433,4 +433,36 @@ status = "disabled"; }; + + hdmi: hdmi@10180000 { + compatible = "ingenic,jz4780-dw-hdmi"; + reg = <0x10180000 0x8000>; + reg-io-width = <4>;
Quoted 8 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi line 446
Quoted 6 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi +6
-0+ + clocks = <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_AHB0>; + clock-names = "isfr" , "iahb"; + + assigned-clocks = <&cgu JZ4780_CLK_HDMI>; + assigned-clock-rates = <27000000>;I *think* this should go to the board file.
Hm. I am not sure.
Can there be differences in HDMI between different boards so that it needs to be defined there?
IMHO the HDMI subsystem is completely sitting on the jz4780 SoC and clocked by the master clock. So boards should only differ in the ESD protection and mechanical connector...
And status = "ok".
Quoted 14 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi line 456
Quoted 11 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi +10
-0+ + interrupt-parent = <&intc>; + interrupts = <3>; + + /* ddc-i2c-bus = <&i2c4>; */ + + status = "disabled"; + }; + + lcd: lcd@13050000 {The node name should be 'lcd-controller'.
Quoted 4 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi line 457
Quoted 1 line
arch/mips/boot/dts/ingenic/jz4780.dtsi +1
-0+ compatible = "ingenic,jz4740-lcd";The JZ4780's LCD controller is much newer than the JZ4740 one, so even if it works with the "ingenic,jz4740-lcd" compatible string, you want it as a fallback. So this should be: compatible = "ingenic,jz4780-lcd", "ingenic,jz4740-lcd".
Ah, that is an interesting detail.
It could be the reason why the HDMI does not show an output signal yet. If the jz4740-lcd and jz4780-lcd are not really 100% compatible. I'll give it try asap.
If it does not help to get output signals, we need community members who can test (i.e. own an CI20 board) and can help to identify the bug(s).
Quoted 2 lines
That means the YAML should be updated too.
Ok.
BR,
Nikolaus
Quoted 18 lines
-Paul
Quoted 12 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi +10
-1+ reg = <0x13050000 0x1800>; + + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>; + clock-names = "lcd", "lcd_pclk"; + + interrupt-parent = <&intc>; + interrupts = <31>; + + status = "disabled"; + }; }; --Quoted 1 line
2.23.0
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [RFC v2 6/8] MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller
In reply to Paul CercueilHi Paul,
Quoted 49 lines
Am 02.03.2020 um 20:27 schrieb Paul Cercueil <[email protected]>:
Hi Nikolaus,
Quoted 17 lines · H. Nikolaus Schaller
From: Paul Boddie <[email protected]>
A specialisation of the generic Synopsys HDMI driver is employed for JZ4780 HDMI support. This requires a new driver, plus device tree and configuration modifications.Signed-off-by Paul Boddie <[email protected]>Signed-off-by H. Nikolaus Schaller <[email protected]>---
arch/mips/boot/dts/ingenic/jz4780.dtsi| 32 ++++++++++++++++++++++++++1 file changed, 32 insertions(+)arch/mips/boot/dts/ingenic/jz4780.dtsi +1
-0@@ -433,4 +433,36 @@ status = "disabled"; }; +arch/mips/boot/dts/ingenic/jz4780.dtsi line 445
Quoted 10 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi +10
-0+ hdmi: hdmi@10180000 { + compatible = "ingenic,jz4780-dw-hdmi"; + reg = <0x10180000 0x8000>; + reg-io-width = <4>; + + clocks = <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_AHB0>; + clock-names = "isfr" , "iahb"; + + assigned-clocks = <&cgu JZ4780_CLK_HDMI>; + assigned-clock-rates = <27000000>;I *think* this should go to the board file.
arch/mips/boot/dts/ingenic/jz4780.dtsi line 456
Quoted 10 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi +10
-0+ + interrupt-parent = <&intc>; + interrupts = <3>; + + /* ddc-i2c-bus = <&i2c4>; */ + + status = "disabled"; + }; + + lcd: lcd@13050000 {The node name should be 'lcd-controller'.
Quoted 6 lines
arch/mips/boot/dts/ingenic/jz4780.dtsi line 457
Quoted 1 line
arch/mips/boot/dts/ingenic/jz4780.dtsi +1
-0+ compatible = "ingenic,jz4740-lcd";The JZ4780's LCD controller is much newer than the JZ4740 one, so even if it works with the "ingenic,jz4740-lcd" compatible string, you want it as a fallback. So this should be: compatible = "ingenic,jz4780-lcd", "ingenic,jz4740-lcd".
That means the YAML should be updated too.
I have started to look into jz4780 HDMI setup again.
Well, there is no driver compatible to "ingenic,jz4780-lcd" so far and it is questionalbe if we need a different one.
I think we should rather make the driver also compatible than adding a fallback to ingenic,jz4740-lcdto the DTS.
The reason why this is better even if both LCDC are almost compatible is that the jz4780 allows for much bigger displays and therefore should have its own jz_soc_info with 4k x 2k as maximum.
Next I tried to find out if the LCDC are really compatible.
Well the jz4780 has two lcdc instances but they are separated by the reg addr. Next, there are unique features (like picture in picture with alpha blending) but those are probably disabled if not programmed from reset state. This may become a reason to separate or augment the driver for the jz4780 but at the moment we can ignore that.
There are also subtly different bit definitions and register widths (e.g. 24 bit in addition to 16/18 bit modes or more bits for the sync position) but it looks as if the ingenic_drm driver already handles this.
Then I tried to read back the registers. Strangely they are all 0x00000000. So there is no programming of the lcd-controller in our DT setup with HDMI at all!
I also checked that ingenic_drm_probe() is called and returns successfully 0. It also reports that a /dev/fb has been created:
[ 7.908830] ingenic-drm 13050000.lcd-controller: fb0: ingenic-drmdrmf frame buffer device
But for example ingenic_drm_encoder_atomic_mode_set() is never called which should write some registers of the LCDC.
I only did see some calls to ingenic_drm_encoder_atomic_check().
This of course explains why we have no HDMI signals despite proper HPD and a /dev/fb0. Because the LCDC is not being programmed.
Any ideas / hints how to check or improve?
BR and thanks,
Nikolaus
Paul Cercueil
maintainerRe: [RFC v2 6/8] MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller
Hi Nikolaus,
Quoted 70 lines · H. Nikolaus Schaller
Hi Paul,
Quoted 54 lines
Am 02.03.2020 um 20:27 schrieb Paul Cercueil <[email protected]>:
Hi Nikolaus,
Quoted 21 lines · H. Nikolaus Schaller
From: Paul Boddie <[email protected]>
A specialisation of the generic Synopsys HDMI driver is employed
for JZ4780
HDMI support. This requires a new driver, plus device tree and
configuration
modifications.Signed-off-by Paul Boddie <[email protected]>Signed-off-by H. Nikolaus Schaller <[email protected]>---
arch/mips/boot/dts/ingenic/jz4780.dtsi | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+)diff --git
a/arch/mips/boot/dts/ingenic/jz4780.dtsib/arch/mips/boot/dts/ingenic/jz4780.dtsi
indexf928329b034b..391d4e1efd35100644
---a/arch/mips/boot/dts/ingenic/jz4780.dtsi+++b/arch/mips/boot/dts/ingenic/jz4780.dtsi@@ -433,4 +433,36 @@(quoted diff) +0
-0status = "disabled"; }; +Review
Quoted 10 lines
(quoted diff) +0
-0+ hdmi: hdmi@10180000 { + compatible = "ingenic,jz4780-dw-hdmi"; + reg = <0x10180000 0x8000>; + reg-io-width = <4>; + + clocks = <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_AHB0>; + clock-names = "isfr" , "iahb"; + + assigned-clocks = <&cgu JZ4780_CLK_HDMI>; + assigned-clock-rates = <27000000>;I *think* this should go to the board file.
Quoted 10 lines
+
+ interrupt-parent = <&intc>;
+ interrupts = <3>;
+
+ /* ddc-i2c-bus = <&i2c4>; */
+
+ status = "disabled";
+ };
+
+ lcd: lcd@13050000 {The node name should be 'lcd-controller'.
Quoted 8 lines
Quoted 1 line
+ compatible = "ingenic,jz4740-lcd";
The JZ4780's LCD controller is much newer than the JZ4740 one, so
even if it works with the "ingenic,jz4740-lcd" compatible string, you want it as a fallback.
So this should be: compatible = "ingenic,jz4780-lcd",
"ingenic,jz4740-lcd".That means the YAML should be updated too.
I have started to look into jz4780 HDMI setup again.
Well, there is no driver compatible to "ingenic,jz4780-lcd" so far and it is questionalbe if we need a different one.
Quoted 7 lines
I think we should rather make the driver also compatible than adding a fallback to ingenic,jz4740-lcdto the DTS.
The reason why this is better even if both LCDC are almost compatible is that the jz4780 allows for much bigger displays and therefore should have its own
jz_soc_infowith 4k x 2k as maximum.
Sure, feel free to extend the driver.
Quoted 8 lines
Next I tried to find out if the LCDC are really compatible.
Well the jz4780 has two lcdc instances but they are separated by the reg addr. Next, there are unique features (like picture in picture with alpha blending) but those are probably disabled if not programmed from reset state. This may become a reason to separate or augment the driver for the jz4780 but at the moment we can ignore that.
Two LCDC instances -> two lcd-controller@... nodes. It's that simple.
The other features you listed are outside the LCDC, so outside the scope of this driver.
Quoted 8 lines
There are also subtly different bit definitions and register widths (e.g. 24 bit in addition to 16/18 bit modes or more bits for the sync position) but it looks as if the
ingenic_drmdriver already handles this.Then I tried to read back the registers. Strangely they are all
0x00000000. So there is no programming of the lcd-controller in our DT setup with HDMI at all!
How did you read them?
Do it from the regmap: should be "cat /sys/kernel/debug/regmap/13050000.lcd-controller/registers" (not sure about the path)
Quoted 6 lines
I also checked that
ingenic_drm_probe()is called and returns successfully 0. It also reports that a/dev/fbhas been created:[ 7.908830] ingenic-drm 13050000.lcd-controller: fb0: ingenic-drmdrmf frame buffer device
Quoted 8 lines
But for example
ingenic_drm_encoder_atomic_mode_set()is never called which should write some registers of the LCDC.I only did see some calls to
ingenic_drm_encoder_atomic_check().This of course explains why we have no HDMI signals despite proper HPD and a
/dev/fb0. Because the LCDC is not being programmed.
It won't be called until the HDMI driver says that the cable is plugged, and there's a client application (e.g. fbdev emulation) running. So the problem is most likely within the HDMI driver.
Cheers,
-Paul
Quoted 5 lines
Any ideas / hints how to check or improve?
BR and thanks,
Nikolaus
Re: [RFC v2 6/8] MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller
Hi Paul,
Quoted 30 lines
Am 11.03.2020 um 14:20 schrieb Paul Cercueil <[email protected]>:
Hi Nikolaus,
Quoted 4 lines · H. Nikolaus Schaller
Hi Paul,
Quoted 3 lines
The JZ4780's LCD controller is much newer than the JZ4740 one, so even if it works with the "ingenic,jz4740-lcd" compatible string, you want it as a fallback. So this should be: compatible = "ingenic,jz4780-lcd", "ingenic,jz4740-lcd".
That means the YAML should be updated too.Quoted 9 lines
I have started to look into jz4780 HDMI setup again. Well, there is no driver compatible to "ingenic,jz4780-lcd" so far and it is questionalbe if we need a different one.
I think we should rather make the driver also compatible than adding a fallback to ingenic,jz4740-lcdto the DTS. The reason why this is better even if both LCDC are almost compatible is that the jz4780 allows for much bigger displays and therefore should have its ownjz_soc_infowith 4k x 2k as maximum.Sure, feel free to extend the driver.
Quoted 7 lines
Next I tried to find out if the LCDC are really compatible. Well the jz4780 has two lcdc instances but they are separated by the reg addr. Next, there are unique features (like picture in picture with alpha blending) but those are probably disabled if not programmed from reset state. This may become a reason to separate or augment the driver for the jz4780 but at the moment we can ignore that.
Quoted 1 line
Two LCDC instances -> two lcd-controller@... nodes. It's that simple.
Indeed :)
Quoted 2 lines
The other features you listed are outside the LCDC, so outside the scope of this driver.
Well, in the description they are mixed but I think we do not have to care about now.
Quoted 10 lines
Quoted 8 lines
There are also subtly different bit definitions and register widths (e.g. 24 bit in addition to 16/18 bit modes or more bits for the sync position) but it looks as if the
ingenic_drmdriver already handles this.
Then I tried to read back the registers. Strangely they are all0x00000000. So there is no programming of the lcd-controller in our DT setup with HDMI at all!How did you read them?
I used devmem2 (may be an omap tool I have recompiled for MIPS - it uses /dev/mem).
Quoted 1 line
Do it from the regmap: should be "cat
/sys/kernel/debug/regmap/13050000.lcd-controller/registers" (not sure about the path)
Well seems to give the same result:
root@letux:~# cat /sys/kernel/debug/regmap/13050000.lcd-controller/registers 00: 00000000 04: 00000000 08: 00000000 0c: 00000000 10: 00000000 14: 00000000 18: 00000000 1c: 00000000 20: 00000000 24: 00000000 28: 00000000 2c: 00000000 30: 00000000 34: 00000000 38: 00000000 3c: 00000000 40: 00000000 44: 00000000 48: 00000000 4c: 00000000 50: 00000000 54: 00000000 58: 00000000 5c: 00000000 root@letux:~#
Quoted 12 lines
Quoted 11 lines
I also checked that
ingenic_drm_probe()is called and returns successfully 0. It also reports that a/dev/fbhas been created:[ 7.908830] ingenic-drm 13050000.lcd-controller: fb0: ingenic-drmdrmf frame buffer deviceBut for example
ingenic_drm_encoder_atomic_mode_set()is never called which should write some registers of the LCDC. I only did see some calls toingenic_drm_encoder_atomic_check(). This of course explains why we have no HDMI signals despite proper HPD and a/dev/fb0. Because the LCDC is not being programmed.
Quoted 1 line
It won't be called until the HDMI driver says that the cable is plugged, and there's a client application (e.g. fbdev emulation) running. So the problem is most likely within the HDMI driver.
Ok!
The HDMI subsystem says (with some printk inserted) on cable unplug/replug:
root@letux:~# [ 3894.370706] dw_hdmi_update_power [ 3894.373984] dw_hdmi_update_power: hdmi->force=0 [ 3894.378759] dw_hdmi_update_power: hdmi->disabled=0 [ 3894.383756] dw_hdmi_update_power: hdmi->bridge_is_on=1 [ 3894.388947] dw_hdmi_update_power: hdmi->rxsense=1 [ 3894.393831] dw_hdmi_update_power: force=2 [ 3894.397895] dw_hdmi_update_power: hdmi->bridge_is_on=1 [ 3894.403200] dw_hdmi_phy_update_hpd [ 3894.406784] dw_hdmi_update_power [ 3894.410054] dw_hdmi_update_power: hdmi->force=0 [ 3894.414766] dw_hdmi_update_power: hdmi->disabled=0 [ 3894.419611] dw_hdmi_update_power: hdmi->bridge_is_on=1 [ 3894.424928] dw_hdmi_update_power: hdmi->rxsense=1 [ 3894.429699] dw_hdmi_update_power: force=2 [ 3894.433876] dw_hdmi_update_power: hdmi->bridge_is_on=1 [ 3894.439068] dw_hdmi_phy_update_hpd [ 3894.452316] dw_hdmi_update_power [ 3894.455596] dw_hdmi_update_power: hdmi->force=0 [ 3894.460150] dw_hdmi_update_power: hdmi->disabled=0 [ 3894.464967] dw_hdmi_update_power: hdmi->bridge_is_on=1 [ 3894.470131] dw_hdmi_update_power: hdmi->rxsense=1 [ 3894.475051] dw_hdmi_update_power: force=2 [ 3894.479111] dw_hdmi_update_power: hdmi->bridge_is_on=1 [ 3894.484423] dw_hdmi_phy_update_hpd [ 3894.488007] dw_hdmi_update_power [ 3894.491278] dw_hdmi_update_power: hdmi->force=0 [ 3894.495982] dw_hdmi_update_power: hdmi->disabled=0 [ 3894.500823] dw_hdmi_update_power: hdmi->bridge_is_on=1 [ 3894.506139] dw_hdmi_update_power: hdmi->rxsense=0 [ 3894.510895] dw_hdmi_update_power: force=1 [ 3894.515063] dw_hdmi_update_power: hdmi->bridge_is_on=1 [ 3894.520252] dw_hdmi_poweroff [ 3894.523284] dw_hdmi_phy_disable [ 3894.526480] dw_hdmi_phy_power_off [ 3894.529823] dw_hdmi_phy_gen2_txpwron [ 3894.533567] dw-hdmi-jz4780 10180000.hdmi: PHY powered down in 0 iterations [ 3894.540496] dw_hdmi_phy_gen2_pddq [ 3894.543966] dw_hdmi_phy_update_hpd [ 3894.547435] dw-hdmi-jz4780 10180000.hdmi: EVENT=plugout [ 3897.079560] dw_hdmi_update_power [ 3897.082840] dw_hdmi_update_power: hdmi->force=0 [ 3897.087394] dw_hdmi_update_power: hdmi->disabled=0 [ 3897.092207] dw_hdmi_update_power: hdmi->bridge_is_on=0 [ 3897.097370] dw_hdmi_update_power: hdmi->rxsense=1 [ 3897.102316] dw_hdmi_update_power: force=2 [ 3897.106380] dw_hdmi_update_power: hdmi->bridge_is_on=0 [ 3897.111667] dw_hdmi_poweron [ 3897.114518] dw_hdmi_setup [ 3897.117163] hdmi_disable_overflow_interrupts [ 3897.121478] dw-hdmi-jz4780 10180000.hdmi: Non-CEA mode used in HDMI [ 3897.127930] hdmi_av_composer [ 3897.130848] dw-hdmi-jz4780 10180000.hdmi: final pixclk = 0 [ 3897.136506] dw_hdmi_phy_init [ 3897.139440] dw_hdmi_phy_sel_data_en_pol [ 3897.143428] dw_hdmi_phy_sel_interface_control [ 3897.147840] hdmi_phy_configure [ 3897.150922] dw_hdmi_phy_power_off [ 3897.154415] dw_hdmi_phy_gen2_txpwron [ 3897.158043] dw-hdmi-jz4780 10180000.hdmi: PHY powered down in 0 iterations [ 3897.165094] dw_hdmi_phy_gen2_pddq [ 3897.168468] dw_hdmi_set_high_tmds_clock_ratio [ 3897.173002] hdmi_phy_configure_dwc_hdmi_3d_tx [ 3897.186578] dw_hdmi_phy_power_on [ 3897.189847] dw_hdmi_phy_gen2_txpwron [ 3897.193586] dw_hdmi_phy_gen2_pddq [ 3897.217640] dw-hdmi-jz4780 10180000.hdmi: PHY PLL locked 1 iterations [ 3897.224226] dw_hdmi_phy_sel_data_en_pol [ 3897.228107] dw_hdmi_phy_sel_interface_control [ 3897.232631] hdmi_phy_configure [ 3897.235739] dw_hdmi_phy_power_off [ 3897.239082] dw_hdmi_phy_gen2_txpwron [ 3897.242826] dw-hdmi-jz4780 10180000.hdmi: PHY powered down in 0 iterations [ 3897.249754] dw_hdmi_phy_gen2_pddq [ 3897.253239] dw_hdmi_set_high_tmds_clock_ratio [ 3897.257658] hdmi_phy_configure_dwc_hdmi_3d_tx [ 3897.271264] dw_hdmi_phy_power_on [ 3897.274659] dw_hdmi_phy_gen2_txpwron [ 3897.278292] dw_hdmi_phy_gen2_pddq [ 3897.283840] dw-hdmi-jz4780 10180000.hdmi: PHY PLL locked 1 iterations [ 3897.290346] dw_hdmi_enable_video_path [ 3897.294240] dw-hdmi-jz4780 10180000.hdmi: sink has audio support [ 3897.300324] dw-hdmi-jz4780 10180000.hdmi: dw_hdmi_setup HDMI mode [ 3897.306596] hdmi_config_AVI [ 3897.309467] hdmi_config_vendor_specific_infoframe [ 3897.314336] hdmi_config_drm_infoframe [ 3897.318096] hdmi_tx_hdcp_config [ 3897.321270] dw_hdmi_clear_overflow [ 3897.324831] dw_hdmi_phy_update_hpd [ 3897.328298] dw-hdmi-jz4780 10180000.hdmi: EVENT=plugin [ 3897.333704] dw_hdmi_update_power [ 3897.336990] dw_hdmi_update_power: hdmi->force=0 [ 3897.341551] dw_hdmi_update_power: hdmi->disabled=0 [ 3897.346528] dw_hdmi_update_power: hdmi->bridge_is_on=1 [ 3897.351858] dw_hdmi_update_power: hdmi->rxsense=1 [ 3897.356615] dw_hdmi_update_power: force=2 [ 3897.360655] dw_hdmi_update_power: hdmi->bridge_is_on=1 [ 3897.365980] dw_hdmi_phy_update_hpd
So the plugout/plugin events are not processed further.
One thing looks strange:
[ 3897.127930] hdmi_av_composer [ 3897.130848] dw-hdmi-jz4780 10180000.hdmi: final pixclk = 0
But I have no idea if this is the reason or the consequence of the uninitialized lcdc.
So we need some DRM specialist to take a look on it.
BR and thanks,
Nikolaus
RFC v2 7/8 MIPS: DTS: CI20: add HDMI setup
In reply to H. Nikolaus SchallerFrom: Paul Boddie <[email protected]>
We need to hook up
* HDMI power regulator
* HDMI connector
* DDC pinmux
* HDMI and LCD endpoint connections
--- arch/mips/boot/dts/ingenic/ci20.dts | 64 +++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+)
arch/mips/boot/dts/ingenic/ci20.dts +64 -0
@@ -60,6 +60,28 @@ enable-active-high; }; + hdmi_power: fixedregulator@2 { + compatible = "regulator-fixed"; + regulator-name = "hdmi_power"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpa 25 GPIO_ACTIVE_LOW>; + enable-active-high; + regulator-always-on; + }; + + hdmi_out: connector { + compatible = "hdmi-connector"; + label = "HDMI OUT"; + type = "a"; + + port { + hdmi_con: endpoint { + remote-endpoint = <&dw_hdmi_out>; + }; + }; + }; + wlan0_power: fixedregulator@1 { compatible = "regulator-fixed"; regulator-name = "wlan0_power";
@@ -423,6 +445,12 @@ bias-disable; }; + pins_hdmi_ddc: hdmi_ddc { + function = "hdmi-ddc"; + groups = "hdmi-ddc"; + bias-disable; + }; + pins_nemc: nemc { function = "nemc"; groups = "nemc-data", "nemc-cle-ale", "nemc-rd-we", "nemc-frd-fwe";
@@ -459,3 +487,39 @@ assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>; assigned-clock-rates = <3000000>, <3000000>; }; + +&hdmi { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&pins_hdmi_ddc>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + dw_hdmi_in: endpoint { + remote-endpoint = <&lcd_out>; + }; + }; + + port@1 { + reg = <1>; + dw_hdmi_out: endpoint { + remote-endpoint = <&hdmi_con>; + }; + }; + }; +}; + +&lcd { + status = "okay"; + + port { + lcd_out: endpoint { + remote-endpoint = <&dw_hdmi_in>; + }; + }; +};
Signature · 1 line
2.23.0
RFC v2 8/8 MIPS: CI20: defconfig: configure for DRM_DW_HDMI_JZ4780
In reply to H. Nikolaus SchallerWe configure them as loadable modules by default.
--- arch/mips/configs/ci20_defconfig | 3 +++ 1 file changed, 3 insertions(+)
arch/mips/configs/ci20_defconfig +3 -0
@@ -103,6 +103,9 @@ CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_JZ4740=y CONFIG_DMADEVICES=y CONFIG_DMA_JZ4780=y +CONFIG_DRM=m +CONFIG_DRM_DW_HDMI_JZ4780=m +CONFIG_DRM_DW_HDMI=m # CONFIG_IOMMU_SUPPORT is not set CONFIG_MEMORY=y CONFIG_EXT4_FS=y
Signature · 1 line
2.23.0