Message ID | 20210906102837.2190387-3-martin.kepplinger@puri.sm |
---|---|
State | Accepted |
Commit | f3ce7200ca18094ca7c05c160637e2e2b30e17dd |
Headers | show |
Series | Add support for the Hynix Hi-846 camera | expand |
Am Freitag, dem 26.11.2021 um 13:03 +0100 schrieb Geert Uytterhoeven: > Hi Martin, > > On Fri, Nov 26, 2021 at 11:18 AM Sakari Ailus <sakari.ailus@iki.fi> > wrote: > > On Fri, Nov 26, 2021 at 11:02:31AM +0100, Martin Kepplinger wrote: > > > Am Donnerstag, dem 25.11.2021 um 12:15 +0100 schrieb Geert > > > Uytterhoeven: > > > > On Mon, Sep 6, 2021 at 12:30 PM Martin Kepplinger > > > > <martin.kepplinger@puri.sm> wrote: > > > > > Document the bindings used for the SK Hynix Hi-846 CMOS > > > > > camera > > > > > driver. > > > > > > > > > > Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm> > > > > > Reviewed-by: Laurent Pinchart < > > > > > laurent.pinchart@ideasonboard.com> > > > > > Reviewed-by: Rob Herring <robh@kernel.org> > > > > > --- > > > > > .../bindings/media/i2c/hynix,hi846.yaml | 120 > > > > > ++++++++++++++++++ > > > > > 1 file changed, 120 insertions(+) > > > > > create mode 100644 > > > > > Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml > > > > > > > > > > diff --git > > > > > a/Documentation/devicetree/bindings/media/i2c/hynix,hi846.yam > > > > > l > > > > > b/Documentation/devicetree/bindings/media/i2c/hynix,hi846.yam > > > > > l > > > > > new file mode 100644 > > > > > index 000000000000..85a8877c2f38 > > > > > --- /dev/null > > > > > +++ > > > > > b/Documentation/devicetree/bindings/media/i2c/hynix,hi846.yam > > > > > l > > > > > @@ -0,0 +1,120 @@ > > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > > +%YAML 1.2 > > > > > +--- > > > > > +$id: > > > > > http://devicetree.org/schemas/media/i2c/hynix,hi846.yaml# > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > + > > > > > +title: SK Hynix Hi-846 1/4" 8M Pixel MIPI CSI-2 sensor > > > > > + > > > > > +maintainers: > > > > > + - Martin Kepplinger <martin.kepplinger@puri.sm> > > > > > + > > > > > +description: |- > > > > > + The Hi-846 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: hynix,hi846 > > > > > + > > > > > + reg: > > > > > + maxItems: 1 > > > > > + > > > > > + clocks: > > > > > + items: > > > > > + - description: Reference to the mclk clock. > > > > > + > > > > > + assigned-clocks: > > > > > + maxItems: 1 > > > > > + > > > > > + assigned-clock-rates: > > > > > + maxItems: 1 > > > > > + > > > > > + reset-gpios: > > > > > + description: Reference to the GPIO connected to the > > > > > RESETB > > > > > pin. Active low. > > > > > + maxItems: 1 > > > > > + > > > > > + shutdown-gpios: > > > > > + description: Reference to the GPIO connected to the > > > > > XSHUTDOWN > > > > > 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#/properties/port > > > > > + > > > > > + 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 > > > > > + > > > > > + required: > > > > > + - data-lanes > > > > > + > > > > > +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>; > > > > > + > > > > > + hi846: camera@20 { > > > > > + compatible = "hynix,hi846"; > > > > > + reg = <0x20>; > > > > > + pinctrl-names = "default"; > > > > > + pinctrl-0 = <&pinctrl_csi1>; > > > > > + clocks = <&clk 0>; > > > > > + assigned-clocks = <&clk 0>; > > > > > + assigned-clock-rates = <25000000>; > > > > > + vdda-supply = <®_camera_vdda>; > > > > > + vddd-supply = <®_camera_vddd>; > > > > > + vddio-supply = <®_camera_vddio>; > > > > > + reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; > > > > > + shutdown-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>; > > > > > + > > > > > + port { > > > > > + camera_out: endpoint { > > > > > + remote-endpoint = <&csi1_ep1>; > > > > > + link-frequencies = /bits/ 64 > > > > > + <80000000 200000000>; > > > > > + data-lanes = <1 2>; > > > > > > > > "make dt_binding_check": > > > > > > > > > > > > Documentation/devicetree/bindings/media/i2c/hynix,hi846.example > > > > .dt.ya > > > > ml: > > > > camera@20: port:endpoint: Unevaluated properties are not > > > > allowed > > > > ('link-frequencies', 'data-lanes' were unexpected) > > > > From schema: > > > > Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml > > > > > > > > > + }; > > > > > + }; > > > > > + }; > > > > > + }; > > > > > > > > Gr{oetje,eeting}s, > > > > > > > > Geert > > > > > > > > > thanks a lot Geert, but I can't reproduce this on linux-next. > > > Which > > > tree did you run it against? > > > > > > What I *do* see is the following during dtbs_check, so I guess I > > > could > > > remove "orientation" and "rotation" from the example, which would > > > be > > > kind of sad because these useful properties are not yet too wide > > > know > > > anyway in the media device driver world... > > > > > > /home/martin/dev/purism-forks/linux- > > > next/arch/arm64/boot/dts/freescale/imx8mq-librem5-r2.dt.yaml: > > > camera-front@20: 'orientation', 'rotation' do not match any of > > > the > > > regexes: 'pinctrl-[0-9]+' > > > From schema: /home/martin/dev/purism-forks/linux- > > > next/Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml > > > > > > > > > if you can be more speicific I'll definitely try to reproduce > > > again > > > though. > > This is reproducible on next-20211126. > Is your dt-schema up-to-date? it is now, I'm running make -j7 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dt_binding_check dtbs_check but I can't reproduce that error. weird. > > > link-frequencies is present in the example (as it needs to be) but > > missing > > from required properties. I don't know why there's a complaint > > about > > data-lanes though. > > I also don't know what's wrong with data-lanes (else I would have > sent a patch to fix it ;-) > > Gr{oetje,eeting}s, > > Geert > > -- > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- > geert@linux-m68k.org > > In personal conversations with technical people, I call myself a > hacker. But > when I'm talking to journalists I just say "programmer" or something > like that. > -- Linus Torvalds
Hi Martin, On Tue, Nov 30, 2021 at 3:57 PM Martin Kepplinger <martin.kepplinger@puri.sm> wrote: > Am Freitag, dem 26.11.2021 um 13:03 +0100 schrieb Geert Uytterhoeven: > > This is reproducible on next-20211126. > > Is your dt-schema up-to-date? > > it is now, I'm running > > make -j7 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dt_binding_check > dtbs_check > > but I can't reproduce that error. weird. Interesting... $ git checkout next-20211201 $ make -j 12 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dt_binding_check [...] CHECK Documentation/devicetree/bindings/media/i2c/rda,rda5807.example.dt.yaml Documentation/devicetree/bindings/media/i2c/hynix,hi846.example.dt.yaml: camera@20: port:endpoint: Unevaluated properties are not allowed ('link-frequencies', 'data-lanes' were unexpected) From schema: Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml My userland is Ubuntu 20.04.3 LTS. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
On Mon, Sep 6, 2021 at 5:29 AM Martin Kepplinger <martin.kepplinger@puri.sm> wrote: > > Document the bindings used for the SK Hynix Hi-846 CMOS camera driver. > > Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Reviewed-by: Rob Herring <robh@kernel.org> > --- > .../bindings/media/i2c/hynix,hi846.yaml | 120 ++++++++++++++++++ > 1 file changed, 120 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml > > diff --git a/Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml b/Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml > new file mode 100644 > index 000000000000..85a8877c2f38 > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml > @@ -0,0 +1,120 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/i2c/hynix,hi846.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: SK Hynix Hi-846 1/4" 8M Pixel MIPI CSI-2 sensor > + > +maintainers: > + - Martin Kepplinger <martin.kepplinger@puri.sm> > + > +description: |- > + The Hi-846 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: hynix,hi846 > + > + reg: > + maxItems: 1 > + > + clocks: > + items: > + - description: Reference to the mclk clock. > + > + assigned-clocks: > + maxItems: 1 > + > + assigned-clock-rates: > + maxItems: 1 > + > + reset-gpios: > + description: Reference to the GPIO connected to the RESETB pin. Active low. > + maxItems: 1 > + > + shutdown-gpios: > + description: Reference to the GPIO connected to the XSHUTDOWN 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#/properties/port This needs to be: $ref: /schemas/graph.yaml#/$defs/port-base to fix the warning reported. You have to use the 'main' branch of dtschema which has unevaluatedProperties support. I'll be making a release soonish. Rob
diff --git a/Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml b/Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml new file mode 100644 index 000000000000..85a8877c2f38 --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml @@ -0,0 +1,120 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/i2c/hynix,hi846.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: SK Hynix Hi-846 1/4" 8M Pixel MIPI CSI-2 sensor + +maintainers: + - Martin Kepplinger <martin.kepplinger@puri.sm> + +description: |- + The Hi-846 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: hynix,hi846 + + reg: + maxItems: 1 + + clocks: + items: + - description: Reference to the mclk clock. + + assigned-clocks: + maxItems: 1 + + assigned-clock-rates: + maxItems: 1 + + reset-gpios: + description: Reference to the GPIO connected to the RESETB pin. Active low. + maxItems: 1 + + shutdown-gpios: + description: Reference to the GPIO connected to the XSHUTDOWN 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#/properties/port + + 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 + + required: + - data-lanes + +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>; + + hi846: camera@20 { + compatible = "hynix,hi846"; + reg = <0x20>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_csi1>; + clocks = <&clk 0>; + assigned-clocks = <&clk 0>; + assigned-clock-rates = <25000000>; + vdda-supply = <®_camera_vdda>; + vddd-supply = <®_camera_vddd>; + vddio-supply = <®_camera_vddio>; + reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; + shutdown-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>; + + port { + camera_out: endpoint { + remote-endpoint = <&csi1_ep1>; + link-frequencies = /bits/ 64 + <80000000 200000000>; + data-lanes = <1 2>; + }; + }; + }; + }; + +...