mbox series

[v4,0/3] media: i2c: Introduce driver for the TW9900 decoder

Message ID 20210219081514.1592033-1-maxime.chevallier@bootlin.com
Headers show
Series media: i2c: Introduce driver for the TW9900 decoder | expand

Message

Maxime Chevallier Feb. 19, 2021, 8:15 a.m. UTC
Hello everyone,

This is the fourth version of the series adding support for the Techwell
TW9900 multi standard decoder. It's a pretty simple decoder compared to
the TW9910, since it doesn't have a built-in scaler/crop engine.

This V4 addresses one warning detected by the 0day bot, along with a
binding example validation error.

Any feedback is appreciated,

Thanks,

Maxime

Maxime Chevallier (3):
  dt-bindings: vendor-prefixes: Add techwell vendor prefix
  media: dt-bindings: media: i2c: Add bindings for TW9900
  media: i2c: Introduce a driver for the Techwell TW9900 decoder

 .../devicetree/bindings/media/i2c/tw9900.yaml |  64 ++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 MAINTAINERS                                   |   6 +
 drivers/media/i2c/Kconfig                     |  11 +
 drivers/media/i2c/Makefile                    |   1 +
 drivers/media/i2c/tw9900.c                    | 617 ++++++++++++++++++
 6 files changed, 701 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/i2c/tw9900.yaml
 create mode 100644 drivers/media/i2c/tw9900.c

Comments

Rob Herring (Arm) March 5, 2021, 10:58 p.m. UTC | #1
On Fri, Feb 19, 2021 at 09:15:13AM +0100, Maxime Chevallier wrote:
> The Techwell TW9900 is a video decoder supporting multiple input
> standards, such as PAL, NTSC and SECAM, and outputs a BT.656 video
> signal.
> 
> It's designed to be low-power, posesses some features such as a
> programmable comb-filter, and automatic input standard detection.
> 
> Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
> ---
> V2->V3 : Fix the example not compiling due to a typo in the reset-gpios
> node.
> 
> V3->V4 : Add the missing reset-gpios node to the binding
> 
>  .../devicetree/bindings/media/i2c/tw9900.yaml | 64 +++++++++++++++++++

Use the compatible string for the filename.

>  1 file changed, 64 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/tw9900.yaml
> 
> diff --git a/Documentation/devicetree/bindings/media/i2c/tw9900.yaml b/Documentation/devicetree/bindings/media/i2c/tw9900.yaml
> new file mode 100644
> index 000000000000..d27196e37416
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/i2c/tw9900.yaml
> @@ -0,0 +1,64 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/i2c/tw9900.yaml#

Don't forget to update this...

> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Techwell TW9900 NTSC/PAL/SECAM video decoder
> +
> +maintainers:
> +  - Maxime Chevallier <maxime.chevallier@bootlin.com>
> +
> +description:
> +  The tw9900 is a multi-standard video decoder, supporting NTSC, PAL and SECAM
> +  standards with auto-detection features.
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - techwell,tw9900
> +
> +  reg:
> +    maxItems: 1
> +
> +  vdd-supply:
> +    description: VDD power supply
> +
> +  reset-gpios:
> +    description: GPIO descriptor for the RESET input pin
> +    maxItems: 1
> +
> +  port:
> +    type: object
> +    description:
> +      A node containing a single endpoint as doucmented in
> +      Documentation/devicetree/bindings/media/video-interfaces.txt

It's now video-interfaces.yaml, but you aren't using anything from it. 
You need to reference graph.yaml though. See the examples in the tree 
now.

> +
> +additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    i2c {
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +
> +            tw9900: tw9900@44 {
> +                    compatible = "techwell,tw9900";
> +                    reg = <0x44>;
> +
> +                    vdd-supply = <&tw9900_supply>;
> +                    reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
> +
> +                    port {
> +                            tw9900_out: endpoint {
> +                                    remote-endpoint = <&vip_in>;
> +                            };
> +                    };
> +            };
> +    };
> -- 
> 2.25.4
>