• Home
  • Raw
  • Download

Lines Matching refs:smbus

71 static int amd_ec_wait_write(struct amd_smbus *smbus)  in amd_ec_wait_write()  argument
75 while ((inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_IBF) && --timeout) in amd_ec_wait_write()
79 dev_warn(&smbus->dev->dev, in amd_ec_wait_write()
87 static int amd_ec_wait_read(struct amd_smbus *smbus) in amd_ec_wait_read() argument
91 while ((~inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_OBF) && --timeout) in amd_ec_wait_read()
95 dev_warn(&smbus->dev->dev, in amd_ec_wait_read()
103 static int amd_ec_read(struct amd_smbus *smbus, unsigned char address, in amd_ec_read() argument
108 status = amd_ec_wait_write(smbus); in amd_ec_read()
111 outb(AMD_EC_CMD_RD, smbus->base + AMD_EC_CMD); in amd_ec_read()
113 status = amd_ec_wait_write(smbus); in amd_ec_read()
116 outb(address, smbus->base + AMD_EC_DATA); in amd_ec_read()
118 status = amd_ec_wait_read(smbus); in amd_ec_read()
121 *data = inb(smbus->base + AMD_EC_DATA); in amd_ec_read()
126 static int amd_ec_write(struct amd_smbus *smbus, unsigned char address, in amd_ec_write() argument
131 status = amd_ec_wait_write(smbus); in amd_ec_write()
134 outb(AMD_EC_CMD_WR, smbus->base + AMD_EC_CMD); in amd_ec_write()
136 status = amd_ec_wait_write(smbus); in amd_ec_write()
139 outb(address, smbus->base + AMD_EC_DATA); in amd_ec_write()
141 status = amd_ec_wait_write(smbus); in amd_ec_write()
144 outb(data, smbus->base + AMD_EC_DATA); in amd_ec_write()
196 struct amd_smbus *smbus = adap->algo_data; in amd8111_access() local
212 status = amd_ec_write(smbus, AMD_SMB_CMD, in amd8111_access()
221 status = amd_ec_write(smbus, AMD_SMB_CMD, command); in amd8111_access()
225 status = amd_ec_write(smbus, AMD_SMB_DATA, in amd8111_access()
234 status = amd_ec_write(smbus, AMD_SMB_CMD, command); in amd8111_access()
238 status = amd_ec_write(smbus, AMD_SMB_DATA, in amd8111_access()
242 status = amd_ec_write(smbus, AMD_SMB_DATA + 1, in amd8111_access()
251 status = amd_ec_write(smbus, AMD_SMB_CMD, command); in amd8111_access()
257 status = amd_ec_write(smbus, AMD_SMB_BCNT, len); in amd8111_access()
262 amd_ec_write(smbus, AMD_SMB_DATA + i, in amd8111_access()
274 status = amd_ec_write(smbus, AMD_SMB_CMD, command); in amd8111_access()
277 status = amd_ec_write(smbus, AMD_SMB_BCNT, len); in amd8111_access()
283 amd_ec_write(smbus, AMD_SMB_DATA + i, in amd8111_access()
292 status = amd_ec_write(smbus, AMD_SMB_CMD, command); in amd8111_access()
295 status = amd_ec_write(smbus, AMD_SMB_DATA, in amd8111_access()
299 status = amd_ec_write(smbus, AMD_SMB_DATA + 1, in amd8111_access()
310 status = amd_ec_write(smbus, AMD_SMB_CMD, command); in amd8111_access()
313 status = amd_ec_write(smbus, AMD_SMB_BCNT, len); in amd8111_access()
317 status = amd_ec_write(smbus, AMD_SMB_DATA + i, in amd8111_access()
331 status = amd_ec_write(smbus, AMD_SMB_ADDR, addr << 1); in amd8111_access()
334 status = amd_ec_write(smbus, AMD_SMB_PRTCL, protocol); in amd8111_access()
338 status = amd_ec_read(smbus, AMD_SMB_STS, temp + 0); in amd8111_access()
344 status = amd_ec_read(smbus, AMD_SMB_STS, temp + 0); in amd8111_access()
351 status = amd_ec_read(smbus, AMD_SMB_STS, temp + 0); in amd8111_access()
365 status = amd_ec_read(smbus, AMD_SMB_DATA, &data->byte); in amd8111_access()
372 status = amd_ec_read(smbus, AMD_SMB_DATA, temp + 0); in amd8111_access()
375 status = amd_ec_read(smbus, AMD_SMB_DATA + 1, temp + 1); in amd8111_access()
383 status = amd_ec_read(smbus, AMD_SMB_BCNT, &len); in amd8111_access()
389 status = amd_ec_read(smbus, AMD_SMB_DATA + i, in amd8111_access()
426 struct amd_smbus *smbus; in amd8111_probe() local
432 smbus = kzalloc(sizeof(struct amd_smbus), GFP_KERNEL); in amd8111_probe()
433 if (!smbus) in amd8111_probe()
436 smbus->dev = dev; in amd8111_probe()
437 smbus->base = pci_resource_start(dev, 0); in amd8111_probe()
438 smbus->size = pci_resource_len(dev, 0); in amd8111_probe()
446 if (!request_region(smbus->base, smbus->size, amd8111_driver.name)) { in amd8111_probe()
451 smbus->adapter.owner = THIS_MODULE; in amd8111_probe()
452 snprintf(smbus->adapter.name, sizeof(smbus->adapter.name), in amd8111_probe()
453 "SMBus2 AMD8111 adapter at %04x", smbus->base); in amd8111_probe()
454 smbus->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD; in amd8111_probe()
455 smbus->adapter.algo = &smbus_algorithm; in amd8111_probe()
456 smbus->adapter.algo_data = smbus; in amd8111_probe()
459 smbus->adapter.dev.parent = &dev->dev; in amd8111_probe()
461 pci_write_config_dword(smbus->dev, AMD_PCI_MISC, 0); in amd8111_probe()
462 error = i2c_add_adapter(&smbus->adapter); in amd8111_probe()
466 pci_set_drvdata(dev, smbus); in amd8111_probe()
470 release_region(smbus->base, smbus->size); in amd8111_probe()
472 kfree(smbus); in amd8111_probe()
478 struct amd_smbus *smbus = pci_get_drvdata(dev); in amd8111_remove() local
480 i2c_del_adapter(&smbus->adapter); in amd8111_remove()
481 release_region(smbus->base, smbus->size); in amd8111_remove()
482 kfree(smbus); in amd8111_remove()