]> git.sur5r.net Git - u-boot/commitdiff
Merge git://git.denx.de/u-boot-i2c
authorTom Rini <trini@konsulko.com>
Thu, 10 Aug 2017 11:22:59 +0000 (07:22 -0400)
committerTom Rini <trini@konsulko.com>
Thu, 10 Aug 2017 11:22:59 +0000 (07:22 -0400)
34 files changed:
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/omap3/clock.c
board/compulab/cm_t35/cm_t35.c
board/logicpd/am3517evm/am3517evm.c
board/ti/am3517crane/am3517crane.c
board/ti/evm/evm.c
configs/ti816x_evm_defconfig
drivers/i2c/Kconfig
drivers/i2c/Makefile
drivers/i2c/at91_i2c.c
drivers/i2c/designware_i2c.c
include/configs/am3517_crane.h
include/configs/am3517_evm.h
include/configs/bur_am335x_common.h
include/configs/cm_t35.h
include/configs/cm_t3517.h
include/configs/cm_t54.h
include/configs/devkit8000.h
include/configs/kc1.h
include/configs/mcx.h
include/configs/nokia_rx51.h
include/configs/omap3_evm.h
include/configs/omap3_logic.h
include/configs/omap3_overo.h
include/configs/omap3_pandora.h
include/configs/omap3_zoom1.h
include/configs/siemens-am33x-common.h
include/configs/sniper.h
include/configs/tam3517-common.h
include/configs/tao3530.h
include/configs/ti_armv7_omap.h
include/configs/ti_omap4_common.h
include/configs/tricorder.h
scripts/config_whitelist.txt

index 013586edd97fbf98935f46e4b8bfed07e1c87d6f..89c91d1b7782796d3cb221cc9dd06019acc20904 100644 (file)
@@ -22,6 +22,7 @@ config OMAP34XX
        imply SPL_NAND_SUPPORT
        imply SPL_POWER_SUPPORT
        imply SPL_SERIAL_SUPPORT
+       imply SYS_I2C_OMAP24XX
        imply SYS_THUMB_BUILD
        imply TWL4030_POWER
 
@@ -40,6 +41,7 @@ config OMAP44XX
        imply SPL_NAND_SUPPORT
        imply SPL_POWER_SUPPORT
        imply SPL_SERIAL_SUPPORT
+       imply SYS_I2C_OMAP24XX
        imply SYS_THUMB_BUILD
 
 config OMAP54XX
@@ -59,6 +61,7 @@ config OMAP54XX
        imply SPL_NAND_SUPPORT
        imply SPL_POWER_SUPPORT
        imply SPL_SERIAL_SUPPORT
+       imply SYS_I2C_OMAP24XX
 
 config TI814X
        bool "TI814X SoC"
@@ -82,6 +85,7 @@ config AM43XX
        imply SPL_OF_TRANSLATE
        imply SPL_SEPARATE_BSS
        imply SPL_SYS_MALLOC_SIMPLE
+       imply SYS_I2C_OMAP24XX
        imply SYS_THUMB_BUILD
        help
          Support for AM43xx SOC from Texas Instruments.
@@ -92,6 +96,7 @@ config AM43XX
 
 config AM33XX
        bool "AM33XX SoC"
+       imply SYS_I2C_OMAP24XX
        imply SYS_THUMB_BUILD
        imply USE_TINY_PRINTF
        help
index 006969e780b332ccab15c4da7d8826efb1ba84b9..3daae61e1dda0ddf2d5631ec4182bffe94ec0ca9 100644 (file)
@@ -772,7 +772,7 @@ void per_clocks_enable(void)
        setbits_le32(&prcm_base->iclken_per, 0x00020000);
 #endif
 
-#ifdef CONFIG_SYS_I2C_OMAP34XX
+#ifdef CONFIG_SYS_I2C_OMAP24XX
        /* Turn on all 3 I2C clocks */
        setbits_le32(&prcm_base->fclken1_core, 0x00038000);
        setbits_le32(&prcm_base->iclken1_core, 0x00038000); /* I2C1,2,3 = on */
