diff mbox

[v4,1/2] devicetree/bindings: display: Add document for rockchip RGB output

Message ID 1529997340-156879-2-git-send-email-hjc@rock-chips.com (mailing list archive)
State New, archived
Headers show

Commit Message

黄家钗 June 26, 2018, 7:15 a.m. UTC
This path add support rv1108 and px30 rgb output interface driver.

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1509522765-118759-1-git-send-email-hjc@rock-chips.com
---

Changes in v4: Add support px30
Changes in v3: None
Changes in v2: None

.../bindings/display/rockchip/rockchip-rgb.txt     | 73 ++++++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt

Comments

Rob Herring (Arm) July 3, 2018, 6:25 p.m. UTC | #1
On Tue, Jun 26, 2018 at 03:15:39PM +0800, Sandy Huang wrote:
> This path add support rv1108 and px30 rgb output interface driver.

Bindings are for h/w, not drivers.

> 
> Signed-off-by: Sandy Huang <hjc@rock-chips.com>
> Link: https://patchwork.freedesktop.org/patch/msgid/1509522765-118759-1-git-send-email-hjc@rock-chips.com
> ---
> 
> Changes in v4: Add support px30
> Changes in v3: None
> Changes in v2: None
> 
> .../bindings/display/rockchip/rockchip-rgb.txt     | 73 ++++++++++++++++++++++
>  1 file changed, 73 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt
> 
> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt b/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt
> new file mode 100644
> index 0000000..077b9ad
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt
> @@ -0,0 +1,73 @@
> +Rockchip RV1108 RGB interface
> +================================
> +
> +Required properties:
> +- compatible: matching the soc type:
> +	- "rockchip,px30-rgb";
> +	- "rockchip,rv1108-rgb";

This doesn't look right? What (and how) is getting programmed here 
because you don't have any register interface.

> +
> +Optional properties:
> +- pinctrl-names: should be a "lcdc" entry or a "default" entry.
> +- pinctrl-0: pin control group to be used for this interface.
> +
> +The rgb has two video ports described by:
> +	Documentation/devicetree/bindings/media/video-interfaces.txt
> +Their connections are modeled using the OF graph bindings specified in
> +	Documentation/devicetree/bindings/graph.txt.
> +
> +- video port 0 for the VOP input, the remote endpoint maybe vopb/vopl/vop

So there is a mux for these inputs and they are switched with pinctrl? 

Just put the pinctrl nodes of the sources and enable whichever one is 
active.

Rob
黄家钗 July 4, 2018, 12:09 p.m. UTC | #2
Hi Rob Herring,
Thanks for your review.

在 2018/7/4 2:25, Rob Herring 写道:
> On Tue, Jun 26, 2018 at 03:15:39PM +0800, Sandy Huang wrote:
>> This path add support rv1108 and px30 rgb output interface driver.
> 
> Bindings are for h/w, not drivers.
> 
I will update at next version as following:
This patch add support rv1108 and px30 rgb output interface
>>
>> Signed-off-by: Sandy Huang <hjc@rock-chips.com>
>> Link: https://patchwork.freedesktop.org/patch/msgid/1509522765-118759-1-git-send-email-hjc@rock-chips.com
>> ---
>>
>> Changes in v4: Add support px30
>> Changes in v3: None
>> Changes in v2: None
>>
>> .../bindings/display/rockchip/rockchip-rgb.txt     | 73 ++++++++++++++++++++++
>>   1 file changed, 73 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt
>>
>> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt b/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt
>> new file mode 100644
>> index 0000000..077b9ad
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt
>> @@ -0,0 +1,73 @@
>> +Rockchip RV1108 RGB interface
>> +================================
>> +
>> +Required properties:
>> +- compatible: matching the soc type:
>> +	- "rockchip,px30-rgb";
>> +	- "rockchip,rv1108-rgb";
> 
> This doesn't look right? What (and how) is getting programmed here
> because you don't have any register interface.
> 
This is register for DRM encoder and connecter or bridge for some RGB 
convert chips driver.
so far we don't have any register for rgb interface, but it's most 
probable need to config some register for rgb interface in feauture for 
rockchip platform.

>> +
>> +Optional properties:
>> +- pinctrl-names: should be a "lcdc" entry or a "default" entry.
>> +- pinctrl-0: pin control group to be used for this interface.
>> +
>> +The rgb has two video ports described by:
>> +	Documentation/devicetree/bindings/media/video-interfaces.txt
>> +Their connections are modeled using the OF graph bindings specified in
>> +	Documentation/devicetree/bindings/graph.txt.
>> +
>> +- video port 0 for the VOP input, the remote endpoint maybe vopb/vopl/vop
> 
> So there is a mux for these inputs and they are switched with pinctrl?
> 
connetced can connect to vopb/vopl/vop which is same with other 
connenter like edp/dsi/lvds, there is a sample for edp 
at:Documentation/devicetree/bindings/display/rockchip/rockchip-vop.txt
> Just put the pinctrl nodes of the sources and enable whichever one is
> active.
> 
Do you think i need add pinctrl nodes here? Or am I wrong?
> Rob
> 
> 
>
Heiko Stuebner Aug. 27, 2018, 7:11 a.m. UTC | #3
Hi Sandy,

