diff mbox

[RFC,1/8] dt-bindings: Document the hi6220 bindings for DRM driver

Message ID 1442309834-21420-2-git-send-email-kong.kongxinwei@hisilicon.com (mailing list archive)
State New, archived
Headers show

Commit Message

Xinwei Kong Sept. 15, 2015, 9:37 a.m. UTC
This adds documentation of device tree bindings for the
Graphics Processing Unit of hi6220 SOC.

Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>
Signed-off-by: Xinwei Kong <kong.kongxinwei@hisilicon.com>
Signed-off-by: Andy Green <andy.green@linaro.org>
Signed-off-by: Jiwen Qi <qijiwen@hisilicon.com>
Signed-off-by: Yu Gong <gongyu@hisilicon.com>
---
 .../devicetree/bindings/gpu/hisilicon,hi6220.txt   | 69 ++++++++++++++++++++++
 1 file changed, 69 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt

Comments

Rob Herring (Arm) Sept. 15, 2015, 6:11 p.m. UTC | #1
On 09/15/2015 04:37 AM, Xinwei Kong wrote:
> This adds documentation of device tree bindings for the
> Graphics Processing Unit of hi6220 SOC.
> 
> Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>
> Signed-off-by: Xinwei Kong <kong.kongxinwei@hisilicon.com>
> Signed-off-by: Andy Green <andy.green@linaro.org>
> Signed-off-by: Jiwen Qi <qijiwen@hisilicon.com>
> Signed-off-by: Yu Gong <gongyu@hisilicon.com>
> ---
>  .../devicetree/bindings/gpu/hisilicon,hi6220.txt   | 69 ++++++++++++++++++++++
>  1 file changed, 69 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
> 
> diff --git a/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt b/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
> new file mode 100644
> index 0000000..173ac63
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
> @@ -0,0 +1,69 @@
> + * Hisilicon hi6220 Graphics Processing Unit for HiKey board
> +
> + ** display-subsystem: Master device for binding DRM sub-components

DRM is a Linuxism that doesn't belong in the binding.

> +    This master device is parent node and it will be responsible to bind all
> +    sub-components devices node.

Are these nodes a single block in the h/w? If not, you should describe
the connection of sub-nodes with of-graph instead.

> +    - Required properties :
> +      - compatible: "hisilicon,display-subsystem".
> +      - #address-cells, #size-cells: Must be present if the device has sub-nodes.
> +      - ranges: to allow probing of subdevices.
> +      - dma-coherent: Present if dma operations are coherent.
> +
> + ** ade: Graphic overlay, Graphic post-processing, display timing control.
> +    This device is child node of display-subsystem
> +    - Required properties :
> +      - compatible: "hisilicon,hi6220-ade".
> +      - reg: physical base address of the ADE register and length of memory
> +	region.
> +      - reg-names: Should contain the reg names "ade_base" and "media_base".
> +      - interrupt: The interrupt number to the cpu. Defines the interrupt
> +        by ADE.
> +      - clocks: The clocks needed by the ADE module.
> +      - clock-names: the name of the clocks.
> +
> + ** dsi: support mipi dsi interface
> +    This device is child node of display-subsystem
> +    - Required properties :
> +      - compatible: "hisilicon,hi6220-dsi".
> +      - reg: physical base address of the DSI register and length of memory
> +	region.
> +      - clocks: The clocks needed by the DSI module.
> +      - clock-names: the name of the clocks.
> +      -	encoder-slave: phandles to a 'encoder-slave' subnode which DSI connect
> +        ADV7533 in order to support hdmi display.

What the ADV7533 binding looks like is still being discussed.
"encoder-slave" is certainly DRM specific and not how it should be done.
Most likely, this needs to use the of-graph ports.

Also, the ADV7533 connection is specific to HiKey. This binding should
just generically describe how any bridge or panel is connected.

Rob
Xinwei Kong Sept. 16, 2015, 8:34 a.m. UTC | #2
hi architt

