From: Rob Herring <robh@kernel.org>
To: Luca Ceresoli <luca@lucaceresoli.net>
Cc: linux-media@vger.kernel.org, linux-i2c@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Wolfram Sang <wsa@the-dreams.de>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Hans Verkuil <hverkuil-cisco@xs4all.nl>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Kieran Bingham <kieran.bingham@ideasonboard.com>,
Jacopo Mondi <jacopo@jmondi.org>,
Vladimir Zapolskiy <vz@mleia.com>, Peter Rosin <peda@axentia.se>
Subject: Re: [RFC,v2 3/6] media: dt-bindings: add DS90UB954-Q1 video deserializer
Date: Tue, 13 Aug 2019 09:44:39 -0600 [thread overview]
Message-ID: <20190813154439.GA29515@bogus> (raw)
In-Reply-To: <20190723203723.11730-4-luca@lucaceresoli.net>
On Tue, Jul 23, 2019 at 10:37:20PM +0200, Luca Ceresoli wrote:
> Describe the Texas Instruments DS90UB954-Q1, a 2-input video deserializer
> with I2C Address Translator and remote GPIOs.
>
> Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
>
> ---
>
> Changes RFCv1 -> RFCv2:
>
> - add explicit aliases for the FPD-link RX ports (optional)
> - add proper remote GPIO description
> ---
> .../bindings/media/i2c/ti,ds90ub954-q1.txt | 194 ++++++++++++++++++
> 1 file changed, 194 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/media/i2c/ti,ds90ub954-q1.txt
>
> diff --git a/Documentation/devicetree/bindings/media/i2c/ti,ds90ub954-q1.txt b/Documentation/devicetree/bindings/media/i2c/ti,ds90ub954-q1.txt
> new file mode 100644
> index 000000000000..73ce21ecc3b6
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/i2c/ti,ds90ub954-q1.txt
> @@ -0,0 +1,194 @@
> +Texas Instruments DS90UB954-Q1 dual video deserializer
> +======================================================
> +
> +The TI DS90UB954-Q1 is a MIPI CSI-2 video deserializer that forwards video
> +streams from up to two FPD-Link 3 connections to a MIPI CSI-2 output. It
> +also allows access to remote I2C and GPIO.
> +
> +Required properties:
> +
> + - compatible: must be "ti,ds90ub954-q1"
> +
> + - reg: main I2C slave address; optionally aliases for RX port registers
> + and remote serializers. The main address is mandatory and must be the
> + first, others are optional and fall back to defaults if not
> + specified. See "reg-names".
> +
> + - reset-gpios: chip reset GPIO, active low (connected to PDB pin of the chip)
> + - i2c-alias-pool: list of I2C addresses that are known to be available on the
> + "local" (SoC-to-deser) I2C bus; they will be picked at
> + runtime and used as aliases to reach remove I2C chips
s/remove/remote/
Needs a vendor prefix.
> + - gpio-controller
> + - #gpio-cells: must be 3: FPD-Link 3 RX port number, remote gpio number, flags
We're pretty standardized on 2 cells for GPIO. Perhaps combine the port
and gpio number to 1 cell.
> +
> +Optional properties:
> +
> + - reg-names: names of I2C address used to communicate with the chip, must
> + match the "reg" values; mandatory if there are 2 or more
> + addresses
> + - "main": the main I2C address, used to access shared registers
> + - "rxport0", "rxport1": I2C alias to access FPD-link RX port specific
> + registers; must not be used by other slaves on the same bus
> + - "ser0", "ser1": I2C alias to access the remote serializer connected
> + on each FPD-link RX port; must not be used by other slaves on the
> + same bus
> + - interrupts: interrupt pin from the chip
> +
> +Required subnodes:
> +
> + - ports: A ports node with one port child node per device input and output
> + port, in accordance with the video interface bindings defined in
> + Documentation/devicetree/bindings/media/video-interfaces.txt. The
> + port nodes are numbered as follows:
> +
> + Port Description
> + ------------------------------------
> + 0 Input from FPD-Link 3 RX port 0
> + 1 Input from FPD-Link 3 RX port 1
> + 2 CSI-2 output
> +
> + Each port must have a "remote-chip" subnode that defines the remote
> + chip (serializer) with at least a "compatible" property
We don't allow other nodes within graph nodes. I'm not really clear what
you are trying to do here.
> +
> + - i2c-atr: contains one child per RX port, each describes the I2C bus on
> + the remote side
> +
> + Required properties:
> + - #address-cells = <1>;
> + - #size-cells = <0>;
> +
> + Subnodes: one per each FPD-link RX port, each having:
> +
> + Required properties for "i2c-atr" child bus nodes:
> + - reg: The number of the port where the remove chip is connected
s/remove/remote/
> + - #address-cells = <1>;
> + - #size-cells = <0>;
> +
> + Optional properties for "i2c-atr" child bus nodes:
> + - Other properties specific to the remote hardware
Such as?
> + - Child nodes conforming to i2c bus binding
> +
> +
> +Device node example
> +-------------------
> +
> +&i2c0 {
> + deser: deser@3d {
> + compatible = "ti,ds90ub954-q1";
> + reg-names = "main", "rxport0", "rxport1", "ser0", "ser1";
> + reg = <0x3d>, <0x40>, <0x41>, <0x44>, <0x45>;
> + clocks = <&clk_25M>;
> + interrupt-parent = <&gic>;
> + interrupts = <3 1 IRQ_TYPE_LEVEL_HIGH>;
> + reset-gpios = <&gpio_ctl 4 GPIO_ACTIVE_LOW>;
> +
> + i2c-alias-pool = /bits/ 16 <0x4a 0x4b 0x4c 0x4d 0x4e 0x4f>;
> +
> + gpio-controller;
> + #gpio-cells = <3>; /* rxport, remote gpio num, flags */
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + ds90ub954_fpd3_in0: endpoint {
> + remote-endpoint = <&sensor_0_out>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> + ds90ub954_fpd3_in1: endpoint {
> + remote-endpoint = <&sensor_1_out>;
> + };
> + };
> +
> + port@2 {
> + reg = <2>;
> + ds90ub954_mipi_out0: endpoint {
> + data-lanes = <1 2 3 4>;
> + /* Actually a REFCLK multiplier */
> + data-rate = <1600000000>;
> + remote-endpoint = <&csirx_0_in>;
> + };
> + };
> + };
> +
> + i2c-atr {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + remote_i2c0: i2c@0 {
> + reg = <0>;
> + #address-cells = <1>;
> + #size-cells = <0>;
Presumably, there are child I2C devices here. Please show that in the
example.
> + };
> +
> + remote_i2c1: i2c@1 {
> + reg = <1>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + };
> + };
> + };
> +};
> +
> +&ds90ub954_fpd3_in0 {
> + remote-chip {
> + compatible = "ti,ds90ub953-q1";
> + gpio-functions = <DS90_GPIO_FUNC_OUTPUT_REMOTE
Not documented.
> + DS90_GPIO_FUNC_UNUSED
> + DS90_GPIO_FUNC_UNUSED
> + DS90_GPIO_FUNC_UNUSED>;
> + };
> +};
> +
> +&ds90ub954_fpd3_in1 {
> + remote-chip {
> + compatible = "ti,ds90ub953-q1";
> + gpio-functions = <DS90_GPIO_FUNC_OUTPUT_REMOTE
> + DS90_GPIO_FUNC_UNUSED
> + DS90_GPIO_FUNC_UNUSED
> + DS90_GPIO_FUNC_UNUSED>;
> + };
> +};
> +
> +&remote_i2c0 {
> + sensor_0@3c {
> + compatible = "sony,imx274";
> + reg = <0x3c>;
> +
> + reset-gpios = <&deser 0 0 GPIO_ACTIVE_LOW>;
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + sensor_0_out: endpoint {
> + remote-endpoint = <&ds90ub954_fpd3_in0>;
> + };
> + };
> + };
> +};
> +
> +&remote_i2c1 {
> + sensor_0@3c {
> + compatible = "sony,imx274";
> + reg = <0x3c>;
> +
> + reset-gpios = <&deser 1 0 GPIO_ACTIVE_LOW>;
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + sensor_1_out: endpoint {
> + remote-endpoint = <&ds90ub954_fpd3_in1>;
> + };
> + };
> + };
> +};
> --
> 2.17.1
>
next prev parent reply other threads:[~2019-08-13 15:44 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-23 20:37 [RFC,v2 0/6] TI camera serdes and I2C address translation Luca Ceresoli
2019-07-23 20:37 ` [RFC,v2 1/6] i2c: core: let adapters be notified of client attach/detach Luca Ceresoli
2019-07-23 20:37 ` [RFC,v2 2/6] i2c: add I2C Address Translator (ATR) support Luca Ceresoli
2019-09-01 14:31 ` jacopo mondi
2019-09-03 7:31 ` Luca Ceresoli
2019-09-03 7:37 ` Wolfram Sang
2019-09-04 8:09 ` Peter Rosin
2019-09-08 19:40 ` Luca Ceresoli
2019-09-10 18:46 ` Wolfram Sang
2019-09-08 20:45 ` Vladimir Zapolskiy
2019-09-09 4:56 ` Vladimir Zapolskiy
2019-09-10 17:40 ` Luca Ceresoli
2019-09-09 7:22 ` Wolfram Sang
2019-09-09 15:10 ` Vladimir Zapolskiy
2019-09-09 17:48 ` Luca Ceresoli
2019-09-10 17:16 ` Wolfram Sang
2019-09-02 20:42 ` Wolfram Sang
2019-09-03 8:48 ` Luca Ceresoli
2019-09-03 9:06 ` Wolfram Sang
2019-07-23 20:37 ` [RFC,v2 3/6] media: dt-bindings: add DS90UB954-Q1 video deserializer Luca Ceresoli
2019-08-13 15:44 ` Rob Herring [this message]
2019-08-19 22:41 ` Luca Ceresoli
2019-08-20 15:44 ` Rob Herring
2019-08-21 21:50 ` Luca Ceresoli
2019-09-02 20:48 ` Wolfram Sang
2019-09-03 9:09 ` Luca Ceresoli
2019-09-03 9:34 ` Wolfram Sang
2019-09-03 11:03 ` Luca Ceresoli
2019-09-03 14:16 ` Wolfram Sang
2019-09-10 9:43 ` Sakari Ailus
2019-09-10 15:02 ` Luca Ceresoli
2019-07-23 20:37 ` [RFC,v2 4/6] media: dt-bindings: add DS90UB953-Q1 video serializer Luca Ceresoli
2019-07-23 20:37 ` [RFC,v2 5/6] media: ds90ub954: new driver for TI DS90UB954-Q1 video deserializer Luca Ceresoli
2019-07-23 20:37 ` [RFC,v2 6/6] media: ds90ub953: new driver for TI DS90UB953-Q1 video serializer Luca Ceresoli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190813154439.GA29515@bogus \
--to=robh@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=hverkuil-cisco@xs4all.nl \
--cc=jacopo@jmondi.org \
--cc=kieran.bingham@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=luca@lucaceresoli.net \
--cc=mark.rutland@arm.com \
--cc=mchehab@kernel.org \
--cc=peda@axentia.se \
--cc=sakari.ailus@linux.intel.com \
--cc=vz@mleia.com \
--cc=wsa@the-dreams.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).