Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751845AbdIVDAK (ORCPT ); Thu, 21 Sep 2017 23:00:10 -0400 Received: from regular1.263xmail.com ([211.150.99.131]:51949 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751653AbdIVDAI (ORCPT ); Thu, 21 Sep 2017 23:00:08 -0400 X-263anti-spam: KSV:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-RL-SENDER: hjc@rock-chips.com X-FST-TO: sandy.huang@rock-chips.com X-SENDER-IP: 58.22.7.114 X-LOGIN-NAME: hjc@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Subject: Re: [PATCH 1/3] dt-bindings: Add document for rockchip RGB output interface To: Rob Herring Cc: Mark Rutland , "devicetree@vger.kernel.org" , Heiko Stuebner , David Airlie , "linux-kernel@vger.kernel.org" , dri-devel , "open list:ARM/Rockchip SoC..." , "linux-arm-kernel@lists.infradead.org" , Mark Yao References: <1505360594-196508-1-git-send-email-hjc@rock-chips.com> <1505360600-196567-1-git-send-email-hjc@rock-chips.com> <20170919144621.eledmglqgn7nf7zp@rob-hp-laptop> <6cd1ac0d-bc99-f8f3-15da-799f8623ce65@rock-chips.com> From: Sandy Huang Message-ID: Date: Fri, 22 Sep 2017 10:59:58 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6189 Lines: 205 Hi rob, 在 2017/9/22 3:40, Rob Herring 写道: > On Tue, Sep 19, 2017 at 9:57 PM, Sandy Huang wrote: >> >> >> 在 2017/9/20 9:51, Sandy Huang 写道: >>> >>> Hi rob, >>> thanks for you review. >>> >>> 在 2017/9/19 22:46, Rob Herring 写道: >>>> >>>> On Thu, Sep 14, 2017 at 11:43:18AM +0800, Sandy Huang wrote: >>>>> >>>>> This path add support rv1108 rgb output interface driver. >>>>> >>>>> Signed-off-by: Sandy Huang >>>>> --- >>>>> .../bindings/display/rockchip/rockchip-rgb.txt | 80 >>>>> ++++++++++++++++++++++ >>>>> 1 file changed, 80 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..4164512 >>>>> --- /dev/null >>>>> +++ >>>>> b/Documentation/devicetree/bindings/display/rockchip/rockchip-rgb.txt >>>>> @@ -0,0 +1,80 @@ >>>>> +Rockchip RV1108 RGB interface >>>>> +================================ >>>>> + >>>>> +Required properties: >>>>> +- compatible: matching the soc type: >>>>> + - "rockchip,rv1108-rgb"; >>>>> + >>>>> +Optional properties: >>>>> +- pinctrl-names: must contain a "lcdc" entry. >>>>> +- pinctrl-0: pin control group to be used for this interface. >>>>> + >>>>> +Required nodes: >>>>> +- rockchip,rgb-mode: should be "p888", "p666", "p565", "s888", >>>>> "s888-dummy" >>>> >>>> >>>> This should be a standard property. Any device with a parallel interface >>>> is going to need something like this. >>>> >>> so, i need to move this property to panel? or just rename >>> rockchip,rgb-mode to rgb-mode? >>> >>>>> + - p888: output r8-g8-b8 at each dclk cycle for per-pixel >>>>> + - p666: output r6-g6-b6 at each dclk cycle for per-pixel >>>>> + - p565: output r5-g6-b5 at each dclk cycle for per-pixel >>>>> + - s888: output r8-g8-b8 in three dclk cycle for per-pixel >>>>> + - s888-dmmy: output r8-g8-b8-dummy in four dclk cycle for per-pixel >>>>> + >>>>> +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 >>>>> +Panel other required properties: >>>>> +- ports for remote rgb output. >>>>> + >>>>> +Example: >>>>> + >>>>> +panel: panel { >>>>> + compatible = "auo,b101ean01"; >>>>> + enable-gpios = <&gpio7 21 GPIO_ACTIVE_HIGH>; >>>>> + >>>>> + 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>; >>>>> + rockchip,rgb-mode = "p888"; >>>>> + >>>>> + ports { >>>>> + #address-cells = <1>; >>>>> + #size-cells = <0>; >>>>> + >>>>> + rgb_in: port@0 { >>>>> + reg = <0>; >>>>> + #address-cells = <1>; >>>>> + #size-cells = <0>; >>>>> + >>>>> + rgb_in_vop: endpoint@0 { >>>>> + reg = <0>; >>>> >>>> >>>> Don't need reg for a single endpoint. >>>> >>> ok, this will be deleted at next version. >>>>> >>>>> + remote-endpoint = <&vop_out_rgb>; >>>>> + }; >>>>> + }; >>>>> + >>>>> + rgb_out: port@1 { >>>>> + reg = <1>; >>>>> + #address-cells = <1>; >>>>> + #size-cells = <0>; >>>>> + >>>>> + rgb_out_panel: endpoint@0 { >>>>> + reg = <0>; >>>> >>>> >>>> ditto. >>>> >>> ok, this will be deleted at next version. >> >> sorry,this can't be deleted, because rgb output remote endpoint maybe panel >> or convert chip, the dts node maybe like this: >> >> panel: panel { >> status = "disabled"; >> ports { >> panel_in_rgb: endpoint { >> remote-endpoint = <&rgb_out_panel>; >> }; >> }; >> }; >> >> bridge: bridge { >> status = "okay"; >> ports { >> bridge_in_rgb: endpoint { >> remote-endpoint = <&rgb_out_bridge>; >> }; >> }; >> }; >> >> rgb_out: port@1 { >> reg = <1>; >> #address-cells = <1>; >> #size-cells = <0>; >> rgb_out_panel: endpoint@0 { >> reg = <0>; >> remote-endpoint = <&panel_in_rgb>; >> }; >> rgb_out_bridge: endpoint@1 { >> reg = <1>; >> remote-endpoint = <&bridge_in_rgb>; >> }; >> }; >> >> so rockchip_rgb_bind() @ rockchip_rgb.c use reg id to find the remote >> actived endpoint. >> >> for_each_child_of_node(port, endpoint) { >> of_property_read_u32(endpoint, "reg", &endpoint_id); > > Lack of reg property here should imply 0 for endpoint_id. > ok, i will delete this reg id and set the endpoint_id default value to 0 when lack of reg property at next version, thanks. >> ret = drm_of_find_panel_or_bridge(dev->of_node, 1, endpoint_id, >> &rgb->panel, &rgb->bridge); >> if (!ret) >> break; >> } >> >>>>> + remote-endpoint = <&panel_in_rgb>; >>>>> + }; >>>>> + }; >>>>> + }; >>>>> + }; >>>>> -- >>>>> 2.7.4 >>>>> >>>>> >>>> >>>> >>>> >>> >>> >>> _______________________________________________ >>> Linux-rockchip mailing list >>> Linux-rockchip@lists.infradead.org >>> http://lists.infradead.org/mailman/listinfo/linux-rockchip >> >> > > >