index f1691257e77fdaaee03c0f6542bd60d6b2365226..da6709889ad4ba5ffbfeb9b46e4f879102a02ae7 100644 (file)
@@ -398,7 +398,7 @@ void board_mmc_power_init(void)
 }
 #endif
 
-#ifdef CONFIG_SYS_I2C_OMAP34XX
+#ifdef CONFIG_SYS_I2C_OMAP24XX
 /*
  * Routine: reset_net_chip
  * Description: reset the Ethernet controller via TPS65930 GPIO
index 5d2d997e424661d2e4f205e319ea5bbdc60ffe26..c18a5a3140b9323ce01535deabc0899d4e95d5d8 100644 (file)
@@ -105,7 +105,7 @@ int misc_init_r(void)
        volatile unsigned int ctr;
        u32 reset;
 
-#ifdef CONFIG_SYS_I2C_OMAP34XX
+#ifdef CONFIG_SYS_I2C_OMAP24XX
        i2c_init(CONFIG_SYS_OMAP24_I2C_SPEED, CONFIG_SYS_OMAP24_I2C_SLAVE);
 #endif
 
index 5fa319d6152b64f5b9ec8f3b25108d3746d68704..136cc4388498e665b6bdc471209da8ea25f43787 100644 (file)
@@ -43,7 +43,7 @@ int board_init(void)
  */
 int misc_init_r(void)
 {
-#ifdef CONFIG_SYS_I2C_OMAP34XX
+#ifdef CONFIG_SYS_I2C_OMAP24XX
        i2c_init(CONFIG_SYS_OMAP24_I2C_SPEED, CONFIG_SYS_OMAP24_I2C_SLAVE);
 #endif
 
index fe8e79312f8b9ed2b7e745915534850f519ea0c6..a6c5a3d8e101e6ee9fa4d44f499f8646e8316c56 100644 (file)
@@ -147,7 +147,7 @@ void get_board_mem_timings(struct board_sdrc_timings *timings)
 int misc_init_r(void)
 {
 
-#ifdef CONFIG_SYS_I2C_OMAP34XX
+#ifdef CONFIG_SYS_I2C_OMAP24XX
        i2c_init(CONFIG_SYS_OMAP24_I2C_SPEED, CONFIG_SYS_OMAP24_I2C_SLAVE);
 #endif
 
index 0f9b905bed7d75a0acf62f950642966e01cbb12c..9d4be2af1d222b2abe1996ddbe093833d5d51a50 100644 (file)
@@ -39,6 +39,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_DM=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
+CONFIG_SYS_I2C_OMAP24XX=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_SYS_NS16550=y
 # CONFIG_USE_PRIVATE_LIBGCC is not set
index 8ac1cc6a15e76faf88a0812cd419402ca117952a..720e82d5ded11fce156d6ca73c8bcabb8fa304c6 100644 (file)
@@ -145,6 +145,12 @@ config SYS_I2C_MXC
          channels and operating on standard mode upto 100 kbits/s and fast
          mode upto 400 kbits/s.
 
+config SYS_I2C_OMAP24XX
+       bool "TI OMAP2+ I2C driver"
+       depends on ARCH_OMAP2PLUS
+       help
+         Add support for the OMAP2+ I2C driver.
+
 config SYS_I2C_ROCKCHIP
        bool "Rockchip I2C driver"
        depends on DM_I2C
index 4bbf0c9f327b7801cc4c1957aad7a3c602f9a298..4f754191e2e31d4c38673877adc40c022415325d 100644 (file)
@@ -31,7 +31,6 @@ obj-$(CONFIG_SYS_I2C_MVTWSI) += mvtwsi.o
 obj-$(CONFIG_SYS_I2C_MXC) += mxc_i2c.o
 obj-$(CONFIG_SYS_I2C_MXS) += mxs_i2c.o
 obj-$(CONFIG_SYS_I2C_OMAP24XX) += omap24xx_i2c.o
-obj-$(CONFIG_SYS_I2C_OMAP34XX) += omap24xx_i2c.o
 obj-$(CONFIG_SYS_I2C_RCAR) += rcar_i2c.o
 obj-$(CONFIG_SYS_I2C_ROCKCHIP) += rk_i2c.o
 obj-$(CONFIG_SYS_I2C_S3C24X0) += s3c24x0_i2c.o exynos_hs_i2c.o
index b7298cf774831ffd030f32ca94f31c3752f0fb4f..d394044f80de5362d8b8a77862800093f878602c 100644 (file)
@@ -199,7 +199,7 @@ static int at91_i2c_enable_clk(struct udevice *dev)
        return 0;
 }
 
-static int at91_i2c_probe(struct udevice *dev, uint chip, uint chip_flags)
+static int at91_i2c_probe_chip(struct udevice *dev, uint chip, uint chip_flags)
 {
        struct at91_i2c_bus *bus = dev_get_priv(dev);
        struct at91_i2c_regs *reg = bus->regs;
@@ -254,11 +254,32 @@ static int at91_i2c_ofdata_to_platdata(struct udevice *dev)
 
 static const struct dm_i2c_ops at91_i2c_ops = {
        .xfer           = at91_i2c_xfer,
-       .probe_chip     = at91_i2c_probe,
+       .probe_chip     = at91_i2c_probe_chip,
        .set_bus_speed  = at91_i2c_set_bus_speed,
        .get_bus_speed  = at91_i2c_get_bus_speed,
 };
 
+static int at91_i2c_probe(struct udevice *dev)
+{
+       struct at91_i2c_bus *bus = dev_get_priv(dev);
+       struct at91_i2c_regs *reg = bus->regs;
+       int ret;
+
+       ret = at91_i2c_enable_clk(dev);
+       if (ret)
+               return ret;
+
+       writel(TWI_CR_SWRST, &reg->cr);
+
+       at91_calc_i2c_clock(dev, bus->clock_frequency);
+
+       writel(bus->cwgr_val, &reg->cwgr);
+       writel(TWI_CR_MSEN, &reg->cr);
+       writel(TWI_CR_SVDIS, &reg->cr);
+
+       return 0;
+}
+
 static const struct at91_i2c_pdata at91rm9200_config = {
        .clk_max_div = 5,
        .clk_offset = 3,
@@ -315,6 +336,7 @@ U_BOOT_DRIVER(i2c_at91) = {
        .name   = "i2c_at91",
        .id     = UCLASS_I2C,
        .of_match = at91_i2c_ids,
+       .probe = at91_i2c_probe,
        .ofdata_to_platdata = at91_i2c_ofdata_to_platdata,
        .per_child_auto_alloc_size = sizeof(struct dm_i2c_chip),
        .priv_auto_alloc_size = sizeof(struct at91_i2c_bus),
index d4df35a69acddac044e5c3d443db0d963ba2bea3..8cfed2194c54de741420f2050d0090222068526c 100644 (file)
@@ -374,7 +374,8 @@ static void __dw_i2c_init(struct i2c_regs *i2c_base, int speed, int slaveaddr)
        /* Disable i2c */
        dw_i2c_enable(i2c_base, false);
 
-       writel((IC_CON_SD | IC_CON_SPD_FS | IC_CON_MM), &i2c_base->ic_con);
+       writel(IC_CON_SD | IC_CON_RE | IC_CON_SPD_FS | IC_CON_MM,
+              &i2c_base->ic_con);
        writel(IC_RX_TL, &i2c_base->ic_rx_tl);
        writel(IC_TX_TL, &i2c_base->ic_tx_tl);
        writel(IC_STOP_DET, &i2c_base->ic_intr_mask);
index 36adea749e21053766537498f0504efdc5e42a27..aeba61ea59ebdd886ed645d957a1b01859703aa7 100644 (file)
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    100000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP34XX
 
 /*
  * Board NAND Info.
index 2f2e13c5bbb4b8fad90a25c2965d4048b8f7b4f0..60460c8105eced60eb17f5e9ccef715d3585a264 100644 (file)
@@ -91,7 +91,6 @@
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    100000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP34XX
 
 /* Ethernet */
 #define CONFIG_DRIVER_TI_EMAC
index b8c531ec29445645fc34044af86132d69a3424dc..f545a56d8272f00884ee8b7fdd78f098b8d8a3b2 100644 (file)
@@ -72,7 +72,6 @@
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    100000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP24XX
 
 /*
  * Our platforms make use of SPL to initalize the hardware (primarily
index bdbbfdd5de4d26823c90fd4b5b2795b3f17f4220..f8f3c9224c3776fd98d1bfbf983c513f6db52884 100644 (file)
@@ -93,7 +93,6 @@
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    100000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP34XX
 #define CONFIG_SYS_I2C_EEPROM_ADDR     0x50
 #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
 #define CONFIG_SYS_I2C_EEPROM_BUS      0
index 93bf04ffaac82840df9b8729ae0b0ec2ac9c6926..5821183fc9ca4e9341a93c5368147ef922f50a5a 100644 (file)
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    400000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP34XX
 #define CONFIG_SYS_I2C_EEPROM_ADDR     0x50
 #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
 #define CONFIG_SYS_I2C_EEPROM_BUS      0
index 8a4c333564abae190be9adb13514721d49da9303..feae29d145c0a3aa3a0d04e8a3232c3aa2e74daf 100644 (file)
@@ -17,7 +17,6 @@
 #include <configs/ti_omap5_common.h>
 
 /* EEPROM related defines */
-#define CONFIG_SYS_I2C_OMAP34XX
 #define CONFIG_SYS_I2C_EEPROM_ADDR     0x50
 #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
 #define CONFIG_SYS_I2C_EEPROM_BUS      0
index fb9e4c64280c70f67e26a56e0ac75a3f660e8b56..5b249d1f67f8b4fd9c68e1d7886286ea17c05ffa 100644 (file)
@@ -65,8 +65,6 @@
 #undef CONFIG_OMAP3_SPI
 
 /* I2C */
-#undef CONFIG_SYS_I2C_OMAP24XX
-#define CONFIG_SYS_I2C_OMAP34XX
 
 /* TWL4030 */
 #define CONFIG_TWL4030_LED             1
index f040d0bbb6bce4add69a75d2708e192a599b7d3b..38c5862b7212832ad04411db4134b8bc2f35dc64 100644 (file)
@@ -60,7 +60,6 @@
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    400000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP24XX
 #define CONFIG_I2C_MULTI_BUS
 
 /*
index 91384525ce4e77d7a2e3c76f6368471df4725263..f25533446c276ad5dacf3725a712fa0709546b57 100644 (file)
@@ -86,7 +86,6 @@
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    100000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP34XX
 
 /* RTC */
 #define CONFIG_RTC_DS1337
index 982651462d4ba945504b8bc084913728435953a6..a06aec1f5f0f424ca1369dc9cc5757c1f07276d0 100644 (file)
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    100000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP34XX
 
 /*
  * TWL4030
index 70cd0ea27e1e355800bac664608403be76e04b8b..bc859c881185fc2dfddba52641856b3ca1c5c01e 100644 (file)
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    100000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP34XX
 
 /*
  * PISMO support
index 2ab74cb0e920dd902b7c3571c43bea05e6b91b4b..e5ffb8538113670587a9e09f7d0f5c71278368ce 100644 (file)
@@ -53,7 +53,6 @@
 #define CONFIG_USB_OMAP3
 
 /* I2C */
-#define CONFIG_SYS_I2C_OMAP34XX
 #define CONFIG_SYS_I2C_EEPROM_ADDR     0x50    /* EEPROM AT24C64      */
 
 /* USB */
index 133069abbcd0c0afcac18b7bcb4ae8e06b36ce31..bc4a59e1289822211aec43159b05bb091e9f833a 100644 (file)
@@ -34,7 +34,6 @@
 #define CONFIG_SYS_MALLOC_LEN  (CONFIG_ENV_SIZE + (128 << 15))
 
 /* I2C Support */
-#define CONFIG_SYS_I2C_OMAP34XX
 
 /* TWL4030 LED */
 #define CONFIG_TWL4030_LED
index b7ab6283dd279d0be243c9d8985aeca44761bd75..53c53ef9ff3b3995853b3e21cb437fdbfac1cb4a 100644 (file)
@@ -29,9 +29,6 @@
  * Hardware drivers
  */
 
-/* I2C Support */
-#define CONFIG_SYS_I2C_OMAP34XX
-
 /* TWL4030 LED */
 #define CONFIG_TWL4030_LED
 
index b86292400a8b5aff1de13af1155622d846b8dc13..7f4f56f1716355e877a90aa9e98053c48f5d4c04 100644 (file)
@@ -63,9 +63,6 @@
 #endif
 #endif
 
-#undef CONFIG_SYS_I2C_OMAP24XX
-#define CONFIG_SYS_I2C_OMAP34XX
-
 /*
  * TWL4030
  */
index 22215fefc0c5aec5e5640b9b6a84405f93ac1e5b..5101d7065e109689103d7817192d1ac393edba12 100644 (file)
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    100000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP24XX
 
 /* Defines for SPL */
 #define CONFIG_SPL_FRAMEWORK
index 669ce8588d171753ac9fdf03eee7a465624ef0a7..34f6d8ad72bf278313794104da57b7fde83a7e1d 100644 (file)
@@ -62,7 +62,6 @@
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    400000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP34XX
 #define CONFIG_I2C_MULTI_BUS
 
 /*
index b695d8d34667646b795754f6997d7e01bdc855a6..37f876755a7d0f5fd2602f442c63dd092f800db4 100644 (file)
@@ -71,7 +71,6 @@
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    400000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP34XX
 #define CONFIG_SYS_I2C_EEPROM_ADDR     0x50            /* base address */
 #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1               /* bytes of address */
 #define CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW    0x07
index 3dd7a9bfc792557a6d2fc14aad83dc6d4fb3227c..1f36ac69be3461dce16dbb9b9093fca6dd2b6153 100644 (file)
@@ -69,7 +69,6 @@
                                        "4m(kernel),-(fs)"
 
 #define CONFIG_SYS_I2C
-#define CONFIG_SYS_I2C_OMAP34XX
 #define CONFIG_SYS_OMAP24_I2C_SPEED    100000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
 #define CONFIG_I2C_MULTI_BUS
index 85f1d968233e4a08b6d13a88f5138d49acd14163..6834500c172fa937a15b2cbda4444281cf4cd439 100644 (file)
@@ -15,7 +15,6 @@
 /* I2C IP block */
 #define CONFIG_SYS_OMAP24_I2C_SPEED    100000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP24XX
 
 /* SPI IP Block */
 #define CONFIG_OMAP3_SPI
index 1a6551e24d20bde8c89a56e377d04b034df5e86e..acfac24ebe1406c60e607b4fae44c4cd32a5d368 100644 (file)
 #ifdef CONFIG_SPL_BUILD
 /* No need for i2c in SPL mode as we will use SRI2C for PMIC access on OMAP4 */
 #undef CONFIG_SYS_I2C
-#undef CONFIG_SYS_I2C_OMAP24XX
 #endif
 
 #endif /* __CONFIG_TI_OMAP4_COMMON_H */
index 6e80e5b4623e3b72fc3074f3ea0cd5f463852879..fbdd43ac728e27cc41e56b7cac824d348dc4fb00 100644 (file)
@@ -62,7 +62,6 @@
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_OMAP24_I2C_SPEED    100000
 #define CONFIG_SYS_OMAP24_I2C_SLAVE    1
-#define CONFIG_SYS_I2C_OMAP34XX
  
 
 /* EEPROM */
index 2dacf7961a1f884cd41577bc6d296aa5fe8dba1d..4689d6310f0c39c3346188c1a93f417a708af037 100644 (file)
@@ -3530,8 +3530,6 @@ CONFIG_SYS_I2C_MXC_I2C4
 CONFIG_SYS_I2C_NCT72_ADDR
 CONFIG_SYS_I2C_NOPROBES
 CONFIG_SYS_I2C_OFFSET
-CONFIG_SYS_I2C_OMAP24XX
-CONFIG_SYS_I2C_OMAP34XX
 CONFIG_SYS_I2C_PCA953X_ADDR
 CONFIG_SYS_I2C_PCA953X_ADDR0
 CONFIG_SYS_I2C_PCA953X_ADDR1