Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mfd: Add Tunnel Creek support to lpc_sch

Intel Poulsbo SCH and Tunnel Creek provide almost the
same LPC interface. Use the same driver for both devices while
storing PCI ID to distinguish between platforms to apply plarform
related quirks.

Signed-off-by: Denis Turischev <denis@compulab.co.il>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>

authored by

Denis Turischev and committed by
Samuel Ortiz
e967f77d c4fdd116

+6 -1
+6 -1
drivers/mfd/lpc_sch.c
··· 61 61 62 62 static struct pci_device_id lpc_sch_ids[] = { 63 63 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SCH_LPC) }, 64 + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ITC_LPC) }, 64 65 { 0, } 65 66 }; 66 67 MODULE_DEVICE_TABLE(pci, lpc_sch_ids); ··· 71 70 { 72 71 unsigned int base_addr_cfg; 73 72 unsigned short base_addr; 73 + int i; 74 74 75 75 pci_read_config_dword(dev, SMBASE, &base_addr_cfg); 76 76 if (!(base_addr_cfg & (1 << 31))) { ··· 101 99 gpio_sch_resource.start = base_addr; 102 100 gpio_sch_resource.end = base_addr + GPIO_IO_SIZE - 1; 103 101 104 - return mfd_add_devices(&dev->dev, -1, 102 + for (i=0; i < ARRAY_SIZE(lpc_sch_cells); i++) 103 + lpc_sch_cells[i].id = id->device; 104 + 105 + return mfd_add_devices(&dev->dev, 0, 105 106 lpc_sch_cells, ARRAY_SIZE(lpc_sch_cells), NULL, 0); 106 107 } 107 108