Commit 29fdd5ba authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
 "Here is the fixup for the 'lowlight' of my last pull request.  I2C is
  not selected anymore by I2C_ACPI.  Instead, the code in question now
  depends on I2C=y.

  Also, Mika has agreed to support me and be the maintainer for I2C-ACPI
  related patches.  Finally, a new-ID-patch came along last week"

* 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
  MAINTAINERS: add maintainer for ACPI parts of I2C
  i2c: i801: Add PCI ID for Intel Braswell
  i2c: rework kernel config I2C_ACPI
parents d1433d55 4560d677
...@@ -4446,6 +4446,13 @@ F: include/linux/i2c-*.h ...@@ -4446,6 +4446,13 @@ F: include/linux/i2c-*.h
F: include/uapi/linux/i2c.h F: include/uapi/linux/i2c.h
F: include/uapi/linux/i2c-*.h F: include/uapi/linux/i2c-*.h
I2C ACPI SUPPORT
M: Mika Westerberg <mika.westerberg@linux.intel.com>
L: linux-i2c@vger.kernel.org
L: linux-acpi@vger.kernel.org
S: Maintained
F: drivers/i2c/i2c-acpi.c
I2C-TAOS-EVM DRIVER I2C-TAOS-EVM DRIVER
M: Jean Delvare <jdelvare@suse.de> M: Jean Delvare <jdelvare@suse.de>
L: linux-i2c@vger.kernel.org L: linux-i2c@vger.kernel.org
......
...@@ -23,17 +23,14 @@ config I2C ...@@ -23,17 +23,14 @@ config I2C
This I2C support can also be built as a module. If so, the module This I2C support can also be built as a module. If so, the module
will be called i2c-core. will be called i2c-core.
config I2C_ACPI config ACPI_I2C_OPREGION
bool "I2C ACPI support" bool "ACPI I2C Operation region support"
select I2C depends on I2C=y && ACPI
depends on ACPI
default y default y
help help
Say Y here if you want to enable ACPI I2C support. This includes support Say Y here if you want to enable ACPI I2C operation region support.
for automatic enumeration of I2C slave devices and support for ACPI I2C Operation Regions allow firmware (BIOS) code to access I2C slave devices,
Operation Regions. Operation Regions allow firmware (BIOS) code to such as smart batteries through an I2C host controller driver.
access I2C slave devices, such as smart batteries through an I2C host
controller driver.
if I2C if I2C
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# #
i2ccore-y := i2c-core.o i2ccore-y := i2c-core.o
i2ccore-$(CONFIG_I2C_ACPI) += i2c-acpi.o i2ccore-$(CONFIG_ACPI) += i2c-acpi.o
obj-$(CONFIG_I2C_BOARDINFO) += i2c-boardinfo.o obj-$(CONFIG_I2C_BOARDINFO) += i2c-boardinfo.o
obj-$(CONFIG_I2C) += i2ccore.o obj-$(CONFIG_I2C) += i2ccore.o
......
...@@ -164,6 +164,7 @@ ...@@ -164,6 +164,7 @@
/* Older devices have their ID defined in <linux/pci_ids.h> */ /* Older devices have their ID defined in <linux/pci_ids.h> */
#define PCI_DEVICE_ID_INTEL_BAYTRAIL_SMBUS 0x0f12 #define PCI_DEVICE_ID_INTEL_BAYTRAIL_SMBUS 0x0f12
#define PCI_DEVICE_ID_INTEL_BRASWELL_SMBUS 0x2292
#define PCI_DEVICE_ID_INTEL_COUGARPOINT_SMBUS 0x1c22 #define PCI_DEVICE_ID_INTEL_COUGARPOINT_SMBUS 0x1c22
#define PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS 0x1d22 #define PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS 0x1d22
/* Patsburg also has three 'Integrated Device Function' SMBus controllers */ /* Patsburg also has three 'Integrated Device Function' SMBus controllers */
...@@ -828,6 +829,7 @@ static const struct pci_device_id i801_ids[] = { ...@@ -828,6 +829,7 @@ static const struct pci_device_id i801_ids[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WILDCATPOINT_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WILDCATPOINT_SMBUS) },
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WILDCATPOINT_LP_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WILDCATPOINT_LP_SMBUS) },
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BAYTRAIL_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BAYTRAIL_SMBUS) },
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BRASWELL_SMBUS) },
{ 0, } { 0, }
}; };
......
...@@ -126,6 +126,7 @@ void acpi_i2c_register_devices(struct i2c_adapter *adap) ...@@ -126,6 +126,7 @@ void acpi_i2c_register_devices(struct i2c_adapter *adap)
dev_warn(&adap->dev, "failed to enumerate I2C slaves\n"); dev_warn(&adap->dev, "failed to enumerate I2C slaves\n");
} }
#ifdef CONFIG_ACPI_I2C_OPREGION
static int acpi_gsb_i2c_read_bytes(struct i2c_client *client, static int acpi_gsb_i2c_read_bytes(struct i2c_client *client,
u8 cmd, u8 *data, u8 data_len) u8 cmd, u8 *data, u8 data_len)
{ {
...@@ -360,3 +361,4 @@ void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) ...@@ -360,3 +361,4 @@ void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter)
acpi_bus_detach_private_data(handle); acpi_bus_detach_private_data(handle);
} }
#endif
...@@ -577,16 +577,20 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node ...@@ -577,16 +577,20 @@ static inline struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node
} }
#endif /* CONFIG_OF */ #endif /* CONFIG_OF */
#ifdef CONFIG_I2C_ACPI #ifdef CONFIG_ACPI
int acpi_i2c_install_space_handler(struct i2c_adapter *adapter);
void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter);
void acpi_i2c_register_devices(struct i2c_adapter *adap); void acpi_i2c_register_devices(struct i2c_adapter *adap);
#else #else
static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) { } static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) { }
#endif /* CONFIG_ACPI */
#ifdef CONFIG_ACPI_I2C_OPREGION
int acpi_i2c_install_space_handler(struct i2c_adapter *adapter);
void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter);
#else
static inline void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter) static inline void acpi_i2c_remove_space_handler(struct i2c_adapter *adapter)
{ } { }
static inline int acpi_i2c_install_space_handler(struct i2c_adapter *adapter) static inline int acpi_i2c_install_space_handler(struct i2c_adapter *adapter)
{ return 0; } { return 0; }
#endif #endif /* CONFIG_ACPI_I2C_OPREGION */
#endif /* _LINUX_I2C_H */ #endif /* _LINUX_I2C_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment