2022-10-13 11:06:17

by allen

[permalink] [raw]
Subject: [PATCH v4 0/2] *** IT6505 driver read dt properties ***

This series let driver can read properties from dt to restrict dp output
bandwidth.

Changes in v3:
-Rename property name.

Changes in v4:
-Use data-lanes and link-frequencies instead of "ite,dp-output-data-lane-count" and "ite,dp-output-max-pixel-clock-mhz".

allen chen (2):
dt-bindings: it6505: add properties to restrict output bandwidth
drm/bridge: add it6505 driver to read data-lanes and link-frequencies
from dt

.../bindings/display/bridge/ite,it6505.yaml | 43 +++++++++++++++
drivers/gpu/drm/bridge/ite-it6505.c | 54 +++++++++++++++++--
2 files changed, 94 insertions(+), 3 deletions(-)

--
2.25.1


2022-10-13 11:24:37

by allen

[permalink] [raw]
Subject: [PATCH v4 1/2] dt-bindings: it6505: add properties to restrict output bandwidth

From: allen chen <[email protected]>

Add properties to restrict dp output data-lanes and clock.

Signed-off-by: Pin-Yen Lin <[email protected]>
Signed-off-by: Allen Chen <[email protected]>
---
.../bindings/display/bridge/ite,it6505.yaml | 43 +++++++++++++++++++
1 file changed, 43 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
index 833d11b2303a7..f2c3d1d10359e 100644
--- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
@@ -52,10 +52,51 @@ properties:
maxItems: 1
description: extcon specifier for the Power Delivery

+ data-lanes:
+ oneOf:
+ - minItems: 1
+ maxItems: 1
+ uniqueItems: true
+ items:
+ enum:
+ - 0
+ - 1
+ description: For one lane operation.
+
+ - minItems: 2
+ maxItems: 2
+ uniqueItems: true
+ items:
+ enum:
+ - 0
+ - 1
+ description: For two lanes operation.
+
+ - minItems: 4
+ maxItems: 4
+ uniqueItems: true
+ items:
+ enum:
+ - 0
+ - 1
+ - 2
+ - 3
+ description: For four lanes operation.
+
port:
$ref: /schemas/graph.yaml#/properties/port
description: A port node pointing to DPI host port node

+ properties:
+ endpoint:
+ $ref: /schemas/graph.yaml#/$defs/endpoint-base
+
+ properties:
+ link-frequencies:
+ minItems: 1
+ maxItems: 1
+ description: Allowed max link frequencies in Hz.
+
required:
- compatible
- ovdd-supply
@@ -84,10 +125,12 @@ examples:
pwr18-supply = <&it6505_pp18_reg>;
reset-gpios = <&pio 179 1>;
extcon = <&usbc_extcon>;
+ data-lanes = <0 1>;

port {
it6505_in: endpoint {
remote-endpoint = <&dpi_out>;
+ link-frequencies = /bits/ 64 <150000000>;
};
};
};
--
2.25.1

2022-10-13 11:24:37

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH v4 1/2] dt-bindings: it6505: add properties to restrict output bandwidth

Hi Allen,

Thank you for the patch.

On Thu, Oct 13, 2022 at 06:51:13PM +0800, allen wrote:
> From: allen chen <[email protected]>
>
> Add properties to restrict dp output data-lanes and clock.
>
> Signed-off-by: Pin-Yen Lin <[email protected]>
> Signed-off-by: Allen Chen <[email protected]>
> ---
> .../bindings/display/bridge/ite,it6505.yaml | 43 +++++++++++++++++++
> 1 file changed, 43 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> index 833d11b2303a7..f2c3d1d10359e 100644
> --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> @@ -52,10 +52,51 @@ properties:
> maxItems: 1
> description: extcon specifier for the Power Delivery
>
> + data-lanes:
> + oneOf:
> + - minItems: 1
> + maxItems: 1
> + uniqueItems: true
> + items:
> + enum:
> + - 0
> + - 1
> + description: For one lane operation.
> +
> + - minItems: 2
> + maxItems: 2
> + uniqueItems: true
> + items:
> + enum:
> + - 0
> + - 1
> + description: For two lanes operation.
> +
> + - minItems: 4
> + maxItems: 4
> + uniqueItems: true
> + items:
> + enum:
> + - 0
> + - 1
> + - 2
> + - 3
> + description: For four lanes operation.

The data lanes should be in the output endpoint. If there's no output
port, one should be added.

> +
> port:
> $ref: /schemas/graph.yaml#/properties/port
> description: A port node pointing to DPI host port node
>
> + properties:
> + endpoint:
> + $ref: /schemas/graph.yaml#/$defs/endpoint-base
> +
> + properties:
> + link-frequencies:
> + minItems: 1
> + maxItems: 1
> + description: Allowed max link frequencies in Hz.
> +
> required:
> - compatible
> - ovdd-supply
> @@ -84,10 +125,12 @@ examples:
> pwr18-supply = <&it6505_pp18_reg>;
> reset-gpios = <&pio 179 1>;
> extcon = <&usbc_extcon>;
> + data-lanes = <0 1>;
>
> port {
> it6505_in: endpoint {
> remote-endpoint = <&dpi_out>;
> + link-frequencies = /bits/ 64 <150000000>;
> };
> };
> };

--
Regards,

Laurent Pinchart

2022-10-13 11:25:46

by allen

[permalink] [raw]
Subject: [PATCH v4 2/2] drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt

From: allen chen <[email protected]>

Add driver to read data-lanes and link-frequencies from dt property to
restrict output bandwidth.

Signed-off-by: Allen chen <[email protected]>
Signed-off-by: Pin-yen Lin <[email protected]>
---
drivers/gpu/drm/bridge/ite-it6505.c | 54 +++++++++++++++++++++++++++--
1 file changed, 51 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index a4302492cf8df..653ab38465b98 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -437,6 +437,8 @@ struct it6505 {
bool powered;
bool hpd_state;
u32 afe_setting;
+ u32 max_dpi_pixel_clock;
+ u32 max_lane_count;
enum hdcp_state hdcp_status;
struct delayed_work hdcp_work;
struct work_struct hdcp_wait_ksv_list;
@@ -1476,7 +1478,8 @@ static void it6505_parse_link_capabilities(struct it6505 *it6505)
it6505->lane_count = link->num_lanes;
DRM_DEV_DEBUG_DRIVER(dev, "Sink support %d lanes training",
it6505->lane_count);
- it6505->lane_count = min_t(int, it6505->lane_count, MAX_LANE_COUNT);
+ it6505->lane_count = min_t(int, it6505->lane_count,
+ it6505->max_lane_count);

it6505->branch_device = drm_dp_is_branch(it6505->dpcd);
DRM_DEV_DEBUG_DRIVER(dev, "Sink %sbranch device",
@@ -2912,7 +2915,7 @@ it6505_bridge_mode_valid(struct drm_bridge *bridge,
if (mode->flags & DRM_MODE_FLAG_INTERLACE)
return MODE_NO_INTERLACE;

- if (mode->clock > DPI_PIXEL_CLK_MAX)
+ if (mode->clock > it6505->max_dpi_pixel_clock)
return MODE_CLOCK_HIGH;

it6505->video_info.clock = mode->clock;
@@ -3102,7 +3105,13 @@ static int it6505_init_pdata(struct it6505 *it6505)
static void it6505_parse_dt(struct it6505 *it6505)
{
struct device *dev = &it6505->client->dev;
+ struct device_node *np = dev->of_node, *ep = NULL;
+ int len;
+ u64 link_frequencies;
+ u32 data_lanes[4];
u32 *afe_setting = &it6505->afe_setting;
+ u32 *max_lane_count = &it6505->max_lane_count;
+ u32 *max_dpi_pixel_clock = &it6505->max_dpi_pixel_clock;

it6505->lane_swap_disabled =
device_property_read_bool(dev, "no-laneswap");
@@ -3118,7 +3127,46 @@ static void it6505_parse_dt(struct it6505 *it6505)
} else {
*afe_setting = 0;
}
- DRM_DEV_DEBUG_DRIVER(dev, "using afe_setting: %d", *afe_setting);
+
+ len = of_property_read_variable_u32_array(np, "data-lanes",
+ data_lanes, 0,
+ ARRAY_SIZE(data_lanes));
+ *max_lane_count = len;
+
+ if (len < 0 || *max_lane_count == 3 || *max_lane_count > 4) {
+ dev_err(dev, "error data-lanes, use default");
+ *max_lane_count = MAX_LANE_COUNT;
+ }
+
+ ep = of_graph_get_endpoint_by_regs(np, 0, 0);
+
+ if (ep) {
+ len = of_property_read_variable_u64_array(ep,
+ "link-frequencies",
+ &link_frequencies, 0,
+ 1);
+ if (len >= 0) {
+ link_frequencies /= 1000;
+ if (link_frequencies > 297000) {
+ dev_err(dev,
+ "max pixel clock error, use default");
+ *max_dpi_pixel_clock = DPI_PIXEL_CLK_MAX;
+ } else {
+ *max_dpi_pixel_clock = link_frequencies;
+ }
+ } else {
+ dev_err(dev, "error link frequencies, use default");
+ *max_dpi_pixel_clock = DPI_PIXEL_CLK_MAX;
+ }
+ } else {
+ dev_err(dev, "error endpoint, use default");
+ *max_dpi_pixel_clock = DPI_PIXEL_CLK_MAX;
+ }
+
+ DRM_DEV_DEBUG_DRIVER(dev, "using afe_setting: %u, max_lane_count: %u",
+ it6505->afe_setting, it6505->max_lane_count);
+ DRM_DEV_DEBUG_DRIVER(dev, "using max_dpi_pixel_clock: %u kHz",
+ it6505->max_dpi_pixel_clock);
}

static ssize_t receive_timing_debugfs_show(struct file *file, char __user *buf,
--
2.25.1

2022-10-13 16:27:01

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v4 1/2] dt-bindings: it6505: add properties to restrict output bandwidth

On Thu, 13 Oct 2022 18:51:13 +0800, allen wrote:
> From: allen chen <[email protected]>
>
> Add properties to restrict dp output data-lanes and clock.
>
> Signed-off-by: Pin-Yen Lin <[email protected]>
> Signed-off-by: Allen Chen <[email protected]>
> ---
> .../bindings/display/bridge/ite,it6505.yaml | 43 +++++++++++++++++++
> 1 file changed, 43 insertions(+)
>

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/bridge/ite,it6505.example.dtb: dp-bridge@5c: port:endpoint: Unevaluated properties are not allowed ('link-frequencies' was unexpected)
From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.

2022-10-13 19:25:22

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH v4 2/2] drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt

Hi allen,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on linus/master v6.0 next-20221013]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/allen/IT6505-driver-read-dt-properties/20221013-185334
base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link: https://lore.kernel.org/r/20221013105116.180380-3-allen.chen%40ite.com.tw
patch subject: [PATCH v4 2/2] drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt
config: mips-allyesconfig
compiler: mips-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/5c17730237cfc2b768593632c4095cc9d40c1787
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review allen/IT6505-driver-read-dt-properties/20221013-185334
git checkout 5c17730237cfc2b768593632c4095cc9d40c1787
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

arch/mips/kernel/head.o: in function `kernel_entry':
(.ref.text+0xac): relocation truncated to fit: R_MIPS_26 against `start_kernel'
init/main.o: in function `set_reset_devices':
main.c:(.init.text+0x20): relocation truncated to fit: R_MIPS_26 against `_mcount'
main.c:(.init.text+0x30): relocation truncated to fit: R_MIPS_26 against `__sanitizer_cov_trace_pc'
init/main.o: in function `debug_kernel':
main.c:(.init.text+0xa4): relocation truncated to fit: R_MIPS_26 against `_mcount'
main.c:(.init.text+0xb4): relocation truncated to fit: R_MIPS_26 against `__sanitizer_cov_trace_pc'
init/main.o: in function `quiet_kernel':
main.c:(.init.text+0x128): relocation truncated to fit: R_MIPS_26 against `_mcount'
main.c:(.init.text+0x138): relocation truncated to fit: R_MIPS_26 against `__sanitizer_cov_trace_pc'
init/main.o: in function `warn_bootconfig':
main.c:(.init.text+0x1ac): relocation truncated to fit: R_MIPS_26 against `_mcount'
main.c:(.init.text+0x1bc): relocation truncated to fit: R_MIPS_26 against `__sanitizer_cov_trace_pc'
init/main.o: in function `init_setup':
main.c:(.init.text+0x234): relocation truncated to fit: R_MIPS_26 against `_mcount'
main.c:(.init.text+0x254): additional relocation overflows omitted from the output
mips-linux-ld: drivers/gpu/drm/bridge/ite-it6505.o: in function `it6505_parse_dt':
>> ite-it6505.c:(.text.it6505_parse_dt+0x280): undefined reference to `__udivdi3'

--
0-DAY CI Kernel Test Service
https://01.org/lkp


Attachments:
(No filename) (3.17 kB)
config (330.15 kB)
Download all attachments

2022-10-13 19:31:29

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v4 1/2] dt-bindings: it6505: add properties to restrict output bandwidth

On Thu, Oct 13, 2022 at 02:05:45PM +0300, Laurent Pinchart wrote:
> Hi Allen,
>
> Thank you for the patch.
>
> On Thu, Oct 13, 2022 at 06:51:13PM +0800, allen wrote:
> > From: allen chen <[email protected]>
> >
> > Add properties to restrict dp output data-lanes and clock.
> >
> > Signed-off-by: Pin-Yen Lin <[email protected]>
> > Signed-off-by: Allen Chen <[email protected]>
> > ---
> > .../bindings/display/bridge/ite,it6505.yaml | 43 +++++++++++++++++++
> > 1 file changed, 43 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> > index 833d11b2303a7..f2c3d1d10359e 100644
> > --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> > @@ -52,10 +52,51 @@ properties:
> > maxItems: 1
> > description: extcon specifier for the Power Delivery
> >
> > + data-lanes:
> > + oneOf:
> > + - minItems: 1
> > + maxItems: 1
> > + uniqueItems: true
> > + items:
> > + enum:
> > + - 0
> > + - 1
> > + description: For one lane operation.
> > +
> > + - minItems: 2
> > + maxItems: 2
> > + uniqueItems: true
> > + items:
> > + enum:
> > + - 0
> > + - 1
> > + description: For two lanes operation.
> > +
> > + - minItems: 4
> > + maxItems: 4
> > + uniqueItems: true
> > + items:
> > + enum:
> > + - 0
> > + - 1
> > + - 2
> > + - 3
> > + description: For four lanes operation.
>
> The data lanes should be in the output endpoint. If there's no output
> port, one should be added.
>
> > +
> > port:
> > $ref: /schemas/graph.yaml#/properties/port

To fix the error, this must be:

$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false

> > description: A port node pointing to DPI host port node
> >
> > + properties:
> > + endpoint:
> > + $ref: /schemas/graph.yaml#/$defs/endpoint-base
> > +
> > + properties:
> > + link-frequencies:
> > + minItems: 1
> > + maxItems: 1
> > + description: Allowed max link frequencies in Hz.
> > +
> > required:
> > - compatible
> > - ovdd-supply
> > @@ -84,10 +125,12 @@ examples:
> > pwr18-supply = <&it6505_pp18_reg>;
> > reset-gpios = <&pio 179 1>;
> > extcon = <&usbc_extcon>;
> > + data-lanes = <0 1>;
> >
> > port {
> > it6505_in: endpoint {
> > remote-endpoint = <&dpi_out>;
> > + link-frequencies = /bits/ 64 <150000000>;
> > };
> > };
> > };
>
> --
> Regards,
>
> Laurent Pinchart
>

2022-10-13 20:16:02

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH v4 2/2] drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt

Hi allen,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on linus/master v6.0 next-20221013]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/allen/IT6505-driver-read-dt-properties/20221013-185334
base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
config: m68k-allyesconfig
compiler: m68k-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/5c17730237cfc2b768593632c4095cc9d40c1787
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review allen/IT6505-driver-read-dt-properties/20221013-185334
git checkout 5c17730237cfc2b768593632c4095cc9d40c1787
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

m68k-linux-ld: drivers/gpu/drm/bridge/ite-it6505.o: in function `it6505_parse_dt':
>> ite-it6505.c:(.text+0x470): undefined reference to `__udivdi3'
`.exit.text' referenced in section `.data' of sound/soc/codecs/tlv320adc3xxx.o: defined in discarded section `.exit.text' of sound/soc/codecs/tlv320adc3xxx.o

