* [PATCH v4 1/7] dt-bindings: serial: Add bindings for the Amlogic Meson UARTs
  2017-06-09  9:49 [PATCH v4 0/7] tty/serial: meson_uart: add support for core clock handling Neil Armstrong
@ 2017-06-09  9:49 ` Neil Armstrong
  2017-06-09  9:49 ` [PATCH v4 2/7] tty/serial: meson_uart: update to stable bindings Neil Armstrong
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 21+ messages in thread
From: Neil Armstrong @ 2017-06-09  9:49 UTC (permalink / raw)
  To: linus-amlogic
From: Helmut Klein <hgkr.klein@gmail.com>
Add the documentation for the device tree binding of Amlogic Meson Serial UART.
Signed-off-by: Helmut Klein <hgkr.klein@gmail.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 .../bindings/serial/amlogic,meson-uart.txt         | 38 ++++++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/serial/amlogic,meson-uart.txt
diff --git a/Documentation/devicetree/bindings/serial/amlogic,meson-uart.txt b/Documentation/devicetree/bindings/serial/amlogic,meson-uart.txt
new file mode 100644
index 0000000..8ff65fa
--- /dev/null
+++ b/Documentation/devicetree/bindings/serial/amlogic,meson-uart.txt
@@ -0,0 +1,38 @@
+Amlogic Meson SoC UART Serial Interface
+=======================================
+
+The Amlogic Meson SoC UART Serial Interface is present on a large range
+of SoCs, and can be present either in the "Always-On" power domain or the
+"Everything-Else" power domain.
+
+The particularity of the "Always-On" Serial Interface is that the hardware
+is active since power-on and does not need any clock gating and is usable
+as very early serial console.
+
+Required properties:
+- compatible : compatible: value should be different for each SoC family as :
+	- Meson6 : "amlogic,meson6-uart"
+	- Meson8 : "amlogic,meson8-uart"
+	- Meson8b : "amlogic,meson8b-uart"
+	- GX (GXBB, GXL, GXM) : "amlogic,meson-gx-uart"
+	eventually followed by : "amlogic,meson-ao-uart" if this UART interface
+	is in the "Always-On" power domain.
+- reg : offset and length of the register set for the device.
+- interrupts : identifier to the device interrupt
+- clocks : a list of phandle + clock-specifier pairs, one for each
+	   entry in clock names.
+- clocks-names :
+   * "xtal" for external xtal clock identifier
+   * "pclk" for the bus core clock, either the clk81 clock or the gate clock
+   * "baud" for the source of the baudrate generator, can be either the xtal
+	or the pclk.
+
+e.g.
+uart_A: serial at 84c0 {
+	compatible = "amlogic,meson-gx-uart";
+	reg = <0x0 0x84c0 0x0 0x14>;
+	interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
+	/* Use xtal as baud rate clock source */
+	clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
+	clock-names = "xtal", "pclk", "baud";
+};
-- 
1.9.1
^ permalink raw reply related	[flat|nested] 21+ messages in thread* [PATCH v4 2/7] tty/serial: meson_uart: update to stable bindings
  2017-06-09  9:49 [PATCH v4 0/7] tty/serial: meson_uart: add support for core clock handling Neil Armstrong
  2017-06-09  9:49 ` [PATCH v4 1/7] dt-bindings: serial: Add bindings for the Amlogic Meson UARTs Neil Armstrong
@ 2017-06-09  9:49 ` Neil Armstrong
  2017-06-12  9:39   ` Jerome Brunet
  2017-06-12 12:45   ` Chris Moore
  2017-06-09  9:49 ` [PATCH v4 3/7] ARM64: dts: meson-gx: use stable UART bindings with correct gate clock Neil Armstrong
                   ` (4 subsequent siblings)
  6 siblings, 2 replies; 21+ messages in thread
From: Neil Armstrong @ 2017-06-09  9:49 UTC (permalink / raw)
  To: linus-amlogic
From: Helmut Klein <hgkr.klein@gmail.com>
This patch handle the stable UART bindings but also keeps compatibility
with the legacy non-stable bindings until all boards uses them.
Signed-off-by: Helmut Klein <hgkr.klein@gmail.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 drivers/tty/serial/meson_uart.c | 109 +++++++++++++++++++++++++++++++++++++---
 1 file changed, 103 insertions(+), 6 deletions(-)
diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
index 60f1679..d2c8136 100644
--- a/drivers/tty/serial/meson_uart.c
+++ b/drivers/tty/serial/meson_uart.c
@@ -579,8 +579,12 @@ static void meson_serial_early_console_write(struct console *co,
 	device->con->write = meson_serial_early_console_write;
 	return 0;
 }
+/* Legacy bindings, should be removed when no more used */
 OF_EARLYCON_DECLARE(meson, "amlogic,meson-uart",
 		    meson_serial_early_console_setup);
+/* Stable bindings */
+OF_EARLYCON_DECLARE(meson, "amlogic,meson-ao-uart",
+		    meson_serial_early_console_setup);
 
 #define MESON_SERIAL_CONSOLE	(&meson_serial_console)
 #else
@@ -595,11 +599,95 @@ static void meson_serial_early_console_write(struct console *co,
 	.cons		= MESON_SERIAL_CONSOLE,
 };
 
+/*
+ * This function gets clocks in the legacy non-stable DT bindings.
+ * This code will be remove once all the platforms switch to the
+ * new DT bindings.
+ */
+static int meson_uart_probe_clocks_legacy(struct platform_device *pdev,
+					  struct uart_port *port)
+{
+	struct clk *clk = NULL;
+	int ret;
+
+	clk = devm_clk_get(&pdev->dev, NULL);
+	if (IS_ERR(clk))
+		return PTR_ERR(clk);
+
+	ret = clk_prepare_enable(clk);
+	if (ret) {
+		dev_err(&pdev->dev, "couldn't enable clk\n");
+		return ret;
+	}
+
+	devm_add_action_or_reset(&pdev->dev,
+			(void(*)(void *))clk_disable_unprepare,
+			clk);
+
+	port->uartclk = clk_get_rate(clk);
+
+	return 0;
+}
+
+static int meson_uart_probe_clocks(struct platform_device *pdev,
+				   struct uart_port *port)
+{
+	struct clk *clk_xtal = NULL;
+	struct clk *clk_pclk = NULL;
+	struct clk *clk_baud = NULL;
+	int ret;
+
+	clk_pclk = devm_clk_get(&pdev->dev, "pclk");
+	if (IS_ERR(clk_pclk))
+		return PTR_ERR(clk_pclk);
+
+	clk_xtal = devm_clk_get(&pdev->dev, "xtal");
+	if (IS_ERR(clk_xtal))
+		return PTR_ERR(clk_xtal);
+
+	clk_baud = devm_clk_get(&pdev->dev, "baud");
+	if (IS_ERR(clk_xtal))
+		return PTR_ERR(clk_baud);
+
+	ret = clk_prepare_enable(clk_pclk);
+	if (ret) {
+		dev_err(&pdev->dev, "couldn't enable pclk\n");
+		return ret;
+	}
+
+	devm_add_action_or_reset(&pdev->dev,
+			(void(*)(void *))clk_disable_unprepare,
+			clk_pclk);
+
+	ret = clk_prepare_enable(clk_xtal);
+	if (ret) {
+		dev_err(&pdev->dev, "couldn't enable xtal\n");
+		return ret;
+	}
+
+	devm_add_action_or_reset(&pdev->dev,
+			(void(*)(void *))clk_disable_unprepare,
+			clk_xtal);
+
+	ret = clk_prepare_enable(clk_baud);
+	if (ret) {
+		dev_err(&pdev->dev, "couldn't enable baud clk\n");
+		return ret;
+	}
+
+	devm_add_action_or_reset(&pdev->dev,
+			(void(*)(void *))clk_disable_unprepare,
+			clk_baud);
+
+	port->uartclk = clk_get_rate(clk_baud);
+
+	return 0;
+}
+
 static int meson_uart_probe(struct platform_device *pdev)
 {
 	struct resource *res_mem, *res_irq;
 	struct uart_port *port;
-	struct clk *clk;
 	int ret = 0;
 
 	if (pdev->dev.of_node)
@@ -625,11 +713,15 @@ static int meson_uart_probe(struct platform_device *pdev)
 	if (!port)
 		return -ENOMEM;
 
-	clk = clk_get(&pdev->dev, NULL);
-	if (IS_ERR(clk))
-		return PTR_ERR(clk);
+	/* Use legacy way until all platforms switch to new bindings */
+	if (of_device_is_compatible(pdev->dev.of_node, "amlogic,meson-uart"))
+		ret = meson_uart_probe_clocks_legacy(pdev, port);
+	else
+		ret = meson_uart_probe_clocks(pdev, port);
+
+	if (ret)
+		return ret;
 
-	port->uartclk = clk_get_rate(clk);
 	port->iotype = UPIO_MEM;
 	port->mapbase = res_mem->start;
 	port->irq = res_irq->start;
@@ -668,9 +760,14 @@ static int meson_uart_remove(struct platform_device *pdev)
 	return 0;
 }
 
-
 static const struct of_device_id meson_uart_dt_match[] = {
+	/* Legacy bindings, should be removed when no more used */
 	{ .compatible = "amlogic,meson-uart" },
+	/* Stable bindings */
+	{ .compatible = "amlogic,meson6-uart" },
+	{ .compatible = "amlogic,meson8-uart" },
+	{ .compatible = "amlogic,meson8b-uart" },
+	{ .compatible = "amlogic,meson-gx-uart" },
 	{ /* sentinel */ },
 };
 MODULE_DEVICE_TABLE(of, meson_uart_dt_match);
-- 
1.9.1
^ permalink raw reply related	[flat|nested] 21+ messages in thread* [PATCH v4 2/7] tty/serial: meson_uart: update to stable bindings
  2017-06-09  9:49 ` [PATCH v4 2/7] tty/serial: meson_uart: update to stable bindings Neil Armstrong
@ 2017-06-12  9:39   ` Jerome Brunet
  2017-06-12 12:48     ` Neil Armstrong
  2017-06-12 12:45   ` Chris Moore
  1 sibling, 1 reply; 21+ messages in thread
From: Jerome Brunet @ 2017-06-12  9:39 UTC (permalink / raw)
  To: linus-amlogic
On Fri, 2017-06-09 at 11:49 +0200, Neil Armstrong wrote:
> From: Helmut Klein <hgkr.klein@gmail.com>
> 
> This patch handle the stable UART bindings but also keeps compatibility
> with the legacy non-stable bindings until all boards uses them.
> 
> Signed-off-by: Helmut Klein <hgkr.klein@gmail.com>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
> ?drivers/tty/serial/meson_uart.c | 109 +++++++++++++++++++++++++++++++++++++
> ---
> ?1 file changed, 103 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
> index 60f1679..d2c8136 100644
> --- a/drivers/tty/serial/meson_uart.c
> +++ b/drivers/tty/serial/meson_uart.c
> @@ -579,8 +579,12 @@ static void meson_serial_early_console_write(struct
> console *co,
> ?	device->con->write = meson_serial_early_console_write;
> ?	return 0;
> ?}
> +/* Legacy bindings, should be removed when no more used */
> ?OF_EARLYCON_DECLARE(meson, "amlogic,meson-uart",
> ?		????meson_serial_early_console_setup);
> +/* Stable bindings */
> +OF_EARLYCON_DECLARE(meson, "amlogic,meson-ao-uart",
> +		????meson_serial_early_console_setup);
> ?
> ?#define MESON_SERIAL_CONSOLE	(&meson_serial_console)
> ?#else
> @@ -595,11 +599,95 @@ static void meson_serial_early_console_write(struct
> console *co,
> ?	.cons		= MESON_SERIAL_CONSOLE,
> ?};
> ?
> +/*
> + * This function gets clocks in the legacy non-stable DT bindings.
> + * This code will be remove once all the platforms switch to the
> + * new DT bindings.
> + */
> +static int meson_uart_probe_clocks_legacy(struct platform_device *pdev,
> +					??struct uart_port *port)
> +{
> +	struct clk *clk = NULL;
> +	int ret;
> +
> +	clk = devm_clk_get(&pdev->dev, NULL);
> +	if (IS_ERR(clk))
> +		return PTR_ERR(clk);
> +
> +	ret = clk_prepare_enable(clk);
> +	if (ret) {
> +		dev_err(&pdev->dev, "couldn't enable clk\n");
> +		return ret;
> +	}
> +
> +	devm_add_action_or_reset(&pdev->dev,
> +			(void(*)(void *))clk_disable_unprepare,
> +			clk);
> +
> +	port->uartclk = clk_get_rate(clk);
> +
> +	return 0;
> +}
> +
> +static int meson_uart_probe_clocks(struct platform_device *pdev,
> +				???struct uart_port *port)
> +{
> +	struct clk *clk_xtal = NULL;
> +	struct clk *clk_pclk = NULL;
> +	struct clk *clk_baud = NULL;
> +	int ret;
> +
> +	clk_pclk = devm_clk_get(&pdev->dev, "pclk");
> +	if (IS_ERR(clk_pclk))
> +		return PTR_ERR(clk_pclk);
> +
> +	clk_xtal = devm_clk_get(&pdev->dev, "xtal");
> +	if (IS_ERR(clk_xtal))
> +		return PTR_ERR(clk_xtal);
> +
> +	clk_baud = devm_clk_get(&pdev->dev, "baud");
> +	if (IS_ERR(clk_xtal))
> +		return PTR_ERR(clk_baud);
> +
> +	ret = clk_prepare_enable(clk_pclk);
> +	if (ret) {
> +		dev_err(&pdev->dev, "couldn't enable pclk\n");
> +		return ret;
> +	}
> +
> +	devm_add_action_or_reset(&pdev->dev,
> +			(void(*)(void *))clk_disable_unprepare,
> +			clk_pclk);
> +
> +	ret = clk_prepare_enable(clk_xtal);
> +	if (ret) {
> +		dev_err(&pdev->dev, "couldn't enable xtal\n");
> +		return ret;
> +	}
> +
> +	devm_add_action_or_reset(&pdev->dev,
> +			(void(*)(void *))clk_disable_unprepare,
> +			clk_xtal);
> +
> +	ret = clk_prepare_enable(clk_baud);
> +	if (ret) {
> +		dev_err(&pdev->dev, "couldn't enable baud clk\n");
> +		return ret;
> +	}
> +
> +	devm_add_action_or_reset(&pdev->dev,
> +			(void(*)(void *))clk_disable_unprepare,
> +			clk_baud);
It's not critical but there is a lot of duplication here. Should we add an
helper function doing "get, prepare_enable, add_reset_action" with the clock
name as argument ?
Apart from this:
Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
> +
> +	port->uartclk = clk_get_rate(clk_baud);
This was already like this, but I wonder if we should store the *clk instead of
caching the rate. Then call get_rate when appropriate
Could be done in separate patch.
> +
> +	return 0;
> +}
> +
> ?static int meson_uart_probe(struct platform_device *pdev)
> ?{
> ?	struct resource *res_mem, *res_irq;
> ?	struct uart_port *port;
> -	struct clk *clk;
> ?	int ret = 0;
> ?
> ?	if (pdev->dev.of_node)
> @@ -625,11 +713,15 @@ static int meson_uart_probe(struct platform_device
> *pdev)
> ?	if (!port)
> ?		return -ENOMEM;
> ?
> -	clk = clk_get(&pdev->dev, NULL);
> -	if (IS_ERR(clk))
> -		return PTR_ERR(clk);
> +	/* Use legacy way until all platforms switch to new bindings */
> +	if (of_device_is_compatible(pdev->dev.of_node, "amlogic,meson-uart"))
> +		ret = meson_uart_probe_clocks_legacy(pdev, port);
> +	else
> +		ret = meson_uart_probe_clocks(pdev, port);
> +
> +	if (ret)
> +		return ret;
> ?
> -	port->uartclk = clk_get_rate(clk);
> ?	port->iotype = UPIO_MEM;
> ?	port->mapbase = res_mem->start;
> ?	port->irq = res_irq->start;
> @@ -668,9 +760,14 @@ static int meson_uart_remove(struct platform_device
> *pdev)
> ?	return 0;
> ?}
> ?
> -
> ?static const struct of_device_id meson_uart_dt_match[] = {
> +	/* Legacy bindings, should be removed when no more used */
> ?	{ .compatible = "amlogic,meson-uart" },
> +	/* Stable bindings */
> +	{ .compatible = "amlogic,meson6-uart" },
> +	{ .compatible = "amlogic,meson8-uart" },
> +	{ .compatible = "amlogic,meson8b-uart" },
> +	{ .compatible = "amlogic,meson-gx-uart" },
> ?	{ /* sentinel */ },
> ?};
> ?MODULE_DEVICE_TABLE(of, meson_uart_dt_match);
^ permalink raw reply	[flat|nested] 21+ messages in thread* [PATCH v4 2/7] tty/serial: meson_uart: update to stable bindings
  2017-06-12  9:39   ` Jerome Brunet
@ 2017-06-12 12:48     ` Neil Armstrong
  0 siblings, 0 replies; 21+ messages in thread
From: Neil Armstrong @ 2017-06-12 12:48 UTC (permalink / raw)
  To: linus-amlogic
On 06/12/2017 11:39 AM, Jerome Brunet wrote:
> On Fri, 2017-06-09 at 11:49 +0200, Neil Armstrong wrote:
>> From: Helmut Klein <hgkr.klein@gmail.com>
>>
>> This patch handle the stable UART bindings but also keeps compatibility
>> with the legacy non-stable bindings until all boards uses them.
>>
>> Signed-off-by: Helmut Klein <hgkr.klein@gmail.com>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
>> ---
>>  drivers/tty/serial/meson_uart.c | 109 +++++++++++++++++++++++++++++++++++++
>> ---
>>  1 file changed, 103 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
>> index 60f1679..d2c8136 100644
>> --- a/drivers/tty/serial/meson_uart.c
>> +++ b/drivers/tty/serial/meson_uart.c
>> @@ -579,8 +579,12 @@ static void meson_serial_early_console_write(struct
>> console *co,
>>  	device->con->write = meson_serial_early_console_write;
>>  	return 0;
>>  }
>> +/* Legacy bindings, should be removed when no more used */
>>  OF_EARLYCON_DECLARE(meson, "amlogic,meson-uart",
>>  		    meson_serial_early_console_setup);
>> +/* Stable bindings */
>> +OF_EARLYCON_DECLARE(meson, "amlogic,meson-ao-uart",
>> +		    meson_serial_early_console_setup);
>>  
>>  #define MESON_SERIAL_CONSOLE	(&meson_serial_console)
>>  #else
>> @@ -595,11 +599,95 @@ static void meson_serial_early_console_write(struct
>> console *co,
>>  	.cons		= MESON_SERIAL_CONSOLE,
>>  };
>>  
>> +/*
>> + * This function gets clocks in the legacy non-stable DT bindings.
>> + * This code will be remove once all the platforms switch to the
>> + * new DT bindings.
>> + */
>> +static int meson_uart_probe_clocks_legacy(struct platform_device *pdev,
>> +					  struct uart_port *port)
>> +{
>> +	struct clk *clk = NULL;
>> +	int ret;
>> +
>> +	clk = devm_clk_get(&pdev->dev, NULL);
>> +	if (IS_ERR(clk))
>> +		return PTR_ERR(clk);
>> +
>> +	ret = clk_prepare_enable(clk);
>> +	if (ret) {
>> +		dev_err(&pdev->dev, "couldn't enable clk\n");
>> +		return ret;
>> +	}
>> +
>> +	devm_add_action_or_reset(&pdev->dev,
>> +			(void(*)(void *))clk_disable_unprepare,
>> +			clk);
>> +
>> +	port->uartclk = clk_get_rate(clk);
>> +
>> +	return 0;
>> +}
>> +
>> +static int meson_uart_probe_clocks(struct platform_device *pdev,
>> +				   struct uart_port *port)
>> +{
>> +	struct clk *clk_xtal = NULL;
>> +	struct clk *clk_pclk = NULL;
>> +	struct clk *clk_baud = NULL;
>> +	int ret;
>> +
>> +	clk_pclk = devm_clk_get(&pdev->dev, "pclk");
>> +	if (IS_ERR(clk_pclk))
>> +		return PTR_ERR(clk_pclk);
>> +
>> +	clk_xtal = devm_clk_get(&pdev->dev, "xtal");
>> +	if (IS_ERR(clk_xtal))
>> +		return PTR_ERR(clk_xtal);
>> +
>> +	clk_baud = devm_clk_get(&pdev->dev, "baud");
>> +	if (IS_ERR(clk_xtal))
>> +		return PTR_ERR(clk_baud);
>> +
>> +	ret = clk_prepare_enable(clk_pclk);
>> +	if (ret) {
>> +		dev_err(&pdev->dev, "couldn't enable pclk\n");
>> +		return ret;
>> +	}
>> +
>> +	devm_add_action_or_reset(&pdev->dev,
>> +			(void(*)(void *))clk_disable_unprepare,
>> +			clk_pclk);
>> +
>> +	ret = clk_prepare_enable(clk_xtal);
>> +	if (ret) {
>> +		dev_err(&pdev->dev, "couldn't enable xtal\n");
>> +		return ret;
>> +	}
>> +
>> +	devm_add_action_or_reset(&pdev->dev,
>> +			(void(*)(void *))clk_disable_unprepare,
>> +			clk_xtal);
>> +
>> +	ret = clk_prepare_enable(clk_baud);
>> +	if (ret) {
>> +		dev_err(&pdev->dev, "couldn't enable baud clk\n");
>> +		return ret;
>> +	}
>> +
>> +	devm_add_action_or_reset(&pdev->dev,
>> +			(void(*)(void *))clk_disable_unprepare,
>> +			clk_baud);
> 
> It's not critical but there is a lot of duplication here. Should we add an
> helper function doing "get, prepare_enable, add_reset_action" with the clock
> name as argument ?
Yep, will do.
> 
> Apart from this:
> 
> Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
> 
>> +
>> +	port->uartclk = clk_get_rate(clk_baud);
> 
> This was already like this, but I wonder if we should store the *clk instead of
> caching the rate. Then call get_rate when appropriate
> 
> Could be done in separate patch.
Well, this is the limit of the TTY framework, I'll leave it like this until we find
a good way to pass a context structure with the proper baud clock pointer and
don't rely anymore on the tty structure for this.
> 
>> +
>> +	return 0;
>> +}
>> +
>>  static int meson_uart_probe(struct platform_device *pdev)
>>  {
>>  	struct resource *res_mem, *res_irq;
>>  	struct uart_port *port;
>> -	struct clk *clk;
>>  	int ret = 0;
>>  
>>  	if (pdev->dev.of_node)
>> @@ -625,11 +713,15 @@ static int meson_uart_probe(struct platform_device
>> *pdev)
>>  	if (!port)
>>  		return -ENOMEM;
>>  
>> -	clk = clk_get(&pdev->dev, NULL);
>> -	if (IS_ERR(clk))
>> -		return PTR_ERR(clk);
>> +	/* Use legacy way until all platforms switch to new bindings */
>> +	if (of_device_is_compatible(pdev->dev.of_node, "amlogic,meson-uart"))
>> +		ret = meson_uart_probe_clocks_legacy(pdev, port);
>> +	else
>> +		ret = meson_uart_probe_clocks(pdev, port);
>> +
>> +	if (ret)
>> +		return ret;
>>  
>> -	port->uartclk = clk_get_rate(clk);
>>  	port->iotype = UPIO_MEM;
>>  	port->mapbase = res_mem->start;
>>  	port->irq = res_irq->start;
>> @@ -668,9 +760,14 @@ static int meson_uart_remove(struct platform_device
>> *pdev)
>>  	return 0;
>>  }
>>  
>> -
>>  static const struct of_device_id meson_uart_dt_match[] = {
>> +	/* Legacy bindings, should be removed when no more used */
>>  	{ .compatible = "amlogic,meson-uart" },
>> +	/* Stable bindings */
>> +	{ .compatible = "amlogic,meson6-uart" },
>> +	{ .compatible = "amlogic,meson8-uart" },
>> +	{ .compatible = "amlogic,meson8b-uart" },
>> +	{ .compatible = "amlogic,meson-gx-uart" },
>>  	{ /* sentinel */ },
>>  };
>>  MODULE_DEVICE_TABLE(of, meson_uart_dt_match);
> 
Thanks,
Neil
^ permalink raw reply	[flat|nested] 21+ messages in thread
* [PATCH v4 2/7] tty/serial: meson_uart: update to stable bindings
  2017-06-09  9:49 ` [PATCH v4 2/7] tty/serial: meson_uart: update to stable bindings Neil Armstrong
  2017-06-12  9:39   ` Jerome Brunet
@ 2017-06-12 12:45   ` Chris Moore
  2017-06-12 12:48     ` Neil Armstrong
  1 sibling, 1 reply; 21+ messages in thread
From: Chris Moore @ 2017-06-12 12:45 UTC (permalink / raw)
  To: linus-amlogic
Le 09/06/2017 ? 11:49, Neil Armstrong a ?crit :
> From: Helmut Klein <hgkr.klein@gmail.com>
>
> This patch handle the stable UART bindings but also keeps compatibility
> with the legacy non-stable bindings until all boards uses them.
>
> Signed-off-by: Helmut Klein <hgkr.klein@gmail.com>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
>   drivers/tty/serial/meson_uart.c | 109 +++++++++++++++++++++++++++++++++++++---
>   1 file changed, 103 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
> index 60f1679..d2c8136 100644
> --- a/drivers/tty/serial/meson_uart.c
> +++ b/drivers/tty/serial/meson_uart.c
[snip]
> +static int meson_uart_probe_clocks(struct platform_device *pdev,
> +				   struct uart_port *port)
> +{
> +	struct clk *clk_xtal = NULL;
> +	struct clk *clk_pclk = NULL;
> +	struct clk *clk_baud = NULL;
> +	int ret;
> +
> +	clk_pclk = devm_clk_get(&pdev->dev, "pclk");
> +	if (IS_ERR(clk_pclk))
> +		return PTR_ERR(clk_pclk);
> +
> +	clk_xtal = devm_clk_get(&pdev->dev, "xtal");
> +	if (IS_ERR(clk_xtal))
> +		return PTR_ERR(clk_xtal);
> +
> +	clk_baud = devm_clk_get(&pdev->dev, "baud");
> +	if (IS_ERR(clk_xtal))
Copy/paste error: s/clk_xtal/clk_baud/
> +		return PTR_ERR(clk_baud);
^ permalink raw reply	[flat|nested] 21+ messages in thread* [PATCH v4 2/7] tty/serial: meson_uart: update to stable bindings
  2017-06-12 12:45   ` Chris Moore
@ 2017-06-12 12:48     ` Neil Armstrong
  0 siblings, 0 replies; 21+ messages in thread
From: Neil Armstrong @ 2017-06-12 12:48 UTC (permalink / raw)
  To: linus-amlogic
On 06/12/2017 02:45 PM, Chris Moore wrote:
> Le 09/06/2017 ? 11:49, Neil Armstrong a ?crit :
>> From: Helmut Klein <hgkr.klein@gmail.com>
>>
>> This patch handle the stable UART bindings but also keeps compatibility
>> with the legacy non-stable bindings until all boards uses them.
>>
>> Signed-off-by: Helmut Klein <hgkr.klein@gmail.com>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
>> ---
>>   drivers/tty/serial/meson_uart.c | 109 +++++++++++++++++++++++++++++++++++++---
>>   1 file changed, 103 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
>> index 60f1679..d2c8136 100644
>> --- a/drivers/tty/serial/meson_uart.c
>> +++ b/drivers/tty/serial/meson_uart.c
> 
> [snip]
> 
>> +static int meson_uart_probe_clocks(struct platform_device *pdev,
>> +                   struct uart_port *port)
>> +{
>> +    struct clk *clk_xtal = NULL;
>> +    struct clk *clk_pclk = NULL;
>> +    struct clk *clk_baud = NULL;
>> +    int ret;
>> +
>> +    clk_pclk = devm_clk_get(&pdev->dev, "pclk");
>> +    if (IS_ERR(clk_pclk))
>> +        return PTR_ERR(clk_pclk);
>> +
>> +    clk_xtal = devm_clk_get(&pdev->dev, "xtal");
>> +    if (IS_ERR(clk_xtal))
>> +        return PTR_ERR(clk_xtal);
>> +
>> +    clk_baud = devm_clk_get(&pdev->dev, "baud");
>> +    if (IS_ERR(clk_xtal))
> 
> Copy/paste error: s/clk_xtal/clk_baud/
> 
>> +        return PTR_ERR(clk_baud);
> 
Good catch,
Thanks !
Neil
^ permalink raw reply	[flat|nested] 21+ messages in thread
* [PATCH v4 3/7] ARM64: dts: meson-gx: use stable UART bindings with correct gate clock
  2017-06-09  9:49 [PATCH v4 0/7] tty/serial: meson_uart: add support for core clock handling Neil Armstrong
  2017-06-09  9:49 ` [PATCH v4 1/7] dt-bindings: serial: Add bindings for the Amlogic Meson UARTs Neil Armstrong
  2017-06-09  9:49 ` [PATCH v4 2/7] tty/serial: meson_uart: update to stable bindings Neil Armstrong
@ 2017-06-09  9:49 ` Neil Armstrong
  2017-06-12  9:40   ` Jerome Brunet
  2017-06-09  9:49 ` [PATCH v4 4/7] ARM: dts: meson: use meson6 UART compatible like other nodes Neil Armstrong
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 21+ messages in thread
From: Neil Armstrong @ 2017-06-09  9:49 UTC (permalink / raw)
  To: linus-amlogic
From: Helmut Klein <hgkr.klein@gmail.com>
This patch switches to the stable UART bindings but also add the correct
gate clock to the non-AO UART nodes for GXBB and GXL SoCs.
Signed-off-by: Helmut Klein <hgkr.klein@gmail.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 arch/arm64/boot/dts/amlogic/meson-gx.dtsi   | 12 +++++-------
 arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 25 +++++++++++++++++++++++++
 arch/arm64/boot/dts/amlogic/meson-gxl.dtsi  | 25 +++++++++++++++++++++++++
 3 files changed, 55 insertions(+), 7 deletions(-)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
index 436b875..d2b8d52 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -225,7 +225,7 @@
 			};
 
 			uart_A: serial at 84c0 {
-				compatible = "amlogic,meson-uart";
+				compatible = "amlogic,meson-gx-uart";
 				reg = <0x0 0x84c0 0x0 0x14>;
 				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
 				clocks = <&xtal>;
@@ -233,7 +233,7 @@
 			};
 
 			uart_B: serial at 84dc {
-				compatible = "amlogic,meson-uart";
+				compatible = "amlogic,meson-gx-uart";
 				reg = <0x0 0x84dc 0x0 0x14>;
 				interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
 				clocks = <&xtal>;
@@ -279,7 +279,7 @@
 			};
 
 			uart_C: serial at 8700 {
-				compatible = "amlogic,meson-uart";
+				compatible = "amlogic,meson-gx-uart";
 				reg = <0x0 0x8700 0x0 0x14>;
 				interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
 				clocks = <&xtal>;
@@ -366,18 +366,16 @@
 			};
 
 			uart_AO: serial at 4c0 {
-				compatible = "amlogic,meson-uart";
+				compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
 				reg = <0x0 0x004c0 0x0 0x14>;
 				interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
-				clocks = <&xtal>;
 				status = "disabled";
 			};
 
 			uart_AO_B: serial at 4e0 {
-				compatible = "amlogic,meson-uart";
+				compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
 				reg = <0x0 0x004e0 0x0 0x14>;
 				interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
-				clocks = <&xtal>;
 				status = "disabled";
 			};
 
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index dbd300f..1ae8da7 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -675,6 +675,31 @@
 	clocks = <&clkc CLKID_SPI>;
 };
 
+&uart_A {
+	clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
+	clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_AO {
+	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+	clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_AO_B {
+	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+	clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_B {
+	clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
+	clock-names = "xtal", "core", "baud";
+};
+
+&uart_C {
+	clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
+	clock-names = "xtal", "core", "baud";
+};
+
 &vpu {
 	compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu";
 };
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index 4dfc22b..0c601f8 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -616,6 +616,31 @@
 	clocks = <&clkc CLKID_SPI>;
 };
 
+&uart_A {
+	clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
+	clock-names = "xtal", "core", "baud";
+};
+
+&uart_AO {
+	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+	clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_AO_B {
+	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+	clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_B {
+	clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
+	clock-names = "xtal", "core", "baud";
+};
+
+&uart_C {
+	clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
+	clock-names = "xtal", "core", "baud";
+};
+
 &vpu {
 	compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu";
 };
-- 
1.9.1
^ permalink raw reply related	[flat|nested] 21+ messages in thread* [PATCH v4 3/7] ARM64: dts: meson-gx: use stable UART bindings with correct gate clock
  2017-06-09  9:49 ` [PATCH v4 3/7] ARM64: dts: meson-gx: use stable UART bindings with correct gate clock Neil Armstrong
@ 2017-06-12  9:40   ` Jerome Brunet
  0 siblings, 0 replies; 21+ messages in thread
From: Jerome Brunet @ 2017-06-12  9:40 UTC (permalink / raw)
  To: linus-amlogic
On Fri, 2017-06-09 at 11:49 +0200, Neil Armstrong wrote:
> From: Helmut Klein <hgkr.klein@gmail.com>
> 
> This patch switches to the stable UART bindings but also add the correct
> gate clock to the non-AO UART nodes for GXBB and GXL SoCs.
> 
> Signed-off-by: Helmut Klein <hgkr.klein@gmail.com>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Looks Good
Acked-by: Jerome Brunet <jbrunet@baylibre.com>
> ---
> ?arch/arm64/boot/dts/amlogic/meson-gx.dtsi???| 12 +++++-------
> ?arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 25 +++++++++++++++++++++++++
> ?arch/arm64/boot/dts/amlogic/meson-gxl.dtsi??| 25 +++++++++++++++++++++++++
> ?3 files changed, 55 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
> b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
> index 436b875..d2b8d52 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
> @@ -225,7 +225,7 @@
> ?			};
> ?
> ?			uart_A: serial at 84c0 {
> -				compatible = "amlogic,meson-uart";
> +				compatible = "amlogic,meson-gx-uart";
> ?				reg = <0x0 0x84c0 0x0 0x14>;
> ?				interrupts = <GIC_SPI 26
> IRQ_TYPE_EDGE_RISING>;
> ?				clocks = <&xtal>;
> @@ -233,7 +233,7 @@
> ?			};
> ?
> ?			uart_B: serial at 84dc {
> -				compatible = "amlogic,meson-uart";
> +				compatible = "amlogic,meson-gx-uart";
> ?				reg = <0x0 0x84dc 0x0 0x14>;
> ?				interrupts = <GIC_SPI 75
> IRQ_TYPE_EDGE_RISING>;
> ?				clocks = <&xtal>;
> @@ -279,7 +279,7 @@
> ?			};
> ?
> ?			uart_C: serial at 8700 {
> -				compatible = "amlogic,meson-uart";
> +				compatible = "amlogic,meson-gx-uart";
> ?				reg = <0x0 0x8700 0x0 0x14>;
> ?				interrupts = <GIC_SPI 93
> IRQ_TYPE_EDGE_RISING>;
> ?				clocks = <&xtal>;
> @@ -366,18 +366,16 @@
> ?			};
> ?
> ?			uart_AO: serial at 4c0 {
> -				compatible = "amlogic,meson-uart";
> +				compatible = "amlogic,meson-gx-uart",
> "amlogic,meson-ao-uart";
> ?				reg = <0x0 0x004c0 0x0 0x14>;
> ?				interrupts = <GIC_SPI 193
> IRQ_TYPE_EDGE_RISING>;
> -				clocks = <&xtal>;
> ?				status = "disabled";
> ?			};
> ?
> ?			uart_AO_B: serial at 4e0 {
> -				compatible = "amlogic,meson-uart";
> +				compatible = "amlogic,meson-gx-uart",
> "amlogic,meson-ao-uart";
> ?				reg = <0x0 0x004e0 0x0 0x14>;
> ?				interrupts = <GIC_SPI 197
> IRQ_TYPE_EDGE_RISING>;
> -				clocks = <&xtal>;
> ?				status = "disabled";
> ?			};
> ?
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
> b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
> index dbd300f..1ae8da7 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
> @@ -675,6 +675,31 @@
> ?	clocks = <&clkc CLKID_SPI>;
> ?};
> ?
> +&uart_A {
> +	clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
> +	clock-names = "xtal", "pclk", "baud";
> +};
> +
> +&uart_AO {
> +	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
> +	clock-names = "xtal", "pclk", "baud";
> +};
> +
> +&uart_AO_B {
> +	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
> +	clock-names = "xtal", "pclk", "baud";
> +};
> +
> +&uart_B {
> +	clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
> +	clock-names = "xtal", "core", "baud";
> +};
> +
> +&uart_C {
> +	clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
> +	clock-names = "xtal", "core", "baud";
> +};
> +
> ?&vpu {
> ?	compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu";
> ?};
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
> b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
> index 4dfc22b..0c601f8 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
> @@ -616,6 +616,31 @@
> ?	clocks = <&clkc CLKID_SPI>;
> ?};
> ?
> +&uart_A {
> +	clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
> +	clock-names = "xtal", "core", "baud";
> +};
> +
> +&uart_AO {
> +	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
> +	clock-names = "xtal", "pclk", "baud";
> +};
> +
> +&uart_AO_B {
> +	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
> +	clock-names = "xtal", "pclk", "baud";
> +};
> +
> +&uart_B {
> +	clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
> +	clock-names = "xtal", "core", "baud";
> +};
> +
> +&uart_C {
> +	clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
> +	clock-names = "xtal", "core", "baud";
> +};
> +
> ?&vpu {
> ?	compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu";
> ?};
^ permalink raw reply	[flat|nested] 21+ messages in thread
* [PATCH v4 4/7] ARM: dts: meson: use meson6 UART compatible like other nodes
  2017-06-09  9:49 [PATCH v4 0/7] tty/serial: meson_uart: add support for core clock handling Neil Armstrong
                   ` (2 preceding siblings ...)
  2017-06-09  9:49 ` [PATCH v4 3/7] ARM64: dts: meson-gx: use stable UART bindings with correct gate clock Neil Armstrong
@ 2017-06-09  9:49 ` Neil Armstrong
  2017-06-09  9:49 ` [PATCH v4 5/7] ARM: dts: meson6: switch to new bindings for UART nodes Neil Armstrong
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 21+ messages in thread
From: Neil Armstrong @ 2017-06-09  9:49 UTC (permalink / raw)
  To: linus-amlogic
The UART bindings needs specifying a SoC family, use the meson6 family
for the UART nodes like the other nodes.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 arch/arm/boot/dts/meson.dtsi | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boot/dts/meson.dtsi b/arch/arm/boot/dts/meson.dtsi
index 8d9c369..ecc9330 100644
--- a/arch/arm/boot/dts/meson.dtsi
+++ b/arch/arm/boot/dts/meson.dtsi
@@ -79,14 +79,14 @@
 			ranges = <0x0 0xc1100000 0x200000>;
 
 			uart_A: serial at 84c0 {
-				compatible = "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart";
 				reg = <0x84c0 0x18>;
 				interrupts = <0 26 1>;
 				status = "disabled";
 			};
 
 			uart_B: serial at 84dc {
-				compatible = "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart";
 				reg = <0x84dc 0x18>;
 				interrupts = <0 75 1>;
 				status = "disabled";
@@ -102,7 +102,7 @@
 			};
 
 			uart_C: serial at 8700 {
-				compatible = "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart";
 				reg = <0x8700 0x18>;
 				interrupts = <0 93 1>;
 				status = "disabled";
@@ -153,7 +153,7 @@
 			};
 
 			uart_AO: serial at 4c0 {
-				compatible = "amlogic,meson-uart";
+				compatible = "amlogic,meson6-uart", "amlogic,meson-ao-uart";
 				reg = <0x4c0 0x18>;
 				interrupts = <0 90 1>;
 				status = "disabled";
-- 
1.9.1
^ permalink raw reply related	[flat|nested] 21+ messages in thread* [PATCH v4 5/7] ARM: dts: meson6: switch to new bindings for UART nodes
  2017-06-09  9:49 [PATCH v4 0/7] tty/serial: meson_uart: add support for core clock handling Neil Armstrong
                   ` (3 preceding siblings ...)
  2017-06-09  9:49 ` [PATCH v4 4/7] ARM: dts: meson: use meson6 UART compatible like other nodes Neil Armstrong
@ 2017-06-09  9:49 ` Neil Armstrong
  2017-06-12  9:42   ` Jerome Brunet
  2017-06-09  9:49 ` [PATCH v4 6/7] ARM: dts: meson8: " Neil Armstrong
  2017-06-09  9:49 ` [PATCH v4 7/7] ARM: dts: meson8b: " Neil Armstrong
  6 siblings, 1 reply; 21+ messages in thread
From: Neil Armstrong @ 2017-06-09  9:49 UTC (permalink / raw)
  To: linus-amlogic
Switch to the stable UART bindings by adding a XTAL node and using the
proper compatible strings.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 arch/arm/boot/dts/meson6.dtsi | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
diff --git a/arch/arm/boot/dts/meson6.dtsi b/arch/arm/boot/dts/meson6.dtsi
index b0fc91f..a334fbe 100644
--- a/arch/arm/boot/dts/meson6.dtsi
+++ b/arch/arm/boot/dts/meson6.dtsi
@@ -70,9 +70,37 @@
 		};
 	};
 
+	xtal: xtal-clk {
+		compatible = "fixed-clock";
+		clock-frequency = <24000000>;
+		clock-output-names = "xtal";
+		#clock-cells = <0>;
+	};
+
 	clk81: clk at 0 {
 		#clock-cells = <0>;
 		compatible = "fixed-clock";
 		clock-frequency = <200000000>;
 	};
 }; /* end of / */
+
+
+&uart_AO {
+	clocks = <&xtal>, <&clk81>, <&clk81>;
+	clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_A {
+	clocks = <&xtal>, <&clk81>, <&clk81>;
+	clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_B {
+	clocks = <&xtal>, <&clk81>, <&clk81>;
+	clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_C {
+	clocks = <&xtal>, <&clk81>, <&clk81>;
+	clock-names = "xtal", "pclk", "baud";
+};
-- 
1.9.1
^ permalink raw reply related	[flat|nested] 21+ messages in thread* [PATCH v4 5/7] ARM: dts: meson6: switch to new bindings for UART nodes
  2017-06-09  9:49 ` [PATCH v4 5/7] ARM: dts: meson6: switch to new bindings for UART nodes Neil Armstrong
@ 2017-06-12  9:42   ` Jerome Brunet
  2017-06-12 12:49     ` Neil Armstrong
  0 siblings, 1 reply; 21+ messages in thread
From: Jerome Brunet @ 2017-06-12  9:42 UTC (permalink / raw)
  To: linus-amlogic
On Fri, 2017-06-09 at 11:49 +0200, Neil Armstrong wrote:
> Switch to the stable UART bindings by adding a XTAL node and using the
> proper compatible strings.
> 
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Shouldn't this patch be squashed with patch 4 ?
> ---
> ?arch/arm/boot/dts/meson6.dtsi | 28 ++++++++++++++++++++++++++++
> ?1 file changed, 28 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/meson6.dtsi b/arch/arm/boot/dts/meson6.dtsi
> index b0fc91f..a334fbe 100644
> --- a/arch/arm/boot/dts/meson6.dtsi
> +++ b/arch/arm/boot/dts/meson6.dtsi
> @@ -70,9 +70,37 @@
> ?		};
> ?	};
> ?
> +	xtal: xtal-clk {
> +		compatible = "fixed-clock";
> +		clock-frequency = <24000000>;
> +		clock-output-names = "xtal";
> +		#clock-cells = <0>;
> +	};
> +
> ?	clk81: clk at 0 {
> ?		#clock-cells = <0>;
> ?		compatible = "fixed-clock";
> ?		clock-frequency = <200000000>;
> ?	};
> ?}; /* end of / */
> +
> +
> +&uart_AO {
> +	clocks = <&xtal>, <&clk81>, <&clk81>;
> +	clock-names = "xtal", "pclk", "baud";
> +};
> +
> +&uart_A {
> +	clocks = <&xtal>, <&clk81>, <&clk81>;
> +	clock-names = "xtal", "pclk", "baud";
> +};
> +
> +&uart_B {
> +	clocks = <&xtal>, <&clk81>, <&clk81>;
> +	clock-names = "xtal", "pclk", "baud";
> +};
> +
> +&uart_C {
> +	clocks = <&xtal>, <&clk81>, <&clk81>;
> +	clock-names = "xtal", "pclk", "baud";
> +};
^ permalink raw reply	[flat|nested] 21+ messages in thread* [PATCH v4 5/7] ARM: dts: meson6: switch to new bindings for UART nodes
  2017-06-12  9:42   ` Jerome Brunet
@ 2017-06-12 12:49     ` Neil Armstrong
  0 siblings, 0 replies; 21+ messages in thread