trying to move this forward a bit :-)

Am Mittwoch, 4. Juli 2018, 14:09:56 CEST schrieb Sandy Huang:
> Hi Rob Herring,
> Thanks for your review.
> 
> 在 2018/7/4 2:25, Rob Herring 写道:
> > On Tue, Jun 26, 2018 at 03:15:39PM +0800, Sandy Huang wrote:
> >> This path add support rv1108 and px30 rgb output interface driver.
> > 
> > Bindings are for h/w, not drivers.
> > 
> I will update at next version as following:
> This patch add support rv1108 and px30 rgb output interface
> >>
> >> Signed-off-by: Sandy Huang <hjc@rock-chips.com>
> >> Link: https://patchwork.freedesktop.org/patch/msgid/1509522765-118759-1-git-send-email-hjc@rock-chips.com
> >> ---
> >>
> >> Changes in v4: Add support px30
> >> Changes in v3: None
> >> Changes in v2: None
> >>
> >> .../bindings/display/rockchip/rockchip-rgb.txt     | 73 ++++++++++++++++++++++
> >>   1 file changed, 73 insertions(+)
> >>   create mode 100644 Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt
> >>
> >> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt b/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt
> >> new file mode 100644
> >> index 0000000..077b9ad
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt
> >> @@ -0,0 +1,73 @@
> >> +Rockchip RV1108 RGB interface
> >> +================================
> >> +
> >> +Required properties:
> >> +- compatible: matching the soc type:
> >> +	- "rockchip,px30-rgb";
> >> +	- "rockchip,rv1108-rgb";
> > 
> > This doesn't look right? What (and how) is getting programmed here
> > because you don't have any register interface.
> > 
> This is register for DRM encoder and connecter or bridge for some RGB 
> convert chips driver.
> so far we don't have any register for rgb interface, but it's most 
> probable need to config some register for rgb interface in feauture for 
> rockchip platform.

I think the basic-issue Rob was pointing out is that the devicetree
describes hardware blocks and not the software representation.

And the rgb output is not a separate block, but instead just a property
of the vop itself, hence should possibly not have a separate "device".

As I'm currently tinkering with rk3188 display support [0] - which only has
rgb output at all - I modified your patch a bit to to showcase how that
could look [1], where the soc vop struct simply has a feature flag
indicating indicating a raw rgb output and the rgb driver then
looks for bridges in the vop endpoints to distinguish them from
soc-internals output encoders.

Let me know what you think :-)
Heiko

[0] https://github.com/mmind/linux-rockchip/commits/wip/rk3188-lcdc
[1] https://github.com/mmind/linux-rockchip/commit/fe74d2c4d76bcb6035b7207753e6afb85335b6cd
needs also https://github.com/mmind/linux-rockchip/commit/c5a48c772f3564211dcd1ec71004de1d6dbb0307
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt b/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt
new file mode 100644
index 0000000..077b9ad
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt
@@ -0,0 +1,73 @@ 
+Rockchip RV1108 RGB interface
+================================
+
+Required properties:
+- compatible: matching the soc type:
+	- "rockchip,px30-rgb";
+	- "rockchip,rv1108-rgb";
+
+Optional properties:
+- pinctrl-names: should be a "lcdc" entry or a "default" entry.
+- pinctrl-0: pin control group to be used for this interface.
+
+The rgb has two video ports described by:
+	Documentation/devicetree/bindings/media/video-interfaces.txt
+Their connections are modeled using the OF graph bindings specified in
+	Documentation/devicetree/bindings/graph.txt.
+
+- video port 0 for the VOP input, the remote endpoint maybe vopb/vopl/vop
+- video port 1 for either a panel or subsequent encoder
+
+the panel described by:
+	Documentation/devicetree/bindings/display/panel/simple-panel.txt
+rgb-mode nodes described by:
+	Documentation/devicetree/bindings/display/panel/panel-rgb.txt
+Panel other required properties:
+- ports for remote rgb output.
+
+Example:
+
+panel: panel {
+	compatible = "auo,b101ean01";
+	enable-gpios = <&gpio7 21 GPIO_ACTIVE_HIGH>;
+	rgb-mode = "p888";
+
+	ports {
+		panel_in_rgb: endpoint {
+			remote-endpoint = <&rgb_out_panel>;
+		};
+	};
+};
+
+For Rockchip RV1108:
+
+	rgb: rgb {
+		compatible = "rockchip,rv1108-rgb";
+		pinctrl-names = "lcdc";
+		pinctrl-0 = <&lcdc_ctl>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			rgb_in: port@0 {
+				reg = <0>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				rgb_in_vop: endpoint {
+					remote-endpoint = <&vop_out_rgb>;
+				};
+			};
+
+			rgb_out: port@1 {
+				reg = <1>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				rgb_out_panel: endpoint {
+					remote-endpoint = <&panel_in_rgb>;
+				};
+			};
+		};
+	};