Moving Uartlite to DM
Subsystems (2)
v3 cover Moving Uartlite to DM
Hi,
This patch series depends on microblaze cleanup series. All these patches will be available ingit://git.denx.de/u-boot-microblaze.git
also with patches which I am going to send now.
Thanks,
Michal
Changes in v3:
- Use BIT macros
- Fix logic in pending() for output direction
- Add static inline to _debug_uart_init
Changes in v2:
- Remove unneeded headers
- Use get_dev_addr instead of fdtdec_get_addr
- Use platdata instead of private data
- Add opb compatible string to be in sync with Linux
- Add binding documentation
- Add needed header from the first patch
- Remove WATCHDOG_RESET call
- Extend commit description
Michal Simek (3):
serial: uartlite: Move driver to DM
serial: uartlite: Add support for debug console
serial: uartlite: Add uartlite to Kconfig
arch/microblaze/Kconfig | 1 + board/xilinx/microblaze-generic/xparameters.h | 4 - configs/microblaze-generic_defconfig | 3 + .../serial/xilinx_uartlite.txt | 13 ++ doc/driver-model/serial-howto.txt | 1 - drivers/serial/Kconfig | 14 ++ drivers/serial/serial_xuartlite.c | 194 +++++++++------------ include/configs/microblaze-generic.h | 7 +- 8 files changed, 119 insertions(+), 118 deletions(-) create mode 100644 doc/device-tree-bindings/serial/xilinx_uartlite.txt
Signature · 1 line
1.9.1
PATCH v3 1/3 serial: uartlite: Move driver to DM
Enable SPL DM too.
---
Changes in v3:
- Use BIT macros
- Fix logic in pending() for output direction
Changes in v2:
- Remove unneeded headers
- Use get_dev_addr instead of fdtdec_get_addr
- Use platdata instead of private data
- Add opb compatible string to be in sync with Linux
- Add binding documentation
arch/microblaze/Kconfig | 1 + configs/microblaze-generic_defconfig | 2 + .../serial/xilinx_uartlite.txt | 13 ++ doc/driver-model/serial-howto.txt | 1 - drivers/serial/serial_xuartlite.c | 176 ++++++++------------- 5 files changed, 81 insertions(+), 112 deletions(-) create mode 100644 doc/device-tree-bindings/serial/xilinx_uartlite.txt
arch/microblaze/Kconfig +1 -0
@@ -13,6 +13,7 @@ config TARGET_MICROBLAZE_GENERIC select SUPPORT_SPL select OF_CONTROL select DM + select DM_SERIAL endchoice
configs/microblaze-generic_defconfig +2 -0
@@ -1,9 +1,11 @@ CONFIG_MICROBLAZE=y CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_DM=y CONFIG_TARGET_MICROBLAZE_GENERIC=y CONFIG_DEFAULT_DEVICE_TREE="microblaze-generic" CONFIG_SPL=y CONFIG_SYS_PROMPT="U-Boot-mONStR> " CONFIG_CMD_GPIO=y # CONFIG_CMD_SETEXPR is not set +CONFIG_SPL_OF_CONTROL=y CONFIG_OF_EMBED=y
doc/device-tree-bindings/serial/xilinx_uartlite.txt new file +13 -0
@@ -0,0 +1,13 @@ +Binding for Xilinx Uartlite Controller + +Required properties: +- compatible : should be "xlnx,xps-uartlite-1.00.a", or "xlnx,opb-uartlite-1.00.b" +- reg: Should contain UART controller registers location and length. +- interrupts: Should contain UART controller interrupts. + +Example: + serial at 40600000 { + compatible = "xlnx,xps-uartlite-1.00.a"; + interrupts = <1 0>; + reg = <0x40600000 0x10000>; + };
doc/driver-model/serial-howto.txt +0 -1
@@ -18,7 +18,6 @@ is time for maintainers to start converting over the remaining serial drivers: serial_pxa.c serial_s3c24x0.c serial_sa1100.c - serial_xuartlite.c usbtty.c You should complete this by the end of January 2016.
drivers/serial/serial_xuartlite.c +65 -111
218 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH v3 2/3 serial: uartlite: Add support for debug console
In reply to Michal SimekAdd support for debug console.
---
Changes in v3:
- Add static inline to _debug_uart_init
Changes in v2:
- Add needed header from the first patch
- Remove WATCHDOG_RESET call
- Extend commit description
drivers/serial/Kconfig | 7 +++++++ drivers/serial/serial_xuartlite.c | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+)
drivers/serial/Kconfig +7 -0
@@ -92,6 +92,13 @@ config DEBUG_UART_S5P will need to provide parameters to make this work. The driver will be available until the real driver-model serial is running. +config DEBUG_UART_UARTLITE + bool "Xilinx Uartlite" + help + Select this to enable a debug UART using the serial_uartlite driver. + You will need to provide parameters to make this work. The driver will + be available until the real driver-model serial is running. + config DEBUG_UART_ZYNQ bool "Xilinx Zynq" help
drivers/serial/serial_xuartlite.c +26 -0
@@ -114,3 +114,29 @@ U_BOOT_DRIVER(serial_uartlite) = { .ops = &uartlite_serial_ops, .flags = DM_FLAG_PRE_RELOC, }; + +#ifdef CONFIG_DEBUG_UART_UARTLITE + +#include <debug_uart.h> + +static inline void _debug_uart_init (void ) +{ +struct uartlite *regs = (struct uartlite *)CONFIG_DEBUG_UART_BASE ; + +out_be32 (®s->control,0 ); +out_be32 (®s->control,ULITE_CONTROL_RST_RX |ULITE_CONTROL_RST_TX ); +in_be32 (®s->control); +} + +static inline void _debug_uart_putc (int ch) +{ +struct uartlite *regs = (struct uartlite *)CONFIG_DEBUG_UART_BASE ; + +while (in_be32 (®s->status) &SR_TX_FIFO_FULL ) + ; + +out_be32 (®s->tx_fifo, ch &0xff ); +} + +DEBUG_UART_FUNCS +#endif
Signature · 1 line
1.9.1
PATCH v3 3/3 serial: uartlite: Add uartlite to Kconfig
In reply to Michal Simek- Move config option out of board file.
- Remove uartlite address from config file
---
Changes in v3: None
Changes in v2: None
board/xilinx/microblaze-generic/xparameters.h | 4 ---- configs/microblaze-generic_defconfig | 1 + drivers/serial/Kconfig | 7 +++++++ include/configs/microblaze-generic.h | 7 +------ 4 files changed, 9 insertions(+), 10 deletions(-)
board/xilinx/microblaze-generic/xparameters.h +0 -4
@@ -28,10 +28,6 @@#define XILINX_TIMER_BASEADDR 0x41c00000#define XILINX_TIMER_IRQ 0 -/* Uart pheriphery is RS232_Uart */ -#define XILINX_UARTLITE_BASEADDR 0x40600000 -#define XILINX_UARTLITE_BAUDRATE 115200 -/* IIC pheriphery is IIC_EEPROM */ #define XILINX_IIC_0_BASEADDR 0x40800000#define XILINX_IIC_0_FREQ 100000
configs/microblaze-generic_defconfig +1 -0
@@ -9,3 +9,4 @@ CONFIG_CMD_GPIO=y # CONFIG_CMD_SETEXPR is not set CONFIG_SPL_OF_CONTROL=y CONFIG_OF_EMBED=y +CONFIG_XILINX_UARTLITE=y
drivers/serial/Kconfig +7 -0
@@ -230,4 +230,11 @@ config UNIPHIER_SERIAL If you have a UniPhier based board and want to use the on-chip serial ports, say Y to this option. If unsure, say N. +config XILINX_UARTLITE + bool "Xilinx Uarlite support" + depends on DM_SERIAL && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP) + help + If you have a Xilinx based board and want to use the uartlite + serial ports, say Y to this option. If unsure, say N. + endmenu
include/configs/microblaze-generic.h +1 -6
@@ -37,10 +37,7 @@# define CONFIG_SYS_BAUDRATE_TABLE \ {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400} -#ifdef XILINX_UARTLITE_BASEADDR -# define CONFIG_XILINX_UARTLITE -# define CONFIG_SERIAL_BASE XILINX_UARTLITE_BASEADDR -#elif XILINX_UART16550_BASEADDR +#if XILINX_UART16550_BASEADDR # define CONFIG_SYS_NS16550_SERIAL # if defined(__MICROBLAZEEL__)# define CONFIG_SYS_NS16550_REG_SIZE -4
@@ -51,8 +48,6 @@# define CONFIG_SYS_NS16550_COM1 \ ((XILINX_UART16550_BASEADDR & ~0xF) + 0x1000)# define CONFIG_SYS_NS16550_CLK XILINX_UART16550_CLOCK_HZ -#else -# error Undefined uart#endif /* setting reset address */
Signature · 1 line
1.9.1