From: Neil Armstrong @ 2017-06-12 12:49 UTC (permalink / raw)
  To: linus-amlogic
On 06/12/2017 11:42 AM, Jerome Brunet wrote:
> On Fri, 2017-06-09 at 11:49 +0200, Neil Armstrong wrote:
>> Switch to the stable UART bindings by adding a XTAL node and using the
>> proper compatible strings.
>>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> 
> Shouldn't this patch be squashed with patch 4 ?
> 
Yep, so it doesn't break bisect.
Neil
> 
>> ---
>>  arch/arm/boot/dts/meson6.dtsi | 28 ++++++++++++++++++++++++++++
>>  1 file changed, 28 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/meson6.dtsi b/arch/arm/boot/dts/meson6.dtsi
>> index b0fc91f..a334fbe 100644
>> --- a/arch/arm/boot/dts/meson6.dtsi
>> +++ b/arch/arm/boot/dts/meson6.dtsi
>> @@ -70,9 +70,37 @@
>>  		};
>>  	};
>>  
>> +	xtal: xtal-clk {
>> +		compatible = "fixed-clock";
>> +		clock-frequency = <24000000>;
>> +		clock-output-names = "xtal";
>> +		#clock-cells = <0>;
>> +	};
>> +
>>  	clk81: clk at 0 {
>>  		#clock-cells = <0>;
>>  		compatible = "fixed-clock";
>>  		clock-frequency = <200000000>;
>>  	};
>>  }; /* end of / */
>> +
>> +
>> +&uart_AO {
>> +	clocks = <&xtal>, <&clk81>, <&clk81>;
>> +	clock-names = "xtal", "pclk", "baud";
>> +};
>> +
>> +&uart_A {
>> +	clocks = <&xtal>, <&clk81>, <&clk81>;
>> +	clock-names = "xtal", "pclk", "baud";
>> +};
>> +
>> +&uart_B {
>> +	clocks = <&xtal>, <&clk81>, <&clk81>;
>> +	clock-names = "xtal", "pclk", "baud";
>> +};
>> +
>> +&uart_C {
>> +	clocks = <&xtal>, <&clk81>, <&clk81>;
>> +	clock-names = "xtal", "pclk", "baud";
>> +};
> 
^ permalink raw reply	[flat|nested] 21+ messages in thread
* [PATCH v4 6/7] ARM: dts: meson8: switch to new bindings for UART nodes
  2017-06-09  9:49 [PATCH v4 0/7] tty/serial: meson_uart: add support for core clock handling Neil Armstrong
                   ` (4 preceding siblings ...)
  2017-06-09  9:49 ` [PATCH v4 5/7] ARM: dts: meson6: switch to new bindings for UART nodes Neil Armstrong
