All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Marco Felsch <m.felsch@pengutronix.de>
Cc: mchehab@kernel.org, robh+dt@kernel.org,
	krzysztof.kozlowski+dt@linaro.org, vkoul@kernel.org,
	kishon@ti.com, sakari.ailus@linux.intel.com, hverkuil@xs4all.nl,
	jacopo@jmondi.org, linux-kernel@vger.kernel.org,
	linux-phy@lists.infradead.org, devicetree@vger.kernel.org,
	linux-media@vger.kernel.org, kernel@pengutronix.de
Subject: Re: [PATCH 3/4] media: dt-bindings: add bindings for Toshiba TC358746
Date: Fri, 16 Sep 2022 16:57:33 +0300	[thread overview]
Message-ID: <YySAzUBPXkaxsKIY@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20220915131933.wclmhtliji5wz35t@pengutronix.de>

Hi Marco,

On Thu, Sep 15, 2022 at 03:19:33PM +0200, Marco Felsch wrote:
> On 22-09-05, Laurent Pinchart wrote:
> > On Thu, Aug 18, 2022 at 04:33:06PM +0200, Marco Felsch wrote:
> > > Add the bindings for the Toshiba TC358746 Parallel <-> MIPI-CSI bridge
> > > driver.
> > > 
> > > Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> > > ---
> > >  .../bindings/media/i2c/toshiba,tc358746.yaml  | 157 ++++++++++++++++++
> > >  1 file changed, 157 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml
> > > 
> > > diff --git a/Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml b/Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml
> > > new file mode 100644
> > > index 000000000000..9783cca363c6
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml
> > > @@ -0,0 +1,157 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/media/i2c/toshiba,tc358746.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Toshiba TC358746 Parallel to MIPI CSI2 Bridge
> > > +
> > > +maintainers:
> > > +  - Marco Felsch <kernel@pengutronix.de>
> > > +
> > > +description: |-
> > > +  The Toshiba TC358746 converts a parallel video stream into a MIPI CSI-2
> > > +  stream. The direction can be either parallel-in -> csi-out or csi-in ->
> > > +  parallel-out The chip is programmable trough I2C and SPI but the SPI
> > > +  interface is only supported in parallel-in -> csi-out mode.
> > > +
> > > +  Note that the current device tree bindings only support the
> > > +  parallel-in -> csi-out path.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: toshiba,tc358746
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  clocks:
> > > +    description:
> > > +      The phandle to the reference clock source. This corresponds to the
> > > +      hardware pin REFCLK.
> > > +    maxItems: 1
> > > +
> > > +  clock-names:
> > > +    const: refclk
> > 
> > As there's a single clock, should we omit the clock name ?
> 
> Don't know, I would rather keep it to make it explicite. Many other go
> that way too.

I don't mind either way.

> > > +# The bridge can act as clock provider for the sensor. To enable this support
> > > +# #clock-cells must be specified. Attention if this feature is used than the
> > 
> > s/than/then/
> 
> Sure, thanks.
> 
> > > +# mclk rate must be at least: (2 * link-frequency) / 8
> > > +#                             `------------------´   ^
> > > +#                             internal PLL rate   smallest possible mclk-div
> > 
> > Could this be captured in the description of the property instead of a
> > comment ?
> 
> Hm.. a few (1,2) bindings using comments like this but I'm not against
> it. If it belongs to the description, which property should I use? Since
> there is no: clock-controller property like gpio-controller or
> interrupt-controller. The clock provider will be activated based on the
> #clock-cells property. But this property has nothing to with the
> description since this property specifies the cell size.

I would have put it in the description of the #clock-cells property:

  "#clock-cells":
    description: |
      The bridge can act as clock provider for the sensor. To enable
      this support #clock-cells must be specified. Attention ...
    const: 0

but if it becomes an issue, I'm OK with the comment too.

> > > +  "#clock-cells":
> > > +    const: 0
> > > +
> > > +  clock-output-names:
> > > +    description:
> > > +      The clock name of the MCLK output, the default name is tc358746-mclk.
> > > +    maxItems: 1
> > > +
> > > +  vddc-supply:
> > > +    description: Digital core voltage supply, 1.2 volts
> > > +
> > > +  vddio-supply:
> > > +    description: Digital I/O voltage supply, 1.8 volts
> > > +
> > > +  vddmipi-supply:
> > > +    description: MIPI CSI phy voltage supply, 1.2 volts
> > > +
> > > +  reset-gpios:
> > > +    description:
> > > +      The phandle and specifier for the GPIO that controls the chip reset.
> > > +      This corresponds to the hardware pin RESX which is physically active low.
> > > +    maxItems: 1
> > > +
> > > +  ports:
> > > +    $ref: /schemas/graph.yaml#/properties/ports
> > > +    properties:
> > > +      port@0:
> > > +        $ref: /schemas/graph.yaml#/properties/port
> > > +        description: Input port
> > 
> > Are the H/V sync signal polarities fixed, or should they be specified
> > here ?
> 
> At the moment they are fixed.

