linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 0/3] Add support for uartps controller reset
@ 2024-04-24 11:29 Manikanta Guntupalli
  2024-04-24 11:29 ` [PATCH V2 1/3] dt-bindings: serial: cdsn,uart: Add optional reset property Manikanta Guntupalli
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Manikanta Guntupalli @ 2024-04-24 11:29 UTC (permalink / raw)
  To: git, gregkh, jirislaby, robh, krzk+dt, conor+dt, michal.simek,
	p.zabel, laurent.pinchart, radhey.shyam.pandey, parth.gajjar,
	u.kleine-koenig, tglx, julien.malik, ruanjinjie, linux-kernel,
	linux-serial, devicetree, linux-arm-kernel
  Cc: srinivas.goud, shubhrajyoti.datta, manion05gk, Manikanta Guntupalli

Add optional resets property for UART nodes.
Add support for uartps controller reset.
---
Changes for V2:
Added ack signature for binding patch.
Remove check for reset_control_deassert, as reset_control_deassert
function internally has NULL check.

Manikanta Guntupalli (3):
  dt-bindings: serial: cdsn,uart: Add optional reset property
  arm64: zynqmp: Add resets property for UART nodes
  tty: serial: uartps: Add support for uartps controller reset

 .../devicetree/bindings/serial/cdns,uart.yaml     |  3 +++
 arch/arm64/boot/dts/xilinx/zynqmp.dtsi            |  2 ++
 drivers/tty/serial/xilinx_uartps.c                | 15 +++++++++++++++
 3 files changed, 20 insertions(+)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH V2 1/3] dt-bindings: serial: cdsn,uart: Add optional reset property
  2024-04-24 11:29 [PATCH V2 0/3] Add support for uartps controller reset Manikanta Guntupalli
@ 2024-04-24 11:29 ` Manikanta Guntupalli
  2024-04-24 19:18   ` Rob Herring
  2024-04-24 11:29 ` [PATCH V2 2/3] arm64: zynqmp: Add resets property for UART nodes Manikanta Guntupalli
  2024-04-24 11:29 ` [PATCH V2 3/3] tty: serial: uartps: Add support for uartps controller reset Manikanta Guntupalli
  2 siblings, 1 reply; 5+ messages in thread
From: Manikanta Guntupalli @ 2024-04-24 11:29 UTC (permalink / raw)
  To: git, gregkh, jirislaby, robh, krzk+dt, conor+dt, michal.simek,
	p.zabel, laurent.pinchart, radhey.shyam.pandey, parth.gajjar,
	u.kleine-koenig, tglx, julien.malik, ruanjinjie, linux-kernel,
	linux-serial, devicetree, linux-arm-kernel
  Cc: srinivas.goud, shubhrajyoti.datta, manion05gk,
	Manikanta Guntupalli, Krzysztof Kozlowski

Add optional reset device-tree property to the uartps controller.

Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli@amd.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
Changes for V2:
Added ack signature.
---
 Documentation/devicetree/bindings/serial/cdns,uart.yaml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Documentation/devicetree/bindings/serial/cdns,uart.yaml b/Documentation/devicetree/bindings/serial/cdns,uart.yaml
index 2129247d7c81..d7f047b0bf24 100644
--- a/Documentation/devicetree/bindings/serial/cdns,uart.yaml
+++ b/Documentation/devicetree/bindings/serial/cdns,uart.yaml
@@ -46,6 +46,9 @@ properties:
   power-domains:
     maxItems: 1
 
+  resets:
+    maxItems: 1
+
 required:
   - compatible
   - reg
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH V2 2/3] arm64: zynqmp: Add resets property for UART nodes
  2024-04-24 11:29 [PATCH V2 0/3] Add support for uartps controller reset Manikanta Guntupalli
  2024-04-24 11:29 ` [PATCH V2 1/3] dt-bindings: serial: cdsn,uart: Add optional reset property Manikanta Guntupalli
@ 2024-04-24 11:29 ` Manikanta Guntupalli
  2024-04-24 11:29 ` [PATCH V2 3/3] tty: serial: uartps: Add support for uartps controller reset Manikanta Guntupalli
  2 siblings, 0 replies; 5+ messages in thread
