All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support
@ 2012-12-27  6:03 Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 01/16 V2] EXYNOS5: FDT: Add I2C device node data Rajeshwari Shinde
                   ` (16 more replies)
  0 siblings, 17 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

This patch set adds FDT support to I2C, I2S, SPI
drivers for SMDK5250.

Separate patch sets for each driver are rebased on lastest u-boot-samsung.
Following is the link for each driver patch set combined

1) I2C V4: "http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/148199"
2) I2S V3: "http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/148208"
3) SPI V2: "http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/148662"

Changes since V1:
	- Rebased, removed unnecessary lines and added blank lines
	whereever required
	- Removed magic numbers.
Rajeshwari Shinde (16):
  EXYNOS5: FDT: Add I2C device node data
  EXYNOS5 : FDT: Add Aliases for I2C device
  FDT: Add compatible string for I2C
  EXYNOS5: FDT : Decode peripheral id
  I2C: Driver changes for FDT support
  SMDK5250: Initialise I2C using FDT
  EXYNOS5: FDT: Add sound device node data
  EXYNOS5: FDT: Add sound and codec device node
  EXYNOS5: FDT: Add compatible strings for sound
  Sound: Add FDT support to driver
  Sound: WM8994: Add FDT support to codec
  Sound: Add FDT support to CMD.
  EXYNOS5: FDT: Add compatible strings for SPI
  EXYNOS5 : FDT: Add Aliases for SPI device
  EXYNOS5: FDT: Add SPI device node data
  SPI: EXYNOS: Add FDT support to driver.

 arch/arm/cpu/armv7/exynos/pinmux.c          |   29 +++++
 arch/arm/dts/exynos5250.dtsi                |  110 +++++++++++++++++
 arch/arm/include/asm/arch-exynos/periph.h   |   33 +++--
 arch/arm/include/asm/arch-exynos/pinmux.h   |    8 ++
 board/samsung/dts/exynos5250-smdk5250.dts   |   33 +++++
 board/samsung/smdk5250/smdk5250.c           |   20 +---
 common/cmd_sound.c                          |    2 +-
 doc/device-tree-bindings/exynos/isp-spi.txt |   22 ++++
 doc/device-tree-bindings/exynos/sound.txt   |   27 ++++
 drivers/i2c/s3c24x0_i2c.c                   |   83 +++++++++++++-
 drivers/i2c/s3c24x0_i2c.h                   |    8 ++
 drivers/sound/sound.c                       |  173 ++++++++++++++++-----------
 drivers/sound/wm8994.c                      |   74 +++++++++++-
 drivers/sound/wm8994.h                      |    6 +-
 drivers/spi/exynos_spi.c                    |   96 ++++++++++++++-
 include/fdtdec.h                            |    4 +
 include/i2c.h                               |   26 ++++
 include/sound.h                             |    4 +-
 lib/fdtdec.c                                |    4 +
 19 files changed, 644 insertions(+), 118 deletions(-)
 create mode 100644 doc/device-tree-bindings/exynos/isp-spi.txt
 create mode 100644 doc/device-tree-bindings/exynos/sound.txt

-- 
1.7.4.4

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

* [U-Boot] [PATCH 01/16 V2] EXYNOS5: FDT: Add I2C device node data
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 02/16 V2] EXYNOS5 : FDT: Add Aliases for I2C device Rajeshwari Shinde
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

Add I2C device node data for exynos

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- None
 arch/arm/dts/exynos5250.dtsi |   64 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/arch/arm/dts/exynos5250.dtsi b/arch/arm/dts/exynos5250.dtsi
index fa4d498..7a50b2e 100644
--- a/arch/arm/dts/exynos5250.dtsi
+++ b/arch/arm/dts/exynos5250.dtsi
@@ -28,4 +28,68 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 	};
+
+	i2c at 12c60000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12C60000 0x100>;
+		interrupts = <0 56 0>;
+	};
+
+	i2c at 12c70000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12C70000 0x100>;
+		interrupts = <0 57 0>;
+	};
+
+	i2c at 12c80000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12C80000 0x100>;
+		interrupts = <0 58 0>;
+	};
+
+	i2c at 12c90000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12C90000 0x100>;
+		interrupts = <0 59 0>;
+	};
+
+	i2c at 12ca0000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12CA0000 0x100>;
+		interrupts = <0 60 0>;
+	};
+
+	i2c at 12cb0000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12CB0000 0x100>;
+		interrupts = <0 61 0>;
+	};
+
+	i2c at 12cc0000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12CC0000 0x100>;
+		interrupts = <0 62 0>;
+	};
+
+	i2c at 12cd0000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12CD0000 0x100>;
+		interrupts = <0 63 0>;
+	};
 };
-- 
1.7.4.4

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

* [U-Boot] [PATCH 02/16 V2] EXYNOS5 : FDT: Add Aliases for I2C device
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 01/16 V2] EXYNOS5: FDT: Add I2C device node data Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 03/16 V2] FDT: Add compatible string for I2C Rajeshwari Shinde
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

This patch adds aliases for I2C.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Acked-by: Heiko Schocher <hs@denx.de>
---
Changes since V1:
	- None
 board/samsung/dts/exynos5250-smdk5250.dts |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/board/samsung/dts/exynos5250-smdk5250.dts b/board/samsung/dts/exynos5250-smdk5250.dts
index b6fbb67..0f971c0 100644
--- a/board/samsung/dts/exynos5250-smdk5250.dts
+++ b/board/samsung/dts/exynos5250-smdk5250.dts
@@ -16,6 +16,17 @@
 	model = "SAMSUNG SMDK5250 board based on EXYNOS5250";
 	compatible = "samsung,smdk5250", "samsung,exynos5250";
 
+	aliases {
+		i2c0 = "/i2c at 12c60000";
+		i2c1 = "/i2c at 12c70000";
+		i2c2 = "/i2c at 12c80000";
+		i2c3 = "/i2c at 12c90000";
+		i2c4 = "/i2c at 12ca0000";
+		i2c5 = "/i2c at 12cb0000";
+		i2c6 = "/i2c at 12cc0000";
+		i2c7 = "/i2c at 12cd0000";
+	};
+
 	sromc at 12250000 {
 		bank = <1>;
 		srom-timing = <1 9 12 1 6 1 1>;
-- 
1.7.4.4

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

* [U-Boot] [PATCH 03/16 V2] FDT: Add compatible string for I2C
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 01/16 V2] EXYNOS5: FDT: Add I2C device node data Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 02/16 V2] EXYNOS5 : FDT: Add Aliases for I2C device Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 04/16 V2] EXYNOS5: FDT : Decode peripheral id Rajeshwari Shinde
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

Add required compatible information for I2C driver.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Acked-by: Heiko Schocher <hs@denx.de>
---
Changes since V1:
	- 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 12587f9..934438c 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -72,6 +72,7 @@ enum fdt_compat_id {
 	COMPAT_NVIDIA_TEGRA20_DC,	/* Tegra 2 Display controller */
 	COMPAT_SMSC_LAN9215,		/* SMSC 10/100 Ethernet LAN9215 */
 	COMPAT_SAMSUNG_EXYNOS5_SROMC,	/* Exynos5 SROMC */
+	COMPAT_SAMSUNG_S3C2440_I2C,	/* Exynos I2C Controller */
 
 	COMPAT_COUNT,
 };
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index adebd79..b73ed8b 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -47,6 +47,7 @@ static const char * const compat_names[COMPAT_COUNT] = {
 	COMPAT(NVIDIA_TEGRA20_DC, "nvidia,tegra20-dc"),
 	COMPAT(SMSC_LAN9215, "smsc,lan9215"),
 	COMPAT(SAMSUNG_EXYNOS5_SROMC, "samsung,exynos-sromc"),
+	COMPAT(SAMSUNG_S3C2440_I2C, "samsung,s3c2440-i2c"),
 };
 
 const char *fdtdec_get_compatible(enum fdt_compat_id id)
-- 
1.7.4.4

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

* [U-Boot] [PATCH 04/16 V2] EXYNOS5: FDT : Decode peripheral id
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (2 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 03/16 V2] FDT: Add compatible string for I2C Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 05/16 V2] I2C: Driver changes for FDT support Rajeshwari Shinde
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

Api is added to decode peripheral id based on the interrupt number
of the peripheral.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- Removed hardcoded numbers.
 arch/arm/cpu/armv7/exynos/pinmux.c        |   29 +++++++++++++++++++++++++
 arch/arm/include/asm/arch-exynos/periph.h |   33 +++++++++++++++++-----------
 arch/arm/include/asm/arch-exynos/pinmux.h |    8 +++++++
 3 files changed, 57 insertions(+), 13 deletions(-)

diff --git a/arch/arm/cpu/armv7/exynos/pinmux.c b/arch/arm/cpu/armv7/exynos/pinmux.c
index 20a4b84..40f83b5 100644
--- a/arch/arm/cpu/armv7/exynos/pinmux.c
+++ b/arch/arm/cpu/armv7/exynos/pinmux.c
@@ -22,6 +22,7 @@
  */
 
 #include <common.h>
+#include <fdtdec.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/pinmux.h>
 #include <asm/arch/sromc.h>
@@ -402,3 +403,31 @@ int exynos_pinmux_config(int peripheral, int flags)
 		return -1;
 	}
 }
+
+#ifdef CONFIG_OF_CONTROL
+static int exynos5_pinmux_decode_periph_id(const void *blob, int node)
+{
+	int err;
+	u32 cell[3];
+
+	err = fdtdec_get_int_array(blob, node, "interrupts", cell,
+					ARRAY_SIZE(cell));
+	if (err)
+		return PERIPH_ID_NONE;
+
+	/* check for invalid peripheral id */
+	if ((PERIPH_ID_SDMMC4 > cell[1]) || (cell[1] < PERIPH_ID_UART0))
+		return cell[1];
+
+	debug(" invalid peripheral id\n");
+	return PERIPH_ID_NONE;
+}
+
+int pinmux_decode_periph_id(const void *blob, int node)
+{
+	if (cpu_is_exynos5())
+		return  exynos5_pinmux_decode_periph_id(blob, node);
+	else
+		return PERIPH_ID_NONE;
+}
+#endif
diff --git a/arch/arm/include/asm/arch-exynos/periph.h b/arch/arm/include/asm/arch-exynos/periph.h
index 13abd2d..89bcdfc 100644
--- a/arch/arm/include/asm/arch-exynos/periph.h
+++ b/arch/arm/include/asm/arch-exynos/periph.h
@@ -25,12 +25,17 @@
 #define __ASM_ARM_ARCH_PERIPH_H
 
 /*
- * Peripherals requiring clock/pinmux configuration. List will
+ * Peripherals required for pinmux configuration. List will
  * grow with support for more devices getting added.
+ * Numbering based on interrupt table.
  *
  */
 enum periph_id {
-	PERIPH_ID_I2C0,
+	PERIPH_ID_UART0 = 51,
+	PERIPH_ID_UART1,
+	PERIPH_ID_UART2,
+	PERIPH_ID_UART3,
+	PERIPH_ID_I2C0 = 56,
 	PERIPH_ID_I2C1,
 	PERIPH_ID_I2C2,
 	PERIPH_ID_I2C3,
@@ -38,22 +43,24 @@ enum periph_id {
 	PERIPH_ID_I2C5,
 	PERIPH_ID_I2C6,
 	PERIPH_ID_I2C7,
-	PERIPH_ID_I2S1,
-	PERIPH_ID_SDMMC0,
+	PERIPH_ID_SPI0 = 68,
+	PERIPH_ID_SPI1,
+	PERIPH_ID_SPI2,
+	PERIPH_ID_SDMMC0 = 75,
 	PERIPH_ID_SDMMC1,
 	PERIPH_ID_SDMMC2,
 	PERIPH_ID_SDMMC3,
-	PERIPH_ID_SDMMC4,
-	PERIPH_ID_SROMC,
-	PERIPH_ID_SPI0,
-	PERIPH_ID_SPI1,
-	PERIPH_ID_SPI2,
+	PERIPH_ID_I2S1 = 99,
+
+	/* Since following peripherals do
+	 * not have shared peripheral interrupts (SPIs)
+	 * they are numbered arbitiraly after the maximum
+	 * SPIs Exynos has (128)
+	 */
+	PERIPH_ID_SROMC = 128,
 	PERIPH_ID_SPI3,
 	PERIPH_ID_SPI4,
-	PERIPH_ID_UART0,
-	PERIPH_ID_UART1,
-	PERIPH_ID_UART2,
-	PERIPH_ID_UART3,
+	PERIPH_ID_SDMMC4,
 
 	PERIPH_ID_COUNT,
 	PERIPH_ID_NONE = -1,
diff --git a/arch/arm/include/asm/arch-exynos/pinmux.h b/arch/arm/include/asm/arch-exynos/pinmux.h
index 10ea736..014eebc 100644
--- a/arch/arm/include/asm/arch-exynos/pinmux.h
+++ b/arch/arm/include/asm/arch-exynos/pinmux.h
@@ -55,4 +55,12 @@ enum {
  */
 int exynos_pinmux_config(int peripheral, int flags);
 
+/**
+ * Decode the peripheral id using the interrpt numbers.
+ *
+ * @param blob  Device tree blob
+ * @param node  FDT I2C node to find
+ * @return peripheral id if ok, PERIPH_ID_NONE on error
+ */
+int pinmux_decode_periph_id(const void *blob, int node);
 #endif
-- 
1.7.4.4

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

* [U-Boot] [PATCH 05/16 V2] I2C: Driver changes for FDT support
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (3 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 04/16 V2] EXYNOS5: FDT : Decode peripheral id Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 06/16 V2] SMDK5250: Initialise I2C using FDT Rajeshwari Shinde
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

Functions added to get the I2C bus number and reset I2C bus using
FDT node.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Acked-by: Heiko Schocher <hs@denx.de>
---
Changes since V1:
	- Removed unnecessary blank lines and added wherever required.
 drivers/i2c/s3c24x0_i2c.c |   83 ++++++++++++++++++++++++++++++++++++++++++++-
 drivers/i2c/s3c24x0_i2c.h |    8 ++++
 include/i2c.h             |   26 ++++++++++++++
 3 files changed, 116 insertions(+), 1 deletions(-)

diff --git a/drivers/i2c/s3c24x0_i2c.c b/drivers/i2c/s3c24x0_i2c.c
index 90d297a..7ec01ec 100644
--- a/drivers/i2c/s3c24x0_i2c.c
+++ b/drivers/i2c/s3c24x0_i2c.c
@@ -27,9 +27,11 @@
  */
 
 #include <common.h>
+#include <fdtdec.h>
 #if (defined CONFIG_EXYNOS4 || defined CONFIG_EXYNOS5)
 #include <asm/arch/clk.h>
 #include <asm/arch/cpu.h>
+#include <asm/arch/pinmux.h>
 #else
 #include <asm/arch/s3c24x0_cpu.h>
 #endif
@@ -60,7 +62,14 @@
 #define I2C_TIMEOUT 1		/* 1 second */
 
 
-static unsigned int g_current_bus;	/* Stores Current I2C Bus */
+/*
+ * For SPL boot some boards need i2c before SDRAM is initialised so force
+ * variables to live in SRAM
+ */
+static unsigned int g_current_bus __attribute__((section(".data")));
+static struct s3c24x0_i2c_bus i2c_bus[CONFIG_MAX_I2C_NUM]
+			__attribute__((section(".data")));
+static int i2c_busses __attribute__((section(".data")));
 
 #if !(defined CONFIG_EXYNOS4 || defined CONFIG_EXYNOS5)
 static int GetI2CSDA(void)
@@ -512,4 +521,76 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len)
 		(i2c, I2C_WRITE, chip << 1, &xaddr[4 - alen], alen, buffer,
 		 len) != 0);
 }
+
+#ifdef CONFIG_OF_CONTROL
+void board_i2c_init(const void *blob)
+{
+	int node_list[CONFIG_MAX_I2C_NUM];
+	int count, i;
+
+	count = fdtdec_find_aliases_for_id(blob, "i2c",
+		COMPAT_SAMSUNG_S3C2440_I2C, node_list,
+		CONFIG_MAX_I2C_NUM);
+
+	for (i = 0; i < count; i++) {
+		struct s3c24x0_i2c_bus *bus;
+		int node = node_list[i];
+
+		if (node <= 0)
+			continue;
+		bus = &i2c_bus[i];
+		bus->regs = (struct s3c24x0_i2c *)
+			fdtdec_get_addr(blob, node, "reg");
+		bus->id = pinmux_decode_periph_id(blob, node);
+		bus->node = node;
+		bus->bus_num = i2c_busses++;
+		exynos_pinmux_config(bus->id, 0);
+	}
+}
+
+static struct s3c24x0_i2c_bus *get_bus(unsigned int bus_idx)
+{
+	if (bus_idx < i2c_busses)
+		return &i2c_bus[bus_idx];
+
+	debug("Undefined bus: %d\n", bus_idx);
+	return NULL;
+}
+
+int i2c_get_bus_num_fdt(int node)
+{
+	int i;
+
+	for (i = 0; i < i2c_busses; i++) {
+		if (node == i2c_bus[i].node)
+			return i;
+	}
+
+	debug("%s: Can't find any matched I2C bus\n", __func__);
+	return -1;
+}
+
+int i2c_reset_port_fdt(const void *blob, int node)
+{
+	struct s3c24x0_i2c_bus *i2c;
+	int bus;
+
+	bus = i2c_get_bus_num_fdt(node);
+	if (bus < 0) {
+		debug("could not get bus for node %d\n", node);
+		return -1;
+	}
+
+	i2c = get_bus(bus);
+	if (!i2c) {
+		debug("get_bus() failed for node node %d\n", node);
+		return -1;
+	}
+
+	i2c_ch_init(i2c->regs, CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
+
+	return 0;
+}
+#endif
+
 #endif /* CONFIG_HARD_I2C */
diff --git a/drivers/i2c/s3c24x0_i2c.h b/drivers/i2c/s3c24x0_i2c.h
index 2dd4b06..1243bf1 100644
--- a/drivers/i2c/s3c24x0_i2c.h
+++ b/drivers/i2c/s3c24x0_i2c.h
@@ -30,4 +30,12 @@ struct s3c24x0_i2c {
 	u32	iicds;
 	u32	iiclc;
 };
+
+struct s3c24x0_i2c_bus {
+	int node;	/* device tree node */
+	int bus_num;	/* i2c bus number */
+	struct s3c24x0_i2c *regs;
+	enum periph_id id;
+};
+
 #endif /* _S3C24X0_I2C_H */
diff --git a/include/i2c.h b/include/i2c.h
index 16f099d..c60d075 100644
--- a/include/i2c.h
+++ b/include/i2c.h
@@ -262,4 +262,30 @@ extern int get_multi_scl_pin(void);
 extern int get_multi_sda_pin(void);
 extern int multi_i2c_init(void);
 #endif
+
+/**
+ * Get FDT values for i2c bus.
+ *
+ * @param blob  Device tree blbo
+ * @return the number of I2C bus
+ */
+void board_i2c_init(const void *blob);
+
+/**
+ * Find the I2C bus number by given a FDT I2C node.
+ *
+ * @param blob  Device tree blbo
+ * @param node  FDT I2C node to find
+ * @return the number of I2C bus (zero based), or -1 on error
+ */
+int i2c_get_bus_num_fdt(int node);
+
+/**
+ * Reset the I2C bus represented by the given a FDT I2C node.
+ *
+ * @param blob  Device tree blbo
+ * @param node  FDT I2C node to find
+ * @return 0 if port was reset, -1 if not found
+ */
+int i2c_reset_port_fdt(const void *blob, int node);
 #endif	/* _I2C_H_ */
-- 
1.7.4.4

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

* [U-Boot] [PATCH 06/16 V2] SMDK5250: Initialise I2C using FDT
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (4 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 05/16 V2] I2C: Driver changes for FDT support Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 07/16 V2] EXYNOS5: FDT: Add sound device node data Rajeshwari Shinde
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

This patch initialises I2C using FDT.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
Acked-by: Heiko Schocher <hs@denx.de>
---
Changes since V1:
	- None
 board/samsung/smdk5250/smdk5250.c |   20 +-------------------
 1 files changed, 1 insertions(+), 19 deletions(-)

diff --git a/board/samsung/smdk5250/smdk5250.c b/board/samsung/smdk5250/smdk5250.c
index 268b42c..73c3ec0 100644
--- a/board/samsung/smdk5250/smdk5250.c
+++ b/board/samsung/smdk5250/smdk5250.c
@@ -243,24 +243,6 @@ static int board_uart_init(void)
 	return 0;
 }
 
-#ifdef CONFIG_SYS_I2C_INIT_BOARD
-static int board_i2c_init(void)
-{
-	int i, err;
-
-	for (i = 0; i < CONFIG_MAX_I2C_NUM; i++) {
-		err = exynos_pinmux_config((PERIPH_ID_I2C0 + i),
-						PINMUX_FLAG_NONE);
-		if (err) {
-			debug("I2C%d not configured\n", (PERIPH_ID_I2C0 + i));
-			return err;
-		}
-	}
-	i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
-	return 0;
-}
-#endif
-
 #ifdef CONFIG_BOARD_EARLY_INIT_F
 int board_early_init_f(void)
 {
@@ -271,7 +253,7 @@ int board_early_init_f(void)
 		return err;
 	}
 #ifdef CONFIG_SYS_I2C_INIT_BOARD
-	err = board_i2c_init();
+	board_i2c_init(gd->fdt_blob);
 #endif
 	return err;
 }
-- 
1.7.4.4

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

* [U-Boot] [PATCH 07/16 V2] EXYNOS5: FDT: Add sound device node data
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (5 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 06/16 V2] SMDK5250: Initialise I2C using FDT Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 08/16 V2] EXYNOS5: FDT: Add sound and codec device node Rajeshwari Shinde
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

Add sound device node data for exynos

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- None
 arch/arm/dts/exynos5250.dtsi              |    5 +++++
 doc/device-tree-bindings/exynos/sound.txt |   27 +++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 0 deletions(-)
 create mode 100644 doc/device-tree-bindings/exynos/sound.txt

diff --git a/arch/arm/dts/exynos5250.dtsi b/arch/arm/dts/exynos5250.dtsi
index 7a50b2e..dc13f29 100644
--- a/arch/arm/dts/exynos5250.dtsi
+++ b/arch/arm/dts/exynos5250.dtsi
@@ -92,4 +92,9 @@
 		reg = <0x12CD0000 0x100>;
 		interrupts = <0 63 0>;
 	};
+
+	sound at 12d60000 {
+		compatible = "samsung,exynos-sound";
+		reg = <0x12d60000 0x20>;
+	};
 };
diff --git a/doc/device-tree-bindings/exynos/sound.txt b/doc/device-tree-bindings/exynos/sound.txt
new file mode 100644
index 0000000..98d1798
--- /dev/null
+++ b/doc/device-tree-bindings/exynos/sound.txt
@@ -0,0 +1,27 @@
+Exynos Sound Subsystem
+
+The device node for sound subsytem which contains codec and i2s block
+that is a part of Exynos5250
+
+Required properties :
+ - compatible : Should be "samsung,exynos-sound" for sound
+ - samsung,i2s-epll-clock-frequency : epll clock output frequency in Hz
+ - samsung,i2s-sampling-rate : sampling rate, default is 48000
+ - samsung,i2s-bits-per-sample : sample width, defalut is 16 bit
+ - samsung,i2s-channels : nummber of channels, default is 2
+ - samsung,i2s-lr-clk-framesize : lr clock frame size
+ - samsung,i2s-bit-clk-framesize : bit clock frame size
+ - samsung,codec-type : sound codec type
+
+Example:
+
+sound at 12d60000 {
+	compatible = "samsung,exynos-sound"
+	samsung,i2s-epll-clock-frequency = <192000000>;
+	samsung,i2s-sampling-rate = <48000>;
+	samsung,i2s-bits-per-sample = <16>;
+	samsung,i2s-channels = <2>;
+	samsung,i2s-lr-clk-framesize = <256>;
+	samsung,i2s-bit-clk-framesize = <32>;
+	samsung,codec-type = "wm8994";
+};
-- 
1.7.4.4

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

* [U-Boot] [PATCH 08/16 V2] EXYNOS5: FDT: Add sound and codec device node
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (6 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 07/16 V2] EXYNOS5: FDT: Add sound device node data Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 09/16 V2] EXYNOS5: FDT: Add compatible strings for sound Rajeshwari Shinde
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

Adds sound and codec device node parameters

Signed-off-by: R. Chandrasekar <rcsekar@samsung.com>
Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- None
 board/samsung/dts/exynos5250-smdk5250.dts |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/board/samsung/dts/exynos5250-smdk5250.dts b/board/samsung/dts/exynos5250-smdk5250.dts
index 0f971c0..14f73d8 100644
--- a/board/samsung/dts/exynos5250-smdk5250.dts
+++ b/board/samsung/dts/exynos5250-smdk5250.dts
@@ -37,4 +37,21 @@
 			phy-mode = "mii";
 		};
 	};
+
+	sound at 12d60000 {
+		samsung,i2s-epll-clock-frequency = <192000000>;
+		samsung,i2s-sampling-rate = <48000>;
+		samsung,i2s-bits-per-sample = <16>;
+		samsung,i2s-channels = <2>;
+		samsung,i2s-lr-clk-framesize = <256>;
+		samsung,i2s-bit-clk-framesize = <32>;
+		samsung,codec-type = "wm8994";
+	};
+
+	i2c at 12c70000 {
+		soundcodec at 1a {
+			reg = <0x1a>;
+			compatible = "wolfson,wm8994-codec";
+		};
+	};
 };
-- 
1.7.4.4

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

* [U-Boot] [PATCH 09/16 V2] EXYNOS5: FDT: Add compatible strings for sound
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (7 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 08/16 V2] EXYNOS5: FDT: Add sound and codec device node Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 10/16 V2] Sound: Add FDT support to driver Rajeshwari Shinde
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

Add required compatible information for sound driver.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- None
 include/fdtdec.h |    2 ++
 lib/fdtdec.c     |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/include/fdtdec.h b/include/fdtdec.h
index 934438c..bb1bc2a 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -73,6 +73,8 @@ enum fdt_compat_id {
 	COMPAT_SMSC_LAN9215,		/* SMSC 10/100 Ethernet LAN9215 */
 	COMPAT_SAMSUNG_EXYNOS5_SROMC,	/* Exynos5 SROMC */
 	COMPAT_SAMSUNG_S3C2440_I2C,	/* Exynos I2C Controller */
+	COMPAT_SAMSUNG_EXYNOS5_SOUND,	/* Exynos Sound */
+	COMPAT_WOLFSON_WM8994_CODEC,	/* Wolfson WM8994 Sound Codec */
 
 	COMPAT_COUNT,
 };
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index b73ed8b..3e159a1 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -48,6 +48,8 @@ static const char * const compat_names[COMPAT_COUNT] = {
 	COMPAT(SMSC_LAN9215, "smsc,lan9215"),
 	COMPAT(SAMSUNG_EXYNOS5_SROMC, "samsung,exynos-sromc"),
 	COMPAT(SAMSUNG_S3C2440_I2C, "samsung,s3c2440-i2c"),
+	COMPAT(SAMSUNG_EXYNOS5_SOUND, "samsung,exynos-sound"),
+	COMPAT(WOLFSON_WM8994_CODEC, "wolfson,wm8994-codec"),
 };
 
 const char *fdtdec_get_compatible(enum fdt_compat_id id)
-- 
1.7.4.4

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

* [U-Boot] [PATCH 10/16 V2] Sound: Add FDT support to driver
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (8 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 09/16 V2] EXYNOS5: FDT: Add compatible strings for sound Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 11/16 V2] Sound: WM8994: Add FDT support to codec Rajeshwari Shinde
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

This patch adds FDT support to the sound driver.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- None
 drivers/sound/sound.c |  173 +++++++++++++++++++++++++++++--------------------
 include/sound.h       |    4 +-
 2 files changed, 105 insertions(+), 72 deletions(-)

diff --git a/drivers/sound/sound.c b/drivers/sound/sound.c
index 4c74534..fa8432d 100644
--- a/drivers/sound/sound.c
+++ b/drivers/sound/sound.c
@@ -24,111 +24,159 @@
 #include <malloc.h>
 #include <common.h>
 #include <asm/io.h>
+#include <libfdt.h>
+#include <fdtdec.h>
 #include <i2c.h>
 #include <i2s.h>
 #include <sound.h>
-#include "wm8994.h"
 #include <asm/arch/sound.h>
+#include "wm8994.h"
 
 /* defines */
 #define SOUND_400_HZ 400
 #define SOUND_BITS_IN_BYTE 8
 
 static struct i2stx_info g_i2stx_pri;
-static struct sound_codec_info g_codec_info;
 
 /*
- * get_sound_fdt_values gets fdt values for i2s parameters
+ * get_sound_i2s_values gets values for i2s parameters
  *
  * @param i2stx_info	i2s transmitter transfer param structure
- * @param blob		FDT blob
- */
-static void get_sound_i2s_values(struct i2stx_info *i2s)
-{
-	i2s->base_address = samsung_get_base_i2s();
-	i2s->audio_pll_clk = I2S_PLL_CLK;
-	i2s->samplingrate = I2S_SAMPLING_RATE;
-	i2s->bitspersample = I2S_BITS_PER_SAMPLE;
-	i2s->channels = I2S_CHANNELS;
-	i2s->rfs = I2S_RFS;
-	i2s->bfs = I2S_BFS;
-}
-
-/*
- * Gets fdt values for wm8994 config parameters
- *
- * @param pcodec_info	codec information structure
- * @param blob		FDT blob
- * @return		int value, 0 for success
+ * @param blob		FDT blob if enabled else NULL
  */
-static int get_sound_wm8994_values(struct sound_codec_info *pcodec_info)
+static int get_sound_i2s_values(struct i2stx_info *i2s, const void *blob)
 {
+#ifdef CONFIG_OF_CONTROL
+	int node;
 	int error = 0;
+	int base;
 
-	switch (AUDIO_COMPAT) {
-	case AUDIO_COMPAT_SPI:
-		debug("%s: Support not added for SPI interface\n", __func__);
+	node = fdtdec_next_compatible(blob, 0,
+					COMPAT_SAMSUNG_EXYNOS5_SOUND);
+	if (node <= 0) {
+		debug("EXYNOS_SOUND: No node for sound in device tree\n");
 		return -1;
-		break;
-	case AUDIO_COMPAT_I2C:
-		pcodec_info->i2c_bus = AUDIO_I2C_BUS;
-		pcodec_info->i2c_dev_addr = AUDIO_I2C_REG;
-		debug("i2c dev addr = %d\n", pcodec_info->i2c_dev_addr);
-		break;
-	default:
-		debug("%s: Unknown compat id %d\n", __func__, AUDIO_COMPAT);
+	}
+
+	/*
+	 * Get the pre-defined sound specific values from FDT.
+	 * All of these are expected to be correct otherwise
+	 * wrong register values in i2s setup parameters
+	 * may result in no sound play.
+	 */
+	base = fdtdec_get_addr(blob, node, "reg");
+	if (base == FDT_ADDR_T_NONE) {
+		debug("%s: Missing  i2s base\n", __func__);
 		return -1;
 	}
+	i2s->base_address = base;
 
+	i2s->audio_pll_clk = fdtdec_get_int(blob,
+				node, "samsung,i2s-epll-clock-frequency", -1);
+	error |= i2s->audio_pll_clk;
+	debug("audio_pll_clk = %d\n", i2s->audio_pll_clk);
+	i2s->samplingrate = fdtdec_get_int(blob,
+				node, "samsung,i2s-sampling-rate", -1);
+	error |= i2s->samplingrate;
+	debug("samplingrate = %d\n", i2s->samplingrate);
+	i2s->bitspersample = fdtdec_get_int(blob,
+				node, "samsung,i2s-bits-per-sample", -1);
+	error |= i2s->bitspersample;
+	debug("bitspersample = %d\n", i2s->bitspersample);
+	i2s->channels = fdtdec_get_int(blob,
+			node, "samsung,i2s-channels", -1);
+	error |= i2s->channels;
+	debug("channels = %d\n", i2s->channels);
+	i2s->rfs = fdtdec_get_int(blob,
+				node, "samsung,i2s-lr-clk-framesize", -1);
+	error |= i2s->rfs;
+	debug("rfs = %d\n", i2s->rfs);
+	i2s->bfs = fdtdec_get_int(blob,
+				node, "samsung,i2s-bit-clk-framesize", -1);
+	error |= i2s->bfs;
+	debug("bfs = %d\n", i2s->bfs);
 	if (error == -1) {
-		debug("fail to get wm8994 codec node properties\n");
+		debug("fail to get sound i2s node properties\n");
 		return -1;
 	}
-
+#else
+	i2s->base_address = samsung_get_base_i2s();
+	i2s->audio_pll_clk = I2S_PLL_CLK;
+	i2s->samplingrate = I2S_SAMPLING_RATE;
+	i2s->bitspersample = I2S_BITS_PER_SAMPLE;
+	i2s->channels = I2S_CHANNELS;
+	i2s->rfs = I2S_RFS;
+	i2s->bfs = I2S_BFS;
+#endif
 	return 0;
 }
 
 /*
- * Gets fdt values for codec config parameters
+ * Init codec
  *
- * @param pcodec_info	codec information structure
- * @param blob		FDT blob
- * @return		int value, 0 for success
+ * @param blob          FDT blob
+ * @param pi2s_tx	i2s parameters required by codec
+ * @return              int value, 0 for success
  */
-static int get_sound_codec_values(struct sound_codec_info *pcodec_info)
+static int codec_init(const void *blob, struct i2stx_info *pi2s_tx)
 {
-	int error = 0;
+	int ret;
 	const char *codectype;
+#ifdef CONFIG_OF_CONTROL
+	int node;
 
-	codectype =  AUDIO_CODEC;
+	/* Get the node from FDT for sound */
+	node = fdtdec_next_compatible(blob, 0, COMPAT_SAMSUNG_EXYNOS5_SOUND);
+	if (node <= 0) {
+		debug("EXYNOS_SOUND: No node for sound in device tree\n");
+		debug("node = %d\n", node);
+		return -1;
+	}
 
+	/*
+	 * Get the pre-defined sound codec specific values from FDT.
+	 * All of these are expected to be correct otherwise sound
+	 * can not be played
+	 */
+	codectype = fdt_getprop(blob, node, "samsung,codec-type", NULL);
+	debug("device = %s\n", codectype);
+#else
+	codectype =  AUDIO_CODEC;
+#endif
 	if (!strcmp(codectype, "wm8994")) {
-		pcodec_info->codec_type = CODEC_WM_8994;
-		error = get_sound_wm8994_values(pcodec_info);
+		/* Check the codec type and initialise the same */
+		ret = wm8994_init(blob, WM8994_AIF2,
+			pi2s_tx->samplingrate,
+			(pi2s_tx->samplingrate * (pi2s_tx->rfs)),
+			pi2s_tx->bitspersample, pi2s_tx->channels);
 	} else {
-		error = -1;
+		debug("%s: Unknown code type %s\n", __func__,
+		      codectype);
+		return -1;
 	}
-
-	if (error == -1) {
-		debug("fail to get sound codec node properties\n");
+	if (ret) {
+		debug("%s: Codec init failed\n", __func__);
 		return -1;
 	}
 
 	return 0;
 }
 
-int sound_init(void)
+int sound_init(const void *blob)
 {
 	int ret;
 	struct i2stx_info *pi2s_tx = &g_i2stx_pri;
-	struct sound_codec_info *pcodec_info = &g_codec_info;
 
 	/* Get the I2S Values */
-	get_sound_i2s_values(pi2s_tx);
+	if (get_sound_i2s_values(pi2s_tx, blob) < 0) {
+		debug(" FDT I2S values failed\n");
+		return -1;
+	}
 
-	/* Get the codec Values */
-	if (get_sound_codec_values(pcodec_info) < 0)
+	if (codec_init(blob, pi2s_tx) < 0) {
+		debug(" Codec init failed\n");
 		return -1;
+	}
 
 	ret = i2s_tx_init(pi2s_tx);
 	if (ret) {
@@ -137,21 +185,6 @@ int sound_init(void)
 		return ret;
 	}
 
-	/* Check the codec type and initialise the same */
-	if (pcodec_info->codec_type == CODEC_WM_8994) {
-		ret = wm8994_init(pcodec_info, WM8994_AIF2,
-			pi2s_tx->samplingrate,
-			(pi2s_tx->samplingrate * (pi2s_tx->rfs)),
-			pi2s_tx->bitspersample, pi2s_tx->channels);
-	} else {
-		debug("%s: Unknown code type %d\n", __func__,
-		      pcodec_info->codec_type);
-		return -1;
-	}
-	if (ret) {
-		debug("%s: Codec init failed\n", __func__);
-		return -1;
-	}
 
 	return ret;
 }
diff --git a/include/sound.h b/include/sound.h
index ea0b115..d73839d 100644
--- a/include/sound.h
+++ b/include/sound.h
@@ -46,10 +46,10 @@ struct sound_codec_info {
 
 /*
  * Initialises audio sub system
- *
+ * @param blob	Pointer of device tree node or NULL if none.
  * @return	int value 0 for success, -1 for error
  */
-int sound_init(void);
+int sound_init(const void *blob);
 
 /*
  * plays the pcm data buffer in pcm_data.h through i2s1 to make the
-- 
1.7.4.4

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

* [U-Boot] [PATCH 11/16 V2] Sound: WM8994: Add FDT support to codec
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (9 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 10/16 V2] Sound: Add FDT support to driver Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 12/16 V2] Sound: Add FDT support to CMD Rajeshwari Shinde
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

This patch adds FDT support to the codec.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- removed unnecesarry blank lines.	
 drivers/sound/wm8994.c |   74 ++++++++++++++++++++++++++++++++++++++++++++++-
 drivers/sound/wm8994.h |    6 +--
 2 files changed, 74 insertions(+), 6 deletions(-)

diff --git a/drivers/sound/wm8994.c b/drivers/sound/wm8994.c
index 293903a..3b673b4 100644
--- a/drivers/sound/wm8994.c
+++ b/drivers/sound/wm8994.c
@@ -26,9 +26,11 @@
 #include <asm/io.h>
 #include <common.h>
 #include <div64.h>
+#include <fdtdec.h>
 #include <i2c.h>
 #include <i2s.h>
 #include <sound.h>
+#include <asm/arch/sound.h>
 #include "wm8994.h"
 #include "wm8994_registers.h"
 
@@ -77,6 +79,7 @@ static int bclk_divs[] = {
 
 static struct wm8994_priv g_wm8994_info;
 static unsigned char g_wm8994_i2c_dev_addr;
+static struct sound_codec_info g_codec_info;
 
 /*
  * Initialise I2C for wm 8994
@@ -747,13 +750,80 @@ err:
 	return -1;
 }
 
+/*
+ * Gets fdt values for wm8994 config parameters
+ *
+ * @param pcodec_info	codec information structure
+ * @param blob		FDT blob
+ * @return		int value, 0 for success
+ */
+static int get_codec_values(struct sound_codec_info *pcodec_info,
+			const void *blob)
+{
+	int error = 0;
+#ifdef CONFIG_OF_CONTROL
+	enum fdt_compat_id compat;
+	int node;
+	int parent;
+
+	/* Get the node from FDT for codec */
+	node = fdtdec_next_compatible(blob, 0, COMPAT_WOLFSON_WM8994_CODEC);
+	if (node <= 0) {
+		debug("EXYNOS_SOUND: No node for codec in device tree\n");
+		debug("node = %d\n", node);
+		return -1;
+	}
+
+	parent = fdt_parent_offset(blob, node);
+	if (parent < 0) {
+		debug("%s: Cannot find node parent\n", __func__);
+		return -1;
+	}
+
+	compat = fdtdec_lookup(blob, parent);
+	switch (compat) {
+	case COMPAT_SAMSUNG_S3C2440_I2C:
+		pcodec_info->i2c_bus = i2c_get_bus_num_fdt(parent);
+		error |= pcodec_info->i2c_bus;
+		debug("i2c bus = %d\n", pcodec_info->i2c_bus);
+		pcodec_info->i2c_dev_addr = fdtdec_get_int(blob, node,
+							"reg", 0);
+		error |= pcodec_info->i2c_dev_addr;
+		debug("i2c dev addr = %d\n", pcodec_info->i2c_dev_addr);
+		break;
+	default:
+		debug("%s: Unknown compat id %d\n", __func__, compat);
+		return -1;
+	}
+#else
+	pcodec_info->i2c_bus = AUDIO_I2C_BUS;
+	pcodec_info->i2c_dev_addr = AUDIO_I2C_REG;
+	debug("i2c dev addr = %d\n", pcodec_info->i2c_dev_addr);
+#endif
+
+	pcodec_info->codec_type = CODEC_WM_8994;
+
+	if (error == -1) {
+		debug("fail to get wm8994 codec node properties\n");
+		return -1;
+	}
+
+	return 0;
+}
+
 /*wm8994 Device Initialisation */
-int wm8994_init(struct sound_codec_info *pcodec_info,
-			enum en_audio_interface aif_id,
+int wm8994_init(const void *blob, enum en_audio_interface aif_id,
 			int sampling_rate, int mclk_freq,
 			int bits_per_sample, unsigned int channels)
 {
 	int ret = 0;
+	struct sound_codec_info *pcodec_info = &g_codec_info;
+
+	/* Get the codec Values */
+	if (get_codec_values(pcodec_info, blob) < 0) {
+		debug("FDT Codec values failed\n");
+		return -1;
+	}
 
 	/* shift the device address by 1 for 7 bit addressing */
 	g_wm8994_i2c_dev_addr = pcodec_info->i2c_dev_addr;
diff --git a/drivers/sound/wm8994.h b/drivers/sound/wm8994.h
index a8f0de1..a1e8335 100644
--- a/drivers/sound/wm8994.h
+++ b/drivers/sound/wm8994.h
@@ -69,8 +69,7 @@ enum wm8994_type {
 /*
  * intialise wm8994 sound codec device for the given configuration
  *
- * @param pcodec_info		pointer value of the sound codec info structure
- *				parsed from device tree
+ * @param blob			FDT node for codec values
  * @param aif_id		enum value of codec interface port in which
  *				soc i2s is connected
  * @param sampling_rate		Sampling rate ranges between from 8khz to 96khz
@@ -80,8 +79,7 @@ enum wm8994_type {
  *
  * @returns -1 for error  and 0  Success.
  */
-int wm8994_init(struct sound_codec_info *pcodec_info,
-			enum en_audio_interface aif_id,
+int wm8994_init(const void *blob, enum en_audio_interface aif_id,
 			int sampling_rate, int mclk_freq,
 			int bits_per_sample, unsigned int channels);
 #endif /*__WM8994_H__ */
-- 
1.7.4.4

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

* [U-Boot] [PATCH 12/16 V2] Sound: Add FDT support to CMD.
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (10 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 11/16 V2] Sound: WM8994: Add FDT support to codec Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 13/16 V2] EXYNOS5: FDT: Add compatible strings for SPI Rajeshwari Shinde
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

This patch adds FDT support to sound init in CMD.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- None
 common/cmd_sound.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/common/cmd_sound.c b/common/cmd_sound.c
index 459d1eb..cfca9dd 100644
--- a/common/cmd_sound.c
+++ b/common/cmd_sound.c
@@ -33,7 +33,7 @@ static int do_init(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
 {
 	int ret;
 
-	ret = sound_init();
+	ret = sound_init(gd->fdt_blob);
 	if (ret) {
 		printf("Initialise Audio driver failed\n");
 		return CMD_RET_FAILURE;
-- 
1.7.4.4

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

* [U-Boot] [PATCH 13/16 V2] EXYNOS5: FDT: Add compatible strings for SPI
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (11 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 12/16 V2] Sound: Add FDT support to CMD Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 14/16 V2] EXYNOS5 : FDT: Add Aliases for SPI device Rajeshwari Shinde
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

Add required compatible information for SPI driver.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- 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 bb1bc2a..ce10bf4 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -75,6 +75,7 @@ enum fdt_compat_id {
 	COMPAT_SAMSUNG_S3C2440_I2C,	/* Exynos I2C Controller */
 	COMPAT_SAMSUNG_EXYNOS5_SOUND,	/* Exynos Sound */
 	COMPAT_WOLFSON_WM8994_CODEC,	/* Wolfson WM8994 Sound Codec */
+	COMPAT_SAMSUNG_EXYNOS_SPI,	/* Exynos SPI */
 
 	COMPAT_COUNT,
 };
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 3e159a1..aa75710 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -50,6 +50,7 @@ static const char * const compat_names[COMPAT_COUNT] = {
 	COMPAT(SAMSUNG_S3C2440_I2C, "samsung,s3c2440-i2c"),
 	COMPAT(SAMSUNG_EXYNOS5_SOUND, "samsung,exynos-sound"),
 	COMPAT(WOLFSON_WM8994_CODEC, "wolfson,wm8994-codec"),
+	COMPAT(SAMSUNG_EXYNOS_SPI, "samsung,exynos-spi"),
 };
 
 const char *fdtdec_get_compatible(enum fdt_compat_id id)
-- 
1.7.4.4

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

* [U-Boot] [PATCH 14/16 V2] EXYNOS5 : FDT: Add Aliases for SPI device
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (12 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 13/16 V2] EXYNOS5: FDT: Add compatible strings for SPI Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 15/16 V2] EXYNOS5: FDT: Add SPI device node data Rajeshwari Shinde
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

This patch adds aliases for SPI.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- None
 board/samsung/dts/exynos5250-smdk5250.dts |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/board/samsung/dts/exynos5250-smdk5250.dts b/board/samsung/dts/exynos5250-smdk5250.dts
index 14f73d8..a8e62da 100644
--- a/board/samsung/dts/exynos5250-smdk5250.dts
+++ b/board/samsung/dts/exynos5250-smdk5250.dts
@@ -25,6 +25,11 @@
 		i2c5 = "/i2c at 12cb0000";
 		i2c6 = "/i2c at 12cc0000";
 		i2c7 = "/i2c at 12cd0000";
+		spi0 = "/spi at 12d20000";
+		spi1 = "/spi at 12d30000";
+		spi2 = "/spi at 12d40000";
+		spi3 = "/spi at 131a0000";
+		spi4 = "/spi at 131b0000";
 	};
 
 	sromc at 12250000 {
-- 
1.7.4.4

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

* [U-Boot] [PATCH 15/16 V2] EXYNOS5: FDT: Add SPI device node data
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (13 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 14/16 V2] EXYNOS5 : FDT: Add Aliases for SPI device Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2012-12-27  6:03 ` [U-Boot] [PATCH 16/16 V2] SPI: EXYNOS: Add FDT support to driver Rajeshwari Shinde
  2013-01-08  1:58 ` [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Minkyu Kang
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

Add SPI device node data for exynos.

Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- None
 arch/arm/dts/exynos5250.dtsi                |   41 +++++++++++++++++++++++++++
 doc/device-tree-bindings/exynos/isp-spi.txt |   22 ++++++++++++++
 2 files changed, 63 insertions(+), 0 deletions(-)
 create mode 100644 doc/device-tree-bindings/exynos/isp-spi.txt

diff --git a/arch/arm/dts/exynos5250.dtsi b/arch/arm/dts/exynos5250.dtsi
index dc13f29..1008797 100644
--- a/arch/arm/dts/exynos5250.dtsi
+++ b/arch/arm/dts/exynos5250.dtsi
@@ -97,4 +97,45 @@
 		compatible = "samsung,exynos-sound";
 		reg = <0x12d60000 0x20>;
 	};
+
+	spi at 12d20000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,exynos-spi";
+		reg = <0x12d20000 0x30>;
+		interrupts = <0 68 0>;
+	};
+
+	spi at 12d30000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,exynos-spi";
+		reg = <0x12d30000 0x30>;
+		interrupts = <0 69 0>;
+	};
+
+	spi at 12d40000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,exynos-spi";
+		reg = <0x12d40000 0x30>;
+		clock-frequency = <50000000>;
+		interrupts = <0 70 0>;
+        };
+
+	spi at 131a0000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,exynos-spi";
+		reg = <0x131a0000 0x30>;
+		interrupts = <0 129 0>;
+	};
+
+	spi at 131b0000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "samsung,exynos-spi";
+		reg = <0x131b0000 0x30>;
+		interrupts = <0 130 0>;
+	};
 };
diff --git a/doc/device-tree-bindings/exynos/isp-spi.txt b/doc/device-tree-bindings/exynos/isp-spi.txt
new file mode 100644
index 0000000..b8086e8
--- /dev/null
+++ b/doc/device-tree-bindings/exynos/isp-spi.txt
@@ -0,0 +1,22 @@
+Exynos ISP SPI Subsystem
+
+The device node for ISP SPI subsytem.
+Since Peripheral id in EXYNOS is decoded based on Interrupts, currently
+ISP SPI have no individual interrupts hence we add ad dummy interrupt node
+which will have a value beyond the maximum number of interrupts exynos5 can
+support.
+
+Required properties :
+ - compatible : Should be "samsung,exynos-spi" for spi.
+ - reg : Base adrress of the the subsystem.
+ - interrupts : A value which is beyond the maximum number of interrupts
+exynos5 can support.
+
+Example:
+spi at 131a0000 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	compatible = "samsung,exynos-spi";
+	reg = <0x131a0000 0x30>;
+	interrupts = <0 129 0>;
+};
-- 
1.7.4.4

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

* [U-Boot] [PATCH 16/16 V2] SPI: EXYNOS: Add FDT support to driver.
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (14 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 15/16 V2] EXYNOS5: FDT: Add SPI device node data Rajeshwari Shinde
@ 2012-12-27  6:03 ` Rajeshwari Shinde
  2013-01-08  1:58 ` [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Minkyu Kang
  16 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Shinde @ 2012-12-27  6:03 UTC (permalink / raw)
  To: u-boot

This patch adds FDT support to the SPI driver.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
---
Changes since V1:
	- Corrected compilation error for non DT and removed extra blank line.
 drivers/spi/exynos_spi.c |   96 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 90 insertions(+), 6 deletions(-)

diff --git a/drivers/spi/exynos_spi.c b/drivers/spi/exynos_spi.c
index 3e6c18f..be60ada 100644
--- a/drivers/spi/exynos_spi.c
+++ b/drivers/spi/exynos_spi.c
@@ -20,6 +20,7 @@
 #include <common.h>
 #include <malloc.h>
 #include <spi.h>
+#include <fdtdec.h>
 #include <asm/arch/clk.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/cpu.h>
@@ -28,16 +29,20 @@
 #include <asm/arch-exynos/spi.h>
 #include <asm/io.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 /* Information about each SPI controller */
 struct spi_bus {
 	enum periph_id periph_id;
 	s32 frequency;		/* Default clock frequency, -1 for none */
 	struct exynos_spi *regs;
 	int inited;		/* 1 if this bus is ready for use */
+	int node;
 };
 
 /* A list of spi buses that we know about */
 static struct spi_bus spi_bus[EXYNOS5_SPI_NUM_CONTROLLERS];
+static unsigned int bus_count;
 
 struct exynos_spi_slave {
 	struct spi_slave slave;
@@ -50,7 +55,7 @@ struct exynos_spi_slave {
 
 static struct spi_bus *spi_get_bus(unsigned dev_index)
 {
-	if (dev_index < EXYNOS5_SPI_NUM_CONTROLLERS)
+	if (dev_index < bus_count)
 		return &spi_bus[dev_index];
 	debug("%s: invalid bus %d", __func__, dev_index);
 
@@ -347,21 +352,100 @@ static inline struct exynos_spi *get_spi_base(int dev_index)
 					(dev_index - 3);
 }
 
+/*
+ * Read the SPI config from the device tree node.
+ *
+ * @param blob  FDT blob to read from
+ * @param node  Node offset to read from
+ * @param bus   SPI bus structure to fill with information
+ * @return 0 if ok, or -FDT_ERR_NOTFOUND if something was missing
+ */
+static int spi_get_config(const void *blob, int node, struct spi_bus *bus)
+{
+	bus->node = node;
+	bus->regs = (struct exynos_spi *)fdtdec_get_addr(blob, node, "reg");
+	bus->periph_id = pinmux_decode_periph_id(blob, node);
+
+	if (bus->periph_id == PERIPH_ID_NONE) {
+		debug("%s: Invalid peripheral ID %d\n", __func__,
+			bus->periph_id);
+		return -FDT_ERR_NOTFOUND;
+	}
+
+	/* Use 500KHz as a suitable default */
+	bus->frequency = fdtdec_get_int(blob, node, "spi-max-frequency",
+					500000);
+
+	return 0;
+}
+
+/*
+ * Process a list of nodes, adding them to our list of SPI ports.
+ *
+ * @param blob          fdt blob
+ * @param node_list     list of nodes to process (any <=0 are ignored)
+ * @param count         number of nodes to process
+ * @param is_dvc        1 if these are DVC ports, 0 if standard I2C
+ * @return 0 if ok, -1 on error
+ */
+static int process_nodes(const void *blob, int node_list[], int count)
+{
+	int i;
+
+	/* build the i2c_controllers[] for each controller */
+	for (i = 0; i < count; i++) {
+		int node = node_list[i];
+		struct spi_bus *bus;
+
+		if (node <= 0)
+			continue;
+
+		bus = &spi_bus[i];
+		if (spi_get_config(blob, node, bus)) {
+			printf("exynos spi_init: failed to decode bus %d\n",
+				i);
+			return -1;
+		}
+
+		debug("spi: controller bus %d@%p, periph_id %d\n",
+		      i, bus->regs, bus->periph_id);
+		bus->inited = 1;
+		bus_count++;
+	}
+
+	return 0;
+}
+
 /* Sadly there is no error return from this function */
 void spi_init(void)
 {
-	int i;
+	int count;
+
+#ifdef CONFIG_OF_CONTROL
+	int node_list[EXYNOS5_SPI_NUM_CONTROLLERS];
+	const void *blob = gd->fdt_blob;
+
+	count = fdtdec_find_aliases_for_id(blob, "spi",
+			COMPAT_SAMSUNG_EXYNOS_SPI, node_list,
+			EXYNOS5_SPI_NUM_CONTROLLERS);
+	if (process_nodes(blob, node_list, count))
+		return;
+
+#else
 	struct spi_bus *bus;
 
-	for (i = 0; i < EXYNOS5_SPI_NUM_CONTROLLERS; i++) {
-		bus = &spi_bus[i];
-		bus->regs = get_spi_base(i);
-		bus->periph_id = PERIPH_ID_SPI0 + i;
+	for (count = 0; count < EXYNOS5_SPI_NUM_CONTROLLERS; count++) {
+		bus = &spi_bus[count];
+		bus->regs = get_spi_base(count);
+		bus->periph_id = PERIPH_ID_SPI0 + count;
 
 		/* Although Exynos5 supports upto 50Mhz speed,
 		 * we are setting it to 10Mhz for safe side
 		 */
 		bus->frequency = 10000000;
 		bus->inited = 1;
+		bus->node = 0;
+		bus_count = EXYNOS5_SPI_NUM_CONTROLLERS;
 	}
+#endif
 }
-- 
1.7.4.4

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

* [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support
  2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
                   ` (15 preceding siblings ...)
  2012-12-27  6:03 ` [U-Boot] [PATCH 16/16 V2] SPI: EXYNOS: Add FDT support to driver Rajeshwari Shinde
@ 2013-01-08  1:58 ` Minkyu Kang
  2013-01-08  5:21   ` Rajeshwari Birje
  16 siblings, 1 reply; 19+ messages in thread
From: Minkyu Kang @ 2013-01-08  1:58 UTC (permalink / raw)
  To: u-boot

On 27/12/12 15:03, Rajeshwari Shinde wrote:
> This patch set adds FDT support to I2C, I2S, SPI
> drivers for SMDK5250.
> 
> Separate patch sets for each driver are rebased on lastest u-boot-samsung.
> Following is the link for each driver patch set combined
> 
> 1) I2C V4: "http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/148199"
> 2) I2S V3: "http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/148208"
> 3) SPI V2: "http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/148662"
> 
> Changes since V1:
> 	- Rebased, removed unnecessary lines and added blank lines
> 	whereever required
> 	- Removed magic numbers.
> Rajeshwari Shinde (16):
>   EXYNOS5: FDT: Add I2C device node data
>   EXYNOS5 : FDT: Add Aliases for I2C device
>   FDT: Add compatible string for I2C
>   EXYNOS5: FDT : Decode peripheral id
>   I2C: Driver changes for FDT support
>   SMDK5250: Initialise I2C using FDT
>   EXYNOS5: FDT: Add sound device node data
>   EXYNOS5: FDT: Add sound and codec device node
>   EXYNOS5: FDT: Add compatible strings for sound
>   Sound: Add FDT support to driver
>   Sound: WM8994: Add FDT support to codec
>   Sound: Add FDT support to CMD.
>   EXYNOS5: FDT: Add compatible strings for SPI
>   EXYNOS5 : FDT: Add Aliases for SPI device
>   EXYNOS5: FDT: Add SPI device node data
>   SPI: EXYNOS: Add FDT support to driver.
> 
>  arch/arm/cpu/armv7/exynos/pinmux.c          |   29 +++++
>  arch/arm/dts/exynos5250.dtsi                |  110 +++++++++++++++++
>  arch/arm/include/asm/arch-exynos/periph.h   |   33 +++--
>  arch/arm/include/asm/arch-exynos/pinmux.h   |    8 ++
>  board/samsung/dts/exynos5250-smdk5250.dts   |   33 +++++
>  board/samsung/smdk5250/smdk5250.c           |   20 +---
>  common/cmd_sound.c                          |    2 +-
>  doc/device-tree-bindings/exynos/isp-spi.txt |   22 ++++
>  doc/device-tree-bindings/exynos/sound.txt   |   27 ++++
>  drivers/i2c/s3c24x0_i2c.c                   |   83 +++++++++++++-
>  drivers/i2c/s3c24x0_i2c.h                   |    8 ++
>  drivers/sound/sound.c                       |  173 ++++++++++++++++-----------
>  drivers/sound/wm8994.c                      |   74 +++++++++++-
>  drivers/sound/wm8994.h                      |    6 +-
>  drivers/spi/exynos_spi.c                    |   96 ++++++++++++++-
>  include/fdtdec.h                            |    4 +
>  include/i2c.h                               |   26 ++++
>  include/sound.h                             |    4 +-
>  lib/fdtdec.c                                |    4 +
>  19 files changed, 644 insertions(+), 118 deletions(-)
>  create mode 100644 doc/device-tree-bindings/exynos/isp-spi.txt
>  create mode 100644 doc/device-tree-bindings/exynos/sound.txt
> 

applied to u-boot-samsung.

Thanks,
Minkyu Kang.

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

* [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support
  2013-01-08  1:58 ` [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Minkyu Kang
@ 2013-01-08  5:21   ` Rajeshwari Birje
  0 siblings, 0 replies; 19+ messages in thread
From: Rajeshwari Birje @ 2013-01-08  5:21 UTC (permalink / raw)
  To: u-boot

Hi Minkyu Kang,

Thank you for Applying the patches.

On Tue, Jan 8, 2013 at 7:28 AM, Minkyu Kang <mk7.kang@samsung.com> wrote:
> On 27/12/12 15:03, Rajeshwari Shinde wrote:
>> This patch set adds FDT support to I2C, I2S, SPI
>> drivers for SMDK5250.
>>
>> Separate patch sets for each driver are rebased on lastest u-boot-samsung.
>> Following is the link for each driver patch set combined
>>
>> 1) I2C V4: "http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/148199"
>> 2) I2S V3: "http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/148208"
>> 3) SPI V2: "http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/148662"
>>
>> Changes since V1:
>>       - Rebased, removed unnecessary lines and added blank lines
>>       whereever required
>>       - Removed magic numbers.
>> Rajeshwari Shinde (16):
>>   EXYNOS5: FDT: Add I2C device node data
>>   EXYNOS5 : FDT: Add Aliases for I2C device
>>   FDT: Add compatible string for I2C
>>   EXYNOS5: FDT : Decode peripheral id
>>   I2C: Driver changes for FDT support
>>   SMDK5250: Initialise I2C using FDT
>>   EXYNOS5: FDT: Add sound device node data
>>   EXYNOS5: FDT: Add sound and codec device node
>>   EXYNOS5: FDT: Add compatible strings for sound
>>   Sound: Add FDT support to driver
>>   Sound: WM8994: Add FDT support to codec
>>   Sound: Add FDT support to CMD.
>>   EXYNOS5: FDT: Add compatible strings for SPI
>>   EXYNOS5 : FDT: Add Aliases for SPI device
>>   EXYNOS5: FDT: Add SPI device node data
>>   SPI: EXYNOS: Add FDT support to driver.
>>
>>  arch/arm/cpu/armv7/exynos/pinmux.c          |   29 +++++
>>  arch/arm/dts/exynos5250.dtsi                |  110 +++++++++++++++++
>>  arch/arm/include/asm/arch-exynos/periph.h   |   33 +++--
>>  arch/arm/include/asm/arch-exynos/pinmux.h   |    8 ++
>>  board/samsung/dts/exynos5250-smdk5250.dts   |   33 +++++
>>  board/samsung/smdk5250/smdk5250.c           |   20 +---
>>  common/cmd_sound.c                          |    2 +-
>>  doc/device-tree-bindings/exynos/isp-spi.txt |   22 ++++
>>  doc/device-tree-bindings/exynos/sound.txt   |   27 ++++
>>  drivers/i2c/s3c24x0_i2c.c                   |   83 +++++++++++++-
>>  drivers/i2c/s3c24x0_i2c.h                   |    8 ++
>>  drivers/sound/sound.c                       |  173 ++++++++++++++++-----------
>>  drivers/sound/wm8994.c                      |   74 +++++++++++-
>>  drivers/sound/wm8994.h                      |    6 +-
>>  drivers/spi/exynos_spi.c                    |   96 ++++++++++++++-
>>  include/fdtdec.h                            |    4 +
>>  include/i2c.h                               |   26 ++++
>>  include/sound.h                             |    4 +-
>>  lib/fdtdec.c                                |    4 +
>>  19 files changed, 644 insertions(+), 118 deletions(-)
>>  create mode 100644 doc/device-tree-bindings/exynos/isp-spi.txt
>>  create mode 100644 doc/device-tree-bindings/exynos/sound.txt
>>
>
> applied to u-boot-samsung.
>
> Thanks,
> Minkyu Kang.
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot



-- 
Regards,
Rajeshwari Shinde

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

end of thread, other threads:[~2013-01-08  5:21 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-27  6:03 [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 01/16 V2] EXYNOS5: FDT: Add I2C device node data Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 02/16 V2] EXYNOS5 : FDT: Add Aliases for I2C device Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 03/16 V2] FDT: Add compatible string for I2C Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 04/16 V2] EXYNOS5: FDT : Decode peripheral id Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 05/16 V2] I2C: Driver changes for FDT support Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 06/16 V2] SMDK5250: Initialise I2C using FDT Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 07/16 V2] EXYNOS5: FDT: Add sound device node data Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 08/16 V2] EXYNOS5: FDT: Add sound and codec device node Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 09/16 V2] EXYNOS5: FDT: Add compatible strings for sound Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 10/16 V2] Sound: Add FDT support to driver Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 11/16 V2] Sound: WM8994: Add FDT support to codec Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 12/16 V2] Sound: Add FDT support to CMD Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 13/16 V2] EXYNOS5: FDT: Add compatible strings for SPI Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 14/16 V2] EXYNOS5 : FDT: Add Aliases for SPI device Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 15/16 V2] EXYNOS5: FDT: Add SPI device node data Rajeshwari Shinde
2012-12-27  6:03 ` [U-Boot] [PATCH 16/16 V2] SPI: EXYNOS: Add FDT support to driver Rajeshwari Shinde
2013-01-08  1:58 ` [U-Boot] [PATCH 00/16 V2] SMDK5250: Add FDT support Minkyu Kang
2013-01-08  5:21   ` Rajeshwari Birje

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.