If the hardware supports different polarities, let's add them to the
device tree binding, even if the driver only supports a single option at
the moment.

> I can describe it if you want.

Thanks.

> > Does the chip support external sync only, or also BT.656 ? In the
> > latter case this needs a bus-type.
> 
> Yes, the chip also supports BT.656 but the driver doesn't support it
> yet. You're right, that we should make it explicite albeit it would a
> bit overhead yet since the only mode is: parallel-in with externa syncs.

Let's prepare for BT.656 support in the DT bindings, or we may regret it
later :-)

> > > +
> > > +      port@1:
> > > +        $ref: /schemas/graph.yaml#/$defs/port-base
> > > +        description: Output port
> > > +
> > > +        properties:
> > > +          endpoint:
> > > +            $ref: /schemas/media/video-interfaces.yaml#
> > > +            unevaluatedProperties: false
> > > +
> > > +            properties:
> > > +              data-lanes:
> > > +                minItems: 1
> > > +                maxItems: 4
> > > +
> > > +              clock-noncontinuous: true
> > > +              link-frequencies: true
> > > +
> > > +            required:
> > > +              - data-lanes
> > > +              - link-frequencies
> > > +
> > > +    required:
> > > +      - port@0
> > > +      - port@1
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +  - clocks
> > > +  - clock-names
> > > +  - vddc-supply
> > > +  - vddio-supply
> > > +  - vddmipi-supply
> > > +  - ports
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +    #include <dt-bindings/gpio/gpio.h>
> > > +
> > > +    i2c {
> > > +      #address-cells = <1>;
> > > +      #size-cells = <0>;
> > > +
> > > +      csi-bridge@e {
> > > +        compatible = "toshiba,tc358746";
> > > +        reg = <0xe>;
> > > +
> > > +        clocks = <&refclk>;
> > > +        clock-names = "refclk";
> > > +
> > > +        reset-gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
> > > +
> > > +        vddc-supply = <&v1_2d>;
> > > +        vddio-supply = <&v1_8d>;
> > > +        vddmipi-supply = <&v1_2d>;
> > > +
> > > +        /* sensor mclk provider */
> > > +        #clock-cells = <0>;
> > > +
> > > +        ports {
> > > +          #address-cells = <1>;
> > > +          #size-cells = <0>;
> > > +
> > > +          /* Input */
> > > +          port@0 {
> > > +            reg = <0>;
> > > +            tc358746_in: endpoint {
> > > +              remote-endpoint = <&sensor_out>;
> > > +              };
> > 
> > Wrong indentation here.
> 
> Yes, thanks.
> 
> > > +          };
> > > +
> > > +          /* Output */
> > > +          port@1 {
> > > +            reg = <1>;
> > > +            tc358746_out: endpoint {
> > > +              remote-endpoint = <&mipi_csi2_in>;
> > > +              data-lanes = <1 2>;
> > > +              clock-noncontinuous;
> > > +              link-frequencies = /bits/ 64 <216000000>;
> > > +            };
> > > +          };
> > > +        };
> > > +      };
> > > +    };

-- 
Regards,

Laurent Pinchart

-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy

WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Marco Felsch <m.felsch@pengutronix.de>
Cc: mchehab@kernel.org, robh+dt@kernel.org,
	krzysztof.kozlowski+dt@linaro.org, vkoul@kernel.org,
	kishon@ti.com, sakari.ailus@linux.intel.com, hverkuil@xs4all.nl,
	jacopo@jmondi.org, linux-kernel@vger.kernel.org,
	linux-phy@lists.infradead.org, devicetree@vger.kernel.org,
	linux-media@vger.kernel.org, kernel@pengutronix.de
Subject: Re: [PATCH 3/4] media: dt-bindings: add bindings for Toshiba TC358746
Date: Fri, 16 Sep 2022 16:57:33 +0300	[thread overview]
Message-ID: <YySAzUBPXkaxsKIY@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20220915131933.wclmhtliji5wz35t@pengutronix.de>

Hi Marco,

On Thu, Sep 15, 2022 at 03:19:33PM +0200, Marco Felsch wrote:
> On 22-09-05, Laurent Pinchart wrote:
> > On Thu, Aug 18, 2022 at 04:33:06PM +0200, Marco Felsch wrote:
> > > Add the bindings for the Toshiba TC358746 Parallel <-> MIPI-CSI bridge
> > > driver.
> > > 
> > > Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> > > ---
> > >  .../bindings/media/i2c/toshiba,tc358746.yaml  | 157 ++++++++++++++++++
> > >  1 file changed, 157 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml
> > > 
> > > diff --git a/Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml b/Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml
> > > new file mode 100644
> > > index 000000000000..9783cca363c6
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml
> > > @@ -0,0 +1,157 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/media/i2c/toshiba,tc358746.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Toshiba TC358746 Parallel to MIPI CSI2 Bridge
> > > +
> > > +maintainers:
> > > +  - Marco Felsch <kernel@pengutronix.de>
> > > +
> > > +description: |-
> > > +  The Toshiba TC358746 converts a parallel video stream into a MIPI CSI-2
> > > +  stream. The direction can be either parallel-in -> csi-out or csi-in ->
> > > +  parallel-out The chip is programmable trough I2C and SPI but the SPI
> > > +  interface is only supported in parallel-in -> csi-out mode.
> > > +
> > > +  Note that the current device tree bindings only support the
> > > +  parallel-in -> csi-out path.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: toshiba,tc358746
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  clocks:
> > > +    description:
> > > +      The phandle to the reference clock source. This corresponds to the
> > > +      hardware pin REFCLK.
> > > +    maxItems: 1
> > > +
> > > +  clock-names:
> > > +    const: refclk
> > 
> > As there's a single clock, should we omit the clock name ?
> 
> Don't know, I would rather keep it to make it explicite. Many other go
> that way too.

I don't mind either way.

> > > +# The bridge can act as clock provider for the sensor. To enable this support
> > > +# #clock-cells must be specified. Attention if this feature is used than the
> > 
> > s/than/then/
> 
> Sure, thanks.
> 
> > > +# mclk rate must be at least: (2 * link-frequency) / 8
> > > +#                             `------------------´   ^
> > > +#                             internal PLL rate   smallest possible mclk-div
> > 
> > Could this be captured in the description of the property instead of a
> > comment ?
> 
> Hm.. a few (1,2) bindings using comments like this but I'm not against
> it. If it belongs to the description, which property should I use? Since
> there is no: clock-controller property like gpio-controller or
> interrupt-controller. The clock provider will be activated based on the
> #clock-cells property. But this property has nothing to with the
> description since this property specifies the cell size.

I would have put it in the description of the #clock-cells property:

  "#clock-cells":
    description: |
      The bridge can act as clock provider for the sensor. To enable
      this support #clock-cells must be specified. Attention ...
    const: 0

but if it becomes an issue, I'm OK with the comment too.

> > > +  "#clock-cells":
> > > +    const: 0
> > > +
> > > +  clock-output-names:
> > > +    description:
> > > +      The clock name of the MCLK output, the default name is tc358746-mclk.
> > > +    maxItems: 1
> > > +
> > > +  vddc-supply:
> > > +    description: Digital core voltage supply, 1.2 volts
> > > +
> > > +  vddio-supply:
> > > +    description: Digital I/O voltage supply, 1.8 volts
> > > +
> > > +  vddmipi-supply:
> > > +    description: MIPI CSI phy voltage supply, 1.2 volts
> > > +
> > > +  reset-gpios:
> > > +    description:
> > > +      The phandle and specifier for the GPIO that controls the chip reset.
> > > +      This corresponds to the hardware pin RESX which is physically active low.
> > > +    maxItems: 1
> > > +
> > > +  ports:
> > > +    $ref: /schemas/graph.yaml#/properties/ports
> > > +    properties:
> > > +      port@0:
> > > +        $ref: /schemas/graph.yaml#/properties/port
> > > +        description: Input port
> > 
> > Are the H/V sync signal polarities fixed, or should they be specified
> > here ?
> 
> At the moment they are fixed.

If the hardware supports different polarities, let's add them to the
device tree binding, even if the driver only supports a single option at
the moment.

> I can describe it if you want.

Thanks.

> > Does the chip support external sync only, or also BT.656 ? In the
> > latter case this needs a bus-type.
> 
> Yes, the chip also supports BT.656 but the driver doesn't support it
> yet. You're right, that we should make it explicite albeit it would a
> bit overhead yet since the only mode is: parallel-in with externa syncs.

Let's prepare for BT.656 support in the DT bindings, or we may regret it
later :-)

