aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/pinctrl.txt26
-rw-r--r--drivers/pinctrl/core.c42
-rw-r--r--drivers/pinctrl/core.h2
-rw-r--r--drivers/pinctrl/pinconf.c12
-rw-r--r--drivers/pinctrl/pinmux.c46
-rw-r--r--include/linux/pinctrl/machine.h25
6 files changed, 54 insertions, 99 deletions
diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt
index 6d23fa84ee47..f08064368291 100644
--- a/Documentation/pinctrl.txt
+++ b/Documentation/pinctrl.txt
@@ -783,17 +783,17 @@ spi on the second function mapping:
783 783
784static const struct pinmux_map __initdata pmx_mapping[] = { 784static const struct pinmux_map __initdata pmx_mapping[] = {
785 { 785 {
786 .ctrl_dev_name = "pinctrl.0", 786 .ctrl_dev_name = "pinctrl-foo",
787 .function = "spi0", 787 .function = "spi0",
788 .dev_name = "foo-spi.0", 788 .dev_name = "foo-spi.0",
789 }, 789 },
790 { 790 {
791 .ctrl_dev_name = "pinctrl.0", 791 .ctrl_dev_name = "pinctrl-foo",
792 .function = "i2c0", 792 .function = "i2c0",
793 .dev_name = "foo-i2c.0", 793 .dev_name = "foo-i2c.0",
794 }, 794 },
795 { 795 {
796 .ctrl_dev_name = "pinctrl.0", 796 .ctrl_dev_name = "pinctrl-foo",
797 .function = "mmc0", 797 .function = "mmc0",
798 .dev_name = "foo-mmc.0", 798 .dev_name = "foo-mmc.0",
799 }, 799 },
@@ -815,7 +815,7 @@ You register this pinmux mapping to the pinmux subsystem by simply:
815 ret = pinmux_register_mappings(pmx_mapping, ARRAY_SIZE(pmx_mapping)); 815 ret = pinmux_register_mappings(pmx_mapping, ARRAY_SIZE(pmx_mapping));
816 816
817Since the above construct is pretty common there is a helper macro to make 817Since the above construct is pretty common there is a helper macro to make
818it even more compact which assumes you want to use pinctrl.0 and position 818it even more compact which assumes you want to use pinctrl-foo and position
8190 for mapping, for example: 8190 for mapping, for example:
820 820
821static struct pinmux_map __initdata pmx_mapping[] = { 821static struct pinmux_map __initdata pmx_mapping[] = {
@@ -832,14 +832,14 @@ As it is possible to map a function to different groups of pins an optional
832... 832...
833{ 833{
834 .name = "spi0-pos-A", 834 .name = "spi0-pos-A",
835 .ctrl_dev_name = "pinctrl.0", 835 .ctrl_dev_name = "pinctrl-foo",
836 .function = "spi0", 836 .function = "spi0",
837 .group = "spi0_0_grp", 837 .group = "spi0_0_grp",
838 .dev_name = "foo-spi.0", 838 .dev_name = "foo-spi.0",
839}, 839},
840{ 840{
841 .name = "spi0-pos-B", 841 .name = "spi0-pos-B",
842 .ctrl_dev_name = "pinctrl.0", 842 .ctrl_dev_name = "pinctrl-foo",
843 .function = "spi0", 843 .function = "spi0",
844 .group = "spi0_1_grp", 844 .group = "spi0_1_grp",
845 .dev_name = "foo-spi.0", 845 .dev_name = "foo-spi.0",
@@ -858,42 +858,42 @@ case), we define a mapping like this:
858... 858...
859{ 859{
860 .name "2bit" 860 .name "2bit"
861 .ctrl_dev_name = "pinctrl.0", 861 .ctrl_dev_name = "pinctrl-foo",
862 .function = "mmc0", 862 .function = "mmc0",
863 .group = "mmc0_1_grp", 863 .group = "mmc0_1_grp",
864 .dev_name = "foo-mmc.0", 864 .dev_name = "foo-mmc.0",
865}, 865},
866{ 866{
867 .name "4bit" 867 .name "4bit"
868 .ctrl_dev_name = "pinctrl.0", 868 .ctrl_dev_name = "pinctrl-foo",
869 .function = "mmc0", 869 .function = "mmc0",
870 .group = "mmc0_1_grp", 870 .group = "mmc0_1_grp",
871 .dev_name = "foo-mmc.0", 871 .dev_name = "foo-mmc.0",
872}, 872},
873{ 873{
874 .name "4bit" 874 .name "4bit"
875 .ctrl_dev_name = "pinctrl.0", 875 .ctrl_dev_name = "pinctrl-foo",
876 .function = "mmc0", 876 .function = "mmc0",
877 .group = "mmc0_2_grp", 877 .group = "mmc0_2_grp",
878 .dev_name = "foo-mmc.0", 878 .dev_name = "foo-mmc.0",
879}, 879},
880{ 880{
881 .name "8bit" 881 .name "8bit"
882 .ctrl_dev_name = "pinctrl.0", 882 .ctrl_dev_name = "pinctrl-foo",
883 .function = "mmc0", 883 .function = "mmc0",
884 .group = "mmc0_1_grp", 884 .group = "mmc0_1_grp",
885 .dev_name = "foo-mmc.0", 885 .dev_name = "foo-mmc.0",
886}, 886},
887{ 887{
888 .name "8bit" 888 .name "8bit"
889 .ctrl_dev_name = "pinctrl.0", 889 .ctrl_dev_name = "pinctrl-foo",
890 .function = "mmc0", 890 .function = "mmc0",
891 .group = "mmc0_2_grp", 891 .group = "mmc0_2_grp",
892 .dev_name = "foo-mmc.0", 892 .dev_name = "foo-mmc.0",
893}, 893},
894{ 894{
895 .name "8bit" 895 .name "8bit"
896 .ctrl_dev_name = "pinctrl.0", 896 .ctrl_dev_name = "pinctrl-foo",
897 .function = "mmc0", 897 .function = "mmc0",
898 .group = "mmc0_3_grp", 898 .group = "mmc0_3_grp",
899 .dev_name = "foo-mmc.0", 899 .dev_name = "foo-mmc.0",
@@ -996,7 +996,7 @@ like this:
996 996
997{ 997{
998 .name "POWERMAP" 998 .name "POWERMAP"
999 .ctrl_dev_name = "pinctrl.0", 999 .ctrl_dev_name = "pinctrl-foo",
1000 .function = "power_func", 1000 .function = "power_func",
1001 .hog_on_boot = true, 1001 .hog_on_boot = true,
1002}, 1002},
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index 034b1ad38b32..160fb5aae591 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -34,12 +34,6 @@
34static DEFINE_MUTEX(pinctrldev_list_mutex); 34static DEFINE_MUTEX(pinctrldev_list_mutex);
35static LIST_HEAD(pinctrldev_list); 35static LIST_HEAD(pinctrldev_list);
36 36
37static void pinctrl_dev_release(struct device *dev)
38{
39 struct pinctrl_dev *pctldev = dev_get_drvdata(dev);
40 kfree(pctldev);
41}
42
43const char *pinctrl_dev_get_name(struct pinctrl_dev *pctldev) 37const char *pinctrl_dev_get_name(struct pinctrl_dev *pctldev)
44{ 38{
45 /* We're not allowed to register devices without name */ 39 /* We're not allowed to register devices without name */
@@ -71,14 +65,14 @@ struct pinctrl_dev *get_pinctrl_dev_from_dev(struct device *dev,
71 65
72 mutex_lock(&pinctrldev_list_mutex); 66 mutex_lock(&pinctrldev_list_mutex);
73 list_for_each_entry(pctldev, &pinctrldev_list, node) { 67 list_for_each_entry(pctldev, &pinctrldev_list, node) {
74 if (dev && &pctldev->dev == dev) { 68 if (dev && pctldev->dev == dev) {
75 /* Matched on device pointer */ 69 /* Matched on device pointer */
76 found = true; 70 found = true;
77 break; 71 break;
78 } 72 }
79 73
80 if (devname && 74 if (devname &&
81 !strcmp(dev_name(&pctldev->dev), devname)) { 75 !strcmp(dev_name(pctldev->dev), devname)) {
82 /* Matched on device name */ 76 /* Matched on device name */
83 found = true; 77 found = true;
84 break; 78 break;
@@ -325,7 +319,7 @@ int pinctrl_get_group_selector(struct pinctrl_dev *pctldev,
325 const char *gname = pctlops->get_group_name(pctldev, 319 const char *gname = pctlops->get_group_name(pctldev,
326 group_selector); 320 group_selector);
327 if (!strcmp(gname, pin_group)) { 321 if (!strcmp(gname, pin_group)) {
328 dev_dbg(&pctldev->dev, 322 dev_dbg(pctldev->dev,
329 "found group selector %u for %s\n", 323 "found group selector %u for %s\n",
330 group_selector, 324 group_selector,
331 pin_group); 325 pin_group);
@@ -335,7 +329,7 @@ int pinctrl_get_group_selector(struct pinctrl_dev *pctldev,
335 group_selector++; 329 group_selector++;
336 } 330 }
337 331
338 dev_err(&pctldev->dev, "does not have pin group %s\n", 332 dev_err(pctldev->dev, "does not have pin group %s\n",
339 pin_group); 333 pin_group);
340 334
341 return -EINVAL; 335 return -EINVAL;
@@ -508,11 +502,11 @@ static void pinctrl_init_device_debugfs(struct pinctrl_dev *pctldev)
508{ 502{
509 static struct dentry *device_root; 503 static struct dentry *device_root;
510 504
511 device_root = debugfs_create_dir(dev_name(&pctldev->dev), 505 device_root = debugfs_create_dir(dev_name(pctldev->dev),
512 debugfs_root); 506 debugfs_root);
513 if (IS_ERR(device_root) || !device_root) { 507 if (IS_ERR(device_root) || !device_root) {
514 pr_warn("failed to create debugfs directory for %s\n", 508 pr_warn("failed to create debugfs directory for %s\n",
515 dev_name(&pctldev->dev)); 509 dev_name(pctldev->dev));
516 return; 510 return;
517 } 511 }
518 debugfs_create_file("pins", S_IFREG | S_IRUGO, 512 debugfs_create_file("pins", S_IFREG | S_IRUGO,
@@ -560,7 +554,6 @@ static void pinctrl_init_debugfs(void)
560struct pinctrl_dev *pinctrl_register(struct pinctrl_desc *pctldesc, 554struct pinctrl_dev *pinctrl_register(struct pinctrl_desc *pctldesc,
561 struct device *dev, void *driver_data) 555 struct device *dev, void *driver_data)
562{ 556{
563 static atomic_t pinmux_no = ATOMIC_INIT(0);
564 struct pinctrl_dev *pctldev; 557 struct pinctrl_dev *pctldev;
565 int ret; 558 int ret;
566 559
@@ -601,18 +594,7 @@ struct pinctrl_dev *pinctrl_register(struct pinctrl_desc *pctldesc,
601 spin_lock_init(&pctldev->pin_desc_tree_lock); 594 spin_lock_init(&pctldev->pin_desc_tree_lock);
602 INIT_LIST_HEAD(&pctldev->gpio_ranges); 595 INIT_LIST_HEAD(&pctldev->gpio_ranges);
603 mutex_init(&pctldev->gpio_ranges_lock); 596 mutex_init(&pctldev->gpio_ranges_lock);
604 597 pctldev->dev = dev;
605 /* Register device */
606 pctldev->dev.parent = dev;
607 dev_set_name(&pctldev->dev, "pinctrl.%d",
608 atomic_inc_return(&pinmux_no) - 1);
609 pctldev->dev.release = pinctrl_dev_release;
610 ret = device_register(&pctldev->dev);
611 if (ret != 0) {
612 pr_err("error in device registration\n");
613 goto out_reg_dev_err;
614 }
615 dev_set_drvdata(&pctldev->dev, pctldev);
616 598
617 /* Register all the pins */ 599 /* Register all the pins */
618 pr_debug("try to register %d pins on %s...\n", 600 pr_debug("try to register %d pins on %s...\n",
@@ -622,7 +604,7 @@ struct pinctrl_dev *pinctrl_register(struct pinctrl_desc *pctldesc,
622 pr_err("error during pin registration\n"); 604 pr_err("error during pin registration\n");
623 pinctrl_free_pindescs(pctldev, pctldesc->pins, 605 pinctrl_free_pindescs(pctldev, pctldesc->pins,
624 pctldesc->npins); 606 pctldesc->npins);
625 goto out_reg_pins_err; 607 goto out_err;
626 } 608 }
627 609
628 pinctrl_init_device_debugfs(pctldev); 610 pinctrl_init_device_debugfs(pctldev);
@@ -632,10 +614,8 @@ struct pinctrl_dev *pinctrl_register(struct pinctrl_desc *pctldesc,
632 pinmux_hog_maps(pctldev); 614 pinmux_hog_maps(pctldev);
633 return pctldev; 615 return pctldev;
634 616
635out_reg_pins_err: 617out_err:
636 device_del(&pctldev->dev); 618 kfree(pctldev);
637out_reg_dev_err:
638 put_device(&pctldev->dev);
639 return NULL; 619 return NULL;
640} 620}
641EXPORT_SYMBOL_GPL(pinctrl_register); 621EXPORT_SYMBOL_GPL(pinctrl_register);
@@ -659,7 +639,7 @@ void pinctrl_unregister(struct pinctrl_dev *pctldev)
659 /* Destroy descriptor tree */ 639 /* Destroy descriptor tree */
660 pinctrl_free_pindescs(pctldev, pctldev->desc->pins, 640 pinctrl_free_pindescs(pctldev, pctldev->desc->pins,
661 pctldev->desc->npins); 641 pctldev->desc->npins);
662 device_unregister(&pctldev->dev); 642 kfree(pctldev);
663} 643}
664EXPORT_SYMBOL_GPL(pinctrl_unregister); 644EXPORT_SYMBOL_GPL(pinctrl_unregister);
665 645
diff --git a/drivers/pinctrl/core.h b/drivers/pinctrl/core.h
index 3f5b911acf18..5375582566a5 100644
--- a/drivers/pinctrl/core.h
+++ b/drivers/pinctrl/core.h
@@ -38,7 +38,7 @@ struct pinctrl_dev {
38 spinlock_t pin_desc_tree_lock; 38 spinlock_t pin_desc_tree_lock;
39 struct list_head gpio_ranges; 39 struct list_head gpio_ranges;
40 struct mutex gpio_ranges_lock; 40 struct mutex gpio_ranges_lock;
41 struct device dev; 41 struct device *dev;
42 struct module *owner; 42 struct module *owner;
43 void *driver_data; 43 void *driver_data;
44#ifdef CONFIG_PINMUX 44#ifdef CONFIG_PINMUX
diff --git a/drivers/pinctrl/pinconf.c b/drivers/pinctrl/pinconf.c
index 9195eefe258a..124762b57024 100644
--- a/drivers/pinctrl/pinconf.c
+++ b/drivers/pinctrl/pinconf.c
@@ -29,7 +29,7 @@ int pin_config_get_for_pin(struct pinctrl_dev *pctldev, unsigned pin,
29 const struct pinconf_ops *ops = pctldev->desc->confops; 29 const struct pinconf_ops *ops = pctldev->desc->confops;
30 30
31 if (!ops || !ops->pin_config_get) { 31 if (!ops || !ops->pin_config_get) {
32 dev_err(&pctldev->dev, "cannot get pin configuration, missing " 32 dev_err(pctldev->dev, "cannot get pin configuration, missing "
33 "pin_config_get() function in driver\n"); 33 "pin_config_get() function in driver\n");
34 return -EINVAL; 34 return -EINVAL;
35 } 35 }
@@ -65,14 +65,14 @@ int pin_config_set_for_pin(struct pinctrl_dev *pctldev, unsigned pin,
65 int ret; 65 int ret;
66 66
67 if (!ops || !ops->pin_config_set) { 67 if (!ops || !ops->pin_config_set) {
68 dev_err(&pctldev->dev, "cannot configure pin, missing " 68 dev_err(pctldev->dev, "cannot configure pin, missing "
69 "config function in driver\n"); 69 "config function in driver\n");
70 return -EINVAL; 70 return -EINVAL;
71 } 71 }
72 72
73 ret = ops->pin_config_set(pctldev, pin, config); 73 ret = ops->pin_config_set(pctldev, pin, config);
74 if (ret) { 74 if (ret) {
75 dev_err(&pctldev->dev, 75 dev_err(pctldev->dev,
76 "unable to set pin configuration on pin %d\n", pin); 76 "unable to set pin configuration on pin %d\n", pin);
77 return ret; 77 return ret;
78 } 78 }
@@ -108,7 +108,7 @@ int pin_config_group_get(struct pinctrl_dev *pctldev, const char *pin_group,
108 int selector; 108 int selector;
109 109
110 if (!ops || !ops->pin_config_group_get) { 110 if (!ops || !ops->pin_config_group_get) {
111 dev_err(&pctldev->dev, "cannot get configuration for pin " 111 dev_err(pctldev->dev, "cannot get configuration for pin "
112 "group, missing group config get function in " 112 "group, missing group config get function in "
113 "driver\n"); 113 "driver\n");
114 return -EINVAL; 114 return -EINVAL;
@@ -135,7 +135,7 @@ int pin_config_group_set(struct pinctrl_dev *pctldev, const char *pin_group,
135 int i; 135 int i;
136 136
137 if (!ops || (!ops->pin_config_group_set && !ops->pin_config_set)) { 137 if (!ops || (!ops->pin_config_group_set && !ops->pin_config_set)) {
138 dev_err(&pctldev->dev, "cannot configure pin group, missing " 138 dev_err(pctldev->dev, "cannot configure pin group, missing "
139 "config function in driver\n"); 139 "config function in driver\n");
140 return -EINVAL; 140 return -EINVAL;
141 } 141 }
@@ -146,7 +146,7 @@ int pin_config_group_set(struct pinctrl_dev *pctldev, const char *pin_group,
146 146
147 ret = pctlops->get_group_pins(pctldev, selector, &pins, &num_pins); 147 ret = pctlops->get_group_pins(pctldev, selector, &pins, &num_pins);
148 if (ret) { 148 if (ret) {
149 dev_err(&pctldev->dev, "cannot configure pin group, error " 149 dev_err(pctldev->dev, "cannot configure pin group, error "
150 "getting pins\n"); 150 "getting pins\n");
151 return ret; 151 return ret;
152 } 152 }
diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c
index a11681b4bd91..3bcc64137ddc 100644
--- a/drivers/pinctrl/pinmux.c
+++ b/drivers/pinctrl/pinmux.c
@@ -106,24 +106,24 @@ static int pin_request(struct pinctrl_dev *pctldev,
106 const struct pinmux_ops *ops = pctldev->desc->pmxops; 106 const struct pinmux_ops *ops = pctldev->desc->pmxops;
107 int status = -EINVAL; 107 int status = -EINVAL;
108 108
109 dev_dbg(&pctldev->dev, "request pin %d for %s\n", pin, function); 109 dev_dbg(pctldev->dev, "request pin %d for %s\n", pin, function);
110 110
111 desc = pin_desc_get(pctldev, pin); 111 desc = pin_desc_get(pctldev, pin);
112 if (desc == NULL) { 112 if (desc == NULL) {
113 dev_err(&pctldev->dev, 113 dev_err(pctldev->dev,
114 "pin is not registered so it cannot be requested\n"); 114 "pin is not registered so it cannot be requested\n");
115 goto out; 115 goto out;
116 } 116 }
117 117
118 if (!function) { 118 if (!function) {
119 dev_err(&pctldev->dev, "no function name given\n"); 119 dev_err(pctldev->dev, "no function name given\n");
120 return -EINVAL; 120 return -EINVAL;
121 } 121 }
122 122
123 spin_lock(&desc->lock); 123 spin_lock(&desc->lock);
124 if (desc->mux_function) { 124 if (desc->mux_function) {
125 spin_unlock(&desc->lock); 125 spin_unlock(&desc->lock);
126 dev_err(&pctldev->dev, 126 dev_err(pctldev->dev,
127 "pin already requested\n"); 127 "pin already requested\n");
128 goto out; 128 goto out;
129 } 129 }
@@ -132,7 +132,7 @@ static int pin_request(struct pinctrl_dev *pctldev,
132 132
133 /* Let each pin increase references to this module */ 133 /* Let each pin increase references to this module */
134 if (!try_module_get(pctldev->owner)) { 134 if (!try_module_get(pctldev->owner)) {
135 dev_err(&pctldev->dev, 135 dev_err(pctldev->dev,
136 "could not increase module refcount for pin %d\n", 136 "could not increase module refcount for pin %d\n",
137 pin); 137 pin);
138 status = -EINVAL; 138 status = -EINVAL;
@@ -152,7 +152,7 @@ static int pin_request(struct pinctrl_dev *pctldev,
152 status = 0; 152 status = 0;
153 153
154 if (status) 154 if (status)
155 dev_err(&pctldev->dev, "->request on device %s failed " 155 dev_err(pctldev->dev, "->request on device %s failed "
156 "for pin %d\n", 156 "for pin %d\n",
157 pctldev->desc->name, pin); 157 pctldev->desc->name, pin);
158out_free_pin: 158out_free_pin:
@@ -163,7 +163,7 @@ out_free_pin:
163 } 163 }
164out: 164out:
165 if (status) 165 if (status)
166 dev_err(&pctldev->dev, "pin-%d (%s) status %d\n", 166 dev_err(pctldev->dev, "pin-%d (%s) status %d\n",
167 pin, function ? : "?", status); 167 pin, function ? : "?", status);
168 168
169 return status; 169 return status;
@@ -189,7 +189,7 @@ static const char *pin_free(struct pinctrl_dev *pctldev, int pin,
189 189
190 desc = pin_desc_get(pctldev, pin); 190 desc = pin_desc_get(pctldev, pin);
191 if (desc == NULL) { 191 if (desc == NULL) {
192 dev_err(&pctldev->dev, 192 dev_err(pctldev->dev,
193 "pin is not registered so it cannot be freed\n"); 193 "pin is not registered so it cannot be freed\n");
194 return NULL; 194 return NULL;
195 } 195 }
@@ -434,14 +434,14 @@ static int acquire_pins(struct pinctrl_dev *pctldev,
434 if (ret) 434 if (ret)
435 return ret; 435 return ret;
436 436
437 dev_dbg(&pctldev->dev, "requesting the %u pins from group %u\n", 437 dev_dbg(pctldev->dev, "requesting the %u pins from group %u\n",
438 num_pins, group_selector); 438 num_pins, group_selector);
439 439
440 /* Try to allocate all pins in this group, one by one */ 440 /* Try to allocate all pins in this group, one by one */
441 for (i = 0; i < num_pins; i++) { 441 for (i = 0; i < num_pins; i++) {
442 ret = pin_request(pctldev, pins[i], func, NULL); 442 ret = pin_request(pctldev, pins[i], func, NULL);
443 if (ret) { 443 if (ret) {
444 dev_err(&pctldev->dev, 444 dev_err(pctldev->dev,
445 "could not get pin %d for function %s " 445 "could not get pin %d for function %s "
446 "on device %s - conflicting mux mappings?\n", 446 "on device %s - conflicting mux mappings?\n",
447 pins[i], func ? : "(undefined)", 447 pins[i], func ? : "(undefined)",
@@ -473,7 +473,7 @@ static void release_pins(struct pinctrl_dev *pctldev,
473 ret = pctlops->get_group_pins(pctldev, group_selector, 473 ret = pctlops->get_group_pins(pctldev, group_selector,
474 &pins, &num_pins); 474 &pins, &num_pins);
475 if (ret) { 475 if (ret) {
476 dev_err(&pctldev->dev, "could not get pins to release for " 476 dev_err(pctldev->dev, "could not get pins to release for "
477 "group selector %d\n", 477 "group selector %d\n",
478 group_selector); 478 group_selector);
479 return; 479 return;
@@ -525,7 +525,7 @@ static int pinmux_check_pin_group(struct pinctrl_dev *pctldev,
525 return -EINVAL; 525 return -EINVAL;
526 ret = pinctrl_get_group_selector(pctldev, groups[0]); 526 ret = pinctrl_get_group_selector(pctldev, groups[0]);
527 if (ret < 0) { 527 if (ret < 0) {
528 dev_err(&pctldev->dev, 528 dev_err(pctldev->dev,
529 "function %s wants group %s but the pin " 529 "function %s wants group %s but the pin "
530 "controller does not seem to have that group\n", 530 "controller does not seem to have that group\n",
531 pmxops->get_function_name(pctldev, func_selector), 531 pmxops->get_function_name(pctldev, func_selector),
@@ -534,7 +534,7 @@ static int pinmux_check_pin_group(struct pinctrl_dev *pctldev,
534 } 534 }
535 535
536 if (num_groups > 1) 536 if (num_groups > 1)
537 dev_dbg(&pctldev->dev, 537 dev_dbg(pctldev->dev,
538 "function %s support more than one group, " 538 "function %s support more than one group, "
539 "default-selecting first group %s (%d)\n", 539 "default-selecting first group %s (%d)\n",
540 pmxops->get_function_name(pctldev, func_selector), 540 pmxops->get_function_name(pctldev, func_selector),
@@ -544,13 +544,13 @@ static int pinmux_check_pin_group(struct pinctrl_dev *pctldev,
544 return ret; 544 return ret;
545 } 545 }
546 546
547 dev_dbg(&pctldev->dev, 547 dev_dbg(pctldev->dev,
548 "check if we have pin group %s on controller %s\n", 548 "check if we have pin group %s on controller %s\n",
549 pin_group, pinctrl_dev_get_name(pctldev)); 549 pin_group, pinctrl_dev_get_name(pctldev));
550 550
551 ret = pinctrl_get_group_selector(pctldev, pin_group); 551 ret = pinctrl_get_group_selector(pctldev, pin_group);
552 if (ret < 0) { 552 if (ret < 0) {
553 dev_dbg(&pctldev->dev, 553 dev_dbg(pctldev->dev,
554 "%s does not support pin group %s with function %s\n", 554 "%s does not support pin group %s with function %s\n",
555 pinctrl_dev_get_name(pctldev), 555 pinctrl_dev_get_name(pctldev),
556 pin_group, 556 pin_group,
@@ -627,7 +627,7 @@ static int pinmux_enable_muxmap(struct pinctrl_dev *pctldev,
627 */ 627 */
628 628
629 if (pmx->pctldev && pmx->pctldev != pctldev) { 629 if (pmx->pctldev && pmx->pctldev != pctldev) {
630 dev_err(&pctldev->dev, 630 dev_err(pctldev->dev,
631 "different pin control devices given for device %s, " 631 "different pin control devices given for device %s, "
632 "function %s\n", 632 "function %s\n",
633 devname, 633 devname,
@@ -650,7 +650,7 @@ static int pinmux_enable_muxmap(struct pinctrl_dev *pctldev,
650 */ 650 */
651 if (pmx->func_selector != UINT_MAX && 651 if (pmx->func_selector != UINT_MAX &&
652 pmx->func_selector != func_selector) { 652 pmx->func_selector != func_selector) {
653 dev_err(&pctldev->dev, 653 dev_err(pctldev->dev,
654 "dual function defines in the map for device %s\n", 654 "dual function defines in the map for device %s\n",
655 devname); 655 devname);
656 return -EINVAL; 656 return -EINVAL;
@@ -756,7 +756,7 @@ struct pinmux *pinmux_get(struct device *dev, const char *name)
756 } 756 }
757 757
758 pr_debug("in map, found pctldev %s to handle function %s", 758 pr_debug("in map, found pctldev %s to handle function %s",
759 dev_name(&pctldev->dev), map->function); 759 dev_name(pctldev->dev), map->function);
760 760
761 761
762 /* 762 /*
@@ -932,7 +932,7 @@ static int pinmux_hog_map(struct pinctrl_dev *pctldev,
932 * without any problems, so then we can hog pinmuxes for 932 * without any problems, so then we can hog pinmuxes for
933 * all devices that just want a static pin mux at this point. 933 * all devices that just want a static pin mux at this point.
934 */ 934 */
935 dev_err(&pctldev->dev, "map %s wants to hog a non-system " 935 dev_err(pctldev->dev, "map %s wants to hog a non-system "
936 "pinmux, this is not going to work\n", map->name); 936 "pinmux, this is not going to work\n", map->name);
937 return -EINVAL; 937 return -EINVAL;
938 } 938 }
@@ -944,7 +944,7 @@ static int pinmux_hog_map(struct pinctrl_dev *pctldev,
944 pmx = pinmux_get(NULL, map->name); 944 pmx = pinmux_get(NULL, map->name);
945 if (IS_ERR(pmx)) { 945 if (IS_ERR(pmx)) {
946 kfree(hog); 946 kfree(hog);
947 dev_err(&pctldev->dev, 947 dev_err(pctldev->dev,
948 "could not get the %s pinmux mapping for hogging\n", 948 "could not get the %s pinmux mapping for hogging\n",
949 map->name); 949 map->name);
950 return PTR_ERR(pmx); 950 return PTR_ERR(pmx);
@@ -954,7 +954,7 @@ static int pinmux_hog_map(struct pinctrl_dev *pctldev,
954 if (ret) { 954 if (ret) {
955 pinmux_put(pmx); 955 pinmux_put(pmx);
956 kfree(hog); 956 kfree(hog);
957 dev_err(&pctldev->dev, 957 dev_err(pctldev->dev,
958 "could not enable the %s pinmux mapping for hogging\n", 958 "could not enable the %s pinmux mapping for hogging\n",
959 map->name); 959 map->name);
960 return ret; 960 return ret;
@@ -963,7 +963,7 @@ static int pinmux_hog_map(struct pinctrl_dev *pctldev,
963 hog->map = map; 963 hog->map = map;
964 hog->pmx = pmx; 964 hog->pmx = pmx;
965 965
966 dev_info(&pctldev->dev, "hogged map %s, function %s\n", map->name, 966 dev_info(pctldev->dev, "hogged map %s, function %s\n", map->name,
967 map->function); 967 map->function);
968 mutex_lock(&pctldev->pinmux_hogs_lock); 968 mutex_lock(&pctldev->pinmux_hogs_lock);
969 list_add(&hog->node, &pctldev->pinmux_hogs); 969 list_add(&hog->node, &pctldev->pinmux_hogs);
@@ -982,7 +982,7 @@ static int pinmux_hog_map(struct pinctrl_dev *pctldev,
982 */ 982 */
983int pinmux_hog_maps(struct pinctrl_dev *pctldev) 983int pinmux_hog_maps(struct pinctrl_dev *pctldev)
984{ 984{
985 struct device *dev = &pctldev->dev; 985 struct device *dev = pctldev->dev;
986 const char *devname = dev_name(dev); 986 const char *devname = dev_name(dev);
987 int ret; 987 int ret;
988 int i; 988 int i;
diff --git a/include/linux/pinctrl/machine.h b/include/linux/pinctrl/machine.h
index 0ca32eb63b67..ad430e05a7ba 100644
--- a/include/linux/pinctrl/machine.h
+++ b/include/linux/pinctrl/machine.h
@@ -73,31 +73,6 @@ struct pinmux_map {
73 { .name = a, .ctrl_dev_name = b, .function = c, \ 73 { .name = a, .ctrl_dev_name = b, .function = c, \
74 .hog_on_boot = true } 74 .hog_on_boot = true }
75 75
76/*
77 * Convenience macro to map a function onto the primary device pinctrl device
78 * this is especially helpful on systems that have only one pin controller
79 * or need to set up a lot of mappings on the primary controller.
80 */
81#define PINMUX_MAP_PRIMARY(a, b, c) \
82 { .name = a, .ctrl_dev_name = "pinctrl.0", .function = b, \
83 .dev_name = c }
84
85/*
86 * Convenience macro to map a system function onto the primary pinctrl device.
87 * System functions are not assigned to a particular device.
88 */
89#define PINMUX_MAP_PRIMARY_SYS(a, b) \
90 { .name = a, .ctrl_dev_name = "pinctrl.0", .function = b }
91
92/*
93 * Convenience macro to map a system function onto the primary pinctrl device,
94 * to be hogged by the pinmux core until the system shuts down.
95 */
96#define PINMUX_MAP_PRIMARY_SYS_HOG(a, b) \
97 { .name = a, .ctrl_dev_name = "pinctrl.0", .function = b, \
98 .hog_on_boot = true }
99
100
101#ifdef CONFIG_PINMUX 76#ifdef CONFIG_PINMUX
102 77
103extern int pinmux_register_mappings(struct pinmux_map const *map, 78extern int pinmux_register_mappings(struct pinmux_map const *map,