Re: [PATCH 2/2] serial: sh-sci: Document r7s9210 bindings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Chris,

On Wed, Jul 25, 2018 at 3:38 AM Chris Brandt <Chris.Brandt@xxxxxxxxxxx> wrote:
> I have one last clarification about your idea regarding documenting the
> interrupts separately for RZ/A2.
>
> On Thursday, July 19, 2018, Geert Uytterhoeven wrote:
> > For DT backwards compatibility, we have to keep support for the following
> > 2 schemes:
> >   1. Single "interrupts" value, no "interrupt-names", for fully
> > multiplexed
> >      interrupts (SH/R-Mobile, R-Car).
> >   2. Four "interrupts" values, no "interrupt-names", for ERI/RXI/TXI/TEI
> >      (RZ/A1, H8/300).
> >
> > For RZ/A2, I suggest extending the bindings with interrupt-names,
> > documenting all 6 interrupt sources, and let the driver handle that.
> > That means there should be 6, not 5, "interrupts" values.
> > Whether the driver implements all possible combinations, or only what you
> > need for RZ/A2, is up to you. I agree the interrupt handling in the driver
> > is already sufficiently complex.
> > Ideally, you would document support for RZ/A1 with interrupt-names too,
> > and handle that as well.
>
> So for backward compatibility, no existing DT or setup-xxx.c (SH) file
> should change and the driver needs to assume the order of interrupts.

You can change the setup-xxx.c (SH) files, if needed. There's no in-kernel
stable ABI.

> However, if "interrupt-names" is specified in DT, then the driver
> determines what the interrupt are based on their names, not the order in which
> they are listed.
>
> Correct?

Correct.

> So for example, RZ/A1 DT will stay the same and since "interrupt-names"
> was never used and the interrupt order will be assumed as
> ERI/RXI/TXI/BRI.
>
> RZ/A1 [ r7s72100.dtsi ]
> scif0: serial@e8007000 {
>         compatible = "renesas,scif-r7s72100", "renesas,scif";
>         reg = <0xe8007000 64>;
>         interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
>                      <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
>                      <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
>                      <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
>         clocks = <&mstp4_clks R7S72100_CLK_SCIF0>;
>         clock-names = "fck";
>         power-domains = <&cpg_clocks>;
>         status = "disabled";
> };

Correct.

> However, for RZ/A2, "interrupt-names" will be used and then the driver
> will sort things out however it needs to (figuring out what signals
> are muxed together an such).
>
> RZ/A2 [ r7s9210.dtsi ]
> scif0: serial@e8007000 {
>         compatible = "renesas,scif-r7s9210", "renesas,scif";
>         reg = <0xe8007000 18>;
>         interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>, /* ERI/BRI */
>                      <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>, /* RXI */
>                      <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>, /* TXI */
>                      <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>, /* ERI/BRI */
>                      <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>, /* TEI/DRI */
>                      <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; /* TEI/DRI */
>         interrupt-names = "eri", "rxi", "txi", "bri", "tei", "dri";
>
>         clocks = <&mstp4_clks R7S9210_CLK_SCIF0>;
>         clock-names = "fck";
>         power-domains = <&cpg_clocks>;
>         status = "disabled";
> };

Correct.

> Are we on the same page?

I think so.
Thanks!

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux