]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
i2c: Remove CFG_SYS_I2C_DIRECT_BUS
authorSimon Glass <sjg@chromium.org>
Sun, 11 Aug 2024 14:50:47 +0000 (08:50 -0600)
committerHeiko Schocher <hs@denx.de>
Tue, 13 Aug 2024 04:23:15 +0000 (06:23 +0200)
Now that this is always 1, remove it and the associated dead code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
README
drivers/i2c/i2c_core.c
include/i2c.h

diff --git a/README b/README
index 4ffa4b8b68c1f492feb539b2097fe0c468a1176b..4be1e8c22a0a5ab20532199864349e37bd4a7e4f 100644 (file)
--- a/README
+++ b/README
@@ -771,13 +771,8 @@ The following options need to be configured:
                CFG_SYS_NUM_I2C_BUSES
                Hold the number of i2c buses you want to use.
 
-               CFG_SYS_I2C_DIRECT_BUS
-               define this, if you don't use i2c muxes on your hardware.
-
                CFG_SYS_I2C_BUSES
-               hold a list of buses you want to use, only used if
-               CFG_SYS_I2C_DIRECT_BUS is not defined, for example
-               a board with CFG_SYS_NUM_I2C_BUSES = 9:
+               hold a list of buses you want to use
 
                 CFG_SYS_I2C_BUSES      {{0, {I2C_NULL_HOP}}, \
                                        {0, {{I2C_MUX_PCA9547, 0x70, 1}}}, \
index f371d952af5b713d57347c072c9344a151a7a2ae..cccd45027db3411e71bd46fad61e622a478f7dde 100644 (file)
@@ -33,100 +33,8 @@ struct i2c_adapter *i2c_get_adapter(int index)
        return i2c_adap_p;
 }
 
-#if !defined(CFG_SYS_I2C_DIRECT_BUS)
-struct i2c_bus_hose i2c_bus[CFG_SYS_NUM_I2C_BUSES] =
-                       CFG_SYS_I2C_BUSES;
-#endif
-
 DECLARE_GLOBAL_DATA_PTR;
 
-#ifndef CFG_SYS_I2C_DIRECT_BUS
-/*
- * i2c_mux_set()
- * -------------
- *
- * This turns on the given channel on I2C multiplexer chip connected to
- * a given I2C adapter directly or via other multiplexers. In the latter
- * case the entire multiplexer chain must be initialized first starting
- * with the one connected directly to the adapter. When disabling a chain
- * muxes must be programmed in reverse order, starting with the one
- * farthest from the adapter.
- *
- * mux_id is the multiplexer chip type from defined in i2c.h. So far only
- * NXP (Philips) PCA954x multiplexers are supported. Switches are NOT
- * supported (anybody uses them?)
- */
-
-static int i2c_mux_set(struct i2c_adapter *adap, int mux_id, int chip,
-                       int channel)
-{
-       uint8_t buf;
-       int ret;
-
-       /* channel < 0 - turn off the mux */
-       if (channel < 0) {
-               buf = 0;
-               ret = adap->write(adap, chip, 0, 0, &buf, 1);
-               if (ret)
-                       printf("%s: Could not turn off the mux.\n", __func__);
-               return ret;
-       }
-
-       switch (mux_id) {
-       case I2C_MUX_PCA9540_ID:
-       case I2C_MUX_PCA9542_ID:
-               if (channel > 1)
-                       return -1;
-               buf = (uint8_t)((channel & 0x01) | (1 << 2));
-               break;
-       case I2C_MUX_PCA9544_ID:
-               if (channel > 3)
-                       return -1;
-               buf = (uint8_t)((channel & 0x03) | (1 << 2));
-               break;
-       case I2C_MUX_PCA9547_ID:
-               if (channel > 7)
-                       return -1;
-               buf = (uint8_t)((channel & 0x07) | (1 << 3));
-               break;
-       case I2C_MUX_PCA9548_ID:
-               if (channel > 7)
-                       return -1;
-               buf = (uint8_t)(0x01 << channel);
-               break;
-       default:
-               printf("%s: wrong mux id: %d\n", __func__, mux_id);
-               return -1;
-       }
-
-       ret = adap->write(adap, chip, 0, 0, &buf, 1);
-       if (ret)
-               printf("%s: could not set mux: id: %d chip: %x channel: %d\n",
-                      __func__, mux_id, chip, channel);
-       return ret;
-}
-
-static int i2c_mux_set_all(void)
-{
-       struct i2c_bus_hose *i2c_bus_tmp = &i2c_bus[I2C_BUS];
-       int i;
-
-       return 0;
-}
-
-static int i2c_mux_disconnect_all(void)
-{
-       struct  i2c_bus_hose *i2c_bus_tmp = &i2c_bus[I2C_BUS];
-       int     i;
-       uint8_t buf = 0;
-
-       if (I2C_ADAP->init_done == 0)
-               return 0;
-
-       return 0;
-}
-#endif
-
 /*
  * i2c_init_bus():
  * ---------------
@@ -200,11 +108,6 @@ int i2c_set_bus_num(unsigned int bus)
        if ((bus == I2C_BUS) && (I2C_ADAP->init_done > 0))
                return 0;
 
-#ifndef CFG_SYS_I2C_DIRECT_BUS
-       if (bus >= CFG_SYS_NUM_I2C_BUSES)
-               return -1;
-#endif
-
        max = ll_entry_count(struct i2c_adapter, i2c);
        if (I2C_ADAPTER(bus) >= max) {
                printf("Error, wrong i2c adapter %d max %d possible\n",
@@ -212,17 +115,10 @@ int i2c_set_bus_num(unsigned int bus)
                return -2;
        }
 
-#ifndef CFG_SYS_I2C_DIRECT_BUS
-       i2c_mux_disconnect_all();
-#endif
-
        gd->cur_i2c_bus = bus;
        if (I2C_ADAP->init_done == 0)
                i2c_init_bus(bus, I2C_ADAP->speed, I2C_ADAP->slaveaddr);
 
-#ifndef CFG_SYS_I2C_DIRECT_BUS
-       i2c_mux_set_all();
-#endif
        return 0;
 }
 
index 180b71f145152a56b355083878d6079831e7c4cb..91917f54be9279ad43e4b1e3d79882c2103a453c 100644 (file)
@@ -646,7 +646,6 @@ void i2c_early_init_f(void);
 #define I2C_RXTX_LEN   128     /* maximum tx/rx buffer length */
 
 /* no muxes used bus = i2c adapters */
-#define CFG_SYS_I2C_DIRECT_BUS 1
 #define CFG_SYS_NUM_I2C_BUSES  ll_entry_count(struct i2c_adapter, i2c)
 
 struct i2c_adapter {
@@ -692,47 +691,13 @@ struct i2c_adapter {
 
 struct i2c_adapter *i2c_get_adapter(int index);
 
-#ifndef CFG_SYS_I2C_DIRECT_BUS
-struct i2c_mux {
-       int     id;
-       char    name[16];
-};
-
-struct i2c_next_hop {
-       struct i2c_mux          mux;
-       uint8_t         chip;
-       uint8_t         channel;
-};
-
-struct i2c_bus_hose {
-       int     adapter;
-};
-#define I2C_NULL_HOP   {{-1, ""}, 0, 0}
-extern struct i2c_bus_hose     i2c_bus[];
-
-#define I2C_ADAPTER(bus)       i2c_bus[bus].adapter
-#else
 #define I2C_ADAPTER(bus)       bus
-#endif
 #define        I2C_BUS                 gd->cur_i2c_bus
 
 #define        I2C_ADAP_NR(bus)        i2c_get_adapter(I2C_ADAPTER(bus))
 #define        I2C_ADAP                I2C_ADAP_NR(gd->cur_i2c_bus)
 #define I2C_ADAP_HWNR          (I2C_ADAP->hwadapnr)
 
-#ifndef CFG_SYS_I2C_DIRECT_BUS
-#define I2C_MUX_PCA9540_ID     1
-#define I2C_MUX_PCA9540                {I2C_MUX_PCA9540_ID, "PCA9540B"}
-#define I2C_MUX_PCA9542_ID     2
-#define I2C_MUX_PCA9542                {I2C_MUX_PCA9542_ID, "PCA9542A"}
-#define I2C_MUX_PCA9544_ID     3
-#define I2C_MUX_PCA9544                {I2C_MUX_PCA9544_ID, "PCA9544A"}
-#define I2C_MUX_PCA9547_ID     4
-#define I2C_MUX_PCA9547                {I2C_MUX_PCA9547_ID, "PCA9547A"}
-#define I2C_MUX_PCA9548_ID     5
-#define I2C_MUX_PCA9548                {I2C_MUX_PCA9548_ID, "PCA9548"}
-#endif
-
 #ifndef I2C_SOFT_DECLARATIONS
 # if (defined(CONFIG_AT91RM9200) || \
        defined(CONFIG_AT91SAM9260) ||  defined(CONFIG_AT91SAM9261) || \