Message ID | 20171013090200.31034-1-miquel.raynal@free-electrons.com |
---|---|
Headers | show |
Series | Support armada-37xx second UART port | expand |
Hi Miquel, On ven., oct. 13 2017, Miquel Raynal <miquel.raynal@free-electrons.com> wrote: > - port = &mvebu_uart_ports[0]; > + /* Assume that all UART ports have a DT alias or none has */ > + id = of_alias_get_id(pdev->dev.of_node, "serial"); You stil need to check the pdev->dev.of_node before calling of_alias_get_id. Once it will be fixed, you can add: Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Thanks, Gregory > + if (!pdev->dev.of_node || id < 0) > + pdev->id = uart_num_counter++; > + else > + pdev->id = id; > + > + if (pdev->id >= MVEBU_NR_UARTS) { > + dev_err(&pdev->dev, "cannot have more than %d UART ports\n", > + MVEBU_NR_UARTS); > + return -EINVAL; > + } > + > + port = &mvebu_uart_ports[pdev->id]; > > spin_lock_init(&port->lock); > > @@ -572,7 +588,7 @@ static int mvebu_uart_probe(struct platform_device *pdev) > port->fifosize = 32; > port->iotype = UPIO_MEM32; > port->flags = UPF_FIXED_PORT; > - port->line = 0; /* single port: force line number to 0 */ > + port->line = pdev->id; > > port->irq = irq->start; > port->irqflags = 0; > -- > 2.11.0 >
Hi Gregory, On Fri, 13 Oct 2017 11:40:32 +0200 Gregory CLEMENT <gregory.clement@free-electrons.com> wrote: > Hi Miquel, > > On ven., oct. 13 2017, Miquel Raynal > <miquel.raynal@free-electrons.com> wrote: > > > - port = &mvebu_uart_ports[0]; > > + /* Assume that all UART ports have a DT alias or none has > > */ > > + id = of_alias_get_id(pdev->dev.of_node, "serial"); > > You stil need to check the pdev->dev.of_node before calling > of_alias_get_id. Thanks for your feedback but I don't think we still need to check it, because the of_alias_get_id() function will either return -ENOSYS if CONFIG_OF is not defined, or -ENODEV if the node is not found. As the function does not dereference pdev->dev.of_node at any moment but instead compares the value with another pointer, I think this call is safe like this. Thanks, Miquèl > > Once it will be fixed, you can add: > > Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com> > > Thanks, > > Gregory > > > > + if (!pdev->dev.of_node || id < 0) > > + pdev->id = uart_num_counter++; > > + else > > + pdev->id = id; > > + > > + if (pdev->id >= MVEBU_NR_UARTS) { > > + dev_err(&pdev->dev, "cannot have more than %d UART > > ports\n", > > + MVEBU_NR_UARTS); > > + return -EINVAL; > > + } > > + > > + port = &mvebu_uart_ports[pdev->id]; > > > > spin_lock_init(&port->lock); > > > > @@ -572,7 +588,7 @@ static int mvebu_uart_probe(struct > > platform_device *pdev) port->fifosize = 32; > > port->iotype = UPIO_MEM32; > > port->flags = UPF_FIXED_PORT; > > - port->line = 0; /* single port: force line number > > to 0 */ > > + port->line = pdev->id; > > > > port->irq = irq->start; > > port->irqflags = 0; > > -- > > 2.11.0 > > >
Hi Miquel, On ven., oct. 13 2017, Miquel RAYNAL <miquel.raynal@free-electrons.com> wrote: > Hi Gregory, > > On Fri, 13 Oct 2017 11:40:32 +0200 > Gregory CLEMENT <gregory.clement@free-electrons.com> wrote: > >> Hi Miquel, >> >> On ven., oct. 13 2017, Miquel Raynal >> <miquel.raynal@free-electrons.com> wrote: >> >> > - port = &mvebu_uart_ports[0]; >> > + /* Assume that all UART ports have a DT alias or none has >> > */ >> > + id = of_alias_get_id(pdev->dev.of_node, "serial"); >> >> You stil need to check the pdev->dev.of_node before calling >> of_alias_get_id. > > Thanks for your feedback but I don't think we still need to check it, > because the of_alias_get_id() function will either return -ENOSYS if > CONFIG_OF is not defined, or -ENODEV if the node is not found. As the > function does not dereference pdev->dev.of_node at any moment but > instead compares the value with another pointer, I think this call is > safe like this. Fair enough, I expected that the pointer was dereferenced but I was wrong, was so no need for a new version. Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Thanks, Gregory > > Thanks, > Miquèl > >> >> Once it will be fixed, you can add: >> >> Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com> >> >> Thanks, >> >> Gregory >> >> >> > + if (!pdev->dev.of_node || id < 0) >> > + pdev->id = uart_num_counter++; >> > + else >> > + pdev->id = id; >> > + >> > + if (pdev->id >= MVEBU_NR_UARTS) { >> > + dev_err(&pdev->dev, "cannot have more than %d UART >> > ports\n", >> > + MVEBU_NR_UARTS); >> > + return -EINVAL; >> > + } >> > + >> > + port = &mvebu_uart_ports[pdev->id]; >> > >> > spin_lock_init(&port->lock); >> > >> > @@ -572,7 +588,7 @@ static int mvebu_uart_probe(struct >> > platform_device *pdev) port->fifosize = 32; >> > port->iotype = UPIO_MEM32; >> > port->flags = UPF_FIXED_PORT; >> > - port->line = 0; /* single port: force line number >> > to 0 */ >> > + port->line = pdev->id; >> > >> > port->irq = irq->start; >> > port->irqflags = 0; >> > -- >> > 2.11.0 >> > >> > > > > -- > Miquel Raynal, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com
On Fri, Oct 13, 2017 at 11:01 AM, Miquel Raynal <miquel.raynal@free-electrons.com> wrote: > Fix a typo in A37xx pin controllers documentation about uart2 pin group. > > Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com> > Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Patch applied to the pinctrl tree. Yours, Linus Walleij
On Fri, Oct 13, 2017 at 11:01:45AM +0200, Miquel Raynal wrote: > Update the Device Tree binding documentation for the Marvell EBU UART, > in order to allow describing the extended UART IP block, in addition to > the already supported standard UART IP. This requires adding a new > compatible string, the introduction of a clocks property, and extensions > to the interrupts property. > > Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com> > Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com> > --- > .../devicetree/bindings/serial/mvebu-uart.txt | 49 +++++++++++++++++++--- > 1 file changed, 44 insertions(+), 5 deletions(-) > > diff --git a/Documentation/devicetree/bindings/serial/mvebu-uart.txt b/Documentation/devicetree/bindings/serial/mvebu-uart.txt > index d37fabe17bd1..3df3a3fab4bb 100644 > --- a/Documentation/devicetree/bindings/serial/mvebu-uart.txt > +++ b/Documentation/devicetree/bindings/serial/mvebu-uart.txt > @@ -1,13 +1,52 @@ > -* Marvell UART : Non standard UART used in some of Marvell EBU SoCs (e.g., Armada-3700) > +* Marvell UART : Non standard UART used in some of Marvell EBU SoCs > + e.g., Armada-3700. > > Required properties: > -- compatible: "marvell,armada-3700-uart" > +- compatible: > + - "marvell,armada-3700-uart" for the standard variant of the UART > + (32 bytes FIFO, no DMA, level interrupts, 8-bit access to the > + FIFO, baudrate limited to 230400). > + - "marvell,armada-3700-uart-ext" for the extended variant of the > + UART (128 bytes FIFO, DMA, front interrupts, 8-bit or 32-bit > + accesses to the FIFO, baudrate unlimited by the dividers). What do you call the next extended version? marvell,armada-3700-uart-ext-ext? This is different versions of UART on the same chip? > - reg: offset and length of the register set for the device. > -- interrupts: device interrupt > +- clocks: UART reference clock used to derive the baudrate (only > + mandatory with "marvell,armada-3700-uart-ext" compatible). How is this optional? The freq is fixed if not present? If so, what frequency? > +- interrupts: > + - Must contain three elements for the standard variant of the IP > + (marvell,armada-3700-uart): "uart-sum", "uart-tx" and "uart-rx", > + respectively the UART sum interrupt, the UART TX interrupt and > + UART RX interrupt. A corresponding interrupt-names property must > + be defined. > + - Must contain two elements for the extended variant of the IP > + (marvell,armada-3700-uart-ext): "uart-tx" and "uart-rx", > + respectively the UART TX interrupt and the UART RX interrupt. A > + corresponding interrupts-names property must be defined. > + - For backward compatibility reasons, a single element interrupts > + property is also supported for the standard variant of the IP, > + containing only the UART sum interrupt. This form is deprecated > + and should no longer be used. > > Example: > - serial@12000 { > + uart0: serial@12000 { > compatible = "marvell,armada-3700-uart"; > reg = <0x12000 0x200>; > - interrupts = <43>; > + clocks = <&xtalclk>; > + interrupts = > + <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "uart-sum", "uart-tx", "uart-rx"; > + status = "disabled"; Don't show status in examples. > + }; > + > + uart1: serial@12200 { > + compatible = "marvell,armada-3700-uart-ext"; > + reg = <0x12200 0x30>; > + clocks = <&xtalclk>; > + interrupts = > + <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>; > + interrupt-names = "uart-tx", "uart-rx"; > + status = "disabled"; > }; > -- > 2.11.0 > > -- > To unsubscribe from this list: send the line "unsubscribe devicetree" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Rob, On Tue, 17 Oct 2017 17:00:22 -0500 Rob Herring <robh@kernel.org> wrote: > On Fri, Oct 13, 2017 at 11:01:45AM +0200, Miquel Raynal wrote: > > Update the Device Tree binding documentation for the Marvell EBU > > UART, in order to allow describing the extended UART IP block, in > > addition to the already supported standard UART IP. This requires > > adding a new compatible string, the introduction of a clocks > > property, and extensions to the interrupts property. > > > > Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com> > > Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com> > > --- > > .../devicetree/bindings/serial/mvebu-uart.txt | 49 > > +++++++++++++++++++--- 1 file changed, 44 insertions(+), 5 > > deletions(-) > > > > diff --git > > a/Documentation/devicetree/bindings/serial/mvebu-uart.txt > > b/Documentation/devicetree/bindings/serial/mvebu-uart.txt index > > d37fabe17bd1..3df3a3fab4bb 100644 --- > > a/Documentation/devicetree/bindings/serial/mvebu-uart.txt +++ > > b/Documentation/devicetree/bindings/serial/mvebu-uart.txt @@ -1,13 > > +1,52 @@ -* Marvell UART : Non standard UART used in some of > > Marvell EBU SoCs (e.g., Armada-3700) +* Marvell UART : Non standard > > UART used in some of Marvell EBU SoCs > > + e.g., Armada-3700. > > > > Required properties: > > -- compatible: "marvell,armada-3700-uart" > > +- compatible: > > + - "marvell,armada-3700-uart" for the standard variant of the > > UART > > + (32 bytes FIFO, no DMA, level interrupts, 8-bit access to the > > + FIFO, baudrate limited to 230400). > > + - "marvell,armada-3700-uart-ext" for the extended variant of > > the > > + UART (128 bytes FIFO, DMA, front interrupts, 8-bit or 32-bit > > + accesses to the FIFO, baudrate unlimited by the dividers). > > What do you call the next extended version? > marvell,armada-3700-uart-ext-ext? I don't know what you mean by "next extended version"? > > This is different versions of UART on the same chip? Today in mainline there is support for the A3700 UART IP. This series add support for another IP, based on the A3700, but with extended features (explaining the -ext suffix). Can you precise what is bothering you? > > > - reg: offset and length of the register set for the device. > > -- interrupts: device interrupt > > +- clocks: UART reference clock used to derive the baudrate (only > > + mandatory with "marvell,armada-3700-uart-ext" compatible). > > How is this optional? The freq is fixed if not present? If so, what > frequency? The "clocks" property should not be optional at all but that is how the bindings were handled before this series, so I can't tell now that this property is mandatory as it would break compatibility with older versions of the driver. When no clock is provided, the frequency is fixed by the bootloader and cannot be changed. There is no standard frequency for it but the one chosen by the bootloader often is 115200 as the UART is usually used as the serial console. Because the bootloader does only initialize the UART in use for the serial console, the clock is mandatory when using another port or it will not work at all. > > > +- interrupts: > > + - Must contain three elements for the standard variant of the > > IP > > + (marvell,armada-3700-uart): "uart-sum", "uart-tx" and > > "uart-rx", > > + respectively the UART sum interrupt, the UART TX interrupt > > and > > + UART RX interrupt. A corresponding interrupt-names property > > must > > + be defined. > > + - Must contain two elements for the extended variant of the IP > > + (marvell,armada-3700-uart-ext): "uart-tx" and "uart-rx", > > + respectively the UART TX interrupt and the UART RX > > interrupt. A > > + corresponding interrupts-names property must be defined. > > + - For backward compatibility reasons, a single element > > interrupts > > + property is also supported for the standard variant of the > > IP, > > + containing only the UART sum interrupt. This form is > > deprecated > > + and should no longer be used. > > > > Example: > > - serial@12000 { > > + uart0: serial@12000 { > > compatible = "marvell,armada-3700-uart"; > > reg = <0x12000 0x200>; > > - interrupts = <43>; > > + clocks = <&xtalclk>; > > + interrupts = > > + <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, > > + <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, > > + <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; > > + interrupt-names = "uart-sum", "uart-tx", "uart-rx"; > > + status = "disabled"; > > Don't show status in examples. Ok. > > > + }; > > + > > + uart1: serial@12200 { > > + compatible = "marvell,armada-3700-uart-ext"; > > + reg = <0x12200 0x30>; > > + clocks = <&xtalclk>; > > + interrupts = > > + <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>, > > + <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>; > > + interrupt-names = "uart-tx", "uart-rx"; > > + status = "disabled"; > > }; > > -- > > 2.11.0 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe > > devicetree" in the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html Thanks, Miquèl
On Wed, Oct 18, 2017 at 1:25 AM, Miquel RAYNAL <miquel.raynal@free-electrons.com> wrote: > Hi Rob, > > On Tue, 17 Oct 2017 17:00:22 -0500 > Rob Herring <robh@kernel.org> wrote: > >> On Fri, Oct 13, 2017 at 11:01:45AM +0200, Miquel Raynal wrote: >> > Update the Device Tree binding documentation for the Marvell EBU >> > UART, in order to allow describing the extended UART IP block, in >> > addition to the already supported standard UART IP. This requires >> > adding a new compatible string, the introduction of a clocks >> > property, and extensions to the interrupts property. >> > >> > Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com> >> > Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com> >> > --- >> > .../devicetree/bindings/serial/mvebu-uart.txt | 49 >> > +++++++++++++++++++--- 1 file changed, 44 insertions(+), 5 >> > deletions(-) >> > >> > diff --git >> > a/Documentation/devicetree/bindings/serial/mvebu-uart.txt >> > b/Documentation/devicetree/bindings/serial/mvebu-uart.txt index >> > d37fabe17bd1..3df3a3fab4bb 100644 --- >> > a/Documentation/devicetree/bindings/serial/mvebu-uart.txt +++ >> > b/Documentation/devicetree/bindings/serial/mvebu-uart.txt @@ -1,13 >> > +1,52 @@ -* Marvell UART : Non standard UART used in some of >> > Marvell EBU SoCs (e.g., Armada-3700) +* Marvell UART : Non standard >> > UART used in some of Marvell EBU SoCs >> > + e.g., Armada-3700. >> > >> > Required properties: >> > -- compatible: "marvell,armada-3700-uart" >> > +- compatible: >> > + - "marvell,armada-3700-uart" for the standard variant of the >> > UART >> > + (32 bytes FIFO, no DMA, level interrupts, 8-bit access to the >> > + FIFO, baudrate limited to 230400). >> > + - "marvell,armada-3700-uart-ext" for the extended variant of >> > the >> > + UART (128 bytes FIFO, DMA, front interrupts, 8-bit or 32-bit >> > + accesses to the FIFO, baudrate unlimited by the dividers). >> >> What do you call the next extended version? >> marvell,armada-3700-uart-ext-ext? > > I don't know what you mean by "next extended version"? IP evolves on new chips with new features. Just trying to understand how you are >> This is different versions of UART on the same chip? > > Today in mainline there is support for the A3700 UART IP. > This series add support for another IP, based on the A3700, but with > extended features (explaining the -ext suffix). > > Can you precise what is bothering you? Is this different versions of UART IP on 1 chip or a new version of the UART IP on a new SoC? The latter should be a new compatible with the new SoC. The former case does happen some, but is not common. I'm just trying to understand which applies here. >> > - reg: offset and length of the register set for the device. >> > -- interrupts: device interrupt >> > +- clocks: UART reference clock used to derive the baudrate (only >> > + mandatory with "marvell,armada-3700-uart-ext" compatible). >> >> How is this optional? The freq is fixed if not present? If so, what >> frequency? > > The "clocks" property should not be optional at all but that is how the > bindings were handled before this series, so I can't tell now that > this property is mandatory as it would break compatibility with older > versions of the driver. Okay. I think it should be mandatory with a note how missing property is handled. > When no clock is provided, the frequency is fixed by the bootloader > and cannot be changed. There is no standard frequency for it but the > one chosen by the bootloader often is 115200 as the UART is usually > used as the serial console. > > Because the bootloader does only initialize the UART in use for the > serial console, the clock is mandatory when using another port or it > will not work at all.
Hi Rob, On Wed, 18 Oct 2017 08:29:07 -0500 Rob Herring <robh@kernel.org> wrote: > On Wed, Oct 18, 2017 at 1:25 AM, Miquel RAYNAL > <miquel.raynal@free-electrons.com> wrote: > > Hi Rob, > > > > On Tue, 17 Oct 2017 17:00:22 -0500 > > Rob Herring <robh@kernel.org> wrote: > > > >> On Fri, Oct 13, 2017 at 11:01:45AM +0200, Miquel Raynal wrote: > >> > Update the Device Tree binding documentation for the Marvell EBU > >> > UART, in order to allow describing the extended UART IP block, in > >> > addition to the already supported standard UART IP. This requires > >> > adding a new compatible string, the introduction of a clocks > >> > property, and extensions to the interrupts property. > >> > > >> > Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com> > >> > Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com> > >> > --- > >> > .../devicetree/bindings/serial/mvebu-uart.txt | 49 > >> > +++++++++++++++++++--- 1 file changed, 44 insertions(+), 5 > >> > deletions(-) > >> > > >> > diff --git > >> > a/Documentation/devicetree/bindings/serial/mvebu-uart.txt > >> > b/Documentation/devicetree/bindings/serial/mvebu-uart.txt index > >> > d37fabe17bd1..3df3a3fab4bb 100644 --- > >> > a/Documentation/devicetree/bindings/serial/mvebu-uart.txt +++ > >> > b/Documentation/devicetree/bindings/serial/mvebu-uart.txt @@ > >> > -1,13 +1,52 @@ -* Marvell UART : Non standard UART used in some > >> > of Marvell EBU SoCs (e.g., Armada-3700) +* Marvell UART : Non > >> > standard UART used in some of Marvell EBU SoCs > >> > + e.g., Armada-3700. > >> > > >> > Required properties: > >> > -- compatible: "marvell,armada-3700-uart" > >> > +- compatible: > >> > + - "marvell,armada-3700-uart" for the standard variant of the > >> > UART > >> > + (32 bytes FIFO, no DMA, level interrupts, 8-bit access to > >> > the > >> > + FIFO, baudrate limited to 230400). > >> > + - "marvell,armada-3700-uart-ext" for the extended variant of > >> > the > >> > + UART (128 bytes FIFO, DMA, front interrupts, 8-bit or > >> > 32-bit > >> > + accesses to the FIFO, baudrate unlimited by the > >> > dividers). > >> > >> What do you call the next extended version? > >> marvell,armada-3700-uart-ext-ext? > > > > I don't know what you mean by "next extended version"? > > IP evolves on new chips with new features. Just trying to understand > how you are I think I misunderstood your initial question. Indeed you are right, I did not think about the naming of a potential next extended version of the extended IP, but I don't know how to rename it otherwise than "-ext" to best fit what the "new" IP does. > > >> This is different versions of UART on the same chip? > > > > Today in mainline there is support for the A3700 UART IP. > > This series add support for another IP, based on the A3700, but with > > extended features (explaining the -ext suffix). > > > > Can you precise what is bothering you? > > Is this different versions of UART IP on 1 chip or a new version of > the UART IP on a new SoC? The latter should be a new compatible with > the new SoC. The former case does happen some, but is not common. I'm > just trying to understand which applies here. Actually, both IP are available since the first version of the Armada 3700 SoCs. There is no other implementation of these IPs yet. I think we fall in the former case. > > > >> > - reg: offset and length of the register set for the device. > >> > -- interrupts: device interrupt > >> > +- clocks: UART reference clock used to derive the baudrate (only > >> > + mandatory with "marvell,armada-3700-uart-ext" > >> > compatible). > >> > >> How is this optional? The freq is fixed if not present? If so, what > >> frequency? > > > > The "clocks" property should not be optional at all but that is how > > the bindings were handled before this series, so I can't tell now > > that this property is mandatory as it would break compatibility > > with older versions of the driver. > > Okay. I think it should be mandatory with a note how missing property > is handled. Sure. > > > When no clock is provided, the frequency is fixed by the bootloader > > and cannot be changed. There is no standard frequency for it but the > > one chosen by the bootloader often is 115200 as the UART is usually > > used as the serial console. > > > > Because the bootloader does only initialize the UART in use for the > > serial console, the clock is mandatory when using another port or it > > will not work at all. Thank you, Miquèl
Hi Miquel, On ven., oct. 13 2017, Miquel Raynal <miquel.raynal@free-electrons.com> wrote: > Add the missing clock property to armada-3700 UART node. > > This clock will be used to derive the prescaler value to comply with > the requested baudrate. > > Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com> > Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Applied on mvebu/dt64 Thanks, Gregory > --- > arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi > index b554cdaf5e53..a36d667f770e 100644 > --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi > +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi > @@ -135,6 +135,7 @@ > uart0: serial@12000 { > compatible = "marvell,armada-3700-uart"; > reg = <0x12000 0x200>; > + clocks = <&xtalclk>; > interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; > status = "disabled"; > }; > -- > 2.11.0 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Hi Miquel, On ven., oct. 13 2017, Miquel Raynal <miquel.raynal@free-electrons.com> wrote: > Add a node in Armada 37xx DTSI file for the second UART, with a > different compatible due to its extended IP which has some > differences with the first UART already in place. > > Make use of this commit to also fully describe the first port and > use the same clear and named interrupt bindings for both ports. > > The standard UART (UART0) uses level-interrupts while the extended > UART (UART1) uses edge-triggered interrupts. > > Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com> > Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Applied on mvebu/dt64 Thanks, Gregory > --- > arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi > index a36d667f770e..72b68f23c001 100644 > --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi > +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi > @@ -55,6 +55,7 @@ > > aliases { > serial0 = &uart0; > + serial1 = &uart1; > }; > > cpus { > @@ -136,7 +137,22 @@ > compatible = "marvell,armada-3700-uart"; > reg = <0x12000 0x200>; > clocks = <&xtalclk>; > - interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; > + interrupts = > + <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "uart-sum", "uart-tx", "uart-rx"; > + status = "disabled"; > + }; > + > + uart1: serial@12200 { > + compatible = "marvell,armada-3700-uart-ext"; > + reg = <0x12200 0x30>; > + clocks = <&xtalclk>; > + interrupts = > + <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>; > + interrupt-names = "uart-tx", "uart-rx"; > status = "disabled"; > }; > > -- > 2.11.0 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Hi Miquel, On ven., oct. 13 2017, Miquel Raynal <miquel.raynal@free-electrons.com> wrote: > Enable Armada-3720-DB second UART port by adding the corresponding > device tree node in the board DTS and enabling it. > > Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com> > Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com> > --- Applied on mvebu/dt64 Thanks, Gregory > arch/arm64/boot/dts/marvell/armada-3720-db.dts | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/marvell/armada-3720-db.dts b/arch/arm64/boot/dts/marvell/armada-3720-db.dts > index 9df0f06ce607..15713c19b3d0 100644 > --- a/arch/arm64/boot/dts/marvell/armada-3720-db.dts > +++ b/arch/arm64/boot/dts/marvell/armada-3720-db.dts > @@ -216,7 +216,7 @@ > > /* > * Exported on the micro USB connector CON30(V2.0)/CON32(V1.4) through > - * an FTDI > + * an FTDI (also on CON24(V2.0)/CON26(V1.4)). > */ > &uart0 { > pinctrl-names = "default"; > @@ -224,6 +224,13 @@ > status = "okay"; > }; > > +/* CON26(V2.0)/CON28(V1.4) */ > +&uart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart2_pins>; > + status = "okay"; > +}; > + > /* CON27(V2.0)/CON29(V1.4) */ > &usb2 { > status = "okay"; > -- > 2.11.0 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel