Skip to contentSkip to conversation

pci_ids: add Intel Tunnel Creek LPC Bridge device ID.

PATCH In review Denis Turischev 4 participants 11 messages Mar 13, 2011 – Mar 17, 2011

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/3 pci_ids: add Intel Tunnel Creek LPC Bridge device ID.

---
 include/linux/pci_ids.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
include/linux/pci_ids.h +1 -0
index 3adb06e..43779f9 100644
@@ -2731,6 +2731,7 @@
 #define PCI_DEVICE_ID_INTEL_82372FB_1	0x7601
 #define PCI_DEVICE_ID_INTEL_SCH_LPC	0x8119
 #define PCI_DEVICE_ID_INTEL_SCH_IDE	0x811a
+#define PCI_DEVICE_ID_INTEL_ITC_LPC	0x8186
 #define PCI_DEVICE_ID_INTEL_82454GX	0x84c4
 #define PCI_DEVICE_ID_INTEL_82450GX	0x84c5
 #define PCI_DEVICE_ID_INTEL_82451NX	0x84ca
Signature · 1 line
1.7.0.4
#1 lore raw

PATCH 2/3 lpc_sch: expand for Tunnel Creek

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.

---
 drivers/mfd/lpc_sch.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
drivers/mfd/lpc_sch.c +6 -1
index 51b2f60..ea3f52c 100644
@@ -61,6 +61,7 @@ static struct mfd_cell lpc_sch_cells[] = {
 
 static struct pci_device_id lpc_sch_ids[] = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SCH_LPC) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ITC_LPC) },
 	{ 0, }
 };
 MODULE_DEVICE_TABLE(pci, lpc_sch_ids);
@@ -70,6 +71,7 @@ static int __devinit lpc_sch_probe(struct pci_dev *dev,
 {
 	unsigned int base_addr_cfg;
 	unsigned short base_addr;
+	int i;
 
 	pci_read_config_dword(dev, SMBASE, &base_addr_cfg);
 	if (!(base_addr_cfg & (1 << 31))) {
@@ -99,7 +101,10 @@ static int __devinit lpc_sch_probe(struct pci_dev *dev,
 	gpio_sch_resource.start = base_addr;
 	gpio_sch_resource.end = base_addr + GPIO_IO_SIZE - 1;
 
-	return mfd_add_devices(&dev->dev, -1,
+	for (i=0; i < ARRAY_SIZE(lpc_sch_cells); i++)
+		lpc_sch_cells[i].id = id->device;
+
+	return mfd_add_devices(&dev->dev, 0,
 			lpc_sch_cells, ARRAY_SIZE(lpc_sch_cells), NULL, 0);
 }
 
Signature · 1 line
1.7.0.4
#2 lore raw

PATCH 3/3 sch_gpio: expand for Tunnel Creak

Almost the same driver for both Poulsbo and Tunnel Creek. The difference is in quantity of GPIOs powered by the core power rail and by suspend power supply, default values for some GPIOs, etc. Detect actual hardware by platform device ID assigned in lpc_sch and set configuration accordingly.

---
 drivers/gpio/Kconfig    |    7 +++++--
 drivers/gpio/sch_gpio.c |   46 +++++++++++++++++++++++++++++++++++++++-------
 2 files changed, 44 insertions(+), 9 deletions(-)
drivers/gpio/Kconfig +5 -2
index 664660e..7ef9108 100644
@@ -100,18 +100,21 @@ config GPIO_VR41XX
 	  Say yes here to support the NEC VR4100 series General-purpose I/O Uint
 
 config GPIO_SCH
-	tristate "Intel SCH GPIO"
+	tristate "Intel SCH/TunnelCreek GPIO"
 	depends on GPIOLIB && PCI
 	select MFD_CORE
 	select LPC_SCH
 	help
-	  Say yes here to support GPIO interface on Intel Poulsbo SCH.
+	  Say yes here to support GPIO interface on Intel Poulsbo SCH
+	  or Intel Tunnel Creek processor.
 	  The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
 	  powered by the core power rail and are turned off during sleep
 	  modes (S3 and higher). The remaining four GPIOs are powered by
 	  the Intel SCH suspend power supply. These GPIOs remain
 	  active during S3. The suspend powered GPIOs can be used to wake the
 	  system from the Suspend-to-RAM state.
+	  The Intel Tunnel Creek processor has 5 GPIOs powered by the
+	  core power rail and 9 from suspend power supply.
 
 	  This driver can also be built as a module. If so, the module
 	  will be called sch-gpio.
drivers/gpio/sch_gpio.c +38 -6

57 lines not on this page · raw message

Signature · 1 line
1.7.0.4
#3 lore raw

PATCH v2 3/3 sch_gpio: expand for Tunnel Creek

Almost the same driver for both Poulsbo and Tunnel Creek. The difference is in quantity of GPIOs powered by the core power rail and by suspend power supply, default values for some GPIOs, etc. Detect actual hardware by platform device ID assigned in lpc_sch and set configuration accordingly.

v2: added include <linux/pci_ids.h> line

---
 drivers/gpio/Kconfig    |    7 ++++-
 drivers/gpio/sch_gpio.c |   59 +++++++++++++++++++++++++++++++---------------
 2 files changed, 45 insertions(+), 21 deletions(-)
drivers/gpio/Kconfig +5 -2
index 664660e..7ef9108 100644
@@ -100,18 +100,21 @@ config GPIO_VR41XX
 	  Say yes here to support the NEC VR4100 series General-purpose I/O Uint
 
 config GPIO_SCH
-	tristate "Intel SCH GPIO"
+	tristate "Intel SCH/TunnelCreek GPIO"
 	depends on GPIOLIB && PCI
 	select MFD_CORE
 	select LPC_SCH
 	help
-	  Say yes here to support GPIO interface on Intel Poulsbo SCH.
+	  Say yes here to support GPIO interface on Intel Poulsbo SCH
+	  or Intel Tunnel Creek processor.
 	  The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
 	  powered by the core power rail and are turned off during sleep
 	  modes (S3 and higher). The remaining four GPIOs are powered by
 	  the Intel SCH suspend power supply. These GPIOs remain
 	  active during S3. The suspend powered GPIOs can be used to wake the
 	  system from the Suspend-to-RAM state.
+	  The Intel Tunnel Creek processor has 5 GPIOs powered by the
+	  core power rail and 9 from suspend power supply.
 
 	  This driver can also be built as a module. If so, the module
 	  will be called sch-gpio.
drivers/gpio/sch_gpio.c +39 -18

82 lines not on this page · raw message

Signature · 1 line
1.7.0.4
#4 lore raw

Re: [PATCH 3/3 v2] sch_gpio: expand for Tunnel Creek

Hi Denis,

Quoted 5 lines · Denis Turischev

Almost the same driver for both Poulsbo and Tunnel Creek. The difference is in quantity of GPIOs powered by the core power rail and by suspend power supply, default values for some GPIOs, etc. Detect actual hardware by platform device ID assigned in lpc_sch and set configuration accordingly.

Grant, are you ok with me taking this patch ?

Cheers,
Samuel.

Signature · 2 lines
Intel Open Source Technology Centre
http://oss.intel.com/
Acked-by
#5 lore raw

Re: [PATCH 3/3 v2] sch_gpio: expand for Tunnel Creek

Quoted 9 lines · Samuel Ortiz

Hi Denis,

Quoted 5 lines · Denis Turischev

Almost the same driver for both Poulsbo and Tunnel Creek. The difference is in quantity of GPIOs powered by the core power rail and by suspend power supply, default values for some GPIOs, etc. Detect actual hardware by platform device ID assigned in lpc_sch and set configuration accordingly.

Grant, are you ok with me taking this patch ?

Quoted 7 lines

Cheers,
Samuel.

Signature · 2 lines
Intel Open Source Technology Centre
http://oss.intel.com/
#6 lore raw

Re: [PATCH 3/3] sch_gpio: expand for Tunnel Creak

In reply to Denis Turischev

Hi Denis,

Quoted 5 lines · Denis Turischev

Almost the same driver for both Poulsbo and Tunnel Creek. The difference is in quantity of GPIOs powered by the core power rail and by suspend power supply, default values for some GPIOs, etc. Detect actual hardware by platform device ID assigned in lpc_sch and set configuration accordingly.

Thanks, patch applied with Grant's ACK.

Cheers,
Samuel.

Signature · 2 lines
Intel Open Source Technology Centre
http://oss.intel.com/
#7 lore raw

Re: [PATCH 2/3] lpc_sch: expand for Tunnel Creek

In reply to Denis Turischev

Hi Denis,

Quoted 4 lines · Denis Turischev

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.

Thanks, patch applied.

Cheers,
Samuel.

Signature · 2 lines
Intel Open Source Technology Centre
http://oss.intel.com/
Acked-by
#9 lore raw
Quoted 6 lines · On Mon, 14 Mar 2011 12:43:36 +0100 Samuel Ortiz <[email protected]> wrote:

Hi Denis,

Quoted 1 line · Denis Turischev

Jesse, are you ok with me carrying this patch ? The 2 following patches from this patchset depend on it, obviously.

Yeah, np, assuming the PCI IDs are used in several places.

Signature · 1 line
Jesse Barnes, Intel Open Source Technology Center