i2c: remove i2c driver-model compatibility layer
There are no more users of the compatibility layer for i2c. Remove the driver and all references to it. Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Acked-by: Heiko Schocher <hs@denx.de>
This commit is contained in:

committed by
Tom Rini

parent
3ec7fc45e5
commit
e31148247a
7
Makefile
7
Makefile
@@ -936,13 +936,6 @@ ifneq ($(CONFIG_DM_SPI)$(CONFIG_OF_CONTROL),yy)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq ($(CONFIG_DM_I2C_COMPAT),y)
|
|
||||||
@echo >&2 "===================== WARNING ======================"
|
|
||||||
@echo >&2 "This board uses CONFIG_DM_I2C_COMPAT. Please remove"
|
|
||||||
@echo >&2 "(possibly in a subsequent patch in your series)"
|
|
||||||
@echo >&2 "before sending patches to the mailing list."
|
|
||||||
@echo >&2 "===================================================="
|
|
||||||
endif
|
|
||||||
ifeq ($(CONFIG_MMC),y)
|
ifeq ($(CONFIG_MMC),y)
|
||||||
ifneq ($(CONFIG_DM_MMC)$(CONFIG_OF_CONTROL)$(CONFIG_BLK),yyy)
|
ifneq ($(CONFIG_DM_MMC)$(CONFIG_OF_CONTROL)$(CONFIG_BLK),yyy)
|
||||||
@echo >&2 "===================== WARNING ======================"
|
@echo >&2 "===================== WARNING ======================"
|
||||||
|
@@ -12,18 +12,7 @@ config DM_I2C
|
|||||||
write and speed, is implemented with the bus drivers operations,
|
write and speed, is implemented with the bus drivers operations,
|
||||||
which provide methods for bus setting and data transfer. Each chip
|
which provide methods for bus setting and data transfer. Each chip
|
||||||
device (bus child) info is kept as parent platdata. The interface
|
device (bus child) info is kept as parent platdata. The interface
|
||||||
is defined in include/i2c.h. When i2c bus driver supports the i2c
|
is defined in include/i2c.h.
|
||||||
uclass, but the device drivers not, then DM_I2C_COMPAT config can
|
|
||||||
be used as compatibility layer.
|
|
||||||
|
|
||||||
config DM_I2C_COMPAT
|
|
||||||
bool "Enable I2C compatibility layer"
|
|
||||||
depends on DM
|
|
||||||
help
|
|
||||||
Enable old-style I2C functions for compatibility with existing code.
|
|
||||||
This option can be enabled as a temporary measure to avoid needing
|
|
||||||
to convert all code for a board in a single commit. It should not
|
|
||||||
be enabled for any board in an official release.
|
|
||||||
|
|
||||||
config I2C_CROS_EC_TUNNEL
|
config I2C_CROS_EC_TUNNEL
|
||||||
tristate "Chrome OS EC tunnel I2C bus"
|
tristate "Chrome OS EC tunnel I2C bus"
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
# (C) Copyright 2000-2007
|
# (C) Copyright 2000-2007
|
||||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||||
obj-$(CONFIG_DM_I2C) += i2c-uclass.o
|
obj-$(CONFIG_DM_I2C) += i2c-uclass.o
|
||||||
obj-$(CONFIG_DM_I2C_COMPAT) += i2c-uclass-compat.o
|
|
||||||
obj-$(CONFIG_DM_I2C_GPIO) += i2c-gpio.o
|
obj-$(CONFIG_DM_I2C_GPIO) += i2c-gpio.o
|
||||||
obj-$(CONFIG_$(SPL_)I2C_CROS_EC_TUNNEL) += cros_ec_tunnel.o
|
obj-$(CONFIG_$(SPL_)I2C_CROS_EC_TUNNEL) += cros_ec_tunnel.o
|
||||||
obj-$(CONFIG_$(SPL_)I2C_CROS_EC_LDO) += cros_ec_ldo.o
|
obj-$(CONFIG_$(SPL_)I2C_CROS_EC_LDO) += cros_ec_ldo.o
|
||||||
|
@@ -1,128 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
|
||||||
/*
|
|
||||||
* Copyright (c) 2014 Google, Inc
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <dm.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <i2c.h>
|
|
||||||
|
|
||||||
static int cur_busnum __attribute__((section(".data")));
|
|
||||||
|
|
||||||
static int i2c_compat_get_device(uint chip_addr, int alen,
|
|
||||||
struct udevice **devp)
|
|
||||||
{
|
|
||||||
struct dm_i2c_chip *chip;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = i2c_get_chip_for_busnum(cur_busnum, chip_addr, alen, devp);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
chip = dev_get_parent_platdata(*devp);
|
|
||||||
if (chip->offset_len != alen) {
|
|
||||||
printf("I2C chip %x: requested alen %d does not match chip offset_len %d\n",
|
|
||||||
chip_addr, alen, chip->offset_len);
|
|
||||||
return -EADDRNOTAVAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int i2c_probe(uint8_t chip_addr)
|
|
||||||
{
|
|
||||||
struct udevice *bus, *dev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = uclass_get_device_by_seq(UCLASS_I2C, cur_busnum, &bus);
|
|
||||||
if (ret) {
|
|
||||||
debug("Cannot find I2C bus %d: err=%d\n", cur_busnum, ret);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!bus)
|
|
||||||
return -ENOENT;
|
|
||||||
|
|
||||||
return dm_i2c_probe(bus, chip_addr, 0, &dev);
|
|
||||||
}
|
|
||||||
|
|
||||||
int i2c_read(uint8_t chip_addr, unsigned int addr, int alen, uint8_t *buffer,
|
|
||||||
int len)
|
|
||||||
{
|
|
||||||
struct udevice *dev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = i2c_compat_get_device(chip_addr, alen, &dev);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
return dm_i2c_read(dev, addr, buffer, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
int i2c_write(uint8_t chip_addr, unsigned int addr, int alen, uint8_t *buffer,
|
|
||||||
int len)
|
|
||||||
{
|
|
||||||
struct udevice *dev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = i2c_compat_get_device(chip_addr, alen, &dev);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
return dm_i2c_write(dev, addr, buffer, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
int i2c_get_bus_num_fdt(int node)
|
|
||||||
{
|
|
||||||
struct udevice *bus;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = uclass_get_device_by_of_offset(UCLASS_I2C, node, &bus);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
return bus->seq;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned int i2c_get_bus_num(void)
|
|
||||||
{
|
|
||||||
return cur_busnum;
|
|
||||||
}
|
|
||||||
|
|
||||||
int i2c_set_bus_num(unsigned int bus)
|
|
||||||
{
|
|
||||||
cur_busnum = bus;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void i2c_init(int speed, int slaveaddr)
|
|
||||||
{
|
|
||||||
/* Nothing to do here - the init happens through driver model */
|
|
||||||
}
|
|
||||||
|
|
||||||
void board_i2c_init(const void *blob)
|
|
||||||
{
|
|
||||||
/* Nothing to do here - the init happens through driver model */
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t i2c_reg_read(uint8_t chip_addr, uint8_t offset)
|
|
||||||
{
|
|
||||||
struct udevice *dev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = i2c_compat_get_device(chip_addr, 1, &dev);
|
|
||||||
if (ret)
|
|
||||||
return 0xff;
|
|
||||||
return dm_i2c_reg_read(dev, offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
void i2c_reg_write(uint8_t chip_addr, uint8_t offset, uint8_t val)
|
|
||||||
{
|
|
||||||
struct udevice *dev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = i2c_compat_get_device(chip_addr, 1, &dev);
|
|
||||||
if (!ret)
|
|
||||||
dm_i2c_reg_write(dev, offset, val);
|
|
||||||
}
|
|
@@ -40,8 +40,7 @@
|
|||||||
EXPORT_FUNC(simple_strtol, long, simple_strtol,
|
EXPORT_FUNC(simple_strtol, long, simple_strtol,
|
||||||
const char *, char **, unsigned int)
|
const char *, char **, unsigned int)
|
||||||
EXPORT_FUNC(strcmp, int, strcmp, const char *cs, const char *ct)
|
EXPORT_FUNC(strcmp, int, strcmp, const char *cs, const char *ct)
|
||||||
#if defined(CONFIG_CMD_I2C) && \
|
#if defined(CONFIG_CMD_I2C) && !defined(CONFIG_DM_I2C)
|
||||||
(!defined(CONFIG_DM_I2C) || defined(CONFIG_DM_I2C_COMPAT))
|
|
||||||
EXPORT_FUNC(i2c_write, int, i2c_write, uchar, uint, int , uchar * , int)
|
EXPORT_FUNC(i2c_write, int, i2c_write, uchar, uint, int , uchar * , int)
|
||||||
EXPORT_FUNC(i2c_read, int, i2c_read, uchar, uint, int , uchar * , int)
|
EXPORT_FUNC(i2c_read, int, i2c_read, uchar, uint, int , uchar * , int)
|
||||||
#else
|
#else
|
||||||
|
@@ -32,8 +32,7 @@ long simple_strtol(const char *cp, char **endp, unsigned int base);
|
|||||||
int strcmp(const char *cs, const char *ct);
|
int strcmp(const char *cs, const char *ct);
|
||||||
unsigned long ustrtoul(const char *cp, char **endp, unsigned int base);
|
unsigned long ustrtoul(const char *cp, char **endp, unsigned int base);
|
||||||
unsigned long long ustrtoull(const char *cp, char **endp, unsigned int base);
|
unsigned long long ustrtoull(const char *cp, char **endp, unsigned int base);
|
||||||
#if defined(CONFIG_CMD_I2C) && \
|
#if defined(CONFIG_CMD_I2C) && !defined(CONFIG_DM_I2C)
|
||||||
(!defined(CONFIG_DM_I2C) || defined(CONFIG_DM_I2C_COMPAT))
|
|
||||||
int i2c_write (uchar, uint, int , uchar* , int);
|
int i2c_write (uchar, uint, int , uchar* , int);
|
||||||
int i2c_read (uchar, uint, int , uchar* , int);
|
int i2c_read (uchar, uint, int , uchar* , int);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -271,86 +271,6 @@ int i2c_get_chip_offset_len(struct udevice *dev);
|
|||||||
*/
|
*/
|
||||||
int i2c_deblock(struct udevice *bus);
|
int i2c_deblock(struct udevice *bus);
|
||||||
|
|
||||||
#ifdef CONFIG_DM_I2C_COMPAT
|
|
||||||
/**
|
|
||||||
* i2c_probe() - Compatibility function for driver model
|
|
||||||
*
|
|
||||||
* Calls dm_i2c_probe() on the current bus
|
|
||||||
*/
|
|
||||||
int i2c_probe(uint8_t chip_addr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* i2c_read() - Compatibility function for driver model
|
|
||||||
*
|
|
||||||
* Calls dm_i2c_read() with the device corresponding to @chip_addr, and offset
|
|
||||||
* set to @addr. @alen must match the current setting for the device.
|
|
||||||
*/
|
|
||||||
int i2c_read(uint8_t chip_addr, unsigned int addr, int alen, uint8_t *buffer,
|
|
||||||
int len);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* i2c_write() - Compatibility function for driver model
|
|
||||||
*
|
|
||||||
* Calls dm_i2c_write() with the device corresponding to @chip_addr, and offset
|
|
||||||
* set to @addr. @alen must match the current setting for the device.
|
|
||||||
*/
|
|
||||||
int i2c_write(uint8_t chip_addr, unsigned int addr, int alen, uint8_t *buffer,
|
|
||||||
int len);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* i2c_get_bus_num_fdt() - Compatibility function for driver model
|
|
||||||
*
|
|
||||||
* @return the bus number associated with the given device tree node
|
|
||||||
*/
|
|
||||||
int i2c_get_bus_num_fdt(int node);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* i2c_get_bus_num() - Compatibility function for driver model
|
|
||||||
*
|
|
||||||
* @return the 'current' bus number
|
|
||||||
*/
|
|
||||||
unsigned int i2c_get_bus_num(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* i2c_set_bus_num() - Compatibility function for driver model
|
|
||||||
*
|
|
||||||
* Sets the 'current' bus
|
|
||||||
*/
|
|
||||||
int i2c_set_bus_num(unsigned int bus);
|
|
||||||
|
|
||||||
static inline void I2C_SET_BUS(unsigned int bus)
|
|
||||||
{
|
|
||||||
i2c_set_bus_num(bus);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline unsigned int I2C_GET_BUS(void)
|
|
||||||
{
|
|
||||||
return i2c_get_bus_num();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* i2c_init() - Compatibility function for driver model
|
|
||||||
*
|
|
||||||
* This function does nothing.
|
|
||||||
*/
|
|
||||||
void i2c_init(int speed, int slaveaddr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* board_i2c_init() - Compatibility function for driver model
|
|
||||||
*
|
|
||||||
* @param blob Device tree blbo
|
|
||||||
* @return the number of I2C bus
|
|
||||||
*/
|
|
||||||
void board_i2c_init(const void *blob);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Compatibility functions for driver model.
|
|
||||||
*/
|
|
||||||
uint8_t i2c_reg_read(uint8_t addr, uint8_t reg);
|
|
||||||
void i2c_reg_write(uint8_t addr, uint8_t reg, uint8_t val);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct dm_i2c_ops - driver operations for I2C uclass
|
* struct dm_i2c_ops - driver operations for I2C uclass
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user