Message ID | 20250426-b4-sailusfor-6-16-1-5-signed-ov02c10-yaml-v1-1-9a46124fae7b@linaro.org |
---|---|
State | New |
Headers | show |
Series | media: dt-bindings: Add OminiVision 0V02C10 | expand |
Hi Bryan, Thanks for the patch. On Sat, Apr 26, 2025 at 11:35:21PM +0100, Bryan O'Donoghue wrote: > Extend the ov02e10 bindings yaml to describe the ov02c10 sensor which has > the same bindings with a different compat string and different i2c > address only. > > Other differences in sensor capabilities exist but are not expressed in > devicetree. > > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> > --- > I previously submitted a standalone ov02c10 yaml file but, it was pointed > out to me by Krzysztof that the ov02e10 yaml has exactly the same bindings > and we should therefore extend the ov02e10 yaml. > > Link: https://lore.kernel.org/linux-media/da93bf6c-b4bc-4c4f-9373-583fbd0c031c@kernel.org/ > > The accompanying patch: > > - Updates the overall description to differentiate between the two sensors > - Adds ovti,ov02c10 compat string > - Adds an example for the ov02c10 > > Once merged we can also merge the ov02c10 driver, which contains a compat > string requiring yaml description as precursor to merge. > --- > .../bindings/media/i2c/ovti,ov02e10.yaml | 47 ++++++++++++++++++++-- > 1 file changed, 43 insertions(+), 4 deletions(-) > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml > index 4ac4e11a16c8bb7a53db0c44289b1004dbdc282a..1561a3e96caa8b09a4c105b87536bb0d00b2adf8 100644 > --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml > @@ -11,12 +11,22 @@ maintainers: > - Bryan O'Donoghue <bryan.odonoghue@linaro.org> > > description: | > - The Omnivision OV02E10 is a 2 megapixel, CMOS image sensor which supports: > + The Omnivision OV02E10 and 0V02C10 sensors are 2 megapixel, CMOS image sensors which support: > - Automatic black level calibration (ABLC) > - Programmable controls for frame rate, mirror and flip, binning, cropping > and windowing > - - Output formats 10-bit 4C RGB RAW, 10-bit Bayer RAW > - - 2-lane MIPI D-PHY TX @ 720 Mbps per lane > + - OVO2C10 > + - 10 bit 1920x1080 60 fps 2-lane @ 800 Mbps/lane > + - 10 bit 1920x1080 60 fps 1-lane @ 1500 Mbps/lane > + - 10 bit 1280x720 60 fps cropped 1-lane @ 960 Mbps/lane > + - 10 bit RGB/BW 640x480 60 fps bin2 or skip2 1-lane @ 800 Mbps/lane > + - 10 bit RGB/BW 480x270 60 fps bin4 or skip4 1-lane @ 800 Mbps/lane > + - OV02E10 > + - 10 bit 1920x1088 60 fps 2-lane @ 720 Mbps/lane > + - 10 bit 1280x1080 60 fps 2-lane @ 720 Mbps/lane > + - 10 bit 960x540 60 fps 2-lane 4c1 360 Mbps/lane > + - 8 bit 480x270 1/3/5/10 fps 4c1 sub2 288 Mbps/lane > + - 8 bit 232x132 1/3/5/10 fps 4c1 sub4 144 Mbps/lane These look like driver features rather than hardware properties. What are the hardware differences of the two sensors that could be listed here? The earlier description also said this is 4C which I understand is Omnivision term for quad Bayer pattern. It'd be nice to refer to that, too. (I'd use quad Bayer instead in fact.)
On Sat, Apr 26, 2025 at 11:35:21PM GMT, Bryan O'Donoghue wrote: > Extend the ov02e10 bindings yaml to describe the ov02c10 sensor which has > the same bindings with a different compat string and different i2c > address only. > > Other differences in sensor capabilities exist but are not expressed in > devicetree. > > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> > --- > I previously submitted a standalone ov02c10 yaml file but, it was pointed > out to me by Krzysztof that the ov02e10 yaml has exactly the same bindings > and we should therefore extend the ov02e10 yaml. > > Link: https://lore.kernel.org/linux-media/da93bf6c-b4bc-4c4f-9373-583fbd0c031c@kernel.org/ > > The accompanying patch: > > - Updates the overall description to differentiate between the two sensors > - Adds ovti,ov02c10 compat string > - Adds an example for the ov02c10 > > Once merged we can also merge the ov02c10 driver, which contains a compat > string requiring yaml description as precursor to merge. > --- > .../bindings/media/i2c/ovti,ov02e10.yaml | 47 ++++++++++++++++++++-- > 1 file changed, 43 insertions(+), 4 deletions(-) > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml There is no such file in recent next (0424) and no dependencies mentioned, so I cannot verify and I just assume that below: > + ov02c10: camera@36 { makes sense and you are not duplicating I2C address on the same bus. You should document the dependencies. Best regards, Krzysztof
On 28/04/2025 08:28, Sakari Ailus wrote: > Hi Bryan, > > Thanks for the patch. > > On Sat, Apr 26, 2025 at 11:35:21PM +0100, Bryan O'Donoghue wrote: >> Extend the ov02e10 bindings yaml to describe the ov02c10 sensor which has >> the same bindings with a different compat string and different i2c >> address only. >> >> Other differences in sensor capabilities exist but are not expressed in >> devicetree. >> >> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> >> --- >> I previously submitted a standalone ov02c10 yaml file but, it was pointed >> out to me by Krzysztof that the ov02e10 yaml has exactly the same bindings >> and we should therefore extend the ov02e10 yaml. >> >> Link: https://lore.kernel.org/linux-media/da93bf6c-b4bc-4c4f-9373-583fbd0c031c@kernel.org/ >> >> The accompanying patch: >> >> - Updates the overall description to differentiate between the two sensors >> - Adds ovti,ov02c10 compat string >> - Adds an example for the ov02c10 >> >> Once merged we can also merge the ov02c10 driver, which contains a compat >> string requiring yaml description as precursor to merge. >> --- >> .../bindings/media/i2c/ovti,ov02e10.yaml | 47 ++++++++++++++++++++-- >> 1 file changed, 43 insertions(+), 4 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml >> index 4ac4e11a16c8bb7a53db0c44289b1004dbdc282a..1561a3e96caa8b09a4c105b87536bb0d00b2adf8 100644 >> --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml >> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml >> @@ -11,12 +11,22 @@ maintainers: >> - Bryan O'Donoghue <bryan.odonoghue@linaro.org> >> >> description: | >> - The Omnivision OV02E10 is a 2 megapixel, CMOS image sensor which supports: >> + The Omnivision OV02E10 and 0V02C10 sensors are 2 megapixel, CMOS image sensors which support: >> - Automatic black level calibration (ABLC) >> - Programmable controls for frame rate, mirror and flip, binning, cropping >> and windowing >> - - Output formats 10-bit 4C RGB RAW, 10-bit Bayer RAW >> - - 2-lane MIPI D-PHY TX @ 720 Mbps per lane >> + - OVO2C10 >> + - 10 bit 1920x1080 60 fps 2-lane @ 800 Mbps/lane >> + - 10 bit 1920x1080 60 fps 1-lane @ 1500 Mbps/lane >> + - 10 bit 1280x720 60 fps cropped 1-lane @ 960 Mbps/lane >> + - 10 bit RGB/BW 640x480 60 fps bin2 or skip2 1-lane @ 800 Mbps/lane >> + - 10 bit RGB/BW 480x270 60 fps bin4 or skip4 1-lane @ 800 Mbps/lane >> + - OV02E10 >> + - 10 bit 1920x1088 60 fps 2-lane @ 720 Mbps/lane >> + - 10 bit 1280x1080 60 fps 2-lane @ 720 Mbps/lane >> + - 10 bit 960x540 60 fps 2-lane 4c1 360 Mbps/lane >> + - 8 bit 480x270 1/3/5/10 fps 4c1 sub2 288 Mbps/lane >> + - 8 bit 232x132 1/3/5/10 fps 4c1 sub4 144 Mbps/lane > > These look like driver features rather than hardware properties. What are > the hardware differences of the two sensors that could be listed here? The only real DT difference and its not something I think we usually describe in a binding is the i2c address. 0x36 for the ov02c10 0x10 for the ov02e10 It seems like "no harm" to list some of the non-DT hardware differences for informational purposes anyway. You're right, these differences aren't manifest in the yaml/dt though. > The earlier description also said this is 4C which I understand is > Omnivision term for quad Bayer pattern. It'd be nice to refer to that, too. > (I'd use quad Bayer instead in fact.)np --- bod
diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml index 4ac4e11a16c8bb7a53db0c44289b1004dbdc282a..1561a3e96caa8b09a4c105b87536bb0d00b2adf8 100644 --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov02e10.yaml @@ -11,12 +11,22 @@ maintainers: - Bryan O'Donoghue <bryan.odonoghue@linaro.org> description: | - The Omnivision OV02E10 is a 2 megapixel, CMOS image sensor which supports: + The Omnivision OV02E10 and 0V02C10 sensors are 2 megapixel, CMOS image sensors which support: - Automatic black level calibration (ABLC) - Programmable controls for frame rate, mirror and flip, binning, cropping and windowing - - Output formats 10-bit 4C RGB RAW, 10-bit Bayer RAW - - 2-lane MIPI D-PHY TX @ 720 Mbps per lane + - OVO2C10 + - 10 bit 1920x1080 60 fps 2-lane @ 800 Mbps/lane + - 10 bit 1920x1080 60 fps 1-lane @ 1500 Mbps/lane + - 10 bit 1280x720 60 fps cropped 1-lane @ 960 Mbps/lane + - 10 bit RGB/BW 640x480 60 fps bin2 or skip2 1-lane @ 800 Mbps/lane + - 10 bit RGB/BW 480x270 60 fps bin4 or skip4 1-lane @ 800 Mbps/lane + - OV02E10 + - 10 bit 1920x1088 60 fps 2-lane @ 720 Mbps/lane + - 10 bit 1280x1080 60 fps 2-lane @ 720 Mbps/lane + - 10 bit 960x540 60 fps 2-lane 4c1 360 Mbps/lane + - 8 bit 480x270 1/3/5/10 fps 4c1 sub2 288 Mbps/lane + - 8 bit 232x132 1/3/5/10 fps 4c1 sub4 144 Mbps/lane - Dynamic defect pixel cancellation - Standard SCCB command interface @@ -25,7 +35,9 @@ allOf: properties: compatible: - const: ovti,ov02e10 + enum: + - ovti,ov02c10 + - ovti,ov02e10 reg: maxItems: 1 @@ -109,5 +121,32 @@ examples: }; }; }; + + ov02c10: camera@36 { + compatible = "ovti,ov02c10"; + reg = <0x36>; + + reset-gpios = <&tlmm 237 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_rgb_defaultt>; + + clocks = <&ov02c10_clk>; + + assigned-clocks = <&ov02c10_clk>; + assigned-clock-parents = <&ov02c10_clk_parent>; + assigned-clock-rates = <19200000>; + + avdd-supply = <&vreg_l7b_2p8>; + dvdd-supply = <&vreg_l7b_1p8>; + dovdd-supply = <&vreg_l3m_1p8>; + + port { + ov02c10_ep: endpoint { + remote-endpoint = <&csiphy4_ep>; + data-lanes = <1 2>; + link-frequencies = /bits/ 64 <400000000>; + }; + }; + }; }; ...
Extend the ov02e10 bindings yaml to describe the ov02c10 sensor which has the same bindings with a different compat string and different i2c address only. Other differences in sensor capabilities exist but are not expressed in devicetree. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> --- I previously submitted a standalone ov02c10 yaml file but, it was pointed out to me by Krzysztof that the ov02e10 yaml has exactly the same bindings and we should therefore extend the ov02e10 yaml. Link: https://lore.kernel.org/linux-media/da93bf6c-b4bc-4c4f-9373-583fbd0c031c@kernel.org/ The accompanying patch: - Updates the overall description to differentiate between the two sensors - Adds ovti,ov02c10 compat string - Adds an example for the ov02c10 Once merged we can also merge the ov02c10 driver, which contains a compat string requiring yaml description as precursor to merge. --- .../bindings/media/i2c/ovti,ov02e10.yaml | 47 ++++++++++++++++++++-- 1 file changed, 43 insertions(+), 4 deletions(-) --- base-commit: 8b5b11babc761c25602230260fb001267645b9a1 change-id: 20250426-b4-sailusfor-6-16-1-5-signed-ov02c10-yaml-68c3b3d6cfff Best regards,