diff mbox series

[1/2] media: dt-bindings: media: i2c: Document GC08A3 bindings

Message ID 20231123115104.32094-2-zhi.mao@mediatek.com
State Changes Requested
Headers show
Series media: i2c: Add support for GC08A3 sensor | expand

Checks

Context Check Description
robh/checkpatch success
robh/patch-applied success
robh/dt-meta-schema fail build log

Commit Message

Zhi Mao (毛智) Nov. 23, 2023, 11:51 a.m. UTC
Add YAML device tree binding for GC08A3 CMOS image sensor, 
and the relevant MAINTAINERS entries.

Signed-off-by: Zhi Mao <zhi.mao@mediatek.com>
---
 .../bindings/media/i2c/galaxycore,gc08a3.yaml | 128 ++++++++++++++++++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 2 files changed, 130 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml

Comments

Rob Herring (Arm) Nov. 23, 2023, 12:16 p.m. UTC | #1
On Thu, 23 Nov 2023 19:51:03 +0800, Zhi Mao wrote:
> Add YAML device tree binding for GC08A3 CMOS image sensor,
> and the relevant MAINTAINERS entries.
> 
> Signed-off-by: Zhi Mao <zhi.mao@mediatek.com>
> ---
>  .../bindings/media/i2c/galaxycore,gc08a3.yaml | 128 ++++++++++++++++++
>  .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
>  2 files changed, 130 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> 

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:
Error: Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.example.dts:29.37-38 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.lib:419: Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.example.dtb] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1424: dt_binding_check] Error 2
make: *** [Makefile:234: __sub-make] Error 2

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20231123115104.32094-2-zhi.mao@mediatek.com

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

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 after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
Conor Dooley Nov. 23, 2023, 5:31 p.m. UTC | #2
On Thu, Nov 23, 2023 at 07:51:03PM +0800, Zhi Mao wrote:
> Add YAML device tree binding for GC08A3 CMOS image sensor, 
> and the relevant MAINTAINERS entries.
> 
> Signed-off-by: Zhi Mao <zhi.mao@mediatek.com>

Please test your bindings.

> ---
>  .../bindings/media/i2c/galaxycore,gc08a3.yaml | 128 ++++++++++++++++++
>  .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
>  2 files changed, 130 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> 
> diff --git a/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> new file mode 100644
> index 000000000000..089ea321da91
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> @@ -0,0 +1,128 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/i2c/galaxycore,gc08a3.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: GalaxyCore gc08a3 1/4" 8M Pixel MIPI CSI-2 sensor
> +
> +maintainers:
> +  - Zhi Mao <zhi.mao@mediatek.com>
> +
> +description: |-

The |- is not needed, you have no formatting to preserve.

> +  The gc08a3 is a raw image sensor with an MIPI CSI-2 image data
> +  interface and CCI (I2C compatible) control bus. The output format
> +  is raw Bayer.
> +
> +properties:
> +  compatible:
> +    const: GalaxyCore,gc08a3

Please remove the capitals.

> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    items:
> +      - description: Reference to the mclk clock.

Pointless, just use maxItems: 1.

> +
> +  assigned-clocks:
> +    maxItems: 1
> +
> +  assigned-clock-rates:
> +    maxItems: 1
> +
> +  enable-gpios:
> +    description: Reference to the GPIO connected to the RESETB pin. Active low.
> +    maxItems: 1
> +

> +  vddio-supply:
> +    description: Definition of the regulator used for the VDDIO power supply.
> +
> +  vdda-supply:
> +    description: Definition of the regulator used for the VDDA power supply.
> +
> +  vddd-supply:
> +    description: Definition of the regulator used for the VDDD power supply.

These descriptions can all be replaced with "foo-supply: true" IMO.

> +  port:
> +    $ref: /schemas/graph.yaml#/$defs/port-base
> +    unevaluatedProperties: false
> +
> +    properties:
> +      endpoint:
> +        $ref: /schemas/media/video-interfaces.yaml#
> +        unevaluatedProperties: false
> +
> +        properties:
> +          data-lanes:
> +            oneOf:
> +              - items:
> +                  - const: 1
> +                  - const: 2
> +                  - const: 3
> +                  - const: 4
> +              - items:
> +                  - const: 1
> +                  - const: 2
> +
> +          link-frequencies: true
> +
> +        required:
> +          - data-lanes
> +          - link-frequencies
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks

> +  - assigned-clocks
> +  - assigned-clock-rates

Why are these required?

> +  - vddio-supply
> +  - vdda-supply
> +  - vddd-supply
> +  - port
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        sensor0@2 {
> +            status = "okay";
> +            compatible = "GalaxyCore,gc08a3";
> +            reg = <0x31>;
> +
> +            clocks = <&topckgen CLK_TOP_CAMTG>,
> +                <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
> +            clock-names = "xvclk", "freq_mux";
> +            clock-frequency = <24000000>;
> +
> +            assigned-clocks = <&topckgen CLK_TOP_CAMTG>,
> +                    <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
> +            assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
> +            assigned-clock-rates = <0>, <24000000>;
> +
> +            enable-gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
> +
> +            pinctrl-names = "default";
> +            pinctrl-0 = <&camera_pins_cam0>;
> +
> +            avdd-supply = <&mt6359_vfe28_ldo_reg>;
> +
> +            port {
> +                sensor0_out_2: endpoint {
> +                    data-lanes = <1 2 3 4>;
> +                    link-frequencies = /bits/ 64 <336000000 207000000>;
> +                    remote-endpoint = <&seninf_csi_port_0_in_2>;
> +                };
> +            };
> +        };
> +
> +    };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> index 309b94c328c8..a0bbec0bfee2 100644
> --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
> +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> @@ -502,6 +502,8 @@ patternProperties:
>      description: Fujitsu Ltd.
>    "^fxtec,.*":
>      description: FX Technology Ltd.
> +  "^GalaxyCore,.*":
> +    description: GalaxyCore Inc.
>    "^gardena,.*":
>      description: GARDENA GmbH
>    "^gateway,.*":
> -- 
> 2.25.1
>
Laurent Pinchart Dec. 7, 2023, 10:25 a.m. UTC | #3
On Thu, Nov 23, 2023 at 05:31:35PM +0000, Conor Dooley wrote:
> On Thu, Nov 23, 2023 at 07:51:03PM +0800, Zhi Mao wrote:
> > Add YAML device tree binding for GC08A3 CMOS image sensor, 
> > and the relevant MAINTAINERS entries.
> > 
> > Signed-off-by: Zhi Mao <zhi.mao@mediatek.com>
> 
> Please test your bindings.
> 
> > ---
> >  .../bindings/media/i2c/galaxycore,gc08a3.yaml | 128 ++++++++++++++++++
> >  .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
> >  2 files changed, 130 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> > new file mode 100644
> > index 000000000000..089ea321da91
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> > @@ -0,0 +1,128 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/media/i2c/galaxycore,gc08a3.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: GalaxyCore gc08a3 1/4" 8M Pixel MIPI CSI-2 sensor
> > +
> > +maintainers:
> > +  - Zhi Mao <zhi.mao@mediatek.com>
> > +
> > +description: |-
> 
> The |- is not needed, you have no formatting to preserve.
> 
> > +  The gc08a3 is a raw image sensor with an MIPI CSI-2 image data
> > +  interface and CCI (I2C compatible) control bus. The output format
> > +  is raw Bayer.
> > +
> > +properties:
> > +  compatible:
> > +    const: GalaxyCore,gc08a3
> 
> Please remove the capitals.
> 
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    items:
> > +      - description: Reference to the mclk clock.
> 
> Pointless, just use maxItems: 1.
> 
> > +
> > +  assigned-clocks:
> > +    maxItems: 1
> > +
> > +  assigned-clock-rates:
> > +    maxItems: 1
> > +
> > +  enable-gpios:
> > +    description: Reference to the GPIO connected to the RESETB pin. Active low.
> > +    maxItems: 1
> > +

If that's the RESETB pin, it should be reset-gpios.

> > +  vddio-supply:
> > +    description: Definition of the regulator used for the VDDIO power supply.
> > +
> > +  vdda-supply:
> > +    description: Definition of the regulator used for the VDDA power supply.
> > +
> > +  vddd-supply:
> > +    description: Definition of the regulator used for the VDDD power supply.
> 
> These descriptions can all be replaced with "foo-supply: true" IMO.
> 
> > +  port:
> > +    $ref: /schemas/graph.yaml#/$defs/port-base
> > +    unevaluatedProperties: false
> > +
> > +    properties:
> > +      endpoint:
> > +        $ref: /schemas/media/video-interfaces.yaml#
> > +        unevaluatedProperties: false
> > +
> > +        properties:
> > +          data-lanes:
> > +            oneOf:
> > +              - items:
> > +                  - const: 1
> > +                  - const: 2
> > +                  - const: 3
> > +                  - const: 4
> > +              - items:
> > +                  - const: 1
> > +                  - const: 2
> > +
> > +          link-frequencies: true
> > +
> > +        required:
> > +          - data-lanes
> > +          - link-frequencies
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - clocks
> 
> > +  - assigned-clocks
> > +  - assigned-clock-rates
> 
> Why are these required?
> 
> > +  - vddio-supply
> > +  - vdda-supply
> > +  - vddd-supply
> > +  - port
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/gpio/gpio.h>
> > +
> > +    i2c {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        sensor0@2 {
> > +            status = "okay";
> > +            compatible = "GalaxyCore,gc08a3";
> > +            reg = <0x31>;
> > +
> > +            clocks = <&topckgen CLK_TOP_CAMTG>,
> > +                <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
> > +            clock-names = "xvclk", "freq_mux";
> > +            clock-frequency = <24000000>;
> > +
> > +            assigned-clocks = <&topckgen CLK_TOP_CAMTG>,
> > +                    <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
> > +            assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
> > +            assigned-clock-rates = <0>, <24000000>;
> > +
> > +            enable-gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
> > +
> > +            pinctrl-names = "default";
> > +            pinctrl-0 = <&camera_pins_cam0>;
> > +
> > +            avdd-supply = <&mt6359_vfe28_ldo_reg>;
> > +
> > +            port {
> > +                sensor0_out_2: endpoint {
> > +                    data-lanes = <1 2 3 4>;
> > +                    link-frequencies = /bits/ 64 <336000000 207000000>;
> > +                    remote-endpoint = <&seninf_csi_port_0_in_2>;
> > +                };
> > +            };
> > +        };
> > +
> > +    };
> > +
> > +...
> > diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> > index 309b94c328c8..a0bbec0bfee2 100644
> > --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
> > +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> > @@ -502,6 +502,8 @@ patternProperties:
> >      description: Fujitsu Ltd.
> >    "^fxtec,.*":
> >      description: FX Technology Ltd.
> > +  "^GalaxyCore,.*":
> > +    description: GalaxyCore Inc.
> >    "^gardena,.*":
> >      description: GARDENA GmbH
> >    "^gateway,.*":
Zhi Mao (毛智) Jan. 9, 2024, 9:11 a.m. UTC | #4
On Thu, 2023-12-07 at 12:25 +0200, Laurent Pinchart wrote:
>  	 
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>  On Thu, Nov 23, 2023 at 05:31:35PM +0000, Conor Dooley wrote:
> > On Thu, Nov 23, 2023 at 07:51:03PM +0800, Zhi Mao wrote:
> > > Add YAML device tree binding for GC08A3 CMOS image sensor, 
> > > and the relevant MAINTAINERS entries.
> > > 
> > > Signed-off-by: Zhi Mao <zhi.mao@mediatek.com>
> > 
> > Please test your bindings.
> > 
> > > ---
> > >  .../bindings/media/i2c/galaxycore,gc08a3.yaml | 128
> ++++++++++++++++++
> > >  .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
> > >  2 files changed, 130 insertions(+)
> > >  create mode 100644
> Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> > > 
> > > diff --git
> a/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> > > new file mode 100644
> > > index 000000000000..089ea321da91
> > > --- /dev/null
> > > +++
> b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> > > @@ -0,0 +1,128 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: 
> http://devicetree.org/schemas/media/i2c/galaxycore,gc08a3.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: GalaxyCore gc08a3 1/4" 8M Pixel MIPI CSI-2 sensor
> > > +
> > > +maintainers:
> > > +  - Zhi Mao <zhi.mao@mediatek.com>
> > > +
> > > +description: |-
> > 
> > The |- is not needed, you have no formatting to preserve.
> > 
> > > +  The gc08a3 is a raw image sensor with an MIPI CSI-2 image data
> > > +  interface and CCI (I2C compatible) control bus. The output
> format
> > > +  is raw Bayer.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: GalaxyCore,gc08a3
> > 
> > Please remove the capitals.
> > 
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  clocks:
> > > +    items:
> > > +      - description: Reference to the mclk clock.
> > 
> > Pointless, just use maxItems: 1.
> > 
> > > +
> > > +  assigned-clocks:
> > > +    maxItems: 1
> > > +
> > > +  assigned-clock-rates:
> > > +    maxItems: 1
> > > +
> > > +  enable-gpios:
> > > +    description: Reference to the GPIO connected to the RESETB
> pin. Active low.
> > > +    maxItems: 1
> > > +
> 
> If that's the RESETB pin, it should be reset-gpios.
[mtk]: yes, it's reset-pin, fixed in patch:v3.
and some other comments also fixed, please review patch:v3.

