[U-Boot] [PATCH 11/20] dm: serial: Update binding for PL01x serial UART
Vikas MANOCHA
vikas.manocha at st.com
Thu Jul 9 00:00:26 CEST 2015
Hi Simon,
> -----Original Message-----
> From: Simon Glass [mailto:sjg at google.com] On Behalf Of Simon Glass
> Sent: Tuesday, July 07, 2015 7:54 PM
> To: U-Boot Mailing List
> Cc: Stephen Warren; Stephen Warren; Joe Hershberger; Masahiro Yamada;
> Simon Glass; Linus Walleij; Masahiro Yamada; Marek Vasut; Tom Rini; Albert
> Aribaud; Vikas MANOCHA; Pavel Herrmann
> Subject: [PATCH 11/20] dm: serial: Update binding for PL01x serial UART
>
> This binding differs from that of Linux. Update it and change existing users.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> arch/arm/dts/stv0991.dts | 2 +-
> doc/device-tree-bindings/serial/pl011.txt | 53
> +++++++++++++++++++++++++++++++ doc/device-tree-
> bindings/serial/pl01x.txt | 7 ----
> drivers/serial/serial_pl01x.c | 6 ++--
> 4 files changed, 58 insertions(+), 10 deletions(-) create mode 100644
> doc/device-tree-bindings/serial/pl011.txt
> delete mode 100644 doc/device-tree-bindings/serial/pl01x.txt
>
> diff --git a/arch/arm/dts/stv0991.dts b/arch/arm/dts/stv0991.dts index
> b25c48b..fd425b4 100644
> --- a/arch/arm/dts/stv0991.dts
> +++ b/arch/arm/dts/stv0991.dts
> @@ -18,6 +18,6 @@
> uart0: serial at 0x80406000 {
> compatible = "arm,pl011", "arm,primecell";
> reg = <0x80406000 0x1000>;
> - clock = <2700000>;
> + clock-frequency = <2700000>;
Clock-frequency is not mentioned in the binding doc.
> };
> };
> diff --git a/doc/device-tree-bindings/serial/pl011.txt b/doc/device-tree-
> bindings/serial/pl011.txt
> new file mode 100644
> index 0000000..af66272
> --- /dev/null
> +++ b/doc/device-tree-bindings/serial/pl011.txt
> @@ -0,0 +1,53 @@
> +* ARM AMBA Primecell PL011 serial UART
> +
> +Required properties:
> +- compatible: must be "arm,primecell", "arm,pl011"
> +- reg: exactly one register range with length 0x1000
> +- interrupts: exactly one interrupt specifier
> +
> +Optional properties:
> +- pinctrl:
> + When present, must have one state named "default",
> + and may contain a second name named "sleep". The former
> + state sets up pins for ordinary operation whereas
> + the latter state will put the associated pins to sleep
> + when the UART is unused
> +- clocks:
> + When present, the first clock listed must correspond to
> + the clock named UARTCLK on the IP block, i.e. the clock
> + to the external serial line, whereas the second clock
> + must correspond to the PCLK clocking the internal logic
> + of the block. Just listing one clock (the first one) is
> + deprecated.
> +- clocks-names:
> + When present, the first clock listed must be named
> + "uartclk" and the second clock listed must be named
> + "apb_pclk"
> +- dmas:
> + When present, may have one or two dma channels.
> + The first one must be named "rx", the second one
> + must be named "tx".
> +- auto-poll:
> + Enables polling when using RX DMA.
> +- poll-rate-ms:
> + Rate at which poll occurs when auto-poll is set,
> + default 100ms.
> +- poll-timeout-ms:
> + Poll timeout when auto-poll is set, default
> + 3000ms.
> +- clock-frequency:
> + Input clock frequency for UART.
> +
> +See also bindings/arm/primecell.txt
> +
> +Example:
> +
> +uart at 80120000 {
> + compatible = "arm,pl011", "arm,primecell";
> + reg = <0x80120000 0x1000>;
> + interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
> + dmas = <&dma 13 0 0x2>, <&dma 13 0 0x0>;
> + dma-names = "rx", "tx";
> + clocks = <&foo_clk>, <&bar_clk>;
> + clock-names = "uartclk", "apb_pclk";
> +};
PL011 ip is covered in pl01x & we have pl01x driver in u-boot. Linux has only pl011 driver.
So binding documents for pl011 in u-boot does not make sense...
> diff --git a/doc/device-tree-bindings/serial/pl01x.txt b/doc/device-tree-
> bindings/serial/pl01x.txt
> deleted file mode 100644
> index 61c27d1..0000000
> --- a/doc/device-tree-bindings/serial/pl01x.txt
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -* ARM AMBA Primecell PL011 & PL010 serial UART
> -
> -Required properties:
> -- compatible: must be "arm,primecell", "arm,pl011" or "arm,pl010"
> -- reg: exactly one register range with length 0x1000
> -- clock: input clock frequency for the UART (used to calculate the baud
> - rate divisor)
Removing pl01x.txt.. .you might want to remove it & add kernel pl011.txt binding doc which should be renamed to pl01x.txt in u-boot ?
In that case, clock(or clock-frequency) is not optional in u-boot.
Rgds,
Vikas
> diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c index
> ad503af..ae6fc0e 100644
> --- a/drivers/serial/serial_pl01x.c
> +++ b/drivers/serial/serial_pl01x.c
> @@ -365,13 +365,15 @@ static int pl01x_serial_ofdata_to_platdata(struct
> udevice *dev)
> struct pl01x_serial_platdata *plat = dev_get_platdata(dev);
> fdt_addr_t addr;
>
> - addr = fdtdec_get_addr(gd->fdt_blob, dev->of_offset, "reg");
> + addr = dev_get_addr(dev);
> if (addr == FDT_ADDR_T_NONE)
> return -EINVAL;
>
> plat->base = addr;
> - plat->clock = fdtdec_get_int(gd->fdt_blob, dev->of_offset, "clock",
> 1);
> + plat->clock = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
> + "clock-frequency", 1);
> plat->type = dev_get_driver_data(dev);
> +
> return 0;
> }
> #endif
> --
> 2.4.3.573.g4eafbef
More information about the U-Boot
mailing list