Message ID | 1631091372-16191-2-git-send-email-anil.mamidala@xilinx.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,1/2] media: i2c: Add ON Semiconductor AP1302 ISP driver | expand |
Hi Rob Herring, Can you please review the patch and provide your valuable feedback. Thanks and regards, Anil. -----Original Message----- From: Anil Kumar Mamidala <anil.mamidala@xilinx.com> Sent: Wednesday, September 8, 2021 2:26 PM To: linux-media@vger.kernel.org; sakari.ailus@iki.fi; robh+dt@kernel.org Cc: Naveen Kumar Gaddipati <naveenku@xilinx.com>; Anil Kumar Mamidala <amamidal@xilinx.com>; Laurent Pinchart <laurent.pinchart@ideasonboard.com>; Stefan Hladnik <stefan.hladnik@gmail.com>; Florian Rebaudo <frebaudo@witekio.com> Subject: [PATCH v2 2/2] media: dt-bindings: media: i2c: Add bindings for AP1302 The AP1302 is a standalone ISP for ON Semiconductor sensors. Add corresponding DT bindings. Signed-off-by: Anil Kumar Mamidala <anil.mamidala@xilinx.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Stefan Hladnik <stefan.hladnik@gmail.com> Signed-off-by: Florian Rebaudo <frebaudo@witekio.com> --- .../devicetree/bindings/media/i2c/onnn,ap1302.yaml | 202 +++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/i2c/onnn,ap1302.yaml diff --git a/Documentation/devicetree/bindings/media/i2c/onnn,ap1302.yaml b/Documentation/devicetree/bindings/media/i2c/onnn,ap1302.yaml new file mode 100644 index 0000000..d96e9db --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/onnn,ap1302.yaml @@ -0,0 +1,202 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/i2c/onnn,ap1302.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: ON Semiconductor AP1302 Advanced Image Coprocessor + +maintainers: + - Laurent Pinchart <laurent.pinchart@ideasonboard.com> + - Anil Kumar M <anil.mamidala@xilinx.com> + +description: |- + The AP1302 is a standalone ISP for ON Semiconductor sensors. It +interfaces to + up to two RAW CMOS sensors over MIPI CSI-2 connections, processes the +two + video streams and outputs YUV frames to the host over a MIPI CSI-2 interface. + Frames are output side by side or on two virtual channels. + + The sensors must be identical. They are connected to the AP1302 on + dedicated I2C buses, and are controlled by the AP1302 firmware. They + are not accessible from the host. + +properties: + compatible: + const: onnn,ap1302 + + reg: + description: I2C device address. + maxItems: 1 + + clocks: + description: Reference to the CLK clock. + maxItems: 1 + + reset-gpios: + description: Reference to the GPIO connected to the RST pin (active low). + maxItems: 1 + + standby-gpios: + description: + Reference to the GPIO connected to the STANDBY pin (active high). + maxItems: 1 + + port: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: MIPI CSI-2 output interface to the host. + + properties: + endpoint: + $ref: /schemas/graph.yaml#/$defs/endpoint-base + unevaluatedProperties: false + + properties: + clock-noncontinuous: + type: boolean + + data-lanes: + oneOf: + - items: + - const: 1 + - items: + - const: 1 + - const: 2 + - items: + - const: 1 + - const: 2 + - const: 3 + - const: 4 + + required: + - data-lanes + + sensors: + type: object + description: List of connected sensors + + properties: + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + onnn,model: + $ref: "/schemas/types.yaml#/definitions/string" + description: | + Model of the connected sensors. Must be a valid compatible string. + + If no sensor is connected, this property must no be specified, and + the AP1302 can be used with it's internal test pattern generator. + + patternProperties: + "^sensor@[01]": + type: object + description: | + Sensors connected to the first and second input, with one node per + sensor. + + properties: + reg: + description: AP1302 input port number + maxItems: 1 + + patternProperties: + ".*-supply": + description: Power supplies for the sensor + + required: + - reg + + additionalProperties: false + + required: + - "#address-cells" + - "#size-cells" + + # How can we express that onnn,model requires one sensor object to be set ? + + additionalProperties: false + +required: + - compatible + - reg + - clocks + - port + - sensors + +additionalProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + camera@3c { + compatible = "onnn,ap1302"; + reg = <0x3c>; + + clocks = <&clk24mhz>; + + reset-gpios = <&pio 102 GPIO_ACTIVE_LOW>; + standby-gpios = <&pio 40 GPIO_ACTIVE_HIGH>; + + port { + isp1_out: endpoint { + remote-endpoint = <&seninf_in1>; + data-lanes = <1 2 3 4>; + }; + }; + + sensors { + #address-cells = <1>; + #size-cells = <0>; + + onnn,model = "onnn,ar0144"; + + sensor@0 { + reg = <0>; + + vdd-supply = <&mt6358_vcamd_reg>; + vaa-supply = <&mt6358_vcama1_reg>; + vddio-supply = <®_1p8v_ext>; + }; + }; + }; + }; + + - | + #include <dt-bindings/gpio/gpio.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + camera@3c { + compatible = "onnn,ap1302"; + reg = <0x3c>; + + clocks = <&topckgen 0>; + + reset-gpios = <&pio 102 GPIO_ACTIVE_LOW>; + standby-gpios = <&pio 40 GPIO_ACTIVE_HIGH>; + + port { + isp2_out: endpoint { + remote-endpoint = <&seninf_in1>; + data-lanes = <1 2>; + }; + }; + + sensors { + #address-cells = <1>; + #size-cells = <0>; + }; + }; + }; + +... -- 2.7.4
On Wed, Sep 15, 2021 at 2:07 PM Anil Kumar Mamidala <amamidal@xilinx.com> wrote: > > Hi Rob Herring, > > Can you please review the patch and provide your valuable feedback. It's not reviewed because you didn't send to the DT list. Please resend so that checks run and it's in my queue. > > Thanks and regards, > Anil. > > -----Original Message----- > From: Anil Kumar Mamidala <anil.mamidala@xilinx.com> > Sent: Wednesday, September 8, 2021 2:26 PM > To: linux-media@vger.kernel.org; sakari.ailus@iki.fi; robh+dt@kernel.org > Cc: Naveen Kumar Gaddipati <naveenku@xilinx.com>; Anil Kumar Mamidala <amamidal@xilinx.com>; Laurent Pinchart <laurent.pinchart@ideasonboard.com>; Stefan Hladnik <stefan.hladnik@gmail.com>; Florian Rebaudo <frebaudo@witekio.com> > Subject: [PATCH v2 2/2] media: dt-bindings: media: i2c: Add bindings for AP1302 > > The AP1302 is a standalone ISP for ON Semiconductor sensors. > Add corresponding DT bindings. > > Signed-off-by: Anil Kumar Mamidala <anil.mamidala@xilinx.com> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Signed-off-by: Stefan Hladnik <stefan.hladnik@gmail.com> > Signed-off-by: Florian Rebaudo <frebaudo@witekio.com> > --- > .../devicetree/bindings/media/i2c/onnn,ap1302.yaml | 202 +++++++++++++++++++++ > 1 file changed, 202 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/i2c/onnn,ap1302.yaml > > diff --git a/Documentation/devicetree/bindings/media/i2c/onnn,ap1302.yaml b/Documentation/devicetree/bindings/media/i2c/onnn,ap1302.yaml > new file mode 100644 > index 0000000..d96e9db > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/i2c/onnn,ap1302.yaml > @@ -0,0 +1,202 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/i2c/onnn,ap1302.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: ON Semiconductor AP1302 Advanced Image Coprocessor > + > +maintainers: > + - Laurent Pinchart <laurent.pinchart@ideasonboard.com> > + - Anil Kumar M <anil.mamidala@xilinx.com> > + > +description: |- > + The AP1302 is a standalone ISP for ON Semiconductor sensors. It > +interfaces to > + up to two RAW CMOS sensors over MIPI CSI-2 connections, processes the > +two > + video streams and outputs YUV frames to the host over a MIPI CSI-2 interface. > + Frames are output side by side or on two virtual channels. > + > + The sensors must be identical. They are connected to the AP1302 on > + dedicated I2C buses, and are controlled by the AP1302 firmware. They > + are not accessible from the host. > + > +properties: > + compatible: > + const: onnn,ap1302 > + > + reg: > + description: I2C device address. > + maxItems: 1 > + > + clocks: > + description: Reference to the CLK clock. > + maxItems: 1 > + > + reset-gpios: > + description: Reference to the GPIO connected to the RST pin (active low). > + maxItems: 1 > + > + standby-gpios: > + description: > + Reference to the GPIO connected to the STANDBY pin (active high). > + maxItems: 1 > + > + port: > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: MIPI CSI-2 output interface to the host. > + > + properties: > + endpoint: > + $ref: /schemas/graph.yaml#/$defs/endpoint-base > + unevaluatedProperties: false > + > + properties: > + clock-noncontinuous: > + type: boolean > + > + data-lanes: > + oneOf: > + - items: > + - const: 1 > + - items: > + - const: 1 > + - const: 2 > + - items: > + - const: 1 > + - const: 2 > + - const: 3 > + - const: 4 > + > + required: > + - data-lanes > + > + sensors: > + type: object > + description: List of connected sensors > + > + properties: > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > + onnn,model: > + $ref: "/schemas/types.yaml#/definitions/string" > + description: | > + Model of the connected sensors. Must be a valid compatible string. > + > + If no sensor is connected, this property must no be specified, and > + the AP1302 can be used with it's internal test pattern generator. > + > + patternProperties: > + "^sensor@[01]": > + type: object > + description: | > + Sensors connected to the first and second input, with one node per > + sensor. > + > + properties: > + reg: > + description: AP1302 input port number > + maxItems: 1 > + > + patternProperties: > + ".*-supply": > + description: Power supplies for the sensor > + > + required: > + - reg > + > + additionalProperties: false > + > + required: > + - "#address-cells" > + - "#size-cells" > + > + # How can we express that onnn,model requires one sensor object to be set ? > + > + additionalProperties: false > + > +required: > + - compatible > + - reg > + - clocks > + - port > + - sensors > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + camera@3c { > + compatible = "onnn,ap1302"; > + reg = <0x3c>; > + > + clocks = <&clk24mhz>; > + > + reset-gpios = <&pio 102 GPIO_ACTIVE_LOW>; > + standby-gpios = <&pio 40 GPIO_ACTIVE_HIGH>; > + > + port { > + isp1_out: endpoint { > + remote-endpoint = <&seninf_in1>; > + data-lanes = <1 2 3 4>; > + }; > + }; > + > + sensors { > + #address-cells = <1>; > + #size-cells = <0>; > + > + onnn,model = "onnn,ar0144"; > + > + sensor@0 { > + reg = <0>; > + > + vdd-supply = <&mt6358_vcamd_reg>; > + vaa-supply = <&mt6358_vcama1_reg>; > + vddio-supply = <®_1p8v_ext>; > + }; > + }; > + }; > + }; > + > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + camera@3c { > + compatible = "onnn,ap1302"; > + reg = <0x3c>; > + > + clocks = <&topckgen 0>; > + > + reset-gpios = <&pio 102 GPIO_ACTIVE_LOW>; > + standby-gpios = <&pio 40 GPIO_ACTIVE_HIGH>; > + > + port { > + isp2_out: endpoint { > + remote-endpoint = <&seninf_in1>; > + data-lanes = <1 2>; > + }; > + }; > + > + sensors { > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + }; > + }; > + > +... > -- > 2.7.4 >
diff --git a/Documentation/devicetree/bindings/media/i2c/onnn,ap1302.yaml b/Documentation/devicetree/bindings/media/i2c/onnn,ap1302.yaml new file mode 100644 index 0000000..d96e9db --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/onnn,ap1302.yaml @@ -0,0 +1,202 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/i2c/onnn,ap1302.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: ON Semiconductor AP1302 Advanced Image Coprocessor + +maintainers: + - Laurent Pinchart <laurent.pinchart@ideasonboard.com> + - Anil Kumar M <anil.mamidala@xilinx.com> + +description: |- + The AP1302 is a standalone ISP for ON Semiconductor sensors. It interfaces to + up to two RAW CMOS sensors over MIPI CSI-2 connections, processes the two + video streams and outputs YUV frames to the host over a MIPI CSI-2 interface. + Frames are output side by side or on two virtual channels. + + The sensors must be identical. They are connected to the AP1302 on dedicated + I2C buses, and are controlled by the AP1302 firmware. They are not accessible + from the host. + +properties: + compatible: + const: onnn,ap1302 + + reg: + description: I2C device address. + maxItems: 1 + + clocks: + description: Reference to the CLK clock. + maxItems: 1 + + reset-gpios: + description: Reference to the GPIO connected to the RST pin (active low). + maxItems: 1 + + standby-gpios: + description: + Reference to the GPIO connected to the STANDBY pin (active high). + maxItems: 1 + + port: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: MIPI CSI-2 output interface to the host. + + properties: + endpoint: + $ref: /schemas/graph.yaml#/$defs/endpoint-base + unevaluatedProperties: false + + properties: + clock-noncontinuous: + type: boolean + + data-lanes: + oneOf: + - items: + - const: 1 + - items: + - const: 1 + - const: 2 + - items: + - const: 1 + - const: 2 + - const: 3 + - const: 4 + + required: + - data-lanes + + sensors: + type: object + description: List of connected sensors + + properties: + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + onnn,model: + $ref: "/schemas/types.yaml#/definitions/string" + description: | + Model of the connected sensors. Must be a valid compatible string. + + If no sensor is connected, this property must no be specified, and + the AP1302 can be used with it's internal test pattern generator. + + patternProperties: + "^sensor@[01]": + type: object + description: | + Sensors connected to the first and second input, with one node per + sensor. + + properties: + reg: + description: AP1302 input port number + maxItems: 1 + + patternProperties: + ".*-supply": + description: Power supplies for the sensor + + required: + - reg + + additionalProperties: false + + required: + - "#address-cells" + - "#size-cells" + + # How can we express that onnn,model requires one sensor object to be set ? + + additionalProperties: false + +required: + - compatible + - reg + - clocks + - port + - sensors + +additionalProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + camera@3c { + compatible = "onnn,ap1302"; + reg = <0x3c>; + + clocks = <&clk24mhz>; + + reset-gpios = <&pio 102 GPIO_ACTIVE_LOW>; + standby-gpios = <&pio 40 GPIO_ACTIVE_HIGH>; + + port { + isp1_out: endpoint { + remote-endpoint = <&seninf_in1>; + data-lanes = <1 2 3 4>; + }; + }; + + sensors { + #address-cells = <1>; + #size-cells = <0>; + + onnn,model = "onnn,ar0144"; + + sensor@0 { + reg = <0>; + + vdd-supply = <&mt6358_vcamd_reg>; + vaa-supply = <&mt6358_vcama1_reg>; + vddio-supply = <®_1p8v_ext>; + }; + }; + }; + }; + + - | + #include <dt-bindings/gpio/gpio.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + camera@3c { + compatible = "onnn,ap1302"; + reg = <0x3c>; + + clocks = <&topckgen 0>; + + reset-gpios = <&pio 102 GPIO_ACTIVE_LOW>; + standby-gpios = <&pio 40 GPIO_ACTIVE_HIGH>; + + port { + isp2_out: endpoint { + remote-endpoint = <&seninf_in1>; + data-lanes = <1 2>; + }; + }; + + sensors { + #address-cells = <1>; + #size-cells = <0>; + }; + }; + }; + +...