All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/4 V7] EXYNOS5250: FDT: Add device tree support for console
@ 2013-06-24 11:17 Rajeshwari Shinde
  2013-06-24 11:17 ` [U-Boot] [PATCH 1/4 V7] EXYNOS5: FDT: Add compatible strings for Serial Rajeshwari Shinde
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Rajeshwari Shinde @ 2013-06-24 11:17 UTC (permalink / raw)
  To: u-boot

Enabled fdt support for default console on EXYNOS5250.

Changes in V2:
        - Changed the compatible string to "samsung,exynos4210-uart"
Changes in V3:
        - Rebased the patchset on latest u-boot-samsung branch.
        - Added a alias console as we will support one at any point of time.
        - Moved driver config structure to data section.
        - Changed silent_console to silent-console.
        - Did put a check for base address before doing fdt decoding.
Changes in V4:
        - Rebased the patchset on latest u-boot-samsung branch.
        - Changed to COMPAT_SAMSUNG_EXYNOS5_SERIAL to COMPAT_SAMSUNG_EXYNOS_SERIAL
Changes in V5:
        - Added serial device node for Snow board.
Changes in V6:
	- Rebased the patchset on latest u-boot-samsung branch.
	- Changed the if..else condition to a switch statement.
	- Moved compatible strings up with all other samsung strings.
Changes in V7:
	- Removed a extra line.

Rajeshwari Shinde (4):
  EXYNOS5: FDT: Add compatible strings for Serial
  EXYNOS5: FDT: Add serial device node values
  S5P: Serial: Add fdt support to driver
  CONFIG: EXYNOS5: Enable silent console

 arch/arm/dts/exynos5250.dtsi              |   27 ++++++++++
 board/samsung/dts/exynos5250-smdk5250.dts |    2 +
 board/samsung/dts/exynos5250-snow.dts     |    2 +
 drivers/serial/serial_s5p.c               |   78 +++++++++++++++++++++++++++++
 include/configs/exynos5250-dt.h           |    2 +-
 include/fdtdec.h                          |    1 +
 lib/fdtdec.c                              |    1 +
 7 files changed, 112 insertions(+), 1 deletions(-)

-- 
1.7.4.4

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

* [U-Boot] [PATCH 1/4 V7] EXYNOS5: FDT: Add compatible strings for Serial
  2013-06-24 11:17 [U-Boot] [PATCH 0/4 V7] EXYNOS5250: FDT: Add device tree support for console Rajeshwari Shinde
@ 2013-06-24 11:17 ` Rajeshwari Shinde
  2013-06-24 11:17 ` [U-Boot] [PATCH 2/4 V7] EXYNOS5: FDT: Add serial device node values Rajeshwari Shinde
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Rajeshwari Shinde @ 2013-06-24 11:17 UTC (permalink / raw)
  To: u-boot

Add required compatible information for s5p serial driver

Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
---
Changes in V2:
        - Changed the compatible string to "samsung,exynos4210-uart"
Changes in V3:
        - Rebased on latest u-boot-samsung
Changes in V4:
        - Rebased on latest u-boot-samsung
        - Changed to COMPAT_SAMSUNG_EXYNOS5_SERIAL to COMPAT_SAMSUNG_EXYNOS_SERIAL
Changes in V5:
        - None
Changes in V6:
	- Moved compatible strings up with all other samsung strings.
Changes in V7:
	- None.
 include/fdtdec.h |    1 +
 lib/fdtdec.c     |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/include/fdtdec.h b/include/fdtdec.h
index bc3b89b..bea326e 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -90,6 +90,7 @@ enum fdt_compat_id {
 	COMPAT_SAMSUNG_EXYNOS_FIMD,	/* Exynos Display controller */
 	COMPAT_SAMSUNG_EXYNOS5_DP,	/* Exynos Display port controller */
 	COMPAT_SAMSUNG_EXYNOS5_DWMMC,	/* Exynos5 DWMMC controller */
+	COMPAT_SAMSUNG_EXYNOS_SERIAL,	/* Exynos UART */
 	COMPAT_MAXIM_MAX77686_PMIC,	/* MAX77686 PMIC */
 	COMPAT_GENERIC_SPI_FLASH,	/* Generic SPI Flash chip */
 	COMPAT_MAXIM_98095_CODEC,	/* MAX98095 Codec */
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index e3142cb..d1acc35 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -63,6 +63,7 @@ static const char * const compat_names[COMPAT_COUNT] = {
 	COMPAT(SAMSUNG_EXYNOS_FIMD, "samsung,exynos-fimd"),
 	COMPAT(SAMSUNG_EXYNOS5_DP, "samsung,exynos5-dp"),
 	COMPAT(SAMSUNG_EXYNOS5_DWMMC, "samsung,exynos5250-dwmmc"),
+	COMPAT(SAMSUNG_EXYNOS_SERIAL, "samsung,exynos4210-uart"),
 	COMPAT(MAXIM_MAX77686_PMIC, "maxim,max77686_pmic"),
 	COMPAT(GENERIC_SPI_FLASH, "spi-flash"),
 	COMPAT(MAXIM_98095_CODEC, "maxim,max98095-codec"),
-- 
1.7.4.4

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

* [U-Boot] [PATCH 2/4 V7] EXYNOS5: FDT: Add serial device node values
  2013-06-24 11:17 [U-Boot] [PATCH 0/4 V7] EXYNOS5250: FDT: Add device tree support for console Rajeshwari Shinde
  2013-06-24 11:17 ` [U-Boot] [PATCH 1/4 V7] EXYNOS5: FDT: Add compatible strings for Serial Rajeshwari Shinde
@ 2013-06-24 11:17 ` Rajeshwari Shinde
  2013-06-24 11:17 ` [U-Boot] [PATCH 3/4 V7] S5P: Serial: Add fdt support to driver Rajeshwari Shinde
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Rajeshwari Shinde @ 2013-06-24 11:17 UTC (permalink / raw)
  To: u-boot

This patch adds the device node required for serial driver

Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
---
Changes in V2:
        - Changed the compatible string to "samsung,exynos4210-uart"
Changes in V3:
        - Added a alias console as we will support one at any point of time.
Changes in V4:
        - Rebased on latest u-boot-samsung tree.
Changes in V5:
        - Added device node for Snow board.
Changes in V6:
	- Rebased on latest u-boot-samsung branch.
Changes in V7:
	- Removed an extra line.
 arch/arm/dts/exynos5250.dtsi              |   27 +++++++++++++++++++++++++++
 board/samsung/dts/exynos5250-smdk5250.dts |    2 ++
 board/samsung/dts/exynos5250-snow.dts     |    2 ++
 3 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/arch/arm/dts/exynos5250.dtsi b/arch/arm/dts/exynos5250.dtsi
index cee4fe8..f98243c 100644
--- a/arch/arm/dts/exynos5250.dtsi
+++ b/arch/arm/dts/exynos5250.dtsi
@@ -202,4 +202,31 @@
 		interrupts = <0 78 0>;
 	};
 
+	serial at 12C00000 {
+		compatible = "samsung,exynos4210-uart";
+		reg = <0x12C00000 0x100>;
+		interrupts = <0 51 0>;
+		id = <0>;
+	};
+
+	serial at 12C10000 {
+		compatible = "samsung,exynos4210-uart";
+		reg = <0x12C10000 0x100>;
+		interrupts = <0 52 0>;
+		id = <1>;
+	};
+
+	serial at 12C20000 {
+		compatible = "samsung,exynos4210-uart";
+		reg = <0x12C20000 0x100>;
+		interrupts = <0 53 0>;
+		id = <2>;
+	};
+
+	serial at 12C30000 {
+		compatible = "samsung,exynos4210-uart";
+		reg = <0x12C30000 0x100>;
+		interrupts = <0 54 0>;
+		id = <3>;
+	};
 };
diff --git a/board/samsung/dts/exynos5250-smdk5250.dts b/board/samsung/dts/exynos5250-smdk5250.dts
index 93375a6..80ffe30 100644
--- a/board/samsung/dts/exynos5250-smdk5250.dts
+++ b/board/samsung/dts/exynos5250-smdk5250.dts
@@ -34,6 +34,8 @@
 		mmc1 = "/mmc at 12210000";
 		mmc2 = "/mmc at 12220000";
 		mmc3 = "/mmc at 12230000";
+		serial0 = "/serial at 12C30000";
+		console = "/serial at 12C30000";
 	};
 
 	sromc at 12250000 {
diff --git a/board/samsung/dts/exynos5250-snow.dts b/board/samsung/dts/exynos5250-snow.dts
index d167df9..fdc047a 100644
--- a/board/samsung/dts/exynos5250-snow.dts
+++ b/board/samsung/dts/exynos5250-snow.dts
@@ -34,6 +34,8 @@
 		mmc1 = "/mmc at 12210000";
 		mmc2 = "/mmc at 12220000";
 		mmc3 = "/mmc at 12230000";
+		serial0 = "/serial at 12C30000";
+		console = "/serial at 12C30000";
 	};
 
 	sound at 12d60000 {
-- 
1.7.4.4

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

* [U-Boot] [PATCH 3/4 V7] S5P: Serial: Add fdt support to driver
  2013-06-24 11:17 [U-Boot] [PATCH 0/4 V7] EXYNOS5250: FDT: Add device tree support for console Rajeshwari Shinde
  2013-06-24 11:17 ` [U-Boot] [PATCH 1/4 V7] EXYNOS5: FDT: Add compatible strings for Serial Rajeshwari Shinde
  2013-06-24 11:17 ` [U-Boot] [PATCH 2/4 V7] EXYNOS5: FDT: Add serial device node values Rajeshwari Shinde
@ 2013-06-24 11:17 ` Rajeshwari Shinde
  2013-06-24 11:17 ` [U-Boot] [PATCH 4/4 V7] CONFIG: EXYNOS5: Enable silent console Rajeshwari Shinde
  2013-06-24 12:04 ` [U-Boot] [PATCH 0/4 V7] EXYNOS5250: FDT: Add device tree support for console Minkyu Kang
  4 siblings, 0 replies; 6+ messages in thread
From: Rajeshwari Shinde @ 2013-06-24 11:17 UTC (permalink / raw)
  To: u-boot

This patch adds FDT support to the serial s5p driver.
At present disabling the serial console (from the device tree) crashes
U-Boot. Add checks for this case, so that execution can continue without
a serial console.
It also enables the serial_s5p driver recognize the silent_console option.

Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
Signed-off-by: Gabe Black <gabeblack@google.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
---
Changes in V2:
        - None
Changes in V3:
        - Moved driver config structure to data section.
        - Changed silent_console to silent-console.
        - Did put a check for base address before doing fdt decoding.
Changes in V4:
        - None
Changes in V5:
        - None
Changes in V6:
	- Changed the if..else condition to a switch statement.
Chnages in V7:
	- None.
 drivers/serial/serial_s5p.c |   78 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 0 deletions(-)

diff --git a/drivers/serial/serial_s5p.c b/drivers/serial/serial_s5p.c
index e65125c..6836c7a 100644
--- a/drivers/serial/serial_s5p.c
+++ b/drivers/serial/serial_s5p.c
@@ -22,6 +22,7 @@
  */
 
 #include <common.h>
+#include <fdtdec.h>
 #include <linux/compiler.h>
 #include <asm/io.h>
 #include <asm/arch/uart.h>
@@ -34,10 +35,21 @@ DECLARE_GLOBAL_DATA_PTR;
 #define RX_FIFO_FULL_MASK	(1 << 8)
 #define TX_FIFO_FULL_MASK	(1 << 24)
 
+/* Information about a serial port */
+struct fdt_serial {
+	u32 base_addr;  /* address of registers in physical memory */
+	u8 port_id;     /* uart port number */
+	u8 enabled;     /* 1 if enabled, 0 if disabled */
+} config __attribute__ ((section(".data")));
+
 static inline struct s5p_uart *s5p_get_base_uart(int dev_index)
 {
+#ifdef CONFIG_OF_CONTROL
+	return (struct s5p_uart *)(config.base_addr);
+#else
 	u32 offset = dev_index * sizeof(struct s5p_uart);
 	return (struct s5p_uart *)(samsung_get_base_uart() + offset);
+#endif
 }
 
 /*
@@ -73,6 +85,16 @@ void serial_setbrg_dev(const int dev_index)
 	u32 baudrate = gd->baudrate;
 	u32 val;
 
+#if defined(CONFIG_SILENT_CONSOLE) && \
+		defined(CONFIG_OF_CONTROL) && \
+		!defined(CONFIG_SPL_BUILD)
+	if (fdtdec_get_config_int(gd->fdt_blob, "silent_console", 0))
+		gd->flags |= GD_FLG_SILENT;
+#endif
+
+	if (!config.enabled)
+		return;
+
 	val = uclk / baudrate;
 
 	writel(val / 16 - 1, &uart->ubrdiv);
@@ -133,6 +155,9 @@ int serial_getc_dev(const int dev_index)
 {
 	struct s5p_uart *const uart = s5p_get_base_uart(dev_index);
 
+	if (!config.enabled)
+		return 0;
+
 	/* wait for character to arrive */
 	while (!(readl(&uart->ufstat) & (RX_FIFO_COUNT_MASK |
 					 RX_FIFO_FULL_MASK))) {
@@ -150,6 +175,9 @@ void serial_putc_dev(const char c, const int dev_index)
 {
 	struct s5p_uart *const uart = s5p_get_base_uart(dev_index);
 
+	if (!config.enabled)
+		return;
+
 	/* wait for room in the tx FIFO */
 	while ((readl(&uart->ufstat) & TX_FIFO_FULL_MASK)) {
 		if (serial_err_check(dev_index, 1))
@@ -170,6 +198,9 @@ int serial_tstc_dev(const int dev_index)
 {
 	struct s5p_uart *const uart = s5p_get_base_uart(dev_index);
 
+	if (!config.enabled)
+		return 0;
+
 	return (int)(readl(&uart->utrstat) & 0x1);
 }
 
@@ -212,8 +243,54 @@ DECLARE_S5P_SERIAL_FUNCTIONS(3);
 struct serial_device s5p_serial3_device =
 	INIT_S5P_SERIAL_STRUCTURE(3, "s5pser3");
 
+#ifdef CONFIG_OF_CONTROL
+int fdtdec_decode_console(int *index, struct fdt_serial *uart)
+{
+	const void *blob = gd->fdt_blob;
+	int node;
+
+	node = fdt_path_offset(blob, "console");
+	if (node < 0)
+		return node;
+
+	uart->base_addr = fdtdec_get_addr(blob, node, "reg");
+	if (uart->base_addr == FDT_ADDR_T_NONE)
+		return -FDT_ERR_NOTFOUND;
+
+	uart->port_id = fdtdec_get_int(blob, node, "id", -1);
+	uart->enabled = fdtdec_get_is_enabled(blob, node);
+
+	return 0;
+}
+#endif
+
 __weak struct serial_device *default_serial_console(void)
 {
+#ifdef CONFIG_OF_CONTROL
+	int index = 0;
+
+	if ((!config.base_addr) && (fdtdec_decode_console(&index, &config))) {
+		debug("Cannot decode default console node\n");
+		return NULL;
+	}
+
+	switch (config.port_id) {
+	case 0:
+		return &s5p_serial0_device;
+	case 1:
+		return &s5p_serial1_device;
+	case 2:
+		return &s5p_serial2_device;
+	case 3:
+		return &s5p_serial3_device;
+	default:
+		debug("Unknown config.port_id: %d", config.port_id);
+		break;
+	}
+
+	return NULL;
+#else
+	config.enabled = 1;
 #if defined(CONFIG_SERIAL0)
 	return &s5p_serial0_device;
 #elif defined(CONFIG_SERIAL1)
@@ -225,6 +302,7 @@ __weak struct serial_device *default_serial_console(void)
 #else
 #error "CONFIG_SERIAL? missing."
 #endif
+#endif
 }
 
 void s5p_serial_initialize(void)
-- 
1.7.4.4

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

* [U-Boot] [PATCH 4/4 V7] CONFIG: EXYNOS5: Enable silent console
  2013-06-24 11:17 [U-Boot] [PATCH 0/4 V7] EXYNOS5250: FDT: Add device tree support for console Rajeshwari Shinde
                   ` (2 preceding siblings ...)
  2013-06-24 11:17 ` [U-Boot] [PATCH 3/4 V7] S5P: Serial: Add fdt support to driver Rajeshwari Shinde
@ 2013-06-24 11:17 ` Rajeshwari Shinde
  2013-06-24 12:04 ` [U-Boot] [PATCH 0/4 V7] EXYNOS5250: FDT: Add device tree support for console Minkyu Kang
  4 siblings, 0 replies; 6+ messages in thread
From: Rajeshwari Shinde @ 2013-06-24 11:17 UTC (permalink / raw)
  To: u-boot

This patch enables CONFIG_SILENT_CONSOLE for EXYNOS5.
This patch also removes the hardcoding of UART port from
exynos5250 config.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
---
Changes in V2:
        - None
Changes in V3:
        - None
Changes in V4:
        - None
Changes in V5:
        - None
Changes in V6:
	- Removed CONFIG_SERIAL3 as it is decoded from
	device tree
Changes in V7:
	- None.
 include/configs/exynos5250-dt.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h
index 9b97d4f..1c9eca2 100644
--- a/include/configs/exynos5250-dt.h
+++ b/include/configs/exynos5250-dt.h
@@ -78,9 +78,9 @@
 #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + (4 << 20))
 
 /* select serial console configuration */
-#define CONFIG_SERIAL3			/* use SERIAL 3 */
 #define CONFIG_BAUDRATE			115200
 #define EXYNOS5_DEFAULT_UART_OFFSET	0x010000
+#define CONFIG_SILENT_CONSOLE
 
 /* Console configuration */
 #define CONFIG_CONSOLE_MUX
-- 
1.7.4.4

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

* [U-Boot] [PATCH 0/4 V7] EXYNOS5250: FDT: Add device tree support for console
  2013-06-24 11:17 [U-Boot] [PATCH 0/4 V7] EXYNOS5250: FDT: Add device tree support for console Rajeshwari Shinde
                   ` (3 preceding siblings ...)
  2013-06-24 11:17 ` [U-Boot] [PATCH 4/4 V7] CONFIG: EXYNOS5: Enable silent console Rajeshwari Shinde
@ 2013-06-24 12:04 ` Minkyu Kang
  4 siblings, 0 replies; 6+ messages in thread
From: Minkyu Kang @ 2013-06-24 12:04 UTC (permalink / raw)
  To: u-boot

On 24/06/13 20:17, Rajeshwari Shinde wrote:
> Enabled fdt support for default console on EXYNOS5250.
> 
> Changes in V2:
>         - Changed the compatible string to "samsung,exynos4210-uart"
> Changes in V3:
>         - Rebased the patchset on latest u-boot-samsung branch.
>         - Added a alias console as we will support one at any point of time.
>         - Moved driver config structure to data section.
>         - Changed silent_console to silent-console.
>         - Did put a check for base address before doing fdt decoding.
> Changes in V4:
>         - Rebased the patchset on latest u-boot-samsung branch.
>         - Changed to COMPAT_SAMSUNG_EXYNOS5_SERIAL to COMPAT_SAMSUNG_EXYNOS_SERIAL
> Changes in V5:
>         - Added serial device node for Snow board.
> Changes in V6:
> 	- Rebased the patchset on latest u-boot-samsung branch.
> 	- Changed the if..else condition to a switch statement.
> 	- Moved compatible strings up with all other samsung strings.
> Changes in V7:
> 	- Removed a extra line.
> 
> Rajeshwari Shinde (4):
>   EXYNOS5: FDT: Add compatible strings for Serial
>   EXYNOS5: FDT: Add serial device node values
>   S5P: Serial: Add fdt support to driver
>   CONFIG: EXYNOS5: Enable silent console
> 
>  arch/arm/dts/exynos5250.dtsi              |   27 ++++++++++
>  board/samsung/dts/exynos5250-smdk5250.dts |    2 +
>  board/samsung/dts/exynos5250-snow.dts     |    2 +
>  drivers/serial/serial_s5p.c               |   78 +++++++++++++++++++++++++++++
>  include/configs/exynos5250-dt.h           |    2 +-
>  include/fdtdec.h                          |    1 +
>  lib/fdtdec.c                              |    1 +
>  7 files changed, 112 insertions(+), 1 deletions(-)
> 

applied to u-boot-samsung

Thanks,
Minkyu Kang.

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

end of thread, other threads:[~2013-06-24 12:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-24 11:17 [U-Boot] [PATCH 0/4 V7] EXYNOS5250: FDT: Add device tree support for console Rajeshwari Shinde
2013-06-24 11:17 ` [U-Boot] [PATCH 1/4 V7] EXYNOS5: FDT: Add compatible strings for Serial Rajeshwari Shinde
2013-06-24 11:17 ` [U-Boot] [PATCH 2/4 V7] EXYNOS5: FDT: Add serial device node values Rajeshwari Shinde
2013-06-24 11:17 ` [U-Boot] [PATCH 3/4 V7] S5P: Serial: Add fdt support to driver Rajeshwari Shinde
2013-06-24 11:17 ` [U-Boot] [PATCH 4/4 V7] CONFIG: EXYNOS5: Enable silent console Rajeshwari Shinde
2013-06-24 12:04 ` [U-Boot] [PATCH 0/4 V7] EXYNOS5250: FDT: Add device tree support for console Minkyu Kang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.