From: Manikanta Guntupalli @ 2024-04-24 11:29 UTC (permalink / raw)
  To: git, gregkh, jirislaby, robh, krzk+dt, conor+dt, michal.simek,
	p.zabel, laurent.pinchart, radhey.shyam.pandey, parth.gajjar,
	u.kleine-koenig, tglx, julien.malik, ruanjinjie, linux-kernel,
	linux-serial, devicetree, linux-arm-kernel
  Cc: srinivas.goud, shubhrajyoti.datta, manion05gk, Manikanta Guntupalli

Add resets property for UART0 and UART1 nodes

Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli@amd.com>
---
Changes for V2:
None.
---
 arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 25d20d803230..935504424ec6 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -906,6 +906,7 @@ uart0: serial@ff000000 {
 			reg = <0x0 0xff000000 0x0 0x1000>;
 			clock-names = "uart_clk", "pclk";
 			power-domains = <&zynqmp_firmware PD_UART_0>;
+			resets = <&zynqmp_reset ZYNQMP_RESET_UART0>;
 		};
 
 		uart1: serial@ff010000 {
@@ -917,6 +918,7 @@ uart1: serial@ff010000 {
 			reg = <0x0 0xff010000 0x0 0x1000>;
 			clock-names = "uart_clk", "pclk";
 			power-domains = <&zynqmp_firmware PD_UART_1>;
+			resets = <&zynqmp_reset ZYNQMP_RESET_UART1>;
 		};
 
 		usb0: usb@ff9d0000 {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH V2 3/3] tty: serial: uartps: Add support for uartps controller reset
  2024-04-24 11:29 [PATCH V2 0/3] Add support for uartps controller reset Manikanta Guntupalli
  2024-04-24 11:29 ` [PATCH V2 1/3] dt-bindings: serial: cdsn,uart: Add optional reset property Manikanta Guntupalli
  2024-04-24 11:29 ` [PATCH V2 2/3] arm64: zynqmp: Add resets property for UART nodes Manikanta Guntupalli
@ 2024-04-24 11:29 ` Manikanta Guntupalli
  2 siblings, 0 replies; 5+ messages in thread
From: Manikanta Guntupalli @ 2024-04-24 11:29 UTC (permalink / raw)
  To: git, gregkh, jirislaby, robh, krzk+dt, conor+dt, michal.simek,
	p.zabel, laurent.pinchart, radhey.shyam.pandey, parth.gajjar,
	u.kleine-koenig, tglx, julien.malik, ruanjinjie, linux-kernel,
	linux-serial, devicetree, linux-arm-kernel
  Cc: srinivas.goud, shubhrajyoti.datta, manion05gk, Manikanta Guntupalli

Add support for an optional reset for the uartps controller using
the reset driver. If the uartps node contains the "resets" property,
then cdns_uart_startup performs uartps controller non-pulse out of reset
and reset in exit path.

Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli@amd.com>
---
Changes for V2:
Remove check for reset_control_deassert, as reset_control_deassert
function internally has NULL check
---
 drivers/tty/serial/xilinx_uartps.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
index de3487206bcb..2acfcea403ce 100644
--- a/drivers/tty/serial/xilinx_uartps.c
+++ b/drivers/tty/serial/xilinx_uartps.c
@@ -25,6 +25,7 @@
 #include <linux/gpio.h>
 #include <linux/gpio/consumer.h>
 #include <linux/delay.h>
+#include <linux/reset.h>
 
 #define CDNS_UART_TTY_NAME	"ttyPS"
 #define CDNS_UART_NAME		"xuartps"
@@ -198,6 +199,7 @@ MODULE_PARM_DESC(rx_timeout, "Rx timeout, 1-255");
  * @gpiod_rts:		Pointer to the gpio descriptor
  * @rs485_tx_started:	RS485 tx state
  * @tx_timer:		Timer for tx
+ * @rstc:		Pointer to the reset control
  */
 struct cdns_uart {
 	struct uart_port	*port;
@@ -211,6 +213,7 @@ struct cdns_uart {
 	struct gpio_desc	*gpiod_rts;
 	bool			rs485_tx_started;
 	struct hrtimer		tx_timer;
+	struct reset_control	*rstc;
 };
 struct cdns_platform_data {
 	u32 quirks;
@@ -948,6 +951,10 @@ static int cdns_uart_startup(struct uart_port *port)
 
 	is_brk_support = cdns_uart->quirks & CDNS_UART_RXBS_SUPPORT;
 
+	ret = reset_control_deassert(cdns_uart->rstc);
+	if (ret)
+		return ret;
+
 	uart_port_lock_irqsave(port, &flags);
 
 	/* Disable the TX and RX */
@@ -1721,6 +1728,13 @@ static int cdns_uart_probe(struct platform_device *pdev)
 		dev_err(&pdev->dev, "clock name 'ref_clk' is deprecated.\n");
 	}
 
+	cdns_uart_data->rstc = devm_reset_control_get_optional_exclusive(&pdev->dev, NULL);
+	if (IS_ERR(cdns_uart_data->rstc)) {
+		rc = PTR_ERR(cdns_uart_data->rstc);
+		dev_err_probe(&pdev->dev, rc, "Cannot get UART reset\n");
+		goto err_out_unregister_driver;
+	}
+
 	rc = clk_prepare_enable(cdns_uart_data->pclk);
 	if (rc) {
 		dev_err(&pdev->dev, "Unable to enable pclk clock.\n");
@@ -1881,6 +1895,7 @@ static void cdns_uart_remove(struct platform_device *pdev)
 	if (console_port == port)
 		console_port = NULL;
 #endif
+	reset_control_assert(cdns_uart_data->rstc);
 
 	if (!--instances)
 		uart_unregister_driver(cdns_uart_data->cdns_uart_driver);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH V2 1/3] dt-bindings: serial: cdsn,uart: Add optional reset property
  2024-04-24 11:29 ` [PATCH V2 1/3] dt-bindings: serial: cdsn,uart: Add optional reset property Manikanta Guntupalli
@ 2024-04-24 19:18   ` Rob Herring
  0 siblings, 0 replies; 5+ messages in thread
From: Rob Herring @ 2024-04-24 19:18 UTC (permalink / raw)
  To: Manikanta Guntupalli
  Cc: git, gregkh, jirislaby, krzk+dt, conor+dt, michal.simek, p.zabel,
	laurent.pinchart, radhey.shyam.pandey, parth.gajjar,
	u.kleine-koenig, tglx, julien.malik, ruanjinjie, linux-kernel,
	linux-serial, devicetree, linux-arm-kernel, srinivas.goud,
	shubhrajyoti.datta, manion05gk, Krzysztof Kozlowski

On Wed, Apr 24, 2024 at 04:59:31PM +0530, Manikanta Guntupalli wrote:
> Add optional reset device-tree property to the uartps controller.

Typo in the subject.

> 
> Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli@amd.com>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
> Changes for V2:
> Added ack signature.
> ---
>  Documentation/devicetree/bindings/serial/cdns,uart.yaml | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/serial/cdns,uart.yaml b/Documentation/devicetree/bindings/serial/cdns,uart.yaml
> index 2129247d7c81..d7f047b0bf24 100644
> --- a/Documentation/devicetree/bindings/serial/cdns,uart.yaml
> +++ b/Documentation/devicetree/bindings/serial/cdns,uart.yaml
> @@ -46,6 +46,9 @@ properties:
>    power-domains:
>      maxItems: 1
>  
> +  resets:
> +    maxItems: 1
> +
>  required:
>    - compatible
>    - reg
> -- 
> 2.25.1
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-04-24 19:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-24 11:29 [PATCH V2 0/3] Add support for uartps controller reset Manikanta Guntupalli
2024-04-24 11:29 ` [PATCH V2 1/3] dt-bindings: serial: cdsn,uart: Add optional reset property Manikanta Guntupalli
2024-04-24 19:18   ` Rob Herring
2024-04-24 11:29 ` [PATCH V2 2/3] arm64: zynqmp: Add resets property for UART nodes Manikanta Guntupalli
2024-04-24 11:29 ` [PATCH V2 3/3] tty: serial: uartps: Add support for uartps controller reset Manikanta Guntupalli

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).