[RFC,v2,1/2] dt-bindings: sc16is7xx: Add property to change GPIO function

Message ID 20230518132905.4182265-1-hugo@hugovil.com
State New
Headers
Series [RFC,v2,1/2] dt-bindings: sc16is7xx: Add property to change GPIO function |

Commit Message

Hugo Villeneuve May 18, 2023, 1:29 p.m. UTC
  From: Hugo Villeneuve <hvilleneuve@dimonoff.com>

Some variants in this series of uart controllers have GPIO pins that
are shared between GPIO and modem control lines.

The pin mux mode (GPIO or modem control lines) can be set for each
ports (channels) supported by the variant.

This adds a property to the device tree to set the GPIO pin mux to
modem control lines on selected ports if needed.

Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
---
v1 -> v2: Add nxp vendor prefix
          Add git base-commit

 .../bindings/serial/nxp,sc16is7xx.txt         | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)


base-commit: 4d6d4c7f541d7027beed4fb86eb2c451bd8d6fff
  

Comments

Conor Dooley May 18, 2023, 7:24 p.m. UTC | #1
On Thu, May 18, 2023 at 09:29:06AM -0400, Hugo Villeneuve wrote:
> From: Hugo Villeneuve <hvilleneuve@dimonoff.com>
> 
> Some variants in this series of uart controllers have GPIO pins that
> are shared between GPIO and modem control lines.
> 
> The pin mux mode (GPIO or modem control lines) can be set for each
> ports (channels) supported by the variant.
> 
> This adds a property to the device tree to set the GPIO pin mux to
> modem control lines on selected ports if needed.
> 
> Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>

On the basis of similarity to existing properties due to my lack of
understanding of the hardware it'll have to be an Ack. Hopefully Greg &
Co. have more specific insight.
Acked-by: Conor Dooley <conor.dooley@microchip.com>

Thanks,
Conor.

> ---
> v1 -> v2: Add nxp vendor prefix
>           Add git base-commit
> 
>  .../bindings/serial/nxp,sc16is7xx.txt         | 28 +++++++++++++++++++
>  1 file changed, 28 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt b/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
> index 0fa8e3e43bf8..23a81c83f012 100644
> --- a/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
> +++ b/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
> @@ -23,6 +23,9 @@ Optional properties:
>      1 = active low.
>  - irda-mode-ports: An array that lists the indices of the port that
>  		   should operate in IrDA mode.
> +- nxp,modem-control-line-ports: An array that lists the indices of the port that
> +				should have shared GPIO lines configured as modem
> +				control lines.
>  
>  Example:
>          sc16is750: sc16is750@51 {
> @@ -35,6 +38,17 @@ Example:
>                  #gpio-cells = <2>;
>          };
>  
> +	sc16is752: sc16is752@54 {
> +		compatible = "nxp,sc16is752";
> +		reg = <0x54>;
> +		clocks = <&clk20m>;
> +		interrupt-parent = <&gpio3>;
> +		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
> +		nxp,modem-control-line-ports = <1>; /* Port 1 as modem control lines */
> +		gpio-controller; /* Port 0 as GPIOs */
> +		#gpio-cells = <2>;
> +	};
> +
>  * spi as bus
>  
>  Required properties:
> @@ -59,6 +73,9 @@ Optional properties:
>      1 = active low.
>  - irda-mode-ports: An array that lists the indices of the port that
>  		   should operate in IrDA mode.
> +- nxp,modem-control-line-ports: An array that lists the indices of the port that
> +				should have shared GPIO lines configured as modem
> +				control lines.
>  
>  Example:
>  	sc16is750: sc16is750@0 {
> @@ -70,3 +87,14 @@ Example:
>  		gpio-controller;
>  		#gpio-cells = <2>;
>  	};
> +
> +	sc16is752: sc16is752@0 {
> +		compatible = "nxp,sc16is752";
> +		reg = <0>;
> +		clocks = <&clk20m>;
> +		interrupt-parent = <&gpio3>;
> +		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
> +		nxp,modem-control-line-ports = <1>; /* Port 1 as modem control lines */
> +		gpio-controller; /* Port 0 as GPIOs */
> +		#gpio-cells = <2>;
> +	};
> 
> base-commit: 4d6d4c7f541d7027beed4fb86eb2c451bd8d6fff
> -- 
> 2.30.2
>
  
Lech Perczak May 19, 2023, 1:03 p.m. UTC | #2
Hello Hugo,

W dniu 18.05.2023 o 15:29, Hugo Villeneuve pisze:
> From: Hugo Villeneuve <hvilleneuve@dimonoff.com>
>
> Some variants in this series of uart controllers have GPIO pins that
> are shared between GPIO and modem control lines.
>
> The pin mux mode (GPIO or modem control lines) can be set for each
> ports (channels) supported by the variant.
>
> This adds a property to the device tree to set the GPIO pin mux to
> modem control lines on selected ports if needed.
>
> Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
> ---
> v1 -> v2: Add nxp vendor prefix
>           Add git base-commit
>
>  .../bindings/serial/nxp,sc16is7xx.txt         | 28 +++++++++++++++++++
>  1 file changed, 28 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt b/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
> index 0fa8e3e43bf8..23a81c83f012 100644
> --- a/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
> +++ b/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
> @@ -23,6 +23,9 @@ Optional properties:
>      1 = active low.
>  - irda-mode-ports: An array that lists the indices of the port that
>                    should operate in IrDA mode.
> +- nxp,modem-control-line-ports: An array that lists the indices of the port that
> +                               should have shared GPIO lines configured as modem
> +                               control lines.
>
>  Example:
>          sc16is750: sc16is750@51 {
> @@ -35,6 +38,17 @@ Example:
>                  #gpio-cells = <2>;
>          };
>
> +       sc16is752: sc16is752@54 {
> +               compatible = "nxp,sc16is752";
> +               reg = <0x54>;
> +               clocks = <&clk20m>;
> +               interrupt-parent = <&gpio3>;
> +               interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
> +               nxp,modem-control-line-ports = <1>; /* Port 1 as modem control lines */
> +               gpio-controller; /* Port 0 as GPIOs */
> +               #gpio-cells = <2>;
> +       };
> +
>  * spi as bus
>
>  Required properties:
> @@ -59,6 +73,9 @@ Optional properties:
>      1 = active low.
>  - irda-mode-ports: An array that lists the indices of the port that
>                    should operate in IrDA mode.
> +- nxp,modem-control-line-ports: An array that lists the indices of the port that
> +                               should have shared GPIO lines configured as modem
> +                               control lines.
>
>  Example:
>         sc16is750: sc16is750@0 {
> @@ -70,3 +87,14 @@ Example:
>                 gpio-controller;
>                 #gpio-cells = <2>;
>         };
> +
> +       sc16is752: sc16is752@0 {
> +               compatible = "nxp,sc16is752";
> +               reg = <0>;
> +               clocks = <&clk20m>;
> +               interrupt-parent = <&gpio3>;
> +               interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
> +               nxp,modem-control-line-ports = <1>; /* Port 1 as modem control lines */
Just a minor nitpick: an example showing syntax for both ports would be great.
This can be included here, leaving the previous example intact. Otherwise, LGTM.
> +               gpio-controller; /* Port 0 as GPIOs */
> +               #gpio-cells = <2>;
> +       };
>
> base-commit: 4d6d4c7f541d7027beed4fb86eb2c451bd8d6fff
> --
> 2.30.2
  
Hugo Villeneuve May 25, 2023, 3:37 a.m. UTC | #3
On Fri, 19 May 2023 15:03:37 +0200
Lech Perczak <lech.perczak@camlingroup.com> wrote:

