File tree 6 files changed +13
-2
lines changed
6 files changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -32,6 +32,7 @@ Supported adapters:
32
32
* Intel Sunrise Point-LP (PCH)
33
33
* Intel DNV (SOC)
34
34
* Intel Broxton (SOC)
35
+ * Intel Lewisburg (PCH)
35
36
Datasheets: Publicly available at the Intel website
36
37
37
38
On Intel Patsburg and later chipsets, both the normal host SMBus controller
Original file line number Diff line number Diff line change @@ -126,6 +126,7 @@ config I2C_I801
126
126
Sunrise Point-LP (PCH)
127
127
DNV (SOC)
128
128
Broxton (SOC)
129
+ Lewisburg (PCH)
129
130
130
131
This driver can also be built as a module. If so, the module
131
132
will be called i2c-i801.
Original file line number Diff line number Diff line change 62
62
* Sunrise Point-LP (PCH) 0x9d23 32 hard yes yes yes
63
63
* DNV (SOC) 0x19df 32 hard yes yes yes
64
64
* Broxton (SOC) 0x5ad4 32 hard yes yes yes
65
+ * Lewisburg (PCH) 0xa1a3 32 hard yes yes yes
66
+ * Lewisburg Supersku (PCH) 0xa223 32 hard yes yes yes
65
67
*
66
68
* Features supported by this driver:
67
69
* Software PEC no
206
208
#define PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_SMBUS 0x9d23
207
209
#define PCI_DEVICE_ID_INTEL_DNV_SMBUS 0x19df
208
210
#define PCI_DEVICE_ID_INTEL_BROXTON_SMBUS 0x5ad4
211
+ #define PCI_DEVICE_ID_INTEL_LEWISBURG_SMBUS 0xa1a3
212
+ #define PCI_DEVICE_ID_INTEL_LEWISBURG_SSKU_SMBUS 0xa223
209
213
210
214
struct i801_mux_config {
211
215
char * gpio_chip ;
@@ -869,6 +873,8 @@ static const struct pci_device_id i801_ids[] = {
869
873
{ PCI_DEVICE (PCI_VENDOR_ID_INTEL , PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_SMBUS ) },
870
874
{ PCI_DEVICE (PCI_VENDOR_ID_INTEL , PCI_DEVICE_ID_INTEL_DNV_SMBUS ) },
871
875
{ PCI_DEVICE (PCI_VENDOR_ID_INTEL , PCI_DEVICE_ID_INTEL_BROXTON_SMBUS ) },
876
+ { PCI_DEVICE (PCI_VENDOR_ID_INTEL , PCI_DEVICE_ID_INTEL_LEWISBURG_SMBUS ) },
877
+ { PCI_DEVICE (PCI_VENDOR_ID_INTEL , PCI_DEVICE_ID_INTEL_LEWISBURG_SSKU_SMBUS ) },
872
878
{ 0 , }
873
879
};
874
880
Original file line number Diff line number Diff line change 50
50
#include <linux/of_device.h>
51
51
#include <linux/of_dma.h>
52
52
#include <linux/of_gpio.h>
53
+ #include <linux/pinctrl/consumer.h>
53
54
#include <linux/platform_data/i2c-imx.h>
54
55
#include <linux/platform_device.h>
55
56
#include <linux/sched.h>
Original file line number Diff line number Diff line change @@ -662,8 +662,10 @@ static void __xiic_start_xfer(struct xiic_i2c *i2c)
662
662
663
663
static void xiic_start_xfer (struct xiic_i2c * i2c )
664
664
{
665
-
665
+ spin_lock (& i2c -> lock );
666
+ xiic_reinit (i2c );
666
667
__xiic_start_xfer (i2c );
668
+ spin_unlock (& i2c -> lock );
667
669
}
668
670
669
671
static int xiic_xfer (struct i2c_adapter * adap , struct i2c_msg * msgs , int num )
Original file line number Diff line number Diff line change @@ -715,7 +715,7 @@ static int i2c_device_probe(struct device *dev)
715
715
if (wakeirq > 0 && wakeirq != client -> irq )
716
716
status = dev_pm_set_dedicated_wake_irq (dev , wakeirq );
717
717
else if (client -> irq > 0 )
718
- status = dev_pm_set_wake_irq (dev , wakeirq );
718
+ status = dev_pm_set_wake_irq (dev , client -> irq );
719
719
else
720
720
status = 0 ;
721
721
You can’t perform that action at this time.
0 commit comments