On 2015/9/16 2:11, Rob Herring wrote:
> On 09/15/2015 04:37 AM, Xinwei Kong wrote:
>> This adds documentation of device tree bindings for the
>> Graphics Processing Unit of hi6220 SOC.
>>
>> Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>
>> Signed-off-by: Xinwei Kong <kong.kongxinwei@hisilicon.com>
>> Signed-off-by: Andy Green <andy.green@linaro.org>
>> Signed-off-by: Jiwen Qi <qijiwen@hisilicon.com>
>> Signed-off-by: Yu Gong <gongyu@hisilicon.com>
>> ---
>>  .../devicetree/bindings/gpu/hisilicon,hi6220.txt   | 69 ++++++++++++++++++++++
>>  1 file changed, 69 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
>>
>> diff --git a/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt b/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
>> new file mode 100644
>> index 0000000..173ac63
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
>> @@ -0,0 +1,69 @@
>> + * Hisilicon hi6220 Graphics Processing Unit for HiKey board
>> +
>> + ** display-subsystem: Master device for binding DRM sub-components
> 
> DRM is a Linuxism that doesn't belong in the binding.
> 
>> +    This master device is parent node and it will be responsible to bind all
>> +    sub-components devices node.
> 
> Are these nodes a single block in the h/w? If not, you should describe
> the connection of sub-nodes with of-graph instead.
> 
>> +    - Required properties :
>> +      - compatible: "hisilicon,display-subsystem".
>> +      - #address-cells, #size-cells: Must be present if the device has sub-nodes.
>> +      - ranges: to allow probing of subdevices.
>> +      - dma-coherent: Present if dma operations are coherent.
>> +
>> + ** ade: Graphic overlay, Graphic post-processing, display timing control.
>> +    This device is child node of display-subsystem
>> +    - Required properties :
>> +      - compatible: "hisilicon,hi6220-ade".
>> +      - reg: physical base address of the ADE register and length of memory
>> +	region.
>> +      - reg-names: Should contain the reg names "ade_base" and "media_base".
>> +      - interrupt: The interrupt number to the cpu. Defines the interrupt
>> +        by ADE.
>> +      - clocks: The clocks needed by the ADE module.
>> +      - clock-names: the name of the clocks.
>> +
>> + ** dsi: support mipi dsi interface
>> +    This device is child node of display-subsystem
>> +    - Required properties :
>> +      - compatible: "hisilicon,hi6220-dsi".
>> +      - reg: physical base address of the DSI register and length of memory
>> +	region.
>> +      - clocks: The clocks needed by the DSI module.
>> +      - clock-names: the name of the clocks.
>> +      -	encoder-slave: phandles to a 'encoder-slave' subnode which DSI connect
>> +        ADV7533 in order to support hdmi display.
> 
> What the ADV7533 binding looks like is still being discussed.
> "encoder-slave" is certainly DRM specific and not how it should be done.
> Most likely, this needs to use the of-graph ports.
> 
I dont how to implement the encoder bridge stuff in upstream,
you think that I will how to handle this part?

Thank you
xinwei

> Also, the ADV7533 connection is specific to HiKey. This binding should
> just generically describe how any bridge or panel is connected.
> 
> Rob
> 
> .
>
Archit Taneja Sept. 16, 2015, 9:10 a.m. UTC | #3
Hi,

On 09/16/2015 02:04 PM, Xinwei Kong wrote:
> hi architt
>
> On 2015/9/16 2:11, Rob Herring wrote:
>> On 09/15/2015 04:37 AM, Xinwei Kong wrote:
>>> This adds documentation of device tree bindings for the
>>> Graphics Processing Unit of hi6220 SOC.
>>>
>>> Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>
>>> Signed-off-by: Xinwei Kong <kong.kongxinwei@hisilicon.com>
>>> Signed-off-by: Andy Green <andy.green@linaro.org>
>>> Signed-off-by: Jiwen Qi <qijiwen@hisilicon.com>
>>> Signed-off-by: Yu Gong <gongyu@hisilicon.com>
>>> ---
>>>   .../devicetree/bindings/gpu/hisilicon,hi6220.txt   | 69 ++++++++++++++++++++++
>>>   1 file changed, 69 insertions(+)
>>>   create mode 100644 Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
>>>
>>> diff --git a/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt b/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
>>> new file mode 100644
>>> index 0000000..173ac63
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
>>> @@ -0,0 +1,69 @@
>>> + * Hisilicon hi6220 Graphics Processing Unit for HiKey board
>>> +
>>> + ** display-subsystem: Master device for binding DRM sub-components
>>
>> DRM is a Linuxism that doesn't belong in the binding.
>>
>>> +    This master device is parent node and it will be responsible to bind all
>>> +    sub-components devices node.
>>
>> Are these nodes a single block in the h/w? If not, you should describe
>> the connection of sub-nodes with of-graph instead.
>>
>>> +    - Required properties :
>>> +      - compatible: "hisilicon,display-subsystem".
>>> +      - #address-cells, #size-cells: Must be present if the device has sub-nodes.
>>> +      - ranges: to allow probing of subdevices.
>>> +      - dma-coherent: Present if dma operations are coherent.
>>> +
>>> + ** ade: Graphic overlay, Graphic post-processing, display timing control.
>>> +    This device is child node of display-subsystem
>>> +    - Required properties :
>>> +      - compatible: "hisilicon,hi6220-ade".
>>> +      - reg: physical base address of the ADE register and length of memory
>>> +	region.
>>> +      - reg-names: Should contain the reg names "ade_base" and "media_base".
>>> +      - interrupt: The interrupt number to the cpu. Defines the interrupt
>>> +        by ADE.
>>> +      - clocks: The clocks needed by the ADE module.
>>> +      - clock-names: the name of the clocks.
>>> +
>>> + ** dsi: support mipi dsi interface
>>> +    This device is child node of display-subsystem
>>> +    - Required properties :
>>> +      - compatible: "hisilicon,hi6220-dsi".
>>> +      - reg: physical base address of the DSI register and length of memory
>>> +	region.
>>> +      - clocks: The clocks needed by the DSI module.
>>> +      - clock-names: the name of the clocks.
>>> +      -	encoder-slave: phandles to a 'encoder-slave' subnode which DSI connect
>>> +        ADV7533 in order to support hdmi display.
>>
>> What the ADV7533 binding looks like is still being discussed.
>> "encoder-slave" is certainly DRM specific and not how it should be done.
>> Most likely, this needs to use the of-graph ports.
>>
> I dont how to implement the encoder bridge stuff in upstream,
> you think that I will how to handle this part?

You can use of-graph ports to link the dsi output with the adv7533
bridge.

An example of the binding looks like:

Documentation/devicetree/bindings/drm/msm/dsi.txt

The implementation of this on the dsi host side of drm/msm
can be found in dsi_host_parse_dt, in:

drivers/gpu/drm/msm/dsi/dsi_host.c

You can get to know more about of-graph parsing here:

Documentation/devicetree/bindings/graph.txt

I'd started going through the drm/hisil patches. I'll
share more comments there.

Thanks,
Archit

>
> Thank you
> xinwei
>
>> Also, the ADV7533 connection is specific to HiKey. This binding should
>> just generically describe how any bridge or panel is connected.
>>
>> Rob
>>
>> .
>>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Xinwei Kong Sept. 17, 2015, 12:14 p.m. UTC | #4
hi architt

On 2015/9/16 17:10, Archit Taneja wrote:
> Hi,
> 
> On 09/16/2015 02:04 PM, Xinwei Kong wrote:
>> hi architt
>>
>> On 2015/9/16 2:11, Rob Herring wrote:
>>> On 09/15/2015 04:37 AM, Xinwei Kong wrote:
>>>> This adds documentation of device tree bindings for the
>>>> Graphics Processing Unit of hi6220 SOC.
>>>>
>>>> Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>
>>>> Signed-off-by: Xinwei Kong <kong.kongxinwei@hisilicon.com>
>>>> Signed-off-by: Andy Green <andy.green@linaro.org>
>>>> Signed-off-by: Jiwen Qi <qijiwen@hisilicon.com>
>>>> Signed-off-by: Yu Gong <gongyu@hisilicon.com>
>>>> ---
>>>>   .../devicetree/bindings/gpu/hisilicon,hi6220.txt   | 69 ++++++++++++++++++++++
>>>>   1 file changed, 69 insertions(+)
>>>>   create mode 100644 Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt b/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
>>>> new file mode 100644
>>>> index 0000000..173ac63
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
>>>> @@ -0,0 +1,69 @@
>>>> + * Hisilicon hi6220 Graphics Processing Unit for HiKey board
>>>> +
>>>> + ** display-subsystem: Master device for binding DRM sub-components
>>>
>>> DRM is a Linuxism that doesn't belong in the binding.
>>>
>>>> +    This master device is parent node and it will be responsible to bind all
>>>> +    sub-components devices node.
>>>
>>> Are these nodes a single block in the h/w? If not, you should describe
>>> the connection of sub-nodes with of-graph instead.
>>>
>>>> +    - Required properties :
>>>> +      - compatible: "hisilicon,display-subsystem".
>>>> +      - #address-cells, #size-cells: Must be present if the device has sub-nodes.
>>>> +      - ranges: to allow probing of subdevices.
>>>> +      - dma-coherent: Present if dma operations are coherent.
>>>> +
>>>> + ** ade: Graphic overlay, Graphic post-processing, display timing control.
>>>> +    This device is child node of display-subsystem
>>>> +    - Required properties :
>>>> +      - compatible: "hisilicon,hi6220-ade".
>>>> +      - reg: physical base address of the ADE register and length of memory
>>>> +    region.
>>>> +      - reg-names: Should contain the reg names "ade_base" and "media_base".
>>>> +      - interrupt: The interrupt number to the cpu. Defines the interrupt
>>>> +        by ADE.
>>>> +      - clocks: The clocks needed by the ADE module.
>>>> +      - clock-names: the name of the clocks.
>>>> +
>>>> + ** dsi: support mipi dsi interface
>>>> +    This device is child node of display-subsystem
>>>> +    - Required properties :
>>>> +      - compatible: "hisilicon,hi6220-dsi".
>>>> +      - reg: physical base address of the DSI register and length of memory
>>>> +    region.
>>>> +      - clocks: The clocks needed by the DSI module.
>>>> +      - clock-names: the name of the clocks.
>>>> +      -    encoder-slave: phandles to a 'encoder-slave' subnode which DSI connect
>>>> +        ADV7533 in order to support hdmi display.
>>>
>>> What the ADV7533 binding looks like is still being discussed.
>>> "encoder-slave" is certainly DRM specific and not how it should be done.
>>> Most likely, this needs to use the of-graph ports.
>>>
>> I dont how to implement the encoder bridge stuff in upstream,
>> you think that I will how to handle this part?
> 
> You can use of-graph ports to link the dsi output with the adv7533
> bridge.
> 
> An example of the binding looks like:
> 
> Documentation/devicetree/bindings/drm/msm/dsi.txt
> 
> The implementation of this on the dsi host side of drm/msm
> can be found in dsi_host_parse_dt, in:
> 
> drivers/gpu/drm/msm/dsi/dsi_host.c
> 
> You can get to know more about of-graph parsing here:
> 
> Documentation/devicetree/bindings/graph.txt
> 
I study your patch about of-graph parsing, I know that how to parse this
dts endpoint node. Then i dont kow how to use this device_node (which is
get by "of_graph_get_remote_port_parent" function.) to hook adv7533 operation.

can you give me some help to how to use the adv7533 interface by device_node or
other way to use adv7533?

> I'd started going through the drm/hisil patches. I'll
> share more comments there.
> 
> Thanks,
> Archit
> 
>>
>> Thank you
>> xinwei
>>
>>> Also, the ADV7533 connection is specific to HiKey. This binding should
>>> just generically describe how any bridge or panel is connected.
>>>
>>> Rob
>>>
>>> .
>>>
>>
>> -- 
>> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt b/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
new file mode 100644
index 0000000..173ac63
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpu/hisilicon,hi6220.txt
@@ -0,0 +1,69 @@ 
+ * Hisilicon hi6220 Graphics Processing Unit for HiKey board
+
+ ** display-subsystem: Master device for binding DRM sub-components
+    This master device is parent node and it will be responsible to bind all
+    sub-components devices node.
+    - Required properties :
+      - compatible: "hisilicon,display-subsystem".
+      - #address-cells, #size-cells: Must be present if the device has sub-nodes.
+      - ranges: to allow probing of subdevices.
+      - dma-coherent: Present if dma operations are coherent.
+
+ ** ade: Graphic overlay, Graphic post-processing, display timing control.
+    This device is child node of display-subsystem
+    - Required properties :
+      - compatible: "hisilicon,hi6220-ade".
+      - reg: physical base address of the ADE register and length of memory
+	region.
+      - reg-names: Should contain the reg names "ade_base" and "media_base".
+      - interrupt: The interrupt number to the cpu. Defines the interrupt
+        by ADE.
+      - clocks: The clocks needed by the ADE module.
+      - clock-names: the name of the clocks.
+
+ ** dsi: support mipi dsi interface
+    This device is child node of display-subsystem
+    - Required properties :
+      - compatible: "hisilicon,hi6220-dsi".
+      - reg: physical base address of the DSI register and length of memory
+	region.
+      - clocks: The clocks needed by the DSI module.
+      - clock-names: the name of the clocks.
+      -	encoder-slave: phandles to a 'encoder-slave' subnode which DSI connect
+        ADV7533 in order to support hdmi display.
+
+Example:
+
+	display-subsystem {
+		compatible = "hisilicon,display-subsystem";
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+		dma-coherent;
+
+		ade: ade@f4100000 {
+			compatible = "hisilicon,hi6220-ade";
+			reg = <0x0 0xf4100000 0x0 0x7800>,
+			      <0x0 0xf4410000 0x0 0x1000>;
+			reg-names = "ade_base",
+				    "media_base";
+			interrupts = <0 115 4>;
+
+			clocks = <&media_ctrl HI6220_ADE_CORE>,
+				 <&media_ctrl HI6220_CODEC_JPEG>,
+				 <&media_ctrl HI6220_ADE_PIX_SRC>;
+			/*clock name*/
+			clock-names  = "clk_ade_core",
+				       "aclk_codec_jpeg_src",
+				       "clk_ade_pix";
+		};
+
+		dsi {
+			compatible = "hisilicon,hi6220-dsi";
+			reg = <0x0 0xf4107800 0x0 0x100>;
+			clocks = <&media_ctrl  HI6220_DSI_PCLK>;
+			clock-names = "pclk_dsi";
+			encoder-slave = <&adv7533>;
+		};
+	};
+