* [PATCH v2] media: bindings: video-interfaces: Update the example @ 2019-11-11 14:00 Jacopo Mondi 2019-11-11 17:02 ` Sakari Ailus 0 siblings, 1 reply; 4+ messages in thread From: Jacopo Mondi @ 2019-11-11 14:00 UTC (permalink / raw) To: Mauro Carvalho Chehab, Sakari Ailus, Hans Verkuil, Laurent Pinchart, Niklas Soderlund, Geert Uytterhoeven, Simon Horman, Rob Herring, Mark Rutland Cc: Jacopo Mondi, linux-media, devicetree, linux-renesas-soc The example provided by the video-interface.txt file uses compatible values for drivers which are have been removed a long time ago. To avoid generating confusion, replace the existing example with a new one using upstream maintained and more modern devices. Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org> --- Re-proposing the example update, taking into account Niklas' comments about removing most of the commits there. Laurent suggested to move the example to json-schema, but being this file mostly used as reference for the common video properties description, I'm not sure bindings in yaml format make sense here. --- .../bindings/media/video-interfaces.txt | 210 ++++++++++-------- 1 file changed, 116 insertions(+), 94 deletions(-) diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt b/Documentation/devicetree/bindings/media/video-interfaces.txt index f884ada0bffc..955bd6f52cda 100644 --- a/Documentation/devicetree/bindings/media/video-interfaces.txt +++ b/Documentation/devicetree/bindings/media/video-interfaces.txt @@ -153,123 +153,145 @@ Optional endpoint properties Example ------- -The example snippet below describes two data pipelines. ov772x and imx074 are -camera sensors with a parallel and serial (MIPI CSI-2) video bus respectively. -Both sensors are on the I2C control bus corresponding to the i2c0 controller -node. ov772x sensor is linked directly to the ceu0 video host interface. -imx074 is linked to ceu0 through the MIPI CSI-2 receiver (csi2). ceu0 has a -(single) DMA engine writing captured data to memory. ceu0 node has a single -'port' node which may indicate that at any time only one of the following data -pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0. - - ceu0: ceu@fe910000 { - compatible = "renesas,sh-mobile-ceu"; - reg = <0xfe910000 0xa0>; - interrupts = <0x880>; - - mclk: master_clock { - compatible = "renesas,ceu-clock"; - #clock-cells = <1>; - clock-frequency = <50000000>; /* Max clock frequency */ - clock-output-names = "mclk"; - }; +The example snippet below describes two data pipelines connected to a video +DMA engine (VIN4) which has a direct parallel video bus connection to an HDMI +video decoder at port@0 and a data path to a CSI-2 receiver connected to an +image sensor (imx074) at port@1. - port { +The parallel HDMI video decoder links directly to the VIN input port 0, and the +bus configuration at both ends is specified in each endpoint. + +The imx074 sensor connects to the CSI-2 receiver and the MIPI CSI-2 serial bus +configuration is specified in the respective endpoints as well. The CSI-2 +receiver is then linked to the DMA engine through a direct data path which does +not require any endpoint configuration. + +i2c0: i2c@e6500000 { + + hdmi-decoder@4c { + compatible = "adi,adv7612"; + reg = <0x4c>; + + ports { #address-cells = <1>; #size-cells = <0>; - /* Parallel bus endpoint */ - ceu0_1: endpoint@1 { - reg = <1>; /* Local endpoint # */ - remote = <&ov772x_1_1>; /* Remote phandle */ - bus-width = <8>; /* Used data lines */ - data-shift = <2>; /* Lines 9:2 are used */ - - /* If hsync-active/vsync-active are missing, - embedded BT.656 sync is used */ - hsync-active = <0>; /* Active low */ - vsync-active = <0>; /* Active low */ - data-active = <1>; /* Active high */ - pclk-sample = <1>; /* Rising */ - }; - - /* MIPI CSI-2 bus endpoint */ - ceu0_0: endpoint@0 { + port@0 { reg = <0>; - remote = <&csi2_2>; + adv7612_in: endpoint { + remote-endpoint = <&hdmi_con_in>; + }; }; - }; - }; - i2c0: i2c@fff20000 { - ... - ov772x_1: camera@21 { - compatible = "ovti,ov772x"; - reg = <0x21>; - vddio-supply = <®ulator1>; - vddcore-supply = <®ulator2>; - - clock-frequency = <20000000>; - clocks = <&mclk 0>; - clock-names = "xclk"; - - port { - /* With 1 endpoint per port no need for addresses. */ - ov772x_1_1: endpoint { + port@2 { + reg = <2>; + adv7612_out: endpoint { + bus-type = 5; bus-width = <8>; - remote-endpoint = <&ceu0_1>; - hsync-active = <1>; - vsync-active = <0>; /* Who came up with an - inverter here ?... */ - data-active = <1>; - pclk-sample = <1>; + pclk-sample = <0>; + hsync-active = <0>; + vsync-active = <1>; + remote-endpoint = <&vin4_digital_in>; }; }; }; + }; - imx074: camera@1a { - compatible = "sony,imx074"; - reg = <0x1a>; - vddio-supply = <®ulator1>; - vddcore-supply = <®ulator2>; - - clock-frequency = <30000000>; /* Shared clock with ov772x_1 */ - clocks = <&mclk 0>; - clock-names = "sysclk"; /* Assuming this is the - name in the datasheet */ - port { - imx074_1: endpoint { - clock-lanes = <0>; - data-lanes = <1 2>; - remote-endpoint = <&csi2_1>; - }; + imx074: camera@1a { + compatible = "sony,imx074"; + reg = <0x1a>; + + rotation = <180>; + + port { + imx074_1: endpoint { + bus-type = 4; + data-lanes = <1 2>; + remote-endpoint = <&csi20_in>; }; }; }; +}; + +csi20: csi2@fea80000 { + compatible = "renesas,r8a7795-csi2"; + reg = <0 0xfea80000 0 0x10000>; + interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 714>; + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + resets = <&cpg 714>; - csi2: csi2@ffc90000 { - compatible = "renesas,sh-mobile-csi2"; - reg = <0xffc90000 0x1000>; - interrupts = <0x17a0>; + ports { #address-cells = <1>; #size-cells = <0>; - port@1 { - compatible = "renesas,csi2c"; /* One of CSI2I and CSI2C. */ - reg = <1>; /* CSI-2 PHY #1 of 2: PHY_S, - PHY_M has port address 0, - is unused. */ - csi2_1: endpoint { - clock-lanes = <0>; - data-lanes = <2 1>; + port@0 { + reg = <0>; + + csi20_in: endpoint { + bus-type = 4; + data-lanes = <1 2>; remote-endpoint = <&imx074_1>; }; }; - port@2 { - reg = <2>; /* port 2: link to the CEU */ - csi2_2: endpoint { - remote-endpoint = <&ceu0_0>; + port@1 { + reg = <1>; + + csi20vin4: endpoint { + remote-endpoint = <&vin4csi20>; + }; + }; + }; +}; + +vin4: video@e6ef4000 { + compatible = "renesas,vin-r8a7795"; + reg = <0 0xe6ef4000 0 0x1000>; + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 807>; + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + resets = <&cpg 807>; + renesas,id = <4>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + /* Parallel input port: HDMI decoder */ + port@0 { + reg = <0>; + + vin4_digital_in: endpoint { + bus-type = 5; + bus-width = <8>; + data-shift = <2>; + data-active = <1>; + pclk-sample = <0>; + hsync-active = <0>; + vsync-active = <0>; + remote-endpoint = <&adv7612_out>; + }; + }; + + + /* Data path to the MIPI CSI-2 receiver. */ + port@1 { + #address-cells = <1>; + #size-cells = <0>; + + reg =<1>; + + vin4csi20: endpoint@0 { + reg = <0>; + remote-endpoint = <&csi20vin4>; + }; + + /* Not connected in this example. */ + vin4csi41: endpoint@3 { + reg = <3>; + remote-endpoint = <&csi41vin4>; }; }; }; +}; -- 2.23.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2] media: bindings: video-interfaces: Update the example 2019-11-11 14:00 [PATCH v2] media: bindings: video-interfaces: Update the example Jacopo Mondi @ 2019-11-11 17:02 ` Sakari Ailus 2019-11-14 21:31 ` Rob Herring 2019-12-11 17:04 ` Jacopo Mondi 0 siblings, 2 replies; 4+ messages in thread From: Sakari Ailus @ 2019-11-11 17:02 UTC (permalink / raw) To: Jacopo Mondi Cc: Mauro Carvalho Chehab, Hans Verkuil, Laurent Pinchart, Niklas Soderlund, Geert Uytterhoeven, Simon Horman, Rob Herring, Mark Rutland, linux-media, devicetree, linux-renesas-soc Hi Jacopo, On Mon, Nov 11, 2019 at 03:00:55PM +0100, Jacopo Mondi wrote: > The example provided by the video-interface.txt file uses compatible > values for drivers which are have been removed a long time ago. To avoid > generating confusion, replace the existing example with a new one using > upstream maintained and more modern devices. > > Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org> > --- > > Re-proposing the example update, taking into account Niklas' comments about > removing most of the commits there. > > Laurent suggested to move the example to json-schema, but being this file mostly > used as reference for the common video properties description, I'm not sure > bindings in yaml format make sense here. I think the proposal makes sense as such, but this patch is just updating the example. The two seem unrelated. > > > --- > .../bindings/media/video-interfaces.txt | 210 ++++++++++-------- > 1 file changed, 116 insertions(+), 94 deletions(-) > > diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt b/Documentation/devicetree/bindings/media/video-interfaces.txt > index f884ada0bffc..955bd6f52cda 100644 > --- a/Documentation/devicetree/bindings/media/video-interfaces.txt > +++ b/Documentation/devicetree/bindings/media/video-interfaces.txt > @@ -153,123 +153,145 @@ Optional endpoint properties > Example > ------- > > -The example snippet below describes two data pipelines. ov772x and imx074 are > -camera sensors with a parallel and serial (MIPI CSI-2) video bus respectively. > -Both sensors are on the I2C control bus corresponding to the i2c0 controller > -node. ov772x sensor is linked directly to the ceu0 video host interface. > -imx074 is linked to ceu0 through the MIPI CSI-2 receiver (csi2). ceu0 has a > -(single) DMA engine writing captured data to memory. ceu0 node has a single > -'port' node which may indicate that at any time only one of the following data > -pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0. > - > - ceu0: ceu@fe910000 { > - compatible = "renesas,sh-mobile-ceu"; > - reg = <0xfe910000 0xa0>; > - interrupts = <0x880>; > - > - mclk: master_clock { > - compatible = "renesas,ceu-clock"; > - #clock-cells = <1>; > - clock-frequency = <50000000>; /* Max clock frequency */ > - clock-output-names = "mclk"; > - }; > +The example snippet below describes two data pipelines connected to a video > +DMA engine (VIN4) which has a direct parallel video bus connection to an HDMI > +video decoder at port@0 and a data path to a CSI-2 receiver connected to an > +image sensor (imx074) at port@1. > > - port { > +The parallel HDMI video decoder links directly to the VIN input port 0, and the > +bus configuration at both ends is specified in each endpoint. > + > +The imx074 sensor connects to the CSI-2 receiver and the MIPI CSI-2 serial bus > +configuration is specified in the respective endpoints as well. The CSI-2 > +receiver is then linked to the DMA engine through a direct data path which does > +not require any endpoint configuration. > + > +i2c0: i2c@e6500000 { > + > + hdmi-decoder@4c { > + compatible = "adi,adv7612"; > + reg = <0x4c>; > + > + ports { > #address-cells = <1>; > #size-cells = <0>; > > - /* Parallel bus endpoint */ > - ceu0_1: endpoint@1 { > - reg = <1>; /* Local endpoint # */ > - remote = <&ov772x_1_1>; /* Remote phandle */ > - bus-width = <8>; /* Used data lines */ > - data-shift = <2>; /* Lines 9:2 are used */ > - > - /* If hsync-active/vsync-active are missing, > - embedded BT.656 sync is used */ > - hsync-active = <0>; /* Active low */ > - vsync-active = <0>; /* Active low */ > - data-active = <1>; /* Active high */ > - pclk-sample = <1>; /* Rising */ > - }; > - > - /* MIPI CSI-2 bus endpoint */ > - ceu0_0: endpoint@0 { > + port@0 { > reg = <0>; > - remote = <&csi2_2>; > + adv7612_in: endpoint { > + remote-endpoint = <&hdmi_con_in>; > + }; > }; > - }; > - }; > > - i2c0: i2c@fff20000 { > - ... > - ov772x_1: camera@21 { > - compatible = "ovti,ov772x"; > - reg = <0x21>; > - vddio-supply = <®ulator1>; > - vddcore-supply = <®ulator2>; > - > - clock-frequency = <20000000>; > - clocks = <&mclk 0>; > - clock-names = "xclk"; > - > - port { > - /* With 1 endpoint per port no need for addresses. */ > - ov772x_1_1: endpoint { > + port@2 { > + reg = <2>; > + adv7612_out: endpoint { > + bus-type = 5; > bus-width = <8>; > - remote-endpoint = <&ceu0_1>; > - hsync-active = <1>; > - vsync-active = <0>; /* Who came up with an > - inverter here ?... */ > - data-active = <1>; > - pclk-sample = <1>; > + pclk-sample = <0>; > + hsync-active = <0>; > + vsync-active = <1>; > + remote-endpoint = <&vin4_digital_in>; > }; > }; > }; > + }; > > - imx074: camera@1a { > - compatible = "sony,imx074"; > - reg = <0x1a>; > - vddio-supply = <®ulator1>; > - vddcore-supply = <®ulator2>; > - > - clock-frequency = <30000000>; /* Shared clock with ov772x_1 */ > - clocks = <&mclk 0>; > - clock-names = "sysclk"; /* Assuming this is the > - name in the datasheet */ > - port { > - imx074_1: endpoint { > - clock-lanes = <0>; > - data-lanes = <1 2>; > - remote-endpoint = <&csi2_1>; > - }; > + imx074: camera@1a { Could you use a different sensor? There are no bindings for imx074 and the SoC camera driver for it is about to be removed. > + compatible = "sony,imx074"; > + reg = <0x1a>; > + > + rotation = <180>; > + > + port { > + imx074_1: endpoint { > + bus-type = 4; > + data-lanes = <1 2>; > + remote-endpoint = <&csi20_in>; > }; > }; > }; > +}; > + > +csi20: csi2@fea80000 { > + compatible = "renesas,r8a7795-csi2"; > + reg = <0 0xfea80000 0 0x10000>; > + interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cpg CPG_MOD 714>; > + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > + resets = <&cpg 714>; > > - csi2: csi2@ffc90000 { > - compatible = "renesas,sh-mobile-csi2"; > - reg = <0xffc90000 0x1000>; > - interrupts = <0x17a0>; > + ports { > #address-cells = <1>; > #size-cells = <0>; > > - port@1 { > - compatible = "renesas,csi2c"; /* One of CSI2I and CSI2C. */ > - reg = <1>; /* CSI-2 PHY #1 of 2: PHY_S, > - PHY_M has port address 0, > - is unused. */ > - csi2_1: endpoint { > - clock-lanes = <0>; > - data-lanes = <2 1>; > + port@0 { > + reg = <0>; > + > + csi20_in: endpoint { > + bus-type = 4; bus-type isn't defined for renesas,r8a7795-csi2. Do you need it here? > + data-lanes = <1 2>; > remote-endpoint = <&imx074_1>; > }; > }; > - port@2 { > - reg = <2>; /* port 2: link to the CEU */ > > - csi2_2: endpoint { > - remote-endpoint = <&ceu0_0>; > + port@1 { > + reg = <1>; > + > + csi20vin4: endpoint { > + remote-endpoint = <&vin4csi20>; > + }; > + }; > + }; > +}; > + > +vin4: video@e6ef4000 { > + compatible = "renesas,vin-r8a7795"; > + reg = <0 0xe6ef4000 0 0x1000>; > + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&cpg CPG_MOD 807>; > + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > + resets = <&cpg 807>; > + renesas,id = <4>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + /* Parallel input port: HDMI decoder */ > + port@0 { > + reg = <0>; > + > + vin4_digital_in: endpoint { > + bus-type = 5; Does this device support other kinds of busses on this interface? If not, you can move it to the driver (the bindings don't document this either). > + bus-width = <8>; > + data-shift = <2>; > + data-active = <1>; > + pclk-sample = <0>; > + hsync-active = <0>; > + vsync-active = <0>; None of these seem to be documented for renesas,vin-r8a7795 . I guess they should be. > + remote-endpoint = <&adv7612_out>; > + }; > + }; > + > + > + /* Data path to the MIPI CSI-2 receiver. */ > + port@1 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + reg =<1>; > + > + vin4csi20: endpoint@0 { > + reg = <0>; > + remote-endpoint = <&csi20vin4>; > + }; > + > + /* Not connected in this example. */ > + vin4csi41: endpoint@3 { > + reg = <3>; > + remote-endpoint = <&csi41vin4>; > }; > }; > }; > +}; -- Kind regards, Sakari Ailus ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] media: bindings: video-interfaces: Update the example 2019-11-11 17:02 ` Sakari Ailus @ 2019-11-14 21:31 ` Rob Herring 2019-12-11 17:04 ` Jacopo Mondi 1 sibling, 0 replies; 4+ messages in thread From: Rob Herring @ 2019-11-14 21:31 UTC (permalink / raw) To: Sakari Ailus Cc: Jacopo Mondi, Mauro Carvalho Chehab, Hans Verkuil, Laurent Pinchart, Niklas Soderlund, Geert Uytterhoeven, Simon Horman, Mark Rutland, linux-media, devicetree, linux-renesas-soc On Mon, Nov 11, 2019 at 07:02:30PM +0200, Sakari Ailus wrote: > Hi Jacopo, > > On Mon, Nov 11, 2019 at 03:00:55PM +0100, Jacopo Mondi wrote: > > The example provided by the video-interface.txt file uses compatible > > values for drivers which are have been removed a long time ago. To avoid > > generating confusion, replace the existing example with a new one using > > upstream maintained and more modern devices. > > > > Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org> > > --- > > > > Re-proposing the example update, taking into account Niklas' comments about > > removing most of the commits there. > > > > Laurent suggested to move the example to json-schema, but being this file mostly > > used as reference for the common video properties description, I'm not sure > > bindings in yaml format make sense here. > > I think the proposal makes sense as such, but this patch is just updating > the example. The two seem unrelated. Agreed. Moving to schema does make sense. Probably want to split device and endpoint properties to 2 files. Then you have something like this in the users: endpoint: allOf: - $ref: video-interfaces-endpoints.yaml# properties: bus-width: # Only define what's specific to this device enum: [ 8, 16 ] default: 8 You could define more of the graph structure, but I figure we'll have a graph schema at some point. It hasn't been high on my priority list because the dtc checks for graphs are pretty good. Rob ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] media: bindings: video-interfaces: Update the example 2019-11-11 17:02 ` Sakari Ailus 2019-11-14 21:31 ` Rob Herring @ 2019-12-11 17:04 ` Jacopo Mondi 1 sibling, 0 replies; 4+ messages in thread From: Jacopo Mondi @ 2019-12-11 17:04 UTC (permalink / raw) To: Sakari Ailus Cc: Jacopo Mondi, Mauro Carvalho Chehab, Hans Verkuil, Laurent Pinchart, Niklas Soderlund, Geert Uytterhoeven, Simon Horman, Rob Herring, Mark Rutland, linux-media, devicetree, linux-renesas-soc [-- Attachment #1: Type: text/plain, Size: 9491 bytes --] Hi Sakari, thanks for review On Mon, Nov 11, 2019 at 07:02:30PM +0200, Sakari Ailus wrote: > Hi Jacopo, > > On Mon, Nov 11, 2019 at 03:00:55PM +0100, Jacopo Mondi wrote: > > The example provided by the video-interface.txt file uses compatible > > values for drivers which are have been removed a long time ago. To avoid > > generating confusion, replace the existing example with a new one using > > upstream maintained and more modern devices. > > > > Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org> > > --- > > > > Re-proposing the example update, taking into account Niklas' comments about > > removing most of the commits there. > > > > Laurent suggested to move the example to json-schema, but being this file mostly > > used as reference for the common video properties description, I'm not sure > > bindings in yaml format make sense here. > > I think the proposal makes sense as such, but this patch is just updating > the example. The two seem unrelated. > With your and Rob's ack, I'll resubmit the example update. Let's address yaml conversion later. > > > > > > --- > > .../bindings/media/video-interfaces.txt | 210 ++++++++++-------- > > 1 file changed, 116 insertions(+), 94 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt b/Documentation/devicetree/bindings/media/video-interfaces.txt > > index f884ada0bffc..955bd6f52cda 100644 > > --- a/Documentation/devicetree/bindings/media/video-interfaces.txt > > +++ b/Documentation/devicetree/bindings/media/video-interfaces.txt > > @@ -153,123 +153,145 @@ Optional endpoint properties > > Example > > ------- > > > > -The example snippet below describes two data pipelines. ov772x and imx074 are > > -camera sensors with a parallel and serial (MIPI CSI-2) video bus respectively. > > -Both sensors are on the I2C control bus corresponding to the i2c0 controller > > -node. ov772x sensor is linked directly to the ceu0 video host interface. > > -imx074 is linked to ceu0 through the MIPI CSI-2 receiver (csi2). ceu0 has a > > -(single) DMA engine writing captured data to memory. ceu0 node has a single > > -'port' node which may indicate that at any time only one of the following data > > -pipelines can be active: ov772x -> ceu0 or imx074 -> csi2 -> ceu0. > > - > > - ceu0: ceu@fe910000 { > > - compatible = "renesas,sh-mobile-ceu"; > > - reg = <0xfe910000 0xa0>; > > - interrupts = <0x880>; > > - > > - mclk: master_clock { > > - compatible = "renesas,ceu-clock"; > > - #clock-cells = <1>; > > - clock-frequency = <50000000>; /* Max clock frequency */ > > - clock-output-names = "mclk"; > > - }; > > +The example snippet below describes two data pipelines connected to a video > > +DMA engine (VIN4) which has a direct parallel video bus connection to an HDMI > > +video decoder at port@0 and a data path to a CSI-2 receiver connected to an > > +image sensor (imx074) at port@1. > > > > - port { > > +The parallel HDMI video decoder links directly to the VIN input port 0, and the > > +bus configuration at both ends is specified in each endpoint. > > + > > +The imx074 sensor connects to the CSI-2 receiver and the MIPI CSI-2 serial bus > > +configuration is specified in the respective endpoints as well. The CSI-2 > > +receiver is then linked to the DMA engine through a direct data path which does > > +not require any endpoint configuration. > > + > > +i2c0: i2c@e6500000 { > > + > > + hdmi-decoder@4c { > > + compatible = "adi,adv7612"; > > + reg = <0x4c>; > > + > > + ports { > > #address-cells = <1>; > > #size-cells = <0>; > > > > - /* Parallel bus endpoint */ > > - ceu0_1: endpoint@1 { > > - reg = <1>; /* Local endpoint # */ > > - remote = <&ov772x_1_1>; /* Remote phandle */ > > - bus-width = <8>; /* Used data lines */ > > - data-shift = <2>; /* Lines 9:2 are used */ > > - > > - /* If hsync-active/vsync-active are missing, > > - embedded BT.656 sync is used */ > > - hsync-active = <0>; /* Active low */ > > - vsync-active = <0>; /* Active low */ > > - data-active = <1>; /* Active high */ > > - pclk-sample = <1>; /* Rising */ > > - }; > > - > > - /* MIPI CSI-2 bus endpoint */ > > - ceu0_0: endpoint@0 { > > + port@0 { > > reg = <0>; > > - remote = <&csi2_2>; > > + adv7612_in: endpoint { > > + remote-endpoint = <&hdmi_con_in>; > > + }; > > }; > > - }; > > - }; > > > > - i2c0: i2c@fff20000 { > > - ... > > - ov772x_1: camera@21 { > > - compatible = "ovti,ov772x"; > > - reg = <0x21>; > > - vddio-supply = <®ulator1>; > > - vddcore-supply = <®ulator2>; > > - > > - clock-frequency = <20000000>; > > - clocks = <&mclk 0>; > > - clock-names = "xclk"; > > - > > - port { > > - /* With 1 endpoint per port no need for addresses. */ > > - ov772x_1_1: endpoint { > > + port@2 { > > + reg = <2>; > > + adv7612_out: endpoint { > > + bus-type = 5; > > bus-width = <8>; > > - remote-endpoint = <&ceu0_1>; > > - hsync-active = <1>; > > - vsync-active = <0>; /* Who came up with an > > - inverter here ?... */ > > - data-active = <1>; > > - pclk-sample = <1>; > > + pclk-sample = <0>; > > + hsync-active = <0>; > > + vsync-active = <1>; > > + remote-endpoint = <&vin4_digital_in>; > > }; > > }; > > }; > > + }; > > > > - imx074: camera@1a { > > - compatible = "sony,imx074"; > > - reg = <0x1a>; > > - vddio-supply = <®ulator1>; > > - vddcore-supply = <®ulator2>; > > - > > - clock-frequency = <30000000>; /* Shared clock with ov772x_1 */ > > - clocks = <&mclk 0>; > > - clock-names = "sysclk"; /* Assuming this is the > > - name in the datasheet */ > > - port { > > - imx074_1: endpoint { > > - clock-lanes = <0>; > > - data-lanes = <1 2>; > > - remote-endpoint = <&csi2_1>; > > - }; > > + imx074: camera@1a { > > Could you use a different sensor? There are no bindings for imx074 and the > SoC camera driver for it is about to be removed. > Right, I'll use a supported sensor. > > + compatible = "sony,imx074"; > > + reg = <0x1a>; > > + > > + rotation = <180>; > > + > > + port { > > + imx074_1: endpoint { > > + bus-type = 4; > > + data-lanes = <1 2>; > > + remote-endpoint = <&csi20_in>; > > }; > > }; > > }; > > +}; > > + > > +csi20: csi2@fea80000 { > > + compatible = "renesas,r8a7795-csi2"; > > + reg = <0 0xfea80000 0 0x10000>; > > + interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; > > + clocks = <&cpg CPG_MOD 714>; > > + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > > + resets = <&cpg 714>; > > > > - csi2: csi2@ffc90000 { > > - compatible = "renesas,sh-mobile-csi2"; > > - reg = <0xffc90000 0x1000>; > > - interrupts = <0x17a0>; > > + ports { > > #address-cells = <1>; > > #size-cells = <0>; > > > > - port@1 { > > - compatible = "renesas,csi2c"; /* One of CSI2I and CSI2C. */ > > - reg = <1>; /* CSI-2 PHY #1 of 2: PHY_S, > > - PHY_M has port address 0, > > - is unused. */ > > - csi2_1: endpoint { > > - clock-lanes = <0>; > > - data-lanes = <2 1>; > > + port@0 { > > + reg = <0>; > > + > > + csi20_in: endpoint { > > + bus-type = 4; > > bus-type isn't defined for renesas,r8a7795-csi2. Do you need it here? > No, I could drop it. > > + data-lanes = <1 2>; > > remote-endpoint = <&imx074_1>; > > }; > > }; > > - port@2 { > > - reg = <2>; /* port 2: link to the CEU */ > > > > - csi2_2: endpoint { > > - remote-endpoint = <&ceu0_0>; > > + port@1 { > > + reg = <1>; > > + > > + csi20vin4: endpoint { > > + remote-endpoint = <&vin4csi20>; > > + }; > > + }; > > + }; > > +}; > > + > > +vin4: video@e6ef4000 { > > + compatible = "renesas,vin-r8a7795"; > > + reg = <0 0xe6ef4000 0 0x1000>; > > + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; > > + clocks = <&cpg CPG_MOD 807>; > > + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > > + resets = <&cpg 807>; > > + renesas,id = <4>; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + /* Parallel input port: HDMI decoder */ > > + port@0 { > > + reg = <0>; > > + > > + vin4_digital_in: endpoint { > > + bus-type = 5; > > Does this device support other kinds of busses on this interface? If not, > you can move it to the driver (the bindings don't document this either). > No, I could drop it from here. > > + bus-width = <8>; > > + data-shift = <2>; > > + data-active = <1>; > > + pclk-sample = <0>; > > + hsync-active = <0>; > > + vsync-active = <0>; > > None of these seem to be documented for renesas,vin-r8a7795 . I guess they > should be. > They are. Quoting renesas,vin.txt: Endpoint nodes of port@0 support the optional properties listed in the Gen2 per-board settings description. Some of the properties above are not listed though. I'll drop the unsupported ones. Thanks j > > + remote-endpoint = <&adv7612_out>; > > + }; > > + }; > > + > > + > > + /* Data path to the MIPI CSI-2 receiver. */ > > + port@1 { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + reg =<1>; > > + > > + vin4csi20: endpoint@0 { > > + reg = <0>; > > + remote-endpoint = <&csi20vin4>; > > + }; > > + > > + /* Not connected in this example. */ > > + vin4csi41: endpoint@3 { > > + reg = <3>; > > + remote-endpoint = <&csi41vin4>; > > }; > > }; > > }; > > +}; > > -- > Kind regards, > > Sakari Ailus [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-12-11 17:02 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-11-11 14:00 [PATCH v2] media: bindings: video-interfaces: Update the example Jacopo Mondi 2019-11-11 17:02 ` Sakari Ailus 2019-11-14 21:31 ` Rob Herring 2019-12-11 17:04 ` Jacopo Mondi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox