Skip to contentSkip to conversation

i2c: designware-pci: Add Baytrail PCI IDs

PATCH Superseded Mika Westerberg 2 participants 3 messages Feb 4, 2014 – Feb 17, 2014

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Mika Westerberg

author maintainer
#0 lore raw

PATCH 1/1 i2c: designware-pci: Add Baytrail PCI IDs

Intel Baytrail I2C controllers can be enumerated from PCI as well as from ACPI. In order to support this add the Baytrail PCI IDs to the driver.

---
 drivers/i2c/busses/i2c-designware-pcidrv.c | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)
drivers/i2c/busses/i2c-designware-pcidrv.c +23 -2
index c0a87a5eb63e..0c13dc1b28ef 100644
@@ -54,6 +54,8 @@ enum dw_pci_ctl_id_t {
 	medfield_3,
 	medfield_4,
 	medfield_5,
+
+	baytrail,
 };
 
 struct dw_pci_controller {
@@ -132,6 +134,13 @@ static struct  dw_pci_controller  dw_pci_controllers[] = {
 		.rx_fifo_depth = 32,
 		.clk_khz      = 25000,
 	},
+	[baytrail] = {
+		.bus_num = -1,
+		.bus_cfg = INTEL_MID_STD_CFG | DW_IC_CON_SPEED_FAST,
+		.tx_fifo_depth = 32,
+		.rx_fifo_depth = 32,
+		.clk_khz = 100000,
+	},
 };
 static struct i2c_algorithm i2c_dw_algo = {
 	.master_xfer	= i2c_dw_xfer,
@@ -226,8 +235,12 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
 	adap->algo = &i2c_dw_algo;
 	adap->dev.parent = &pdev->dev;
 	adap->nr = controller->bus_num;
-	snprintf(adap->name, sizeof(adap->name), "i2c-designware-pci-%d",
-		adap->nr);
+
+	if (adap->nr < 0)
+		snprintf(adap->name, sizeof(adap->name), "i2c-designware-pci");
+	else
+		snprintf(adap->name, sizeof(adap->name),
+			 "i2c-designware-pci-%d", adap->nr);
 
 	r = devm_request_irq(&pdev->dev, pdev->irq, i2c_dw_isr, IRQF_SHARED,
 			adap->name, dev);
@@ -278,6 +291,14 @@ static DEFINE_PCI_DEVICE_TABLE(i2_designware_pci_ids) = {
 	{ PCI_VDEVICE(INTEL, 0x082C), medfield_0 },
 	{ PCI_VDEVICE(INTEL, 0x082D), medfield_1 },
 	{ PCI_VDEVICE(INTEL, 0x082E), medfield_2 },
+	/* Baytrail */
+	{ PCI_VDEVICE(INTEL, 0x0F41), baytrail },
+	{ PCI_VDEVICE(INTEL, 0x0F42), baytrail },
+	{ PCI_VDEVICE(INTEL, 0x0F43), baytrail },
+	{ PCI_VDEVICE(INTEL, 0x0F44), baytrail },
+	{ PCI_VDEVICE(INTEL, 0x0F45), baytrail },
+	{ PCI_VDEVICE(INTEL, 0x0F46), baytrail },
+	{ PCI_VDEVICE(INTEL, 0x0F47), baytrail },
 	{ 0,}
 };
 MODULE_DEVICE_TABLE(pci, i2_designware_pci_ids);
Signature · 1 line
1.8.5.2
#1 lore raw
Quoted 4 lines · Mika Westerberg

Intel Baytrail I2C controllers can be enumerated from PCI as well as from ACPI. In order to support this add the Baytrail PCI IDs to the driver.

Basically fine, one question:

drivers/i2c/busses/i2c-designware-pcidrv.c static int i2c_dw_pci_probe(struct pci_dev *pdev, · line 243

Quoted 8 lines
drivers/i2c/busses/i2c-designware-pcidrv.c +6 -2
-	snprintf(adap->name, sizeof(adap->name), "i2c-designware-pci-%d",
-		adap->nr);
+
+	if (adap->nr < 0)
+		snprintf(adap->name, sizeof(adap->name), "i2c-designware-pci");
+	else
+		snprintf(adap->name, sizeof(adap->name),
+			 "i2c-designware-pci-%d", adap->nr);

Maybe we just drop the "-%d" suffix entirely?

author maintainer
#2 lore raw
Quoted 8 lines · Wolfram Sang
Quoted 4 lines · Mika Westerberg

Intel Baytrail I2C controllers can be enumerated from PCI as well as from ACPI. In order to support this add the Baytrail PCI IDs to the driver.

Basically fine, one question:

Quoted 10 lines

drivers/i2c/busses/i2c-designware-pcidrv.c static int i2c_dw_pci_probe(struct pci_dev *pdev, · line 243

Quoted 8 lines
drivers/i2c/busses/i2c-designware-pcidrv.c +6 -2
-	snprintf(adap->name, sizeof(adap->name), "i2c-designware-pci-%d",
-		adap->nr);
+
+	if (adap->nr < 0)
+		snprintf(adap->name, sizeof(adap->name), "i2c-designware-pci");
+	else
+		snprintf(adap->name, sizeof(adap->name),
+			 "i2c-designware-pci-%d", adap->nr);

Maybe we just drop the "-%d" suffix entirely?

I suggested that already when Benson (CC'd) sent his Haswell patch series. His opinion was that it is useful in certain cases to know the bus number (like grepping /proc/interrupts, IIRC).

For Baytrail we don't need it so if nobody objects, I'll just go ahead and drop it.