> > > +
> > > +      port@1:
> > > +        $ref: /schemas/graph.yaml#/$defs/port-base
> > > +        description: Output port
> > > +
> > > +        properties:
> > > +          endpoint:
> > > +            $ref: /schemas/media/video-interfaces.yaml#
> > > +            unevaluatedProperties: false
> > > +
> > > +            properties:
> > > +              data-lanes:
> > > +                minItems: 1
> > > +                maxItems: 4
> > > +
> > > +              clock-noncontinuous: true
> > > +              link-frequencies: true
> > > +
> > > +            required:
> > > +              - data-lanes
> > > +              - link-frequencies
> > > +
> > > +    required:
> > > +      - port@0
> > > +      - port@1
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +  - clocks
> > > +  - clock-names
> > > +  - vddc-supply
> > > +  - vddio-supply
> > > +  - vddmipi-supply
> > > +  - ports
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +    #include <dt-bindings/gpio/gpio.h>
> > > +
> > > +    i2c {
> > > +      #address-cells = <1>;
> > > +      #size-cells = <0>;
> > > +
> > > +      csi-bridge@e {
> > > +        compatible = "toshiba,tc358746";
> > > +        reg = <0xe>;
> > > +
> > > +        clocks = <&refclk>;
> > > +        clock-names = "refclk";
> > > +
> > > +        reset-gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
> > > +
> > > +        vddc-supply = <&v1_2d>;
> > > +        vddio-supply = <&v1_8d>;
> > > +        vddmipi-supply = <&v1_2d>;
> > > +
> > > +        /* sensor mclk provider */
> > > +        #clock-cells = <0>;
> > > +
> > > +        ports {
> > > +          #address-cells = <1>;
> > > +          #size-cells = <0>;
> > > +
> > > +          /* Input */
> > > +          port@0 {
> > > +            reg = <0>;
> > > +            tc358746_in: endpoint {
> > > +              remote-endpoint = <&sensor_out>;
> > > +              };
> > 
> > Wrong indentation here.
> 
> Yes, thanks.
> 
> > > +          };
> > > +
> > > +          /* Output */
> > > +          port@1 {
> > > +            reg = <1>;
> > > +            tc358746_out: endpoint {
> > > +              remote-endpoint = <&mipi_csi2_in>;
> > > +              data-lanes = <1 2>;
> > > +              clock-noncontinuous;
> > > +              link-frequencies = /bits/ 64 <216000000>;
> > > +            };
> > > +          };
> > > +        };
> > > +      };
> > > +    };

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2022-09-16 13:57 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-18 14:33 [PATCH 0/4] Add support for Toshiba TC358746 Marco Felsch
2022-08-18 14:33 ` Marco Felsch
2022-08-18 14:33 ` [PATCH 1/4] phy: dphy: refactor get_default_config Marco Felsch
2022-08-18 14:33   ` Marco Felsch
2022-09-02 17:45   ` Vinod Koul
2022-09-02 17:45     ` Vinod Koul
2022-08-18 14:33 ` [PATCH 2/4] phy: dphy: add support to calculate the timing based on hs_clk_rate Marco Felsch
2022-08-18 14:33   ` Marco Felsch
2022-09-02 17:45   ` Vinod Koul
2022-09-02 17:45     ` Vinod Koul
2022-08-18 14:33 ` [PATCH 3/4] media: dt-bindings: add bindings for Toshiba TC358746 Marco Felsch
2022-08-18 14:33   ` Marco Felsch
2022-08-22 18:11   ` Rob Herring
2022-08-22 18:11     ` Rob Herring
2022-09-04 22:35   ` Laurent Pinchart
2022-09-04 22:35     ` Laurent Pinchart
2022-09-15 13:19     ` Marco Felsch
2022-09-15 13:19       ` Marco Felsch
2022-09-16 13:57       ` Laurent Pinchart [this message]
2022-09-16 13:57         ` Laurent Pinchart
2022-08-18 14:33 ` [PATCH 4/4] media: tc358746: add Toshiba TC358746 Parallel to CSI-2 bridge driver Marco Felsch
2022-08-18 14:33   ` Marco Felsch
2022-09-05 20:03   ` Laurent Pinchart
2022-09-05 20:03     ` Laurent Pinchart
2022-09-15 16:54     ` Marco Felsch
2022-09-15 16:54       ` Marco Felsch
2022-09-16 14:33       ` Laurent Pinchart
2022-09-16 14:33         ` Laurent Pinchart
2022-09-19  8:40         ` Marco Felsch
2022-09-19  8:40           ` Marco Felsch
2022-09-19 10:57           ` Laurent Pinchart
2022-09-19 10:57             ` Laurent Pinchart
2022-08-31  8:14 ` [PATCH 0/4] Add support for Toshiba TC358746 Marco Felsch
2022-08-31  8:14   ` Marco Felsch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YySAzUBPXkaxsKIY@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=devicetree@vger.kernel.org \
    --cc=hverkuil@xs4all.nl \
    --cc=jacopo@jmondi.org \
    --cc=kernel@pengutronix.de \
    --cc=kishon@ti.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=m.felsch@pengutronix.de \
    --cc=mchehab@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.