aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorBenoit Cousson <b-cousson@ti.com>2012-03-02 05:11:26 -0500
committerSamuel Ortiz <sameo@linux.intel.com>2012-03-22 08:05:34 -0400
commitec1a07b3440cc28946a77a974c21570bbef6ffa1 (patch)
treefc238f2f59f991678c67e15ad4d87ff0ed389d88 /drivers/mfd
parent5a903090e7aa561901b7f052eb744b480d6126d4 (diff)
mfd: Replace twl-* pr_ macros by the dev_ equivalent and do various cleanups
Since a structure device is available now, use the dev_ macros instead of the pr_ ones. Clean some badly formatted comments. Remove some unused variables. Move some variable to the place they belong. Clean some badly wrapped lines. Align variable definition Add missing braces in if-then-else block. Add blank line for better readability. Move stuff here and there... Conflicts: drivers/mfd/twl-core.c Signed-off-by: Benoit Cousson <b-cousson@ti.com> Cc: Felipe Balbi <balbi@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/twl-core.c33
-rw-r--r--drivers/mfd/twl4030-irq.c19
-rw-r--r--drivers/mfd/twl6030-irq.c39
3 files changed, 46 insertions, 45 deletions
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
index 764c5b5d914..eb9bd203e49 100644
--- a/drivers/mfd/twl-core.c
+++ b/drivers/mfd/twl-core.c
@@ -1178,17 +1178,15 @@ static int twl_remove(struct i2c_client *client)
1178 return 0; 1178 return 0;
1179} 1179}
1180 1180
1181/* NOTE: this driver only handles a single twl4030/tps659x0 chip */ 1181/* NOTE: This driver only handles a single twl4030/tps659x0 chip */
1182static int __devinit 1182static int __devinit
1183twl_probe(struct i2c_client *client, const struct i2c_device_id *id) 1183twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
1184{ 1184{
1185 int irq_base;
1186 int status;
1187 unsigned i;
1188 struct twl4030_platform_data *pdata = client->dev.platform_data; 1185 struct twl4030_platform_data *pdata = client->dev.platform_data;
1189 struct device_node *node = client->dev.of_node; 1186 struct device_node *node = client->dev.of_node;
1190 u8 temp; 1187 int irq_base = 0;
1191 int ret = 0; 1188 int status;
1189 unsigned i;
1192 1190
1193 if (node && !pdata) { 1191 if (node && !pdata) {
1194 /* 1192 /*
@@ -1218,12 +1216,12 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
1218 } 1216 }
1219 1217
1220 for (i = 0; i < TWL_NUM_SLAVES; i++) { 1218 for (i = 0; i < TWL_NUM_SLAVES; i++) {
1221 struct twl_client *twl = &twl_modules[i]; 1219 struct twl_client *twl = &twl_modules[i];
1222 1220
1223 twl->address = client->addr + i; 1221 twl->address = client->addr + i;
1224 if (i == 0) 1222 if (i == 0) {
1225 twl->client = client; 1223 twl->client = client;
1226 else { 1224 } else {
1227 twl->client = i2c_new_dummy(client->adapter, 1225 twl->client = i2c_new_dummy(client->adapter,
1228 twl->address); 1226 twl->address);
1229 if (!twl->client) { 1227 if (!twl->client) {
@@ -1235,7 +1233,9 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
1235 } 1233 }
1236 mutex_init(&twl->xfer_lock); 1234 mutex_init(&twl->xfer_lock);
1237 } 1235 }
1236
1238 inuse = true; 1237 inuse = true;
1238
1239 if ((id->driver_data) & TWL6030_CLASS) { 1239 if ((id->driver_data) & TWL6030_CLASS) {
1240 twl_id = TWL6030_CLASS_ID; 1240 twl_id = TWL6030_CLASS_ID;
1241 twl_map = &twl6030_map[0]; 1241 twl_map = &twl6030_map[0];
@@ -1249,8 +1249,8 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
1249 1249
1250 /* read TWL IDCODE Register */ 1250 /* read TWL IDCODE Register */
1251 if (twl_id == TWL4030_CLASS_ID) { 1251 if (twl_id == TWL4030_CLASS_ID) {
1252 ret = twl_read_idcode_register(); 1252 status = twl_read_idcode_register();
1253 WARN(ret < 0, "Error: reading twl_idcode register value\n"); 1253 WARN(status < 0, "Error: reading twl_idcode register value\n");
1254 } 1254 }
1255 1255
1256 /* load power event scripts */ 1256 /* load power event scripts */
@@ -1272,18 +1272,22 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
1272 } 1272 }
1273 } 1273 }
1274 1274
1275 /* Disable TWL4030/TWL5030 I2C Pull-up on I2C1 and I2C4(SR) interface. 1275 /*
1276 * Disable TWL4030/TWL5030 I2C Pull-up on I2C1 and I2C4(SR) interface.
1276 * Program I2C_SCL_CTRL_PU(bit 0)=0, I2C_SDA_CTRL_PU (bit 2)=0, 1277 * Program I2C_SCL_CTRL_PU(bit 0)=0, I2C_SDA_CTRL_PU (bit 2)=0,
1277 * SR_I2C_SCL_CTRL_PU(bit 4)=0 and SR_I2C_SDA_CTRL_PU(bit 6)=0. 1278 * SR_I2C_SCL_CTRL_PU(bit 4)=0 and SR_I2C_SDA_CTRL_PU(bit 6)=0.
1278 */ 1279 */
1279
1280 if (twl_class_is_4030()) { 1280 if (twl_class_is_4030()) {
1281 u8 temp;
1282
1281 twl_i2c_read_u8(TWL4030_MODULE_INTBR, &temp, REG_GPPUPDCTR1); 1283 twl_i2c_read_u8(TWL4030_MODULE_INTBR, &temp, REG_GPPUPDCTR1);
1282 temp &= ~(SR_I2C_SDA_CTRL_PU | SR_I2C_SCL_CTRL_PU | \ 1284 temp &= ~(SR_I2C_SDA_CTRL_PU | SR_I2C_SCL_CTRL_PU | \
1283 I2C_SDA_CTRL_PU | I2C_SCL_CTRL_PU); 1285 I2C_SDA_CTRL_PU | I2C_SCL_CTRL_PU);
1284 twl_i2c_write_u8(TWL4030_MODULE_INTBR, temp, REG_GPPUPDCTR1); 1286 twl_i2c_write_u8(TWL4030_MODULE_INTBR, temp, REG_GPPUPDCTR1);
1285 } 1287 }
1286 1288
1289 status = -ENODEV;
1290
1287 if (node) 1291 if (node)
1288 status = of_platform_populate(node, NULL, NULL, &client->dev); 1292 status = of_platform_populate(node, NULL, NULL, &client->dev);
1289 if (status) 1293 if (status)
@@ -1292,6 +1296,7 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
1292fail: 1296fail:
1293 if (status < 0) 1297 if (status < 0)
1294 twl_remove(client); 1298 twl_remove(client);
1299
1295 return status; 1300 return status;
1296} 1301}
1297 1302
diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c
index 3b748b71c0f..5d656e81435 100644
--- a/drivers/mfd/twl4030-irq.c
+++ b/drivers/mfd/twl4030-irq.c
@@ -32,7 +32,6 @@
32#include <linux/interrupt.h> 32#include <linux/interrupt.h>
33#include <linux/irq.h> 33#include <linux/irq.h>
34#include <linux/slab.h> 34#include <linux/slab.h>
35
36#include <linux/of.h> 35#include <linux/of.h>
37#include <linux/irqdomain.h> 36#include <linux/irqdomain.h>
38#include <linux/i2c/twl.h> 37#include <linux/i2c/twl.h>
@@ -639,14 +638,14 @@ int twl4030_sih_setup(struct device *dev, int module, int irq_base)
639 int status = -EINVAL; 638 int status = -EINVAL;
640 639
641 /* only support modules with standard clear-on-read for now */ 640 /* only support modules with standard clear-on-read for now */
642 for (sih_mod = 0, sih = sih_modules; 641 for (sih_mod = 0, sih = sih_modules; sih_mod < nr_sih_modules;
643 sih_mod < nr_sih_modules;
644 sih_mod++, sih++) { 642 sih_mod++, sih++) {
645 if (sih->module == module && sih->set_cor) { 643 if (sih->module == module && sih->set_cor) {
646 status = 0; 644 status = 0;
647 break; 645 break;
648 } 646 }
649 } 647 }
648
650 if (status < 0) 649 if (status < 0)
651 return status; 650 return status;
652 651
@@ -676,7 +675,7 @@ int twl4030_sih_setup(struct device *dev, int module, int irq_base)
676 status = request_threaded_irq(irq, NULL, handle_twl4030_sih, 0, 675 status = request_threaded_irq(irq, NULL, handle_twl4030_sih, 0,
677 agent->irq_name ?: sih->name, NULL); 676 agent->irq_name ?: sih->name, NULL);
678 677
679 pr_info("twl4030: %s (irq %d) chaining IRQs %d..%d\n", sih->name, 678 dev_info(dev, "%s (irq %d) chaining IRQs %d..%d\n", sih->name,
680 irq, irq_base, irq_base + i - 1); 679 irq, irq_base, irq_base + i - 1);
681 680
682 return status < 0 ? status : irq_base; 681 return status < 0 ? status : irq_base;
@@ -692,12 +691,10 @@ int twl4030_sih_setup(struct device *dev, int module, int irq_base)
692int twl4030_init_irq(struct device *dev, int irq_num) 691int twl4030_init_irq(struct device *dev, int irq_num)
693{ 692{
694 static struct irq_chip twl4030_irq_chip; 693 static struct irq_chip twl4030_irq_chip;
694 int status, i;
695 int irq_base, irq_end, nr_irqs; 695 int irq_base, irq_end, nr_irqs;
696 struct device_node *node = dev->of_node; 696 struct device_node *node = dev->of_node;
697 697
698 int status;
699 int i;
700
701 /* 698 /*
702 * TWL core and pwr interrupts must be contiguous because 699 * TWL core and pwr interrupts must be contiguous because
703 * the hwirqs numbers are defined contiguously from 1 to 15. 700 * the hwirqs numbers are defined contiguously from 1 to 15.
@@ -727,7 +724,7 @@ int twl4030_init_irq(struct device *dev, int irq_num)
727 twl4030_irq_base = irq_base; 724 twl4030_irq_base = irq_base;
728 725
729 /* 726 /*
730 * install an irq handler for each of the SIH modules; 727 * Install an irq handler for each of the SIH modules;
731 * clone dummy irq_chip since PIH can't *do* anything 728 * clone dummy irq_chip since PIH can't *do* anything
732 */ 729 */
733 twl4030_irq_chip = dummy_irq_chip; 730 twl4030_irq_chip = dummy_irq_chip;
@@ -742,13 +739,13 @@ int twl4030_init_irq(struct device *dev, int irq_num)
742 activate_irq(i); 739 activate_irq(i);
743 } 740 }
744 741
745 pr_info("twl4030: %s (irq %d) chaining IRQs %d..%d\n", "PIH", 742 dev_info(dev, "%s (irq %d) chaining IRQs %d..%d\n", "PIH",
746 irq_num, irq_base, irq_end); 743 irq_num, irq_base, irq_end);
747 744
748 /* ... and the PWR_INT module ... */ 745 /* ... and the PWR_INT module ... */
749 status = twl4030_sih_setup(dev, TWL4030_MODULE_INT, irq_end); 746 status = twl4030_sih_setup(dev, TWL4030_MODULE_INT, irq_end);
750 if (status < 0) { 747 if (status < 0) {
751 pr_err("twl4030: sih_setup PWR INT --> %d\n", status); 748 dev_err(dev, "sih_setup PWR INT --> %d\n", status);
752 goto fail; 749 goto fail;
753 } 750 }
754 751
@@ -757,7 +754,7 @@ int twl4030_init_irq(struct device *dev, int irq_num)
757 IRQF_ONESHOT, 754 IRQF_ONESHOT,
758 "TWL4030-PIH", NULL); 755 "TWL4030-PIH", NULL);
759 if (status < 0) { 756 if (status < 0) {
760 pr_err("twl4030: could not claim irq%d: %d\n", irq_num, status); 757 dev_err(dev, "could not claim irq%d: %d\n", irq_num, status);
761 goto fail_rqirq; 758 goto fail_rqirq;
762 } 759 }
763 760
diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c
index 86c4082fa41..b76902f1e44 100644
--- a/drivers/mfd/twl6030-irq.c
+++ b/drivers/mfd/twl6030-irq.c
@@ -53,7 +53,6 @@
53 * 53 *
54 * We set up IRQs starting at a platform-specified base. An interrupt map table, 54 * We set up IRQs starting at a platform-specified base. An interrupt map table,
55 * specifies mapping between interrupt number and the associated module. 55 * specifies mapping between interrupt number and the associated module.
56 *
57 */ 56 */
58#define TWL6030_NR_IRQS 20 57#define TWL6030_NR_IRQS 20
59 58
@@ -352,14 +351,11 @@ int twl6030_init_irq(struct device *dev, int irq_num)
352{ 351{
353 struct device_node *node = dev->of_node; 352 struct device_node *node = dev->of_node;
354 int nr_irqs, irq_base, irq_end; 353 int nr_irqs, irq_base, irq_end;
355
356 int status = 0;
357 int i;
358 struct task_struct *task; 354 struct task_struct *task;
359 int ret; 355 static struct irq_chip twl6030_irq_chip;
360 u8 mask[4]; 356 int status = 0;
361 357 int i;
362 static struct irq_chip twl6030_irq_chip; 358 u8 mask[4];
363 359
364 nr_irqs = TWL6030_NR_IRQS; 360 nr_irqs = TWL6030_NR_IRQS;
365 361
@@ -377,16 +373,18 @@ int twl6030_init_irq(struct device *dev, int irq_num)
377 mask[1] = 0xFF; 373 mask[1] = 0xFF;
378 mask[2] = 0xFF; 374 mask[2] = 0xFF;
379 mask[3] = 0xFF; 375 mask[3] = 0xFF;
380 ret = twl_i2c_write(TWL_MODULE_PIH, &mask[0], 376
381 REG_INT_MSK_LINE_A, 3); /* MASK ALL INT LINES */ 377 /* mask all int lines */
382 ret = twl_i2c_write(TWL_MODULE_PIH, &mask[0], 378 twl_i2c_write(TWL_MODULE_PIH, &mask[0], REG_INT_MSK_LINE_A, 3);
383 REG_INT_MSK_STS_A, 3); /* MASK ALL INT STS */ 379 /* mask all int sts */
384 ret = twl_i2c_write(TWL_MODULE_PIH, &mask[0], 380 twl_i2c_write(TWL_MODULE_PIH, &mask[0], REG_INT_MSK_STS_A, 3);
385 REG_INT_STS_A, 3); /* clear INT_STS_A,B,C */ 381 /* clear INT_STS_A,B,C */
382 twl_i2c_write(TWL_MODULE_PIH, &mask[0], REG_INT_STS_A, 3);
386 383
387 twl6030_irq_base = irq_base; 384 twl6030_irq_base = irq_base;
388 385
389 /* install an irq handler for each of the modules; 386 /*
387 * install an irq handler for each of the modules;
390 * clone dummy irq_chip since PIH can't *do* anything 388 * clone dummy irq_chip since PIH can't *do* anything
391 */ 389 */
392 twl6030_irq_chip = dummy_irq_chip; 390 twl6030_irq_chip = dummy_irq_chip;
@@ -401,22 +399,22 @@ int twl6030_init_irq(struct device *dev, int irq_num)
401 activate_irq(i); 399 activate_irq(i);
402 } 400 }
403 401
404 pr_info("twl6030: %s (irq %d) chaining IRQs %d..%d\n", "PIH", 402 dev_info(dev, "PIH (irq %d) chaining IRQs %d..%d\n",
405 irq_num, irq_base, irq_end); 403 irq_num, irq_base, irq_end);
406 404
407 /* install an irq handler to demultiplex the TWL6030 interrupt */ 405 /* install an irq handler to demultiplex the TWL6030 interrupt */
408 init_completion(&irq_event); 406 init_completion(&irq_event);
409 407
410 status = request_irq(irq_num, handle_twl6030_pih, 0, 408 status = request_irq(irq_num, handle_twl6030_pih, 0, "TWL6030-PIH",
411 "TWL6030-PIH", &irq_event); 409 &irq_event);
412 if (status < 0) { 410 if (status < 0) {
413 pr_err("twl6030: could not claim irq%d: %d\n", irq_num, status); 411 dev_err(dev, "could not claim irq %d: %d\n", irq_num, status);
414 goto fail_irq; 412 goto fail_irq;
415 } 413 }
416 414
417 task = kthread_run(twl6030_irq_thread, (void *)irq_num, "twl6030-irq"); 415 task = kthread_run(twl6030_irq_thread, (void *)irq_num, "twl6030-irq");
418 if (IS_ERR(task)) { 416 if (IS_ERR(task)) {
419 pr_err("twl6030: could not create irq %d thread!\n", irq_num); 417 dev_err(dev, "could not create irq %d thread!\n", irq_num);
420 status = PTR_ERR(task); 418 status = PTR_ERR(task);
421 goto fail_kthread; 419 goto fail_kthread;
422 } 420 }
@@ -431,6 +429,7 @@ fail_kthread:
431fail_irq: 429fail_irq:
432 for (i = irq_base; i < irq_end; i++) 430 for (i = irq_base; i < irq_end; i++)
433 irq_set_chip_and_handler(i, NULL, NULL); 431 irq_set_chip_and_handler(i, NULL, NULL);
432
434 return status; 433 return status;
435} 434}
436 435