new file mode 100644
@@ -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>;
+ };
+ };
+ };
+
+...