From: Simon Glass <sjg@chromium.org>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Cc: Tom Rini <trini@konsulko.com>, Heiko Schocher <hs@denx.de>,
Simon Glass <sjg@chromium.org>,
Marcel Ziswiler <marcel.ziswiler@toradex.com>,
Philip Richard Oberfichtner <pro@denx.de>,
Rasmus Villemoes <rasmus.villemoes@prevas.dk>,
Sean Anderson <seanga2@gmail.com>,
Svyatoslav Ryhel <clamor95@gmail.com>
Subject: [PATCH 20/20] i2c: Remove CFG_SYS_I2C_DIRECT_BUS
Date: Thu, 18 Jul 2024 18:36:11 +0100 [thread overview]
Message-ID: <20240718173611.4014274-21-sjg@chromium.org> (raw)
In-Reply-To: <20240718173611.4014274-1-sjg@chromium.org>
Now that this is always 1, remove it and the associated dead code.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
README | 7 +--
drivers/i2c/i2c_core.c | 104 -----------------------------------------
include/i2c.h | 35 --------------
3 files changed, 1 insertion(+), 145 deletions(-)
diff --git a/README b/README
index 44dafa3be98..461c5d4d0e3 100644
--- 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}}}, \
diff --git a/drivers/i2c/i2c_core.c b/drivers/i2c/i2c_core.c
index f371d952af5..cccd45027db 100644
--- a/drivers/i2c/i2c_core.c
+++ b/drivers/i2c/i2c_core.c
@@ -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;
}
diff --git a/include/i2c.h b/include/i2c.h
index 180b71f1451..91917f54be9 100644
--- a/include/i2c.h
+++ b/include/i2c.h
@@ -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) || \
--
2.34.1
next prev parent reply other threads:[~2024-07-18 17:40 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-18 17:35 [PATCH 00/20] i2c: Chip away at some old code Simon Glass
2024-07-18 17:35 ` [PATCH 01/20] arm: Remove pg_wcom boards Simon Glass
2024-07-19 8:50 ` Anatolij Gustschin
2024-07-19 19:20 ` Anatolij Gustschin
2024-07-18 17:35 ` [PATCH 02/20] i2c: Remove board_i2c_init() Simon Glass
2024-07-18 17:35 ` [PATCH 03/20] i2c: Remove IC2_xxx enum Simon Glass
2024-07-18 17:35 ` [PATCH 04/20] i2c: Remove CFG_I2C_MULTI_BUS Simon Glass
2024-07-18 17:35 ` [PATCH 05/20] mips: malta: Drop CMD_DATE Simon Glass
2024-07-18 17:35 ` [PATCH 06/20] armv8: ls2085a: " Simon Glass
2024-07-18 17:35 ` [PATCH 07/20] mx28 / mx51: " Simon Glass
2024-07-18 17:35 ` [PATCH 08/20] MPC837XERDB: ethernut5: work_92105: " Simon Glass
2024-07-18 17:36 ` [PATCH 09/20] rtc: Drop CFG_SYS_RTC_BUS_NUM Simon Glass
2024-07-18 17:36 ` [PATCH 10/20] date: Drop the legacy I2C code Simon Glass
2024-07-18 17:36 ` [PATCH 11/20] keymile: Remove use of legacy I2C Simon Glass
2024-07-19 23:36 ` Anatolij Gustschin
2024-07-22 4:10 ` Heiko Schocher
2024-07-18 17:36 ` [PATCH 12/20] i2c: mxc: pg_wcom: Drop legacy I2c Simon Glass
2024-07-18 17:36 ` [PATCH 13/20] i2c: Drop reference to SYS_I2C_INIT_BOARD Simon Glass
2024-07-18 17:36 ` [PATCH 14/20] octeon: Drop OCTEON_I2C_FDT dead code Simon Glass
2024-07-18 17:36 ` [PATCH 15/20] i2c: Remove I2C_SET_BUS() Simon Glass
2024-07-18 17:36 ` [PATCH 16/20] i2c: Remove I2C_GET_BUS() Simon Glass
2024-07-18 17:36 ` [PATCH 17/20] i2c: Drop CFG_SYS_MAX_I2C_BUS Simon Glass
2024-07-18 17:36 ` [PATCH 18/20] i2c: Drop i2c_get_bus_num_fdt() and i2c_reset_port_fdt() Simon Glass
2024-07-18 17:36 ` [PATCH 19/20] i2c: Remove CFG_SYS_I2C_MAX_HOPS Simon Glass
2024-07-18 17:36 ` Simon Glass [this message]
2024-08-09 18:37 ` [PATCH 00/20] i2c: Chip away at some old code Simon Glass
2024-08-09 18:56 ` Tom Rini
2024-08-09 19:58 ` Anatolij Gustschin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240718173611.4014274-21-sjg@chromium.org \
--to=sjg@chromium.org \
--cc=clamor95@gmail.com \
--cc=hs@denx.de \
--cc=marcel.ziswiler@toradex.com \
--cc=pro@denx.de \
--cc=rasmus.villemoes@prevas.dk \
--cc=seanga2@gmail.com \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.