Lines Matching +full:south +full:- +full:field
21 Acer Labs Inc. (ALI) M1535 South Bridge.
23 The M1535 is a South bridge for portable systems.
24 It is very similar to the M15x3 South bridges also produced
31 by comparing this driver to the i2c-ali15x3 driver.
35 ACPI-compliant Power Management Unit (PMU).
96 #define ALI1535_DEV10B_EN 0x80 /* Enable 10-bit addressing in */
98 #define ALI1535_T_OUT 0x08 /* Time-out Command (write) */
99 #define ALI1535_A_HIGH_BIT9 0x08 /* Bit 9 of 10-bit address in */
100 /* Alert-Response-Address */
103 #define ALI1535_A_HIGH_BIT8 0x04 /* Bit 8 of 10-bit address in */
104 /* Alert-Response-Address */
107 #define ALI1535_D_HI_MASK 0x03 /* Mask for isolating bits 9-8 */
108 /* of 10-bit address in I2C */
124 /* Address field */
125 /* -> Write = 0 */
126 /* -> Read = 1 */
143 - SMB I/O address is initialized in ali1535_setup()
144 - Device is enabled in ali1535_setup()
145 - We can use the addresses in ali1535_setup()
150 dev_err(&dev->dev, "ALI1535_smb can't enable device\n"); in ali1535_setup()
156 dev_dbg(&dev->dev, "ALI1535_smb is at offset 0x%04x\n", ali1535_offset); in ali1535_setup()
157 ali1535_offset &= (0xffff & ~(ALI1535_SMB_IOSIZE - 1)); in ali1535_setup()
159 dev_warn(&dev->dev, in ali1535_setup()
160 "ALI1535_smb region uninitialized - upgrade BIOS?\n"); in ali1535_setup()
161 retval = -ENODEV; in ali1535_setup()
177 dev_err(&dev->dev, "ALI1535_smb region 0x%lx already in use!\n", in ali1535_setup()
179 retval = -EBUSY; in ali1535_setup()
186 dev_err(&dev->dev, "SMB device not enabled - upgrade BIOS?\n"); in ali1535_setup()
187 retval = -ENODEV; in ali1535_setup()
194 dev_err(&dev->dev, "SMBus controller not enabled - upgrade BIOS?\n"); in ali1535_setup()
195 retval = -ENODEV; in ali1535_setup()
207 dev_dbg(&dev->dev, "ALI1535 using Interrupt 9 for SMBus.\n"); in ali1535_setup()
210 dev_dbg(&dev->dev, "SMBREV = 0x%X\n", temp); in ali1535_setup()
211 dev_dbg(&dev->dev, "ALI1535_smba = 0x%lx\n", ali1535_smba); in ali1535_setup()
227 dev_dbg(&adap->dev, "Transaction (pre): STS=%02x, TYP=%02x, " in ali1535_transaction()
252 /* Try resetting entire SMB bus, including other devices - This in ali1535_transaction()
253 * may not work either - it clears the BUSY bit but then the in ali1535_transaction()
257 dev_info(&adap->dev, in ali1535_transaction()
266 /* do a clear-on-write */ in ali1535_transaction()
274 dev_err(&adap->dev, in ali1535_transaction()
275 "SMBus reset failed! (0x%02x) - controller or " in ali1535_transaction()
277 return -EBUSY; in ali1535_transaction()
298 result = -ETIMEDOUT; in ali1535_transaction()
299 dev_err(&adap->dev, "SMBus Timeout!\n"); in ali1535_transaction()
303 result = -EIO; in ali1535_transaction()
304 dev_dbg(&adap->dev, "Error: Failed bus transaction\n"); in ali1535_transaction()
312 result = -ENXIO; in ali1535_transaction()
313 dev_dbg(&adap->dev, in ali1535_transaction()
320 result = -EIO; in ali1535_transaction()
321 dev_err(&adap->dev, "Error: device error\n"); in ali1535_transaction()
326 result = -ETIMEDOUT; in ali1535_transaction()
327 dev_err(&adap->dev, "Error: command never completed\n"); in ali1535_transaction()
330 dev_dbg(&adap->dev, "Transaction (post): STS=%02x, TYP=%02x, " in ali1535_transaction()
368 dev_warn(&adap->dev, "Idle wait Timeout! STS=0x%02x\n", temp); in ali1535_access()
370 /* clear status register (clear-on-write) */ in ali1535_access()
395 outb_p(data->byte, SMBHSTDAT0); in ali1535_access()
404 outb_p(data->word & 0xff, SMBHSTDAT0); in ali1535_access()
405 outb_p((data->word & 0xff00) >> 8, SMBHSTDAT1); in ali1535_access()
415 len = data->block[0]; in ali1535_access()
418 data->block[0] = len; in ali1535_access()
422 data->block[0] = len; in ali1535_access()
428 outb_p(data->block[i], SMBBLKDAT); in ali1535_access()
432 dev_warn(&adap->dev, "Unsupported transaction %d\n", size); in ali1535_access()
433 result = -EOPNOTSUPP; in ali1535_access()
448 data->byte = inb_p(SMBHSTDAT0); in ali1535_access()
451 data->byte = inb_p(SMBHSTDAT0); in ali1535_access()
454 data->word = inb_p(SMBHSTDAT0) + (inb_p(SMBHSTDAT1) << 8); in ali1535_access()
460 data->block[0] = len; in ali1535_access()
463 for (i = 1; i <= data->block[0]; i++) { in ali1535_access()
464 data->block[i] = inb_p(SMBBLKDAT); in ali1535_access()
465 dev_dbg(&adap->dev, "Blk: len=%d, i=%d, data=%02x\n", in ali1535_access()
466 len, i, data->block[i]); in ali1535_access()
503 dev_warn(&dev->dev, in ali1535_probe()
505 return -ENODEV; in ali1535_probe()
509 ali1535_adapter.dev.parent = &dev->dev; in ali1535_probe()