https://lore.kernel.org/linux-media/20240109022715.30278-1-zhi.mao@mediatek.com/
> 
> > > +  vddio-supply:
> > > +    description: Definition of the regulator used for the VDDIO
> power supply.
> > > +
> > > +  vdda-supply:
> > > +    description: Definition of the regulator used for the VDDA
> power supply.
> > > +
> > > +  vddd-supply:
> > > +    description: Definition of the regulator used for the VDDD
> power supply.
> > 
> > These descriptions can all be replaced with "foo-supply: true" IMO.
> > 
> > > +  port:
> > > +    $ref: /schemas/graph.yaml#/$defs/port-base
> > > +    unevaluatedProperties: false
> > > +
> > > +    properties:
> > > +      endpoint:
> > > +        $ref: /schemas/media/video-interfaces.yaml#
> > > +        unevaluatedProperties: false
> > > +
> > > +        properties:
> > > +          data-lanes:
> > > +            oneOf:
> > > +              - items:
> > > +                  - const: 1
> > > +                  - const: 2
> > > +                  - const: 3
> > > +                  - const: 4
> > > +              - items:
> > > +                  - const: 1
> > > +                  - const: 2
> > > +
> > > +          link-frequencies: true
> > > +
> > > +        required:
> > > +          - data-lanes
> > > +          - link-frequencies
> > > +
> > > +required:
> > > +  - compatible
> > > +  - reg
> > > +  - clocks
> > 
> > > +  - assigned-clocks
> > > +  - assigned-clock-rates
> > 
> > Why are these required?
> > 
> > > +  - vddio-supply
> > > +  - vdda-supply
> > > +  - vddd-supply
> > > +  - port
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +    #include <dt-bindings/gpio/gpio.h>
> > > +
> > > +    i2c {
> > > +        #address-cells = <1>;
> > > +        #size-cells = <0>;
> > > +
> > > +        sensor0@2 {
> > > +            status = "okay";
> > > +            compatible = "GalaxyCore,gc08a3";
> > > +            reg = <0x31>;
> > > +
> > > +            clocks = <&topckgen CLK_TOP_CAMTG>,
> > > +                <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
> > > +            clock-names = "xvclk", "freq_mux";
> > > +            clock-frequency = <24000000>;
> > > +
> > > +            assigned-clocks = <&topckgen CLK_TOP_CAMTG>,
> > > +                    <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
> > > +            assigned-clock-parents = <&topckgen
> CLK_TOP_UNIVPLL_192M_D8>;
> > > +            assigned-clock-rates = <0>, <24000000>;
> > > +
> > > +            enable-gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
> > > +
> > > +            pinctrl-names = "default";
> > > +            pinctrl-0 = <&camera_pins_cam0>;
> > > +
> > > +            avdd-supply = <&mt6359_vfe28_ldo_reg>;
> > > +
> > > +            port {
> > > +                sensor0_out_2: endpoint {
> > > +                    data-lanes = <1 2 3 4>;
> > > +                    link-frequencies = /bits/ 64 <336000000
> 207000000>;
> > > +                    remote-endpoint = <&seninf_csi_port_0_in_2>;
> > > +                };
> > > +            };
> > > +        };
> > > +
> > > +    };
> > > +
> > > +...
> > > diff --git a/Documentation/devicetree/bindings/vendor-
> prefixes.yaml b/Documentation/devicetree/bindings/vendor-
> prefixes.yaml
> > > index 309b94c328c8..a0bbec0bfee2 100644
> > > --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
> > > +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> > > @@ -502,6 +502,8 @@ patternProperties:
> > >      description: Fujitsu Ltd.
> > >    "^fxtec,.*":
> > >      description: FX Technology Ltd.
> > > +  "^GalaxyCore,.*":
> > > +    description: GalaxyCore Inc.
> > >    "^gardena,.*":
> > >      description: GARDENA GmbH
> > >    "^gateway,.*":
> 
> -- 
> Regards,
> 
> Laurent Pinchart
Laurent Pinchart Jan. 9, 2024, 9:18 a.m. UTC | #5
Hi Zhi,

Your e-mail still came as HTML, with the same footer. Please fix this
first, I'm afraid we can't communicate properly on mailing lists
otherwise.

On Tue, Jan 09, 2024 at 09:11:32AM +0000, Zhi Mao (毛智) wrote:
> On Thu, 2023-12-07 at 12:25 +0200, Laurent Pinchart wrote:
> >
> > External email : Please do not click links or open attachments until
> > you have verified the sender or the content.
> >  On Thu, Nov 23, 2023 at 05:31:35PM +0000, Conor Dooley wrote:
> > > On Thu, Nov 23, 2023 at 07:51:03PM +0800, Zhi Mao wrote:
> > > > Add YAML device tree binding for GC08A3 CMOS image sensor,
> > > > and the relevant MAINTAINERS entries.
> > > >
> > > > Signed-off-by: Zhi Mao <zhi.mao@mediatek.com>
> > >
> > > Please test your bindings.
> > >
> > > > ---
> > > >  .../bindings/media/i2c/galaxycore,gc08a3.yaml | 128
> > ++++++++++++++++++
> > > >  .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
> > > >  2 files changed, 130 insertions(+)
> > > >  create mode 100644
> > Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> > > >
> > > > diff --git
> > a/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> > b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> > > > new file mode 100644
> > > > index 000000000000..089ea321da91
> > > > --- /dev/null
> > > > +++
> > b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
> > > > @@ -0,0 +1,128 @@
> > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > > +%YAML 1.2
> > > > +---
> > > > +$id:
> > http://devicetree.org/schemas/media/i2c/galaxycore,gc08a3.yaml#
> > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > +
> > > > +title: GalaxyCore gc08a3 1/4" 8M Pixel MIPI CSI-2 sensor
> > > > +
> > > > +maintainers:
> > > > +  - Zhi Mao <zhi.mao@mediatek.com>
> > > > +
> > > > +description: |-
> > >
> > > The |- is not needed, you have no formatting to preserve.
> > >
> > > > +  The gc08a3 is a raw image sensor with an MIPI CSI-2 image data
> > > > +  interface and CCI (I2C compatible) control bus. The output
> > format
> > > > +  is raw Bayer.
> > > > +
> > > > +properties:
> > > > +  compatible:
> > > > +    const: GalaxyCore,gc08a3
> > >
> > > Please remove the capitals.
> > >
> > > > +
> > > > +  reg:
> > > > +    maxItems: 1
> > > > +
> > > > +  clocks:
> > > > +    items:
> > > > +      - description: Reference to the mclk clock.
> > >
> > > Pointless, just use maxItems: 1.
> > >
> > > > +
> > > > +  assigned-clocks:
> > > > +    maxItems: 1
> > > > +
> > > > +  assigned-clock-rates:
> > > > +    maxItems: 1
> > > > +
> > > > +  enable-gpios:
> > > > +    description: Reference to the GPIO connected to the RESETB
> > pin. Active low.
> > > > +    maxItems: 1
> > > > +
> >
> > If that's the RESETB pin, it should be reset-gpios.
> [mtk]: yes, it's reset-pin, fixed in patch:v3.
> and some other comments also fixed, please review patch:v3.
> 
> https://lore.kernel.org/linux-media/20240109022715.30278-1-zhi.mao@mediatek.com/
> >
> > > > +  vddio-supply:
> > > > +    description: Definition of the regulator used for the VDDIO
> > power supply.
> > > > +
> > > > +  vdda-supply:
> > > > +    description: Definition of the regulator used for the VDDA
> > power supply.
> > > > +
> > > > +  vddd-supply:
> > > > +    description: Definition of the regulator used for the VDDD
> > power supply.
> > >
> > > These descriptions can all be replaced with "foo-supply: true" IMO.
> > >
> > > > +  port:
> > > > +    $ref: /schemas/graph.yaml#/$defs/port-base
> > > > +    unevaluatedProperties: false
> > > > +
> > > > +    properties:
> > > > +      endpoint:
> > > > +        $ref: /schemas/media/video-interfaces.yaml#
> > > > +        unevaluatedProperties: false
> > > > +
> > > > +        properties:
> > > > +          data-lanes:
> > > > +            oneOf:
> > > > +              - items:
> > > > +                  - const: 1
> > > > +                  - const: 2
> > > > +                  - const: 3
> > > > +                  - const: 4
> > > > +              - items:
> > > > +                  - const: 1
> > > > +                  - const: 2
> > > > +
> > > > +          link-frequencies: true
> > > > +
> > > > +        required:
> > > > +          - data-lanes
> > > > +          - link-frequencies
> > > > +
> > > > +required:
> > > > +  - compatible
> > > > +  - reg
> > > > +  - clocks
> > >
> > > > +  - assigned-clocks
> > > > +  - assigned-clock-rates
> > >
> > > Why are these required?
> > >
> > > > +  - vddio-supply
> > > > +  - vdda-supply
> > > > +  - vddd-supply
> > > > +  - port
> > > > +
> > > > +additionalProperties: false
> > > > +
> > > > +examples:
> > > > +  - |
> > > > +    #include <dt-bindings/gpio/gpio.h>
> > > > +
> > > > +    i2c {
> > > > +        #address-cells = <1>;
> > > > +        #size-cells = <0>;
> > > > +
> > > > +        sensor0@2 {
> > > > +            status = "okay";
> > > > +            compatible = "GalaxyCore,gc08a3";
> > > > +            reg = <0x31>;
> > > > +
> > > > +            clocks = <&topckgen CLK_TOP_CAMTG>,
> > > > +                <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
> > > > +            clock-names = "xvclk", "freq_mux";
> > > > +            clock-frequency = <24000000>;
> > > > +
> > > > +            assigned-clocks = <&topckgen CLK_TOP_CAMTG>,
> > > > +                    <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
> > > > +            assigned-clock-parents = <&topckgen
> > CLK_TOP_UNIVPLL_192M_D8>;
> > > > +            assigned-clock-rates = <0>, <24000000>;
> > > > +
> > > > +            enable-gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
> > > > +
> > > > +            pinctrl-names = "default";
> > > > +            pinctrl-0 = <&camera_pins_cam0>;
> > > > +
> > > > +            avdd-supply = <&mt6359_vfe28_ldo_reg>;
> > > > +
> > > > +            port {
> > > > +                sensor0_out_2: endpoint {
> > > > +                    data-lanes = <1 2 3 4>;
> > > > +                    link-frequencies = /bits/ 64 <336000000
> > 207000000>;
> > > > +                    remote-endpoint = <&seninf_csi_port_0_in_2>;
> > > > +                };
> > > > +            };
> > > > +        };
> > > > +
> > > > +    };
> > > > +
> > > > +...
> > > > diff --git a/Documentation/devicetree/bindings/vendor-
> > prefixes.yaml b/Documentation/devicetree/bindings/vendor-
> > prefixes.yaml
> > > > index 309b94c328c8..a0bbec0bfee2 100644
> > > > --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
> > > > +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> > > > @@ -502,6 +502,8 @@ patternProperties:
> > > >      description: Fujitsu Ltd.
> > > >    "^fxtec,.*":
> > > >      description: FX Technology Ltd.
> > > > +  "^GalaxyCore,.*":
> > > > +    description: GalaxyCore Inc.
> > > >    "^gardena,.*":
> > > >      description: GARDENA GmbH
> > > >    "^gateway,.*":
> >
> > --
> > Regards,
> >
> > Laurent Pinchart
> 
> 
> ************* MEDIATEK Confidentiality Notice ********************
> The information contained in this e-mail message (including any
> attachments) may be confidential, proprietary, privileged, or otherwise
> exempt from disclosure under applicable laws. It is intended to be
> conveyed only to the designated recipient(s). Any use, dissemination,
> distribution, printing, retaining or copying of this e-mail (including its
> attachments) by unintended recipient(s) is strictly prohibited and may
> be unlawful. If you are not an intended recipient of this e-mail, or believe
> that you have received this e-mail in error, please notify the sender
> immediately (by replying to this e-mail), delete any and all copies of
> this e-mail (including any attachments) from your system, and do not
> disclose the content of this e-mail to any other person. Thank you!
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
new file mode 100644
index 000000000000..089ea321da91
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
@@ -0,0 +1,128 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/galaxycore,gc08a3.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: GalaxyCore gc08a3 1/4" 8M Pixel MIPI CSI-2 sensor
+
+maintainers:
+  - Zhi Mao <zhi.mao@mediatek.com>
+
+description: |-
+  The gc08a3 is a raw image sensor with an MIPI CSI-2 image data
+  interface and CCI (I2C compatible) control bus. The output format
+  is raw Bayer.
+
+properties:
+  compatible:
+    const: GalaxyCore,gc08a3
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Reference to the mclk clock.
+
+  assigned-clocks:
+    maxItems: 1
+
+  assigned-clock-rates:
+    maxItems: 1
+
+  enable-gpios:
+    description: Reference to the GPIO connected to the RESETB pin. Active low.
+    maxItems: 1
+
+  vddio-supply:
+    description: Definition of the regulator used for the VDDIO power supply.
+
+  vdda-supply:
+    description: Definition of the regulator used for the VDDA power supply.
+
+  vddd-supply:
+    description: Definition of the regulator used for the VDDD power supply.
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    unevaluatedProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          data-lanes:
+            oneOf:
+              - items:
+                  - const: 1
+                  - const: 2
+                  - const: 3
+                  - const: 4
+              - items:
+                  - const: 1
+                  - const: 2
+
+          link-frequencies: true
+
+        required:
+          - data-lanes
+          - link-frequencies
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - assigned-clocks
+  - assigned-clock-rates
+  - vddio-supply
+  - vdda-supply
+  - vddd-supply
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        sensor0@2 {
+            status = "okay";
+            compatible = "GalaxyCore,gc08a3";
+            reg = <0x31>;
+
+            clocks = <&topckgen CLK_TOP_CAMTG>,
+                <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
+            clock-names = "xvclk", "freq_mux";
+            clock-frequency = <24000000>;
+
+            assigned-clocks = <&topckgen CLK_TOP_CAMTG>,
+                    <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
+            assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_192M_D8>;
+            assigned-clock-rates = <0>, <24000000>;
+
+            enable-gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
+
+            pinctrl-names = "default";
+            pinctrl-0 = <&camera_pins_cam0>;
+
+            avdd-supply = <&mt6359_vfe28_ldo_reg>;
+
+            port {
+                sensor0_out_2: endpoint {
+                    data-lanes = <1 2 3 4>;
+                    link-frequencies = /bits/ 64 <336000000 207000000>;
+                    remote-endpoint = <&seninf_csi_port_0_in_2>;
+                };
+            };
+        };
+
+    };
+
+...
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 309b94c328c8..a0bbec0bfee2 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -502,6 +502,8 @@  patternProperties:
     description: Fujitsu Ltd.
   "^fxtec,.*":
     description: FX Technology Ltd.
+  "^GalaxyCore,.*":
+    description: GalaxyCore Inc.
   "^gardena,.*":
     description: GARDENA GmbH
   "^gateway,.*":