From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Tue, 8 Dec 2015 06:45:36 +0100 Subject: [U-Boot] [PATCH 41/57] x86: i2c: Add a stub driver for Intel I2C/SMbus In-Reply-To: <1449545956-2772-42-git-send-email-sjg@chromium.org> References: <1449545956-2772-1-git-send-email-sjg@chromium.org> <1449545956-2772-42-git-send-email-sjg@chromium.org> Message-ID: <56666E80.3050600@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Simon, Am 08.12.2015 um 04:39 schrieb Simon Glass: > This is used on most Intel platforms. We don't have a driver for it yet, but > add a stub to handle the init. For now this targets ivybridge so we may want > to add a device tree binding and generalise it when other platforms are > supported. > > Signed-off-by: Simon Glass > --- > > drivers/i2c/Kconfig | 7 +++++++ > drivers/i2c/Makefile | 1 + > drivers/i2c/intel_i2c.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 59 insertions(+) > create mode 100644 drivers/i2c/intel_i2c.c Reviewed-by: Heiko Schocher bye, Heiko > > diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig > index 14adda2..fe98557 100644 > --- a/drivers/i2c/Kconfig > +++ b/drivers/i2c/Kconfig > @@ -58,6 +58,13 @@ config DM_I2C_GPIO > bindings are supported. > Binding info: doc/device-tree-bindings/i2c/i2c-gpio.txt > > +config SYS_I2C_INTEL > + bool "Intel I2C/SMBUS driver" > + depends on DM_I2C > + help > + Add support for the Intel SMBUS driver. So far this driver is just > + a stub which perhaps some basic init. > + > config SYS_I2C_ROCKCHIP > bool "Rockchip I2C driver" > depends on DM_I2C > diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile > index 811ad9b..a2a956a 100644 > --- a/drivers/i2c/Makefile > +++ b/drivers/i2c/Makefile > @@ -21,6 +21,7 @@ obj-$(CONFIG_SYS_I2C_DW) += designware_i2c.o > obj-$(CONFIG_SYS_I2C_FSL) += fsl_i2c.o > obj-$(CONFIG_SYS_I2C_FTI2C010) += fti2c010.o > obj-$(CONFIG_SYS_I2C_IHS) += ihs_i2c.o > +obj-$(CONFIG_SYS_I2C_INTEL) += intel_i2c.o > obj-$(CONFIG_SYS_I2C_KONA) += kona_i2c.o > obj-$(CONFIG_SYS_I2C_LPC32XX) += lpc32xx_i2c.o > obj-$(CONFIG_SYS_I2C_MVTWSI) += mvtwsi.o > diff --git a/drivers/i2c/intel_i2c.c b/drivers/i2c/intel_i2c.c > new file mode 100644 > index 0000000..1082d1a > --- /dev/null > +++ b/drivers/i2c/intel_i2c.c > @@ -0,0 +1,51 @@ > +/* > + * Copyright (c) 2015 Google, Inc > + * Written by Simon Glass > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include > +#include > +#include > +#include > + > +int intel_i2c_xfer(struct udevice *bus, struct i2c_msg *msg, int nmsgs) > +{ > + return -ENOSYS; > +} > + > +int intel_i2c_probe_chip(struct udevice *bus, uint chip_addr, uint chip_flags) > +{ > + return -ENOSYS; > +} > + > +int intel_i2c_set_bus_speed(struct udevice *bus, unsigned int speed) > +{ > + return 0; > +} > + > +static int intel_i2c_probe(struct udevice *dev) > +{ > + return 0; > +} > + > +static const struct dm_i2c_ops intel_i2c_ops = { > + .xfer = intel_i2c_xfer, > + .probe_chip = intel_i2c_probe_chip, > + .set_bus_speed = intel_i2c_set_bus_speed, > +}; > + > +static const struct udevice_id intel_i2c_ids[] = { > + { .compatible = "intel,ich-i2c" }, > + { } > +}; > + > +U_BOOT_DRIVER(intel_i2c) = { > + .name = "i2c_intel", > + .id = UCLASS_I2C, > + .of_match = intel_i2c_ids, > + .per_child_auto_alloc_size = sizeof(struct dm_i2c_chip), > + .ops = &intel_i2c_ops, > + .probe = intel_i2c_probe, > +}; > -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany