Patchwork [U-Boot,v4,2/2] i2c:soft:multi: Enable soft I2C multibus at Trats development board

login
register
mail settings
Submitter Łukasz Majewski
Date Sept. 5, 2012, 9:15 a.m.
Message ID <1346836521-15269-3-git-send-email-l.majewski@samsung.com>
Download mbox | patch
Permalink /patch/181788/
State Accepted
Commit fd8dca83ed4b9d960d3b9a0450da12bb32f512f8
Delegated to: Heiko Schocher
Headers show

Comments

Łukasz Majewski - Sept. 5, 2012, 9:15 a.m.
This commit enables multibus handling at Samsung's Trats development board.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>

---
Changes for v2:
- CONFIG_SOFT_I2C_MULTI_BUS flag added to Trats configuration

Changes for v3:
- correct definition of TRATS I2C_1 pins

Changes for v4:
- Assign I2C numbers reflecting the HW structure of Trats board
- Change the max I2C numbers to 15 from 7
- i2c_init_board() function defined for trats board
---
 board/samsung/trats/trats.c |   15 +++++++++++++++
 include/configs/trats.h     |   24 +++++++++++++++++-------
 2 files changed, 32 insertions(+), 7 deletions(-)
Heiko Schocher - Sept. 6, 2012, 3:50 a.m.
Hello Lukasz,

On 05.09.2012 11:15, Lukasz Majewski wrote:
> This commit enables multibus handling at Samsung's Trats development board.
>
> Signed-off-by: Lukasz Majewski<l.majewski@samsung.com>
> Signed-off-by: Kyungmin Park<kyungmin.park@samsung.com>
> Cc: Minkyu Kang<mk7.kang@samsung.com>
>
> ---
> Changes for v2:
> - CONFIG_SOFT_I2C_MULTI_BUS flag added to Trats configuration
>
> Changes for v3:
> - correct definition of TRATS I2C_1 pins
>
> Changes for v4:
> - Assign I2C numbers reflecting the HW structure of Trats board
> - Change the max I2C numbers to 15 from 7
> - i2c_init_board() function defined for trats board
> ---
>   board/samsung/trats/trats.c |   15 +++++++++++++++
>   include/configs/trats.h     |   24 +++++++++++++++++-------
>   2 files changed, 32 insertions(+), 7 deletions(-)

Acked-by: Heiko Schocher <hs@denx.de>

bye,
Heiko

Patch

diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c
index 4f9cb5a..e11a892 100644
--- a/board/samsung/trats/trats.c
+++ b/board/samsung/trats/trats.c
@@ -75,6 +75,21 @@  int board_init(void)
 	return 0;
 }
 
+void i2c_init_board(void)
+{
+	struct exynos4_gpio_part1 *gpio1 =
+		(struct exynos4_gpio_part1 *)samsung_get_base_gpio_part1();
+	struct exynos4_gpio_part2 *gpio2 =
+		(struct exynos4_gpio_part2 *)samsung_get_base_gpio_part2();
+
+	/* I2C_5 -> PMIC */
+	s5p_gpio_direction_output(&gpio1->b, 7, 1);
+	s5p_gpio_direction_output(&gpio1->b, 6, 1);
+	/* I2C_9 -> FG */
+	s5p_gpio_direction_output(&gpio2->y4, 0, 1);
+	s5p_gpio_direction_output(&gpio2->y4, 1, 1);
+}
+
 int dram_init(void)
 {
 	gd->ram_size = get_ram_size((long *)PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE) +
diff --git a/include/configs/trats.h b/include/configs/trats.h
index c6fb2e0..866c047 100644
--- a/include/configs/trats.h
+++ b/include/configs/trats.h
@@ -235,18 +235,28 @@ 
 #define CONFIG_SYS_INIT_SP_ADDR	(CONFIG_SYS_LOAD_ADDR - GENERATED_GBL_DATA_SIZE)
 #define CONFIG_SYS_CACHELINE_SIZE       32
 
-#include <asm/arch/gpio.h>
-/*
- * I2C Settings
- */
-#define CONFIG_SOFT_I2C_GPIO_SCL exynos4_gpio_part1_get_nr(b, 7)
-#define CONFIG_SOFT_I2C_GPIO_SDA exynos4_gpio_part1_get_nr(b, 6)
 
 #define CONFIG_SOFT_I2C
 #define CONFIG_SOFT_I2C_READ_REPEATED_START
+#define CONFIG_SYS_I2C_INIT_BOARD
 #define CONFIG_SYS_I2C_SPEED	50000
 #define CONFIG_I2C_MULTI_BUS
-#define CONFIG_SYS_MAX_I2C_BUS	7
+#define CONFIG_SOFT_I2C_MULTI_BUS
+#define CONFIG_SYS_MAX_I2C_BUS	15
+
+#include <asm/arch/gpio.h>
+
+/* I2C PMIC */
+#define CONFIG_SOFT_I2C_I2C5_SCL exynos4_gpio_part1_get_nr(b, 7)
+#define CONFIG_SOFT_I2C_I2C5_SDA exynos4_gpio_part1_get_nr(b, 6)
+
+/* I2C FG */
+#define CONFIG_SOFT_I2C_I2C9_SCL exynos4_gpio_part2_get_nr(y4, 1)
+#define CONFIG_SOFT_I2C_I2C9_SDA exynos4_gpio_part2_get_nr(y4, 0)
+
+#define CONFIG_SOFT_I2C_GPIO_SCL get_multi_scl_pin()
+#define CONFIG_SOFT_I2C_GPIO_SDA get_multi_sda_pin()
+#define I2C_INIT multi_i2c_init()
 
 #define CONFIG_PMIC
 #define CONFIG_PMIC_I2C