Lines Matching refs:pdev
289 static int idt_smb_write_byte(struct idt_89hpesx_dev *pdev, in idt_smb_write_byte() argument
306 sts = idt_smb_safe(write_byte, pdev->client, ccode, in idt_smb_write_byte()
321 static int idt_smb_read_byte(struct idt_89hpesx_dev *pdev, in idt_smb_read_byte() argument
338 sts = idt_smb_safe(read_byte, pdev->client, ccode); in idt_smb_read_byte()
354 static int idt_smb_write_word(struct idt_89hpesx_dev *pdev, in idt_smb_write_word() argument
374 sts = idt_smb_safe(write_word, pdev->client, ccode, in idt_smb_write_word()
388 sts = idt_smb_safe(write_byte, pdev->client, ccode, in idt_smb_write_word()
403 static int idt_smb_read_word(struct idt_89hpesx_dev *pdev, in idt_smb_read_word() argument
423 sts = idt_smb_safe(read_word, pdev->client, ccode); in idt_smb_read_word()
438 sts = idt_smb_safe(read_byte, pdev->client, ccode); in idt_smb_read_word()
454 static int idt_smb_write_block(struct idt_89hpesx_dev *pdev, in idt_smb_write_block() argument
467 return idt_smb_safe(write_block, pdev->client, ccode, seq->bytecnt, in idt_smb_write_block()
477 static int idt_smb_read_block(struct idt_89hpesx_dev *pdev, in idt_smb_read_block() argument
491 sts = idt_smb_safe(read_block, pdev->client, ccode, seq->data); in idt_smb_read_block()
507 static int idt_smb_write_i2c_block(struct idt_89hpesx_dev *pdev, in idt_smb_write_i2c_block() argument
524 return idt_smb_safe(write_i2c_block, pdev->client, ccode, in idt_smb_write_i2c_block()
537 static int idt_smb_read_i2c_block(struct idt_89hpesx_dev *pdev, in idt_smb_read_i2c_block() argument
551 sts = idt_smb_safe(read_i2c_block, pdev->client, ccode, in idt_smb_read_i2c_block()
575 static int idt_eeprom_read_byte(struct idt_89hpesx_dev *pdev, u16 memaddr, in idt_eeprom_read_byte() argument
578 struct device *dev = &pdev->client->dev; in idt_eeprom_read_byte()
584 smbseq.ccode = pdev->iniccode | CCODE_EEPROM; in idt_eeprom_read_byte()
595 eeseq.cmd = pdev->inieecmd | EEPROM_OP_READ; in idt_eeprom_read_byte()
596 eeseq.eeaddr = pdev->eeaddr; in idt_eeprom_read_byte()
598 ret = pdev->smb_write(pdev, &smbseq); in idt_eeprom_read_byte()
607 ret = pdev->smb_read(pdev, &smbseq); in idt_eeprom_read_byte()
647 static int idt_eeprom_write(struct idt_89hpesx_dev *pdev, u16 memaddr, u16 len, in idt_eeprom_write() argument
650 struct device *dev = &pdev->client->dev; in idt_eeprom_write()
657 smbseq.ccode = pdev->iniccode | CCODE_EEPROM; in idt_eeprom_write()
663 mutex_lock(&pdev->smb_mtx); in idt_eeprom_write()
667 eeseq.cmd = pdev->inieecmd | EEPROM_OP_WRITE; in idt_eeprom_write()
668 eeseq.eeaddr = pdev->eeaddr; in idt_eeprom_write()
671 ret = pdev->smb_write(pdev, &smbseq); in idt_eeprom_write()
684 ret = idt_eeprom_read_byte(pdev, memaddr, &eeseq.data); in idt_eeprom_write()
698 mutex_unlock(&pdev->smb_mtx); in idt_eeprom_write()
713 static int idt_eeprom_read(struct idt_89hpesx_dev *pdev, u16 memaddr, u16 len, in idt_eeprom_read() argument
722 mutex_lock(&pdev->smb_mtx); in idt_eeprom_read()
725 ret = idt_eeprom_read_byte(pdev, memaddr, &buf[idx]); in idt_eeprom_read()
728 mutex_unlock(&pdev->smb_mtx); in idt_eeprom_read()
749 static int idt_csr_write(struct idt_89hpesx_dev *pdev, u16 csraddr, in idt_csr_write() argument
752 struct device *dev = &pdev->client->dev; in idt_csr_write()
758 smbseq.ccode = pdev->iniccode | CCODE_CSR; in idt_csr_write()
762 mutex_lock(&pdev->smb_mtx); in idt_csr_write()
766 csrseq.cmd = pdev->inicsrcmd | CSR_OP_WRITE; in idt_csr_write()
769 ret = pdev->smb_write(pdev, &smbseq); in idt_csr_write()
778 csrseq.cmd = pdev->inicsrcmd | CSR_OP_READ; in idt_csr_write()
779 ret = pdev->smb_write(pdev, &smbseq); in idt_csr_write()
788 ret = pdev->smb_read(pdev, &smbseq); in idt_csr_write()
804 mutex_unlock(&pdev->smb_mtx); in idt_csr_write()
815 static int idt_csr_read(struct idt_89hpesx_dev *pdev, u16 csraddr, u32 *data) in idt_csr_read() argument
817 struct device *dev = &pdev->client->dev; in idt_csr_read()
823 smbseq.ccode = pdev->iniccode | CCODE_CSR; in idt_csr_read()
827 mutex_lock(&pdev->smb_mtx); in idt_csr_read()
831 csrseq.cmd = pdev->inicsrcmd | CSR_OP_READ; in idt_csr_read()
833 ret = pdev->smb_write(pdev, &smbseq); in idt_csr_read()
842 ret = pdev->smb_read(pdev, &smbseq); in idt_csr_read()
861 mutex_unlock(&pdev->smb_mtx); in idt_csr_read()
884 struct idt_89hpesx_dev *pdev; in eeprom_write() local
888 pdev = dev_get_drvdata(kobj_to_dev(kobj)); in eeprom_write()
891 ret = idt_eeprom_write(pdev, (u16)off, (u16)count, (u8 *)buf); in eeprom_write()
908 struct idt_89hpesx_dev *pdev; in eeprom_read() local
912 pdev = dev_get_drvdata(kobj_to_dev(kobj)); in eeprom_read()
915 ret = idt_eeprom_read(pdev, (u16)off, (u16)count, (u8 *)buf); in eeprom_read()
937 struct idt_89hpesx_dev *pdev = filep->private_data; in idt_dbgfs_csr_write() local
997 pdev->csr = (csraddr >> 2); in idt_dbgfs_csr_write()
1005 ret = idt_csr_write(pdev, pdev->csr, csrval); in idt_dbgfs_csr_write()
1035 struct idt_89hpesx_dev *pdev = filep->private_data; in idt_dbgfs_csr_read() local
1041 ret = idt_csr_read(pdev, pdev->csr, &csrval); in idt_dbgfs_csr_read()
1046 csraddr = ((u32)pdev->csr << 2); in idt_dbgfs_csr_read()
1083 static void idt_set_defval(struct idt_89hpesx_dev *pdev) in idt_set_defval() argument
1086 pdev->eesize = 0; in idt_set_defval()
1087 pdev->eero = true; in idt_set_defval()
1088 pdev->inieecmd = 0; in idt_set_defval()
1089 pdev->eeaddr = 0; in idt_set_defval()
1123 static void idt_get_fw_data(struct idt_89hpesx_dev *pdev) in idt_get_fw_data() argument
1125 struct device *dev = &pdev->client->dev; in idt_get_fw_data()
1142 idt_set_defval(pdev); in idt_get_fw_data()
1147 pdev->eesize = (u32)ee_id->driver_data; in idt_get_fw_data()
1154 pdev->inieecmd = 0; in idt_get_fw_data()
1155 pdev->eeaddr = EEPROM_DEF_ADDR << 1; in idt_get_fw_data()
1157 pdev->inieecmd = EEPROM_USA; in idt_get_fw_data()
1158 pdev->eeaddr = eeprom_addr << 1; in idt_get_fw_data()
1163 pdev->eero = true; in idt_get_fw_data()
1165 pdev->eero = false; in idt_get_fw_data()
1169 pdev->eesize, pdev->eeaddr); in idt_get_fw_data()
1178 struct idt_89hpesx_dev *pdev; in idt_create_pdev() local
1181 pdev = devm_kmalloc(&client->dev, sizeof(struct idt_89hpesx_dev), in idt_create_pdev()
1183 if (pdev == NULL) in idt_create_pdev()
1187 pdev->client = client; in idt_create_pdev()
1188 i2c_set_clientdata(client, pdev); in idt_create_pdev()
1191 idt_get_fw_data(pdev); in idt_create_pdev()
1194 pdev->inicsrcmd = CSR_DWE; in idt_create_pdev()
1195 pdev->csr = CSR_DEF; in idt_create_pdev()
1199 pdev->iniccode = CCODE_PEC; in idt_create_pdev()
1202 pdev->iniccode = 0; in idt_create_pdev()
1205 return pdev; in idt_create_pdev()
1212 static void idt_free_pdev(struct idt_89hpesx_dev *pdev) in idt_free_pdev() argument
1215 i2c_set_clientdata(pdev->client, NULL); in idt_free_pdev()
1223 static int idt_set_smbus_ops(struct idt_89hpesx_dev *pdev) in idt_set_smbus_ops() argument
1225 struct i2c_adapter *adapter = pdev->client->adapter; in idt_set_smbus_ops()
1226 struct device *dev = &pdev->client->dev; in idt_set_smbus_ops()
1231 pdev->smb_read = idt_smb_read_block; in idt_set_smbus_ops()
1235 pdev->smb_read = idt_smb_read_i2c_block; in idt_set_smbus_ops()
1241 pdev->smb_read = idt_smb_read_word; in idt_set_smbus_ops()
1245 pdev->smb_read = idt_smb_read_byte; in idt_set_smbus_ops()
1255 pdev->smb_write = idt_smb_write_block; in idt_set_smbus_ops()
1259 pdev->smb_write = idt_smb_write_i2c_block; in idt_set_smbus_ops()
1265 pdev->smb_write = idt_smb_write_word; in idt_set_smbus_ops()
1269 pdev->smb_write = idt_smb_write_byte; in idt_set_smbus_ops()
1277 mutex_init(&pdev->smb_mtx); in idt_set_smbus_ops()
1287 static int idt_check_dev(struct idt_89hpesx_dev *pdev) in idt_check_dev() argument
1289 struct device *dev = &pdev->client->dev; in idt_check_dev()
1294 ret = idt_csr_read(pdev, IDT_VIDDID_CSR, &viddid); in idt_check_dev()
1317 static int idt_create_sysfs_files(struct idt_89hpesx_dev *pdev) in idt_create_sysfs_files() argument
1319 struct device *dev = &pdev->client->dev; in idt_create_sysfs_files()
1323 if (pdev->eesize == 0) { in idt_create_sysfs_files()
1329 pdev->ee_file = devm_kmalloc(dev, sizeof(*pdev->ee_file), GFP_KERNEL); in idt_create_sysfs_files()
1330 if (!pdev->ee_file) in idt_create_sysfs_files()
1334 memcpy(pdev->ee_file, &bin_attr_eeprom, sizeof(*pdev->ee_file)); in idt_create_sysfs_files()
1337 if (pdev->eero) { in idt_create_sysfs_files()
1338 pdev->ee_file->attr.mode &= ~0200; in idt_create_sysfs_files()
1339 pdev->ee_file->write = NULL; in idt_create_sysfs_files()
1342 pdev->ee_file->size = pdev->eesize; in idt_create_sysfs_files()
1343 ret = sysfs_create_bin_file(&dev->kobj, pdev->ee_file); in idt_create_sysfs_files()
1356 static void idt_remove_sysfs_files(struct idt_89hpesx_dev *pdev) in idt_remove_sysfs_files() argument
1358 struct device *dev = &pdev->client->dev; in idt_remove_sysfs_files()
1361 if (pdev->eesize == 0) in idt_remove_sysfs_files()
1365 sysfs_remove_bin_file(&dev->kobj, pdev->ee_file); in idt_remove_sysfs_files()
1373 static void idt_create_dbgfs_files(struct idt_89hpesx_dev *pdev) in idt_create_dbgfs_files() argument
1375 struct i2c_client *cli = pdev->client; in idt_create_dbgfs_files()
1380 pdev->csr_dir = debugfs_create_dir(fname, csr_dbgdir); in idt_create_dbgfs_files()
1383 debugfs_create_file(cli->name, 0600, pdev->csr_dir, pdev, in idt_create_dbgfs_files()
1391 static void idt_remove_dbgfs_files(struct idt_89hpesx_dev *pdev) in idt_remove_dbgfs_files() argument
1394 debugfs_remove_recursive(pdev->csr_dir); in idt_remove_dbgfs_files()
1402 struct idt_89hpesx_dev *pdev; in idt_probe() local
1406 pdev = idt_create_pdev(client); in idt_probe()
1407 if (IS_ERR(pdev)) in idt_probe()
1408 return PTR_ERR(pdev); in idt_probe()
1411 ret = idt_set_smbus_ops(pdev); in idt_probe()
1416 ret = idt_check_dev(pdev); in idt_probe()
1421 ret = idt_create_sysfs_files(pdev); in idt_probe()
1426 idt_create_dbgfs_files(pdev); in idt_probe()
1431 idt_free_pdev(pdev); in idt_probe()
1441 struct idt_89hpesx_dev *pdev = i2c_get_clientdata(client); in idt_remove() local
1444 idt_remove_dbgfs_files(pdev); in idt_remove()
1447 idt_remove_sysfs_files(pdev); in idt_remove()
1450 idt_free_pdev(pdev); in idt_remove()