Lines Matching refs:pdev

258 static int idt_smb_write_byte(struct idt_89hpesx_dev *pdev,  in idt_smb_write_byte()  argument
275 sts = idt_smb_safe(write_byte, pdev->client, ccode, in idt_smb_write_byte()
290 static int idt_smb_read_byte(struct idt_89hpesx_dev *pdev, in idt_smb_read_byte() argument
307 sts = idt_smb_safe(read_byte, pdev->client, ccode); in idt_smb_read_byte()
323 static int idt_smb_write_word(struct idt_89hpesx_dev *pdev, in idt_smb_write_word() argument
343 sts = idt_smb_safe(write_word, pdev->client, ccode, in idt_smb_write_word()
357 sts = idt_smb_safe(write_byte, pdev->client, ccode, in idt_smb_write_word()
372 static int idt_smb_read_word(struct idt_89hpesx_dev *pdev, in idt_smb_read_word() argument
392 sts = idt_smb_safe(read_word, pdev->client, ccode); in idt_smb_read_word()
407 sts = idt_smb_safe(read_byte, pdev->client, ccode); in idt_smb_read_word()
423 static int idt_smb_write_block(struct idt_89hpesx_dev *pdev, in idt_smb_write_block() argument
436 return idt_smb_safe(write_block, pdev->client, ccode, seq->bytecnt, in idt_smb_write_block()
446 static int idt_smb_read_block(struct idt_89hpesx_dev *pdev, in idt_smb_read_block() argument
460 sts = idt_smb_safe(read_block, pdev->client, ccode, seq->data); in idt_smb_read_block()
476 static int idt_smb_write_i2c_block(struct idt_89hpesx_dev *pdev, in idt_smb_write_i2c_block() argument
493 return idt_smb_safe(write_i2c_block, pdev->client, ccode, in idt_smb_write_i2c_block()
506 static int idt_smb_read_i2c_block(struct idt_89hpesx_dev *pdev, in idt_smb_read_i2c_block() argument
520 sts = idt_smb_safe(read_i2c_block, pdev->client, ccode, in idt_smb_read_i2c_block()
544 static int idt_eeprom_read_byte(struct idt_89hpesx_dev *pdev, u16 memaddr, in idt_eeprom_read_byte() argument
547 struct device *dev = &pdev->client->dev; in idt_eeprom_read_byte()
553 smbseq.ccode = pdev->iniccode | CCODE_EEPROM; in idt_eeprom_read_byte()
564 eeseq.cmd = pdev->inieecmd | EEPROM_OP_READ; in idt_eeprom_read_byte()
565 eeseq.eeaddr = pdev->eeaddr; in idt_eeprom_read_byte()
567 ret = pdev->smb_write(pdev, &smbseq); in idt_eeprom_read_byte()
576 ret = pdev->smb_read(pdev, &smbseq); in idt_eeprom_read_byte()
616 static int idt_eeprom_write(struct idt_89hpesx_dev *pdev, u16 memaddr, u16 len, in idt_eeprom_write() argument
619 struct device *dev = &pdev->client->dev; in idt_eeprom_write()
626 smbseq.ccode = pdev->iniccode | CCODE_EEPROM; in idt_eeprom_write()
632 mutex_lock(&pdev->smb_mtx); in idt_eeprom_write()
636 eeseq.cmd = pdev->inieecmd | EEPROM_OP_WRITE; in idt_eeprom_write()
637 eeseq.eeaddr = pdev->eeaddr; in idt_eeprom_write()
640 ret = pdev->smb_write(pdev, &smbseq); in idt_eeprom_write()
653 ret = idt_eeprom_read_byte(pdev, memaddr, &eeseq.data); in idt_eeprom_write()
667 mutex_unlock(&pdev->smb_mtx); in idt_eeprom_write()
682 static int idt_eeprom_read(struct idt_89hpesx_dev *pdev, u16 memaddr, u16 len, in idt_eeprom_read() argument
691 mutex_lock(&pdev->smb_mtx); in idt_eeprom_read()
694 ret = idt_eeprom_read_byte(pdev, memaddr, &buf[idx]); in idt_eeprom_read()
697 mutex_unlock(&pdev->smb_mtx); in idt_eeprom_read()
718 static int idt_csr_write(struct idt_89hpesx_dev *pdev, u16 csraddr, in idt_csr_write() argument
721 struct device *dev = &pdev->client->dev; in idt_csr_write()
727 smbseq.ccode = pdev->iniccode | CCODE_CSR; in idt_csr_write()
731 mutex_lock(&pdev->smb_mtx); in idt_csr_write()
735 csrseq.cmd = pdev->inicsrcmd | CSR_OP_WRITE; in idt_csr_write()
738 ret = pdev->smb_write(pdev, &smbseq); in idt_csr_write()
747 csrseq.cmd = pdev->inicsrcmd | CSR_OP_READ; in idt_csr_write()
748 ret = pdev->smb_write(pdev, &smbseq); in idt_csr_write()
757 ret = pdev->smb_read(pdev, &smbseq); in idt_csr_write()
773 mutex_unlock(&pdev->smb_mtx); in idt_csr_write()
784 static int idt_csr_read(struct idt_89hpesx_dev *pdev, u16 csraddr, u32 *data) in idt_csr_read() argument
786 struct device *dev = &pdev->client->dev; in idt_csr_read()
792 smbseq.ccode = pdev->iniccode | CCODE_CSR; in idt_csr_read()
796 mutex_lock(&pdev->smb_mtx); in idt_csr_read()
800 csrseq.cmd = pdev->inicsrcmd | CSR_OP_READ; in idt_csr_read()
802 ret = pdev->smb_write(pdev, &smbseq); in idt_csr_read()
811 ret = pdev->smb_read(pdev, &smbseq); in idt_csr_read()
830 mutex_unlock(&pdev->smb_mtx); in idt_csr_read()
853 struct idt_89hpesx_dev *pdev; in eeprom_write() local
857 pdev = dev_get_drvdata(kobj_to_dev(kobj)); in eeprom_write()
860 ret = idt_eeprom_write(pdev, (u16)off, (u16)count, (u8 *)buf); in eeprom_write()
877 struct idt_89hpesx_dev *pdev; in eeprom_read() local
881 pdev = dev_get_drvdata(kobj_to_dev(kobj)); in eeprom_read()
884 ret = idt_eeprom_read(pdev, (u16)off, (u16)count, (u8 *)buf); in eeprom_read()
906 struct idt_89hpesx_dev *pdev = filep->private_data; in idt_dbgfs_csr_write() local
960 pdev->csr = (csraddr >> 2); in idt_dbgfs_csr_write()
968 ret = idt_csr_write(pdev, pdev->csr, csrval); in idt_dbgfs_csr_write()
998 struct idt_89hpesx_dev *pdev = filep->private_data; in idt_dbgfs_csr_read() local
1004 ret = idt_csr_read(pdev, pdev->csr, &csrval); in idt_dbgfs_csr_read()
1009 csraddr = ((u32)pdev->csr << 2); in idt_dbgfs_csr_read()
1046 static void idt_set_defval(struct idt_89hpesx_dev *pdev) in idt_set_defval() argument
1049 pdev->eesize = 0; in idt_set_defval()
1050 pdev->eero = true; in idt_set_defval()
1051 pdev->inieecmd = 0; in idt_set_defval()
1052 pdev->eeaddr = 0; in idt_set_defval()
1086 static void idt_get_fw_data(struct idt_89hpesx_dev *pdev) in idt_get_fw_data() argument
1088 struct device *dev = &pdev->client->dev; in idt_get_fw_data()
1105 idt_set_defval(pdev); in idt_get_fw_data()
1110 pdev->eesize = (u32)ee_id->driver_data; in idt_get_fw_data()
1117 pdev->inieecmd = 0; in idt_get_fw_data()
1118 pdev->eeaddr = EEPROM_DEF_ADDR << 1; in idt_get_fw_data()
1120 pdev->inieecmd = EEPROM_USA; in idt_get_fw_data()
1121 pdev->eeaddr = eeprom_addr << 1; in idt_get_fw_data()
1126 pdev->eero = true; in idt_get_fw_data()
1128 pdev->eero = false; in idt_get_fw_data()
1132 pdev->eesize, pdev->eeaddr); in idt_get_fw_data()
1141 struct idt_89hpesx_dev *pdev; in idt_create_pdev() local
1144 pdev = devm_kmalloc(&client->dev, sizeof(struct idt_89hpesx_dev), in idt_create_pdev()
1146 if (pdev == NULL) in idt_create_pdev()
1150 pdev->client = client; in idt_create_pdev()
1151 i2c_set_clientdata(client, pdev); in idt_create_pdev()
1154 idt_get_fw_data(pdev); in idt_create_pdev()
1157 pdev->inicsrcmd = CSR_DWE; in idt_create_pdev()
1158 pdev->csr = CSR_DEF; in idt_create_pdev()
1162 pdev->iniccode = CCODE_PEC; in idt_create_pdev()
1165 pdev->iniccode = 0; in idt_create_pdev()
1168 return pdev; in idt_create_pdev()
1175 static void idt_free_pdev(struct idt_89hpesx_dev *pdev) in idt_free_pdev() argument
1178 i2c_set_clientdata(pdev->client, NULL); in idt_free_pdev()
1186 static int idt_set_smbus_ops(struct idt_89hpesx_dev *pdev) in idt_set_smbus_ops() argument
1188 struct i2c_adapter *adapter = pdev->client->adapter; in idt_set_smbus_ops()
1189 struct device *dev = &pdev->client->dev; in idt_set_smbus_ops()
1194 pdev->smb_read = idt_smb_read_block; in idt_set_smbus_ops()
1198 pdev->smb_read = idt_smb_read_i2c_block; in idt_set_smbus_ops()
1204 pdev->smb_read = idt_smb_read_word; in idt_set_smbus_ops()
1208 pdev->smb_read = idt_smb_read_byte; in idt_set_smbus_ops()
1218 pdev->smb_write = idt_smb_write_block; in idt_set_smbus_ops()
1222 pdev->smb_write = idt_smb_write_i2c_block; in idt_set_smbus_ops()
1228 pdev->smb_write = idt_smb_write_word; in idt_set_smbus_ops()
1232 pdev->smb_write = idt_smb_write_byte; in idt_set_smbus_ops()
1240 mutex_init(&pdev->smb_mtx); in idt_set_smbus_ops()
1250 static int idt_check_dev(struct idt_89hpesx_dev *pdev) in idt_check_dev() argument
1252 struct device *dev = &pdev->client->dev; in idt_check_dev()
1257 ret = idt_csr_read(pdev, IDT_VIDDID_CSR, &viddid); in idt_check_dev()
1280 static int idt_create_sysfs_files(struct idt_89hpesx_dev *pdev) in idt_create_sysfs_files() argument
1282 struct device *dev = &pdev->client->dev; in idt_create_sysfs_files()
1286 if (pdev->eesize == 0) { in idt_create_sysfs_files()
1295 pdev->ee_file = devm_kmemdup(dev, &bin_attr_eeprom, in idt_create_sysfs_files()
1296 sizeof(*pdev->ee_file), GFP_KERNEL); in idt_create_sysfs_files()
1297 if (!pdev->ee_file) in idt_create_sysfs_files()
1301 if (pdev->eero) { in idt_create_sysfs_files()
1302 pdev->ee_file->attr.mode &= ~0200; in idt_create_sysfs_files()
1303 pdev->ee_file->write = NULL; in idt_create_sysfs_files()
1306 pdev->ee_file->size = pdev->eesize; in idt_create_sysfs_files()
1307 ret = sysfs_create_bin_file(&dev->kobj, pdev->ee_file); in idt_create_sysfs_files()
1320 static void idt_remove_sysfs_files(struct idt_89hpesx_dev *pdev) in idt_remove_sysfs_files() argument
1322 struct device *dev = &pdev->client->dev; in idt_remove_sysfs_files()
1325 if (pdev->eesize == 0) in idt_remove_sysfs_files()
1329 sysfs_remove_bin_file(&dev->kobj, pdev->ee_file); in idt_remove_sysfs_files()
1337 static void idt_create_dbgfs_files(struct idt_89hpesx_dev *pdev) in idt_create_dbgfs_files() argument
1339 struct i2c_client *cli = pdev->client; in idt_create_dbgfs_files()
1344 pdev->csr_dir = debugfs_create_dir(fname, csr_dbgdir); in idt_create_dbgfs_files()
1347 debugfs_create_file(cli->name, 0600, pdev->csr_dir, pdev, in idt_create_dbgfs_files()
1355 static void idt_remove_dbgfs_files(struct idt_89hpesx_dev *pdev) in idt_remove_dbgfs_files() argument
1358 debugfs_remove_recursive(pdev->csr_dir); in idt_remove_dbgfs_files()
1366 struct idt_89hpesx_dev *pdev; in idt_probe() local
1370 pdev = idt_create_pdev(client); in idt_probe()
1371 if (IS_ERR(pdev)) in idt_probe()
1372 return PTR_ERR(pdev); in idt_probe()
1375 ret = idt_set_smbus_ops(pdev); in idt_probe()
1380 ret = idt_check_dev(pdev); in idt_probe()
1385 ret = idt_create_sysfs_files(pdev); in idt_probe()
1390 idt_create_dbgfs_files(pdev); in idt_probe()
1395 idt_free_pdev(pdev); in idt_probe()
1405 struct idt_89hpesx_dev *pdev = i2c_get_clientdata(client); in idt_remove() local
1408 idt_remove_dbgfs_files(pdev); in idt_remove()
1411 idt_remove_sysfs_files(pdev); in idt_remove()
1414 idt_free_pdev(pdev); in idt_remove()