linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chen-Yu Tsai <wens@kernel.org>
To: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Chen-Yu Tsai <wens@kernel.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Yong Deng <yong.deng@magewell.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Chen-Yu Tsai <wens@csie.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	devicetree <devicetree@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Subject: Re: [PATCH 4/6] ARM: dts: sun8i: a83t: Add device node for CSI (Camera Sensor Interface)
Date: Tue, 9 Apr 2019 16:07:34 +0800	[thread overview]
Message-ID: <CAGb2v64CYV68Q0a7x5p-XabS74vaQWP3paPopodmqQPTOrq2gQ@mail.gmail.com> (raw)
In-Reply-To: <20190409075804.4zrwjil7ie2gjigu@flea>

On Tue, Apr 9, 2019 at 3:58 PM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
>
> Hi,
>
> On Tue, Apr 09, 2019 at 12:57:42AM +0800, Chen-Yu Tsai wrote:
> > From: Chen-Yu Tsai <wens@csie.org>
> >
> > The A83T SoC has a camera sensor interface (known as CSI in Allwinner
> > lingo), which is similar to the one found on the A64 and H3. The only
> > difference seems to be that support of MIPI CSI through a connected
> > MIPI CSI-2 bridge.
> >
> > Add a device node for it, and pinctrl nodes for the commonly used MCLK
> > and 8-bit parallel interface. The property /omit-if-no-ref/ is added to
> > the pinctrl nodes to keep the device tree blob size down if they are
> > unused.
> >
> > Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> > ---
> >  arch/arm/boot/dts/sun8i-a83t.dtsi | 31 +++++++++++++++++++++++++++++++
> >  1 file changed, 31 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi
> > index f739b88efb53..0c52f945fd5f 100644
> > --- a/arch/arm/boot/dts/sun8i-a83t.dtsi
> > +++ b/arch/arm/boot/dts/sun8i-a83t.dtsi
> > @@ -682,6 +682,20 @@
> >                       #interrupt-cells = <3>;
> >                       #gpio-cells = <3>;
> >
> > +                     /omit-if-no-ref/
> > +                     csi_8bit_parallel_pins: csi-8bit-parallel-pins {
> > +                             pins = "PE0", "PE2", "PE3", "PE6", "PE7",
> > +                                    "PE8", "PE9", "PE10", "PE11",
> > +                                    "PE12", "PE13";
> > +                             function = "csi";
> > +                     };
> > +
> > +                     /omit-if-no-ref/
> > +                     csi_mclk_pin: csi-mclk-pin {
> > +                             pins = "PE1";
> > +                             function = "csi";
> > +                     };
> > +
> >                       emac_rgmii_pins: emac-rgmii-pins {
> >                               pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
> >                                      "PD11", "PD12", "PD13", "PD14", "PD18",
> > @@ -994,6 +1008,23 @@
> >                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
> >               };
> >
> > +             csi: camera@1cb0000 {
> > +                     compatible = "allwinner,sun8i-a83t-csi";
> > +                     reg = <0x01cb0000 0x1000>;
> > +                     interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
> > +                     clocks = <&ccu CLK_BUS_CSI>,
> > +                              <&ccu CLK_CSI_SCLK>,
> > +                              <&ccu CLK_DRAM_CSI>;
> > +                     clock-names = "bus", "mod", "ram";
> > +                     resets = <&ccu RST_BUS_CSI>;
> > +                     status = "disabled";
> > +
> > +                     csi_in: port {
> > +                             #address-cells = <1>;
> > +                             #size-cells = <0>;
>
> If we expect a single enpoint, then we don't need the address-cells
> and size-cells properties.

I wouldn't bet on anything. The way the Q8 tablets did front/back cameras
is kind of genius if not very hacky. They have two "identical" sensors
on the same I2C bus and CSI bus, with shared reset line but separate
shutdown lines. Since they are identical, they also have the same I2C
address. I haven't figured out how to model this in the device tree.

The point is, it's perfectly possible to have two or more sensors use
the same controller, provided only one be active at a time.

ChenYu

  reply	other threads:[~2019-04-09  8:07 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-08 16:57 [PATCH 0/6] ARM: sun8i: a83t: Support Camera Sensor Interface controller Chen-Yu Tsai
2019-04-08 16:57 ` [PATCH 1/6] clk: sunxi-ng: a83t: Add pll-video0 as parent of csi-mclk Chen-Yu Tsai
2019-04-09  7:57   ` Maxime Ripard
2019-04-08 16:57 ` [PATCH 2/6] dt-bindings: media: sun6i-csi: Add compatible string for A83T variant Chen-Yu Tsai
2019-04-09  7:57   ` Maxime Ripard
2019-04-29 17:36   ` Rob Herring
2019-04-08 16:57 ` [PATCH 3/6] media: sun6i: Support " Chen-Yu Tsai
2019-04-09  7:56   ` Maxime Ripard
2019-04-08 16:57 ` [PATCH 4/6] ARM: dts: sun8i: a83t: Add device node for CSI (Camera Sensor Interface) Chen-Yu Tsai
2019-04-09  7:58   ` Maxime Ripard
2019-04-09  8:07     ` Chen-Yu Tsai [this message]
2019-04-09  8:28       ` Maxime Ripard
2019-04-09  8:40         ` Chen-Yu Tsai
2019-04-09 14:52           ` Maxime Ripard
2019-05-19 13:54             ` Ondřej Jirman
2019-05-20 11:10               ` Maxime Ripard
2019-05-20 11:38                 ` Ondřej Jirman
2019-05-20 14:05                   ` Maxime Ripard
2019-05-20 15:07                     ` Ondřej Jirman
2019-04-09 22:00         ` Ondřej Jirman
2019-04-11 12:47           ` Paul Kocialkowski
2019-04-11 12:59             ` Ondřej Jirman
2019-04-08 16:57 ` [PATCH 5/6] ARM: dts: sun8i: a83t: Add I2C2 pinmux setting for PE pins Chen-Yu Tsai
2019-04-09  7:58   ` Maxime Ripard
2019-04-08 16:57 ` [PATCH 6/6] [DO NOT MERGE] ARM: dts: sun8i: a83t: bananapi-m3: Enable BPI OV5640 camera Chen-Yu Tsai

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=CAGb2v64CYV68Q0a7x5p-XabS74vaQWP3paPopodmqQPTOrq2gQ@mail.gmail.com \
    --to=wens@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=maxime.ripard@bootlin.com \
    --cc=mchehab@kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=paul.kocialkowski@bootlin.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=wens@csie.org \
    --cc=yong.deng@magewell.com \
    /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).