--
0-DAY CI Kernel Test Service
https://01.org/lkp


Attachments:
(No filename) (1.84 kB)
config (285.02 kB)
Download all attachments

2022-10-14 04:21:43

by allen

[permalink] [raw]
Subject: RE: [PATCH v4 1/2] dt-bindings: it6505: add properties to restrict output bandwidth

Hi

-----Original Message-----
From: Rob Herring <[email protected]>
Sent: Friday, October 14, 2022 3:20 AM
To: Laurent Pinchart <[email protected]>; Allen Chen (???f?t) <[email protected]>
Cc: Pin-yen Lin <[email protected]>; Jau-Chih Tseng (???L??) <[email protected]>; Kenneth Hung (?x?a??) <[email protected]>; Hermes Wu (?d?Χ?) <[email protected]>; Andrzej Hajda <[email protected]>; Neil Armstrong <[email protected]>; Robert Foss <[email protected]>; Jonas Karlman <[email protected]>; Jernej Skrabec <[email protected]>; David Airlie <[email protected]>; Daniel Vetter <[email protected]>; Krzysztof Kozlowski <[email protected]>; open list:DRM DRIVERS <[email protected]>; open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS <[email protected]>; open list <[email protected]>
Subject: Re: [PATCH v4 1/2] dt-bindings: it6505: add properties to restrict output bandwidth

On Thu, Oct 13, 2022 at 02:05:45PM +0300, Laurent Pinchart wrote:
> Hi Allen,
>
> Thank you for the patch.
>
> On Thu, Oct 13, 2022 at 06:51:13PM +0800, allen wrote:
> > From: allen chen <[email protected]>
> >
> > Add properties to restrict dp output data-lanes and clock.
> >
> > Signed-off-by: Pin-Yen Lin <[email protected]>
> > Signed-off-by: Allen Chen <[email protected]>
> > ---
> > .../bindings/display/bridge/ite,it6505.yaml | 43 +++++++++++++++++++
> > 1 file changed, 43 insertions(+)
> >
> > diff --git
> > a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> > b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> > index 833d11b2303a7..f2c3d1d10359e 100644
> > ---
> > a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.ya
> > +++ ml
> > @@ -52,10 +52,51 @@ properties:
> > maxItems: 1
> > description: extcon specifier for the Power Delivery
> >
> > + data-lanes:
> > + oneOf:
> > + - minItems: 1
> > + maxItems: 1
> > + uniqueItems: true
> > + items:
> > + enum:
> > + - 0
> > + - 1
> > + description: For one lane operation.
> > +
> > + - minItems: 2
> > + maxItems: 2
> > + uniqueItems: true
> > + items:
> > + enum:
> > + - 0
> > + - 1
> > + description: For two lanes operation.
> > +
> > + - minItems: 4
> > + maxItems: 4
> > + uniqueItems: true
> > + items:
> > + enum:
> > + - 0
> > + - 1
> > + - 2
> > + - 3
> > + description: For four lanes operation.
>
> The data lanes should be in the output endpoint. If there's no output
> port, one should be added.
>
==> In this dt-binding, our output point is "extcon" so doesn't have output endpoint.
I don't know how to add the endpoint.
If need to add the endpoint to this dt-binding, what is your recommend about adding the endpoint?
By the way, Krzysztof Kozlowski <[email protected]> said we could put "data-lanes" here.
> > +
> > port:
> > $ref: /schemas/graph.yaml#/properties/port

To fix the error, this must be:

$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false

> > description: A port node pointing to DPI host port node
> >
> > + properties:
> > + endpoint:
> > + $ref: /schemas/graph.yaml#/$defs/endpoint-base
> > +
> > + properties:
> > + link-frequencies:
> > + minItems: 1
> > + maxItems: 1
> > + description: Allowed max link frequencies in Hz.
> > +
> > required:
> > - compatible
> > - ovdd-supply
> > @@ -84,10 +125,12 @@ examples:
> > pwr18-supply = <&it6505_pp18_reg>;
> > reset-gpios = <&pio 179 1>;
> > extcon = <&usbc_extcon>;
> > + data-lanes = <0 1>;
> >
> > port {
> > it6505_in: endpoint {
> > remote-endpoint = <&dpi_out>;
> > + link-frequencies = /bits/ 64 <150000000>;
> > };
> > };
> > };
>
> --
> Regards,
>
> Laurent Pinchart
>

2022-10-15 18:49:46

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH v4 1/2] dt-bindings: it6505: add properties to restrict output bandwidth

Hello,

On Fri, Oct 14, 2022 at 03:28:31AM +0000, [email protected] wrote:
> On Friday, October 14, 2022 3:20 AM, Rob Herring wrote:
> > On Thu, Oct 13, 2022 at 02:05:45PM +0300, Laurent Pinchart wrote:
> > > On Thu, Oct 13, 2022 at 06:51:13PM +0800, allen wrote:
> > > > From: allen chen <[email protected]>
> > > >
> > > > Add properties to restrict dp output data-lanes and clock.
> > > >
> > > > Signed-off-by: Pin-Yen Lin <[email protected]>
> > > > Signed-off-by: Allen Chen <[email protected]>
> > > > ---
> > > > .../bindings/display/bridge/ite,it6505.yaml | 43 +++++++++++++++++++
> > > > 1 file changed, 43 insertions(+)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> > > > index 833d11b2303a7..f2c3d1d10359e 100644
> > > > --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> > > > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml
> > > > @@ -52,10 +52,51 @@ properties:
> > > > maxItems: 1
> > > > description: extcon specifier for the Power Delivery
> > > >
> > > > + data-lanes:
> > > > + oneOf:
> > > > + - minItems: 1
> > > > + maxItems: 1
> > > > + uniqueItems: true
> > > > + items:
> > > > + enum:
> > > > + - 0
> > > > + - 1
> > > > + description: For one lane operation.
> > > > +
> > > > + - minItems: 2
> > > > + maxItems: 2
> > > > + uniqueItems: true
> > > > + items:
> > > > + enum:
> > > > + - 0
> > > > + - 1
> > > > + description: For two lanes operation.
> > > > +
> > > > + - minItems: 4
> > > > + maxItems: 4
> > > > + uniqueItems: true
> > > > + items:
> > > > + enum:
> > > > + - 0
> > > > + - 1
> > > > + - 2
> > > > + - 3
> > > > + description: For four lanes operation.
> > >
> > > The data lanes should be in the output endpoint. If there's no output
> > > port, one should be added.
>
> ==> In this dt-binding, our output point is "extcon" so doesn't have output endpoint.
> I don't know how to add the endpoint.
> If need to add the endpoint to this dt-binding, what is your recommend about adding the endpoint?

You will also need to add a port to the USB-C connector. Then endpoints
can be added to connect the two.

> By the way, Krzysztof Kozlowski <[email protected]> said
> we could put "data-lanes" here.

If I read him correctly, Krzysztof said we have a standard property for
the data lanes (and that's true, we do), but I don't think he implied it
could be put outside of the endpoint (Krzysztof, please correct me if
I'm wrong).

> > > > +
> > > > port:
> > > > $ref: /schemas/graph.yaml#/properties/port
> >
> > To fix the error, this must be:
> >
> > $ref: /schemas/graph.yaml#/$defs/port-base
> > unevaluatedProperties: false
> >
> > > > description: A port node pointing to DPI host port node
> > > >
> > > > + properties:
> > > > + endpoint:
> > > > + $ref: /schemas/graph.yaml#/$defs/endpoint-base
> > > > +
> > > > + properties:
> > > > + link-frequencies:
> > > > + minItems: 1
> > > > + maxItems: 1
> > > > + description: Allowed max link frequencies in Hz.
> > > > +
> > > > required:
> > > > - compatible
> > > > - ovdd-supply
> > > > @@ -84,10 +125,12 @@ examples:
> > > > pwr18-supply = <&it6505_pp18_reg>;
> > > > reset-gpios = <&pio 179 1>;
> > > > extcon = <&usbc_extcon>;
> > > > + data-lanes = <0 1>;
> > > >
> > > > port {
> > > > it6505_in: endpoint {
> > > > remote-endpoint = <&dpi_out>;
> > > > + link-frequencies = /bits/ 64 <150000000>;
> > > > };
> > > > };
> > > > };

--
Regards,

Laurent Pinchart