@ 2017-06-09  9:49 ` Neil Armstrong
  2017-06-09 22:37   ` Martin Blumenstingl
  2017-06-12  9:13   ` Jerome Brunet
  2017-06-09  9:49 ` [PATCH v4 7/7] ARM: dts: meson8b: " Neil Armstrong
  6 siblings, 2 replies; 21+ messages in thread
From: Neil Armstrong @ 2017-06-09  9:49 UTC (permalink / raw)
  To: linus-amlogic
Switch to the stable UART bindings by adding a XTAL node and using the
proper compatible strings.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 arch/arm/boot/dts/meson8.dtsi | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
index 6993077..a2ea112 100644
--- a/arch/arm/boot/dts/meson8.dtsi
+++ b/arch/arm/boot/dts/meson8.dtsi
@@ -83,6 +83,13 @@
 		};
 	};
 
+	xtal: xtal-clk {
+		compatible = "fixed-clock";
+		clock-frequency = <24000000>;
+		clock-output-names = "xtal";
+		#clock-cells = <0>;
+	};
+
 	clk81: clk at 0 {
 		#clock-cells = <0>;
 		compatible = "fixed-clock";
@@ -199,17 +206,25 @@
 };
 
 &uart_AO {
-	clocks = <&clk81>;
+	compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart";
+	clocks = <&xtal>, <&clk81>, <&clk81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_A {
-	clocks = <&clk81>;
+	compatible = "amlogic,meson8-uart";
+	clocks = <&xtal>, <&clk81>, <&clk81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_B {
-	clocks = <&clk81>;
+	compatible = "amlogic,meson8-uart";
+	clocks = <&xtal>, <&clk81>, <&clk81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_C {
-	clocks = <&clk81>;
+	compatible = "amlogic,meson8-uart";
+	clocks = <&xtal>, <&clk81>, <&clk81>;
+	clock-names = "xtal", "pclk", "baud";
 };
-- 
1.9.1
^ permalink raw reply related	[flat|nested] 21+ messages in thread* [PATCH v4 6/7] ARM: dts: meson8: switch to new bindings for UART nodes
  2017-06-09  9:49 ` [PATCH v4 6/7] ARM: dts: meson8: " Neil Armstrong
@ 2017-06-09 22:37   ` Martin Blumenstingl
  2017-06-11 20:18     ` Martin Blumenstingl
  2017-06-12  9:13   ` Jerome Brunet
  1 sibling, 1 reply; 21+ messages in thread
From: Martin Blumenstingl @ 2017-06-09 22:37 UTC (permalink / raw)
  To: linus-amlogic
Hi Neil,
On Fri, Jun 9, 2017 at 11:49 AM, Neil Armstrong <narmstrong@baylibre.com> wrote:
> Switch to the stable UART bindings by adding a XTAL node and using the
> proper compatible strings.
unfortunately this won't apply now that Kevin has merged my "ARM: dts:
meson8: add and use the real clock controller"
on the other hand this will make the patch easier as you can now do
the same changes as in meson8b.dtsi
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
>  arch/arm/boot/dts/meson8.dtsi | 23 +++++++++++++++++++----
>  1 file changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
> index 6993077..a2ea112 100644
> --- a/arch/arm/boot/dts/meson8.dtsi
> +++ b/arch/arm/boot/dts/meson8.dtsi
> @@ -83,6 +83,13 @@
>                 };
>         };
>
> +       xtal: xtal-clk {
> +               compatible = "fixed-clock";
> +               clock-frequency = <24000000>;
> +               clock-output-names = "xtal";
> +               #clock-cells = <0>;
> +       };
> +
>         clk81: clk at 0 {
>                 #clock-cells = <0>;
>                 compatible = "fixed-clock";
> @@ -199,17 +206,25 @@
>  };
>
>  &uart_AO {
> -       clocks = <&clk81>;
> +       compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart";
> +       clocks = <&xtal>, <&clk81>, <&clk81>;
> +       clock-names = "xtal", "pclk", "baud";
>  };
>
>  &uart_A {
> -       clocks = <&clk81>;
> +       compatible = "amlogic,meson8-uart";
> +       clocks = <&xtal>, <&clk81>, <&clk81>;
> +       clock-names = "xtal", "pclk", "baud";
>  };
>
>  &uart_B {
> -       clocks = <&clk81>;
> +       compatible = "amlogic,meson8-uart";
> +       clocks = <&xtal>, <&clk81>, <&clk81>;
> +       clock-names = "xtal", "pclk", "baud";
>  };
>
>  &uart_C {
> -       clocks = <&clk81>;
> +       compatible = "amlogic,meson8-uart";
> +       clocks = <&xtal>, <&clk81>, <&clk81>;
> +       clock-names = "xtal", "pclk", "baud";
>  };
> --
> 1.9.1
>
>
> _______________________________________________
> linux-amlogic mailing list
> linux-amlogic at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply	[flat|nested] 21+ messages in thread* [PATCH v4 6/7] ARM: dts: meson8: switch to new bindings for UART nodes
  2017-06-09 22:37   ` Martin Blumenstingl
@ 2017-06-11 20:18     ` Martin Blumenstingl
  2017-06-12  7:27       ` Neil Armstrong
  0 siblings, 1 reply; 21+ messages in thread
From: Martin Blumenstingl @ 2017-06-11 20:18 UTC (permalink / raw)
  To: linus-amlogic
On Sat, Jun 10, 2017 at 12:37 AM, Martin Blumenstingl
<martin.blumenstingl@googlemail.com> wrote:
> Hi Neil,
>
> On Fri, Jun 9, 2017 at 11:49 AM, Neil Armstrong <narmstrong@baylibre.com> wrote:
>> Switch to the stable UART bindings by adding a XTAL node and using the
>> proper compatible strings.
> unfortunately this won't apply now that Kevin has merged my "ARM: dts:
> meson8: add and use the real clock controller"
> on the other hand this will make the patch easier as you can now do
> the same changes as in meson8b.dtsi
Neil, if you want you could also drop this from your series and let me
handle this (just let me know). I would even go one step further and
export the CLKID_UART0, CLKID_UART1 and CLKID_UART2 gates and pass
them as "pclk" for uart_{A,B,C}
I'll even *try* to test if this works on real hardware (my Meson8m2
board has a RTL8723BS SDIO wifi + bluetooth chip - wifi driver support
has been pretty bad so far - but I'll try to see if I can get and
messages out of the bluetooth part)
just let me know if you want me to handle this patch for you
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
>> ---
>>  arch/arm/boot/dts/meson8.dtsi | 23 +++++++++++++++++++----
>>  1 file changed, 19 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
>> index 6993077..a2ea112 100644
>> --- a/arch/arm/boot/dts/meson8.dtsi
>> +++ b/arch/arm/boot/dts/meson8.dtsi
>> @@ -83,6 +83,13 @@
>>                 };
>>         };
>>
>> +       xtal: xtal-clk {
>> +               compatible = "fixed-clock";
>> +               clock-frequency = <24000000>;
>> +               clock-output-names = "xtal";
>> +               #clock-cells = <0>;
>> +       };
>> +
>>         clk81: clk at 0 {
>>                 #clock-cells = <0>;
>>                 compatible = "fixed-clock";
>> @@ -199,17 +206,25 @@
>>  };
>>
>>  &uart_AO {
>> -       clocks = <&clk81>;
>> +       compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart";
>> +       clocks = <&xtal>, <&clk81>, <&clk81>;
>> +       clock-names = "xtal", "pclk", "baud";
>>  };
>>
>>  &uart_A {
>> -       clocks = <&clk81>;
>> +       compatible = "amlogic,meson8-uart";
>> +       clocks = <&xtal>, <&clk81>, <&clk81>;
>> +       clock-names = "xtal", "pclk", "baud";
>>  };
>>
>>  &uart_B {
>> -       clocks = <&clk81>;
>> +       compatible = "amlogic,meson8-uart";
>> +       clocks = <&xtal>, <&clk81>, <&clk81>;
>> +       clock-names = "xtal", "pclk", "baud";
>>  };
>>
>>  &uart_C {
>> -       clocks = <&clk81>;
>> +       compatible = "amlogic,meson8-uart";
>> +       clocks = <&xtal>, <&clk81>, <&clk81>;
>> +       clock-names = "xtal", "pclk", "baud";
>>  };
>> --
>> 1.9.1
>>
>>
>> _______________________________________________
>> linux-amlogic mailing list
>> linux-amlogic at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply	[flat|nested] 21+ messages in thread* [PATCH v4 6/7] ARM: dts: meson8: switch to new bindings for UART nodes
  2017-06-11 20:18     ` Martin Blumenstingl
@ 2017-06-12  7:27       ` Neil Armstrong
  0 siblings, 0 replies; 21+ messages in thread
From: Neil Armstrong @ 2017-06-12  7:27 UTC (permalink / raw)
  To: linus-amlogic
On 06/11/2017 10:18 PM, Martin Blumenstingl wrote:
> On Sat, Jun 10, 2017 at 12:37 AM, Martin Blumenstingl
> <martin.blumenstingl@googlemail.com> wrote:
>> Hi Neil,
>>
>> On Fri, Jun 9, 2017 at 11:49 AM, Neil Armstrong <narmstrong@baylibre.com> wrote:
>>> Switch to the stable UART bindings by adding a XTAL node and using the
>>> proper compatible strings.
>> unfortunately this won't apply now that Kevin has merged my "ARM: dts:
>> meson8: add and use the real clock controller"
>> on the other hand this will make the patch easier as you can now do
>> the same changes as in meson8b.dtsi
> Neil, if you want you could also drop this from your series and let me
> handle this (just let me know). I would even go one step further and
> export the CLKID_UART0, CLKID_UART1 and CLKID_UART2 gates and pass
> them as "pclk" for uart_{A,B,C}
> I'll even *try* to test if this works on real hardware (my Meson8m2
> board has a RTL8723BS SDIO wifi + bluetooth chip - wifi driver support
> has been pretty bad so far - but I'll try to see if I can get and
> messages out of the bluetooth part)
> just let me know if you want me to handle this patch for you
No in fact it was just a "PoC" to show how to handle it on non-gx DTS.
I'm ok to leave it to you when the UART code is merged.
Neil
> 
>>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
>>> ---
>>>  arch/arm/boot/dts/meson8.dtsi | 23 +++++++++++++++++++----
>>>  1 file changed, 19 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
>>> index 6993077..a2ea112 100644
>>> --- a/arch/arm/boot/dts/meson8.dtsi
>>> +++ b/arch/arm/boot/dts/meson8.dtsi
>>> @@ -83,6 +83,13 @@
>>>                 };
>>>         };
>>>
>>> +       xtal: xtal-clk {
>>> +               compatible = "fixed-clock";
>>> +               clock-frequency = <24000000>;
>>> +               clock-output-names = "xtal";
>>> +               #clock-cells = <0>;
>>> +       };
>>> +
>>>         clk81: clk at 0 {
>>>                 #clock-cells = <0>;
>>>                 compatible = "fixed-clock";
>>> @@ -199,17 +206,25 @@
>>>  };
>>>
>>>  &uart_AO {
>>> -       clocks = <&clk81>;
>>> +       compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart";
>>> +       clocks = <&xtal>, <&clk81>, <&clk81>;
>>> +       clock-names = "xtal", "pclk", "baud";
>>>  };
>>>
>>>  &uart_A {
>>> -       clocks = <&clk81>;
>>> +       compatible = "amlogic,meson8-uart";
>>> +       clocks = <&xtal>, <&clk81>, <&clk81>;
>>> +       clock-names = "xtal", "pclk", "baud";
>>>  };
>>>
>>>  &uart_B {
>>> -       clocks = <&clk81>;
>>> +       compatible = "amlogic,meson8-uart";
>>> +       clocks = <&xtal>, <&clk81>, <&clk81>;
>>> +       clock-names = "xtal", "pclk", "baud";
>>>  };
>>>
>>>  &uart_C {
>>> -       clocks = <&clk81>;
>>> +       compatible = "amlogic,meson8-uart";
>>> +       clocks = <&xtal>, <&clk81>, <&clk81>;
>>> +       clock-names = "xtal", "pclk", "baud";
>>>  };
>>> --
>>> 1.9.1
>>>
>>>
>>> _______________________________________________
>>> linux-amlogic mailing list
>>> linux-amlogic at lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply	[flat|nested] 21+ messages in thread
* [PATCH v4 6/7] ARM: dts: meson8: switch to new bindings for UART nodes
  2017-06-09  9:49 ` [PATCH v4 6/7] ARM: dts: meson8: " Neil Armstrong
  2017-06-09 22:37   ` Martin Blumenstingl
@ 2017-06-12  9:13   ` Jerome Brunet
  2017-06-12 12:49     ` Neil Armstrong
  1 sibling, 1 reply; 21+ messages in thread
From: Jerome Brunet @ 2017-06-12  9:13 UTC (permalink / raw)
  To: linus-amlogic
On Fri, 2017-06-09 at 11:49 +0200, Neil Armstrong wrote:
> Switch to the stable UART bindings by adding a XTAL node and using the
> proper compatible strings.
> 
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
> ?arch/arm/boot/dts/meson8.dtsi | 23 +++++++++++++++++++----
> ?1 file changed, 19 insertions(+), 4 deletions(-)
I think this is clashing with the recent change from Martin on meson8 clock
driver. Kevin just applied it :?
https://lkml.kernel.org/r/m2d1ad9g38.fsf at baylibre.com
<&clk81> no longer exists ...
> 
> diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
> index 6993077..a2ea112 100644
> --- a/arch/arm/boot/dts/meson8.dtsi
> +++ b/arch/arm/boot/dts/meson8.dtsi
> @@ -83,6 +83,13 @@
> ?		};
> ?	};
> ?
> +	xtal: xtal-clk {
> +		compatible = "fixed-clock";
> +		clock-frequency = <24000000>;
> +		clock-output-names = "xtal";
> +		#clock-cells = <0>;
> +	};
> +
> ?	clk81: clk at 0 {
> ?		#clock-cells = <0>;
> ?		compatible = "fixed-clock";
> @@ -199,17 +206,25 @@
> ?};
> ?
> ?&uart_AO {
> -	clocks = <&clk81>;
> +	compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart";
> +	clocks = <&xtal>, <&clk81>, <&clk81>;
> +	clock-names = "xtal", "pclk", "baud";
> ?};
> ?
> ?&uart_A {
> -	clocks = <&clk81>;
> +	compatible = "amlogic,meson8-uart";
> +	clocks = <&xtal>, <&clk81>, <&clk81>;
> +	clock-names = "xtal", "pclk", "baud";
> ?};
> ?
> ?&uart_B {
> -	clocks = <&clk81>;
> +	compatible = "amlogic,meson8-uart";
> +	clocks = <&xtal>, <&clk81>, <&clk81>;
> +	clock-names = "xtal", "pclk", "baud";
> ?};
> ?
> ?&uart_C {
> -	clocks = <&clk81>;
> +	compatible = "amlogic,meson8-uart";
> +	clocks = <&xtal>, <&clk81>, <&clk81>;
> +	clock-names = "xtal", "pclk", "baud";
> ?};
^ permalink raw reply	[flat|nested] 21+ messages in thread* [PATCH v4 6/7] ARM: dts: meson8: switch to new bindings for UART nodes
  2017-06-12  9:13   ` Jerome Brunet
@ 2017-06-12 12:49     ` Neil Armstrong
  0 siblings, 0 replies; 21+ messages in thread
From: Neil Armstrong @ 2017-06-12 12:49 UTC (permalink / raw)
  To: linus-amlogic
On 06/12/2017 11:13 AM, Jerome Brunet wrote:
> On Fri, 2017-06-09 at 11:49 +0200, Neil Armstrong wrote:
>> Switch to the stable UART bindings by adding a XTAL node and using the
>> proper compatible strings.
>>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
>> ---
>>  arch/arm/boot/dts/meson8.dtsi | 23 +++++++++++++++++++----
>>  1 file changed, 19 insertions(+), 4 deletions(-)
> 
> I think this is clashing with the recent change from Martin on meson8 clock
> driver. Kevin just applied it : 
> 
> https://lkml.kernel.org/r/m2d1ad9g38.fsf at baylibre.com
> 
> <&clk81> no longer exists ...
> 
>>
>> diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
>> index 6993077..a2ea112 100644
>> --- a/arch/arm/boot/dts/meson8.dtsi
>> +++ b/arch/arm/boot/dts/meson8.dtsi
>> @@ -83,6 +83,13 @@
>>  		};
>>  	};
>>  
>> +	xtal: xtal-clk {
>> +		compatible = "fixed-clock";
>> +		clock-frequency = <24000000>;
>> +		clock-output-names = "xtal";
>> +		#clock-cells = <0>;
>> +	};
>> +
>>  	clk81: clk at 0 {
>>  		#clock-cells = <0>;
>>  		compatible = "fixed-clock";
>> @@ -199,17 +206,25 @@
>>  };
>>  
>>  &uart_AO {
>> -	clocks = <&clk81>;
>> +	compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart";
>> +	clocks = <&xtal>, <&clk81>, <&clk81>;
>> +	clock-names = "xtal", "pclk", "baud";
>>  };
>>  
>>  &uart_A {
>> -	clocks = <&clk81>;
>> +	compatible = "amlogic,meson8-uart";
>> +	clocks = <&xtal>, <&clk81>, <&clk81>;
>> +	clock-names = "xtal", "pclk", "baud";
>>  };
>>  
>>  &uart_B {
>> -	clocks = <&clk81>;
>> +	compatible = "amlogic,meson8-uart";
>> +	clocks = <&xtal>, <&clk81>, <&clk81>;
>> +	clock-names = "xtal", "pclk", "baud";
>>  };
>>  
>>  &uart_C {
>> -	clocks = <&clk81>;
>> +	compatible = "amlogic,meson8-uart";
>> +	clocks = <&xtal>, <&clk81>, <&clk81>;
>> +	clock-names = "xtal", "pclk", "baud";
>>  };
> 
I will drop this until martin has a better version, and tested !
Neil
^ permalink raw reply	[flat|nested] 21+ messages in thread
* [PATCH v4 7/7] ARM: dts: meson8b: switch to new bindings for UART nodes
  2017-06-09  9:49 [PATCH v4 0/7] tty/serial: meson_uart: add support for core clock handling Neil Armstrong
                   ` (5 preceding siblings ...)
  2017-06-09  9:49 ` [PATCH v4 6/7] ARM: dts: meson8: " Neil Armstrong
@ 2017-06-09  9:49 ` Neil Armstrong
  2017-06-12  9:47   ` Jerome Brunet
  6 siblings, 1 reply; 21+ messages in thread
From: Neil Armstrong @ 2017-06-09  9:49 UTC (permalink / raw)
  To: linus-amlogic
Switch to the stable UART bindings by adding a XTAL node and using the
proper compatible strings.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 arch/arm/boot/dts/meson8b.dtsi | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi
index d9f116a..651ad4a 100644
--- a/arch/arm/boot/dts/meson8b.dtsi
+++ b/arch/arm/boot/dts/meson8b.dtsi
@@ -82,6 +82,13 @@
 			reg = <0x203>;
 		};
 	};
+
+	xtal: xtal-clk {
+		compatible = "fixed-clock";
+		clock-frequency = <24000000>;
+		clock-output-names = "xtal";
+		#clock-cells = <0>;
+	};
 }; /* end of / */
 
 &aobus {
@@ -178,17 +185,25 @@
 };
 
 &uart_AO {
-	clocks = <&clkc CLKID_CLK81>;
+	compatible = "amlogic,meson8b-uart", "amlogic,meson-ao-uart";
+	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_A {
-	clocks = <&clkc CLKID_CLK81>;
+	compatible = "amlogic,meson8b-uart";
+	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_B {
-	clocks = <&clkc CLKID_CLK81>;
+	compatible = "amlogic,meson8b-uart";
+	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
 
 &uart_C {
-	clocks = <&clkc CLKID_CLK81>;
+	compatible = "amlogic,meson8b-uart";
+	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
+	clock-names = "xtal", "pclk", "baud";
 };
-- 
1.9.1
^ permalink raw reply related	[flat|nested] 21+ messages in thread* [PATCH v4 7/7] ARM: dts: meson8b: switch to new bindings for UART nodes
  2017-06-09  9:49 ` [PATCH v4 7/7] ARM: dts: meson8b: " Neil Armstrong
@ 2017-06-12  9:47   ` Jerome Brunet
  0 siblings, 0 replies; 21+ messages in thread
From: Jerome Brunet @ 2017-06-12  9:47 UTC (permalink / raw)
  To: linus-amlogic
On Fri, 2017-06-09 at 11:49 +0200, Neil Armstrong wrote:
> Switch to the stable UART bindings by adding a XTAL node and using the
> proper compatible strings.
> 
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
> ?arch/arm/boot/dts/meson8b.dtsi | 23 +++++++++++++++++++----
> ?1 file changed, 19 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi
> index d9f116a..651ad4a 100644
> --- a/arch/arm/boot/dts/meson8b.dtsi
> +++ b/arch/arm/boot/dts/meson8b.dtsi
> @@ -82,6 +82,13 @@
> ?			reg = <0x203>;
> ?		};
> ?	};
> +
> +	xtal: xtal-clk {
> +		compatible = "fixed-clock";
> +		clock-frequency = <24000000>;
> +		clock-output-names = "xtal";
> +		#clock-cells = <0>;
> +	};
On meson8b, I think xtal is already provided by <&clkc CLKID_XTAL>.
We have to choose which one we want.
With this handled:
Acked-by: Jerome Brunet <jbrunet@baylibre.com>
> ?}; /* end of / */
> ?
> ?&aobus {
> @@ -178,17 +185,25 @@
> ?};
> ?
> ?&uart_AO {
> -	clocks = <&clkc CLKID_CLK81>;
> +	compatible = "amlogic,meson8b-uart", "amlogic,meson-ao-uart";
> +	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
> +	clock-names = "xtal", "pclk", "baud";
> ?};
> ?
> ?&uart_A {
> -	clocks = <&clkc CLKID_CLK81>;
> +	compatible = "amlogic,meson8b-uart";
> +	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
> +	clock-names = "xtal", "pclk", "baud";
> ?};
> ?
> ?&uart_B {
> -	clocks = <&clkc CLKID_CLK81>;
> +	compatible = "amlogic,meson8b-uart";
> +	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
> +	clock-names = "xtal", "pclk", "baud";
> ?};
> ?
> ?&uart_C {
> -	clocks = <&clkc CLKID_CLK81>;
> +	compatible = "amlogic,meson8b-uart";
> +	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
> +	clock-names = "xtal", "pclk", "baud";
> ?};
^ permalink raw reply	[flat|nested] 21+ messages in thread