> Hello Hugo,
> 
> W dniu 18.05.2023 o 15:29, Hugo Villeneuve pisze:
> > From: Hugo Villeneuve <hvilleneuve@dimonoff.com>
> >
> > Some variants in this series of uart controllers have GPIO pins that
> > are shared between GPIO and modem control lines.
> >
> > The pin mux mode (GPIO or modem control lines) can be set for each
> > ports (channels) supported by the variant.
> >
> > This adds a property to the device tree to set the GPIO pin mux to
> > modem control lines on selected ports if needed.
> >
> > Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
> > ---
> > v1 -> v2: Add nxp vendor prefix
> >           Add git base-commit
> >
> >  .../bindings/serial/nxp,sc16is7xx.txt         | 28 +++++++++++++++++++
> >  1 file changed, 28 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt b/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
> > index 0fa8e3e43bf8..23a81c83f012 100644
> > --- a/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
> > +++ b/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
> > @@ -23,6 +23,9 @@ Optional properties:
> >      1 = active low.
> >  - irda-mode-ports: An array that lists the indices of the port that
> >                    should operate in IrDA mode.
> > +- nxp,modem-control-line-ports: An array that lists the indices of the port that
> > +                               should have shared GPIO lines configured as modem
> > +                               control lines.
> >
> >  Example:
> >          sc16is750: sc16is750@51 {
> > @@ -35,6 +38,17 @@ Example:
> >                  #gpio-cells = <2>;
> >          };
> >
> > +       sc16is752: sc16is752@54 {
> > +               compatible = "nxp,sc16is752";
> > +               reg = <0x54>;
> > +               clocks = <&clk20m>;
> > +               interrupt-parent = <&gpio3>;
> > +               interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
> > +               nxp,modem-control-line-ports = <1>; /* Port 1 as modem control lines */
> > +               gpio-controller; /* Port 0 as GPIOs */
> > +               #gpio-cells = <2>;
> > +       };
> > +
> >  * spi as bus
> >
> >  Required properties:
> > @@ -59,6 +73,9 @@ Optional properties:
> >      1 = active low.
> >  - irda-mode-ports: An array that lists the indices of the port that
> >                    should operate in IrDA mode.
> > +- nxp,modem-control-line-ports: An array that lists the indices of the port that
> > +                               should have shared GPIO lines configured as modem
> > +                               control lines.
> >
> >  Example:
> >         sc16is750: sc16is750@0 {
> > @@ -70,3 +87,14 @@ Example:
> >                 gpio-controller;
> >                 #gpio-cells = <2>;
> >         };
> > +
> > +       sc16is752: sc16is752@0 {
> > +               compatible = "nxp,sc16is752";
> > +               reg = <0>;
> > +               clocks = <&clk20m>;
> > +               interrupt-parent = <&gpio3>;
> > +               interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
> > +               nxp,modem-control-line-ports = <1>; /* Port 1 as modem control lines */
> Just a minor nitpick: an example showing syntax for both ports would be great.
> This can be included here, leaving the previous example intact. Otherwise, LGTM.
> > +               gpio-controller; /* Port 0 as GPIOs */
> > +               #gpio-cells = <2>;

Hi,
I have decided to add a separate example, because adding an example for both ports also means that the gpio-controller property should be removed.

Hugo.


> > +       };
> >
> > base-commit: 4d6d4c7f541d7027beed4fb86eb2c451bd8d6fff
> > --
> > 2.30.2
> 
> -- 
> Pozdrawiam/With kind regards,
> Lech Perczak
> 
> Sr. Software Engineer
> Camlin Technologies Poland Limited Sp. z o.o.
> Strzegomska 54,
> 53-611 Wroclaw
> Tel:     (+48) 71 75 000 16
> Email:   lech.perczak@camlingroup.com
> Website: http://www.camlingroup.com
> 
>
  

Patch

diff --git a/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt b/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
index 0fa8e3e43bf8..23a81c83f012 100644
--- a/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
+++ b/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
@@ -23,6 +23,9 @@  Optional properties:
     1 = active low.
 - irda-mode-ports: An array that lists the indices of the port that
 		   should operate in IrDA mode.
+- nxp,modem-control-line-ports: An array that lists the indices of the port that
+				should have shared GPIO lines configured as modem
+				control lines.
 
 Example:
         sc16is750: sc16is750@51 {
@@ -35,6 +38,17 @@  Example:
                 #gpio-cells = <2>;
         };
 
+	sc16is752: sc16is752@54 {
+		compatible = "nxp,sc16is752";
+		reg = <0x54>;
+		clocks = <&clk20m>;
+		interrupt-parent = <&gpio3>;
+		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
+		nxp,modem-control-line-ports = <1>; /* Port 1 as modem control lines */
+		gpio-controller; /* Port 0 as GPIOs */
+		#gpio-cells = <2>;
+	};
+
 * spi as bus
 
 Required properties:
@@ -59,6 +73,9 @@  Optional properties:
     1 = active low.
 - irda-mode-ports: An array that lists the indices of the port that
 		   should operate in IrDA mode.
+- nxp,modem-control-line-ports: An array that lists the indices of the port that
+				should have shared GPIO lines configured as modem
+				control lines.
 
 Example:
 	sc16is750: sc16is750@0 {
@@ -70,3 +87,14 @@  Example:
 		gpio-controller;
 		#gpio-cells = <2>;
 	};
+
+	sc16is752: sc16is752@0 {
+		compatible = "nxp,sc16is752";
+		reg = <0>;
+		clocks = <&clk20m>;
+		interrupt-parent = <&gpio3>;
+		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
+		nxp,modem-control-line-ports = <1>; /* Port 1 as modem control lines */
+		gpio-controller; /* Port 0 as GPIOs */
+		#gpio-cells = <2>;
+	};