All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jacopo Mondi <jacopo@jmondi.org>
To: Eugen.Hristev@microchip.com
Cc: devicetree@vger.kernel.org, linux-media@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 28/30] dt-bindings: media: atmel: add microchip-xisc binding
Date: Mon, 12 Apr 2021 12:34:57 +0200	[thread overview]
Message-ID: <20210412103457.3ahntx5ngskgb57e@uno.localdomain> (raw)
In-Reply-To: <7269db4c-bc76-58e4-4423-7be9f0369d5c@microchip.com>

Hi Eugene,

On Mon, Apr 12, 2021 at 10:12:22AM +0000, Eugen.Hristev@microchip.com wrote:
> On 4/12/21 12:57 PM, Jacopo Mondi wrote:
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> >
> > Hi Eugene,
> >
> > On Mon, Apr 05, 2021 at 06:51:03PM +0300, Eugen Hristev wrote:
> >> Add bindings for the microchip xisc, a driver based on atmel-isc.
> >> It shares common code with atmel-isc, but the xisc is the next generation
> >> ISC which is present on sama7g5 product.
> >> It has an enhanced pipeline, additional modules, formats, and it supports
> >> not only parallel sensors, but also serial sensors, by connecting to a demux
> >> endpoint present on sama7g5.
> >> One of the key points for creating a new binding is the clocking scheme, as
> >> atmel-isc requires 3 mandatory clocks, the microchip-xisc requires a single
> >> input clock.
> >>
> >> Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
> >> ---
> >>
> >> Hello Rob, all,
> >>
> >> I did not convert this yet to yaml because I would like first your feedback
> >> if the binding is good.
> >> If it's fine I will convert both this new binding and the old atmel-isc
> >> to yaml.
> >>
> >> Thanks for your feedback,
> >> Eugen
> >>
> >>   .../bindings/media/microchip-xisc.txt         | 64 +++++++++++++++++++
> >>   1 file changed, 64 insertions(+)
> >>   create mode 100644 Documentation/devicetree/bindings/media/microchip-xisc.txt
> >>
> >> diff --git a/Documentation/devicetree/bindings/media/microchip-xisc.txt b/Documentation/devicetree/bindings/media/microchip-xisc.txt
> >> new file mode 100644
> >> index 000000000000..080a357ed84d
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/media/microchip-xisc.txt
> >> @@ -0,0 +1,64 @@
> >> +Microchip eXtended Image Sensor Controller (XISC)
> >> +----------------------------------------------
> >> +
> >> +Required properties for XISC:
> >> +- compatible
> >> +     Must be "microchip,sama7g5-xisc".
> >> +- reg
> >> +     Physical base address and length of the registers set for the device.
> >> +- interrupts
> >> +     Should contain IRQ line for the XISC.
> >> +- clocks
> >> +     List of clock specifiers, corresponding to entries in
> >> +     the clock-names property;
> >> +     Please refer to clock-bindings.txt.
> >> +- clock-names
> >> +     Required elements: "hclock".
> >> +     This is the clock that clocks the sensor controller, and is usually
> >> +     fed from the clock tree. It is used for the internal controller logic.
> >> +- #clock-cells
> >> +     Should be 0.
> >> +- clock-output-names
> >> +     Should be "isc-mck".
> >> +- pinctrl-names, pinctrl-0
> >> +     Please refer to pinctrl-bindings.txt.
> >> +
> >> +Optional properties for XISC:
> >> +- microchip,mipi-mode;
> >> +     As the XISC is usually connected to a demux/bridge, the XISC receives
> >> +     the same type of input, however, it should be aware of the type of
> >> +     signals received. The mipi-mode enables different internal handling
> >> +     of the data and clock lines.
> >
> > What does 'mipi-mode' do to a component that has an parallel receiver ?
>
> Actually, this indeed has a parallel receiver, but it's only inside the
> SoC. The other end of the parallel connection is a demuxer/bridge. This
> demuxer will take the input from either a real parallel sensor or a CSI2
> stream.
> Even if the pixels are then converted into a parallel stream, it looks
> like the pixel data has a bit of different constrains in term of hold
> and setup time, and other electrical characteristics inside the SoC.
> The XISC hardware designer decided to leave a bit in the user interface
> called 'mipi-mode' , and by setting this, the capture interface of the
> XISC is better adapted to a demuxed stream from a CSI2, rather than
> adapted to a stream coming from a parallel sensor directly.
>
> I am not sure I explained it right, but this is what I understand, when
> I asked the hardware design about it.
>
> So we have to manually set this bit if we have the demuxer deserializing
> the CSI2 pixels or they are connected to a parallel sensor.
> The XISC has no way of telling which is the correct setup, and from the
> demuxer perspective, things are the same.
>
> The endpoint connection between the xisc and the demuxer looks to be the
> same, looking as if there is a parallel connection.
> To know more, the XISC would be needing to look further down the
> pipeline, and this is something which I could not force it to do.

Thanks for the details. It would be interesting to know what changes
when the stream is received from the muxer, the parallel interface
timings should not affected, but I get there are not many ways around
this

>
>
> >
> >> +
> >> +XISC supports a single port node with internal parallel bus.
> >> +It should contain one 'port' child node with child 'endpoint' node.
> >> +Please refer to the bindings defined in
> >> +Documentation/devicetree/bindings/media/video-interfaces.txt.
> >> +
> >> +This endpoint has to be connected to a bridge that acts as a demux from either
> >> +a serial interface or acts as a simple direct bridge to a parallel sensor.
> >> +
> >> +Example:
> >> +xisc: xisc@e1408000 {
> >> +     compatible = "microchip,sama7g5-isc";
> >> +     reg = <0xe1408000 0x2000>;
> >> +     interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
> >> +     #address-cells = <1>;
> >> +     #size-cells = <0>;
> >> +     clocks = <&pmc PMC_TYPE_PERIPHERAL 56>;
> >> +     clock-names = "hclock";
> >> +     #clock-cells = <0>;
> >> +     clock-output-names = "isc-mck";
> >> +     microchip,mipi-mode;
> >> +
> >> +     port@1 {
> >> +             reg = <1>;
> >> +             xisc_in: endpoint {
> >> +             bus-width = <12>;
> >> +             hsync-active = <1>;
> >> +             vsync-active = <1>;
> >> +             remote-endpoint = <&csi2dc_out>;
> > nit: indentation
> >
> > Have you consided using bus-type property ? As that's a new binding I
> > would consider making it mandatory, and to modify the DT parsinga
> > routine accordingly to remove auto-guessing, which according to my
> > understanding is almost 'deprecated' ?
>
> Having bus-type would just be an useful addition for finding out the bus
> interface ? or it has some other consequences as well ?
> Current XISC code actually expects a parallel interface, so it's kind of
> set already, having a bus-type would not bring any new information from
> a driver perspective
>

Have I read the parsing routine wrong, as it seems BT.656 is also
supported. IF only parallel is, the dt parsing routine should set
bus_type to V4L2_MBUS_PARALLEL. Although there's still plenty of drivers
relying on auto-guessing, so I won't inist on this :)

Thanks
  j

> >
> >> +             };
> >> +     };
> >> +};
> >> +
> >> --
> >> 2.25.1
> >>
>

WARNING: multiple messages have this Message-ID (diff)
From: Jacopo Mondi <jacopo@jmondi.org>
To: Eugen.Hristev@microchip.com
Cc: devicetree@vger.kernel.org, linux-media@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 28/30] dt-bindings: media: atmel: add microchip-xisc binding
Date: Mon, 12 Apr 2021 12:34:57 +0200	[thread overview]
Message-ID: <20210412103457.3ahntx5ngskgb57e@uno.localdomain> (raw)
In-Reply-To: <7269db4c-bc76-58e4-4423-7be9f0369d5c@microchip.com>

Hi Eugene,

On Mon, Apr 12, 2021 at 10:12:22AM +0000, Eugen.Hristev@microchip.com wrote:
> On 4/12/21 12:57 PM, Jacopo Mondi wrote:
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> >
> > Hi Eugene,
> >
> > On Mon, Apr 05, 2021 at 06:51:03PM +0300, Eugen Hristev wrote:
> >> Add bindings for the microchip xisc, a driver based on atmel-isc.
> >> It shares common code with atmel-isc, but the xisc is the next generation
> >> ISC which is present on sama7g5 product.
> >> It has an enhanced pipeline, additional modules, formats, and it supports
> >> not only parallel sensors, but also serial sensors, by connecting to a demux
> >> endpoint present on sama7g5.
> >> One of the key points for creating a new binding is the clocking scheme, as
> >> atmel-isc requires 3 mandatory clocks, the microchip-xisc requires a single
> >> input clock.
> >>
> >> Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
> >> ---
> >>
> >> Hello Rob, all,
> >>
> >> I did not convert this yet to yaml because I would like first your feedback
> >> if the binding is good.
> >> If it's fine I will convert both this new binding and the old atmel-isc
> >> to yaml.
> >>
> >> Thanks for your feedback,
> >> Eugen
> >>
> >>   .../bindings/media/microchip-xisc.txt         | 64 +++++++++++++++++++
> >>   1 file changed, 64 insertions(+)
> >>   create mode 100644 Documentation/devicetree/bindings/media/microchip-xisc.txt
> >>
> >> diff --git a/Documentation/devicetree/bindings/media/microchip-xisc.txt b/Documentation/devicetree/bindings/media/microchip-xisc.txt
> >> new file mode 100644
> >> index 000000000000..080a357ed84d
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/media/microchip-xisc.txt
> >> @@ -0,0 +1,64 @@
> >> +Microchip eXtended Image Sensor Controller (XISC)
> >> +----------------------------------------------
> >> +
> >> +Required properties for XISC:
> >> +- compatible
> >> +     Must be "microchip,sama7g5-xisc".
> >> +- reg
> >> +     Physical base address and length of the registers set for the device.
> >> +- interrupts
> >> +     Should contain IRQ line for the XISC.
> >> +- clocks
> >> +     List of clock specifiers, corresponding to entries in
> >> +     the clock-names property;
> >> +     Please refer to clock-bindings.txt.
> >> +- clock-names
> >> +     Required elements: "hclock".
> >> +     This is the clock that clocks the sensor controller, and is usually
> >> +     fed from the clock tree. It is used for the internal controller logic.
> >> +- #clock-cells
> >> +     Should be 0.
> >> +- clock-output-names
> >> +     Should be "isc-mck".
> >> +- pinctrl-names, pinctrl-0
> >> +     Please refer to pinctrl-bindings.txt.
> >> +
> >> +Optional properties for XISC:
> >> +- microchip,mipi-mode;
> >> +     As the XISC is usually connected to a demux/bridge, the XISC receives
> >> +     the same type of input, however, it should be aware of the type of
> >> +     signals received. The mipi-mode enables different internal handling
> >> +     of the data and clock lines.
> >
> > What does 'mipi-mode' do to a component that has an parallel receiver ?
>
> Actually, this indeed has a parallel receiver, but it's only inside the
> SoC. The other end of the parallel connection is a demuxer/bridge. This
> demuxer will take the input from either a real parallel sensor or a CSI2
> stream.
> Even if the pixels are then converted into a parallel stream, it looks
> like the pixel data has a bit of different constrains in term of hold
> and setup time, and other electrical characteristics inside the SoC.
> The XISC hardware designer decided to leave a bit in the user interface
> called 'mipi-mode' , and by setting this, the capture interface of the
> XISC is better adapted to a demuxed stream from a CSI2, rather than
> adapted to a stream coming from a parallel sensor directly.
>
> I am not sure I explained it right, but this is what I understand, when
> I asked the hardware design about it.
>
> So we have to manually set this bit if we have the demuxer deserializing
> the CSI2 pixels or they are connected to a parallel sensor.
> The XISC has no way of telling which is the correct setup, and from the
> demuxer perspective, things are the same.
>
> The endpoint connection between the xisc and the demuxer looks to be the
> same, looking as if there is a parallel connection.
> To know more, the XISC would be needing to look further down the
> pipeline, and this is something which I could not force it to do.

Thanks for the details. It would be interesting to know what changes
when the stream is received from the muxer, the parallel interface
timings should not affected, but I get there are not many ways around
this

>
>
> >
> >> +
> >> +XISC supports a single port node with internal parallel bus.
> >> +It should contain one 'port' child node with child 'endpoint' node.
> >> +Please refer to the bindings defined in
> >> +Documentation/devicetree/bindings/media/video-interfaces.txt.
> >> +
> >> +This endpoint has to be connected to a bridge that acts as a demux from either
> >> +a serial interface or acts as a simple direct bridge to a parallel sensor.
> >> +
> >> +Example:
> >> +xisc: xisc@e1408000 {
> >> +     compatible = "microchip,sama7g5-isc";
> >> +     reg = <0xe1408000 0x2000>;
> >> +     interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
> >> +     #address-cells = <1>;
> >> +     #size-cells = <0>;
> >> +     clocks = <&pmc PMC_TYPE_PERIPHERAL 56>;
> >> +     clock-names = "hclock";
> >> +     #clock-cells = <0>;
> >> +     clock-output-names = "isc-mck";
> >> +     microchip,mipi-mode;
> >> +
> >> +     port@1 {
> >> +             reg = <1>;
> >> +             xisc_in: endpoint {
> >> +             bus-width = <12>;
> >> +             hsync-active = <1>;
> >> +             vsync-active = <1>;
> >> +             remote-endpoint = <&csi2dc_out>;
> > nit: indentation
> >
> > Have you consided using bus-type property ? As that's a new binding I
> > would consider making it mandatory, and to modify the DT parsinga
> > routine accordingly to remove auto-guessing, which according to my
> > understanding is almost 'deprecated' ?
>
> Having bus-type would just be an useful addition for finding out the bus
> interface ? or it has some other consequences as well ?
> Current XISC code actually expects a parallel interface, so it's kind of
> set already, having a bus-type would not bring any new information from
> a driver perspective
>

Have I read the parsing routine wrong, as it seems BT.656 is also
supported. IF only parallel is, the dt parsing routine should set
bus_type to V4L2_MBUS_PARALLEL. Although there's still plenty of drivers
relying on auto-guessing, so I won't inist on this :)

Thanks
  j

> >
> >> +             };
> >> +     };
> >> +};
> >> +
> >> --
> >> 2.25.1
> >>
>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-04-12 10:34 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-05 15:50 [PATCH v2 00/30] media: atmel: atmel-isc: add support for xisc Eugen Hristev
2021-04-05 15:50 ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 01/30] media: atmel: atmel-isc: specialize gamma table into product specific Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 02/30] media: atmel: atmel-isc: specialize driver name constant Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 03/30] media: atmel: atmel-isc: add checks for limiting frame sizes Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 04/30] media: atmel: atmel-isc: specialize max width and max height Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-12  9:43   ` Jacopo Mondi
2021-04-12  9:43     ` Jacopo Mondi
2021-04-12  9:53     ` Jacopo Mondi
2021-04-12  9:53       ` Jacopo Mondi
2021-04-12 10:04       ` Eugen.Hristev
2021-04-12 10:04         ` Eugen.Hristev
2021-04-05 15:50 ` [PATCH v2 05/30] media: atmel: atmel-isc: specialize dma cfg Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-12  9:46   ` Jacopo Mondi
2021-04-12  9:46     ` Jacopo Mondi
2021-04-05 15:50 ` [PATCH v2 06/30] media: atmel: atmel-isc: extract CSC submodule config into separate function Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 07/30] media: atmel: atmel-isc-base: add id to clock debug message Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 08/30] media: atmel: atmel-isc: create register offsets struct Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 09/30] media: atmel: atmel-isc: extract CBC submodule config into separate function Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 10/30] media: atmel: atmel-isc: add CBC to the reg offsets struct Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 11/30] media: atmel: atmel-isc: add SUB422 and SUB420 to register offsets Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 12/30] media: atmel: atmel-isc: add RLP " Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 13/30] media: atmel: atmel-isc: add HIS " Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 14/30] media: atmel: atmel-isc: add DMA " Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 15/30] media: atmel: atmel-isc: add support for version register Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 16/30] media: atmel: atmel-isc: add his_entry to register offsets Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 17/30] media: atmel: atmel-isc: add register description for additional modules Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 18/30] media: atmel: atmel-isc: extend pipeline with extra modules Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 19/30] media: atmel: atmel-isc: add CC initialization function Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 20/30] media: atmel: atmel-isc: create product specific v4l2 controls config Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 21/30] media: atmel: atmel-isc: create callback for DPC submodule product specific Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 22/30] media: atmel: atmel-isc: create callback for GAM " Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 23/30] media: atmel: atmel-isc: create callback for RLP " Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:50 ` [PATCH v2 24/30] media: atmel: atmel-isc: move the formats list into product specific code Eugen Hristev
2021-04-05 15:50   ` Eugen Hristev
2021-04-05 15:51 ` [PATCH v2 25/30] media: atmel: atmel-isc: create an adapt pipeline callback for product specific Eugen Hristev
2021-04-05 15:51   ` Eugen Hristev
2021-04-05 15:51 ` [PATCH v2 26/30] media: atmel: atmel-isc-regs: add additional fields for sama7g5 type pipeline Eugen Hristev
2021-04-05 15:51   ` Eugen Hristev
2021-04-05 15:51 ` [PATCH v2 27/30] media: atmel: atmel-isc-base: add support for more formats and additional pipeline modules Eugen Hristev
2021-04-05 15:51   ` Eugen Hristev
2021-04-05 15:51 ` [PATCH v2 28/30] dt-bindings: media: atmel: add microchip-xisc binding Eugen Hristev
2021-04-05 15:51   ` Eugen Hristev
2021-04-09 16:07   ` Rob Herring
2021-04-09 16:07     ` Rob Herring
2021-04-12  9:57   ` Jacopo Mondi
2021-04-12  9:57     ` Jacopo Mondi
2021-04-12 10:12     ` Eugen.Hristev
2021-04-12 10:12       ` Eugen.Hristev
2021-04-12 10:34       ` Jacopo Mondi [this message]
2021-04-12 10:34         ` Jacopo Mondi
2021-04-05 15:51 ` [PATCH v2 29/30] media: atmel: atmel-isc-sama5d2: remove duplicate define Eugen Hristev
2021-04-05 15:51   ` Eugen Hristev
2021-04-05 15:51 ` [PATCH v2 30/30] media: atmel: atmel-isc: add microchip-xisc driver Eugen Hristev
2021-04-05 15:51   ` Eugen Hristev
2021-04-12 12:37   ` Eugen.Hristev
2021-04-12 12:37     ` Eugen.Hristev
2021-04-12 13:41     ` Jacopo Mondi
2021-04-12 13:41       ` Jacopo Mondi
2021-04-12 14:15       ` Eugen.Hristev
2021-04-12 14:15         ` Eugen.Hristev
2021-04-12 14:38         ` Jacopo Mondi
2021-04-12 14:38           ` Jacopo Mondi
2021-04-07  7:30 ` [PATCH v2 00/30] media: atmel: atmel-isc: add support for xisc Hans Verkuil
2021-04-07  7:30   ` Hans Verkuil

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=20210412103457.3ahntx5ngskgb57e@uno.localdomain \
    --to=jacopo@jmondi.org \
    --cc=Eugen.Hristev@microchip.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.