diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2012-02-01 12:02:47 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2012-02-01 13:42:35 -0500 |
commit | 9dfac4fd7f8cdcdf734dff2ccc7ca467f53f1cfd (patch) | |
tree | 6a9ee37b2aac4b288c85387d83310e5f9cd9108e /drivers/pinctrl | |
parent | 8dc6ae4d448758a30cf5fa822d6fe6f4e15a04c6 (diff) |
pinctrl: delete raw device pointers in pinmux maps
After discussion with Mark Brown in an unrelated thread about
ADC lookups, it came to my knowledge that the ability to pass
a struct device * in the regulator consumers is just a
historical artifact, and not really recommended. Since there
are no in-kernel users of these pointers, we just kill them
right now, before someone starts to use them.
Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r-- | drivers/pinctrl/core.c | 22 | ||||
-rw-r--r-- | drivers/pinctrl/core.h | 3 | ||||
-rw-r--r-- | drivers/pinctrl/pinconf.c | 8 | ||||
-rw-r--r-- | drivers/pinctrl/pinmux.c | 27 |
4 files changed, 20 insertions, 40 deletions
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c index 894cd5e103da..4f10476cc1f2 100644 --- a/drivers/pinctrl/core.c +++ b/drivers/pinctrl/core.c | |||
@@ -48,31 +48,23 @@ void *pinctrl_dev_get_drvdata(struct pinctrl_dev *pctldev) | |||
48 | EXPORT_SYMBOL_GPL(pinctrl_dev_get_drvdata); | 48 | EXPORT_SYMBOL_GPL(pinctrl_dev_get_drvdata); |
49 | 49 | ||
50 | /** | 50 | /** |
51 | * get_pinctrl_dev_from_dev() - look up pin controller device | 51 | * get_pinctrl_dev_from_devname() - look up pin controller device |
52 | * @dev: a device pointer, this may be NULL but then devname needs to be | 52 | * @devname: the name of a device instance, as returned by dev_name() |
53 | * defined instead | ||
54 | * @devname: the name of a device instance, as returned by dev_name(), this | ||
55 | * may be NULL but then dev needs to be defined instead | ||
56 | * | 53 | * |
57 | * Looks up a pin control device matching a certain device name or pure device | 54 | * Looks up a pin control device matching a certain device name or pure device |
58 | * pointer, the pure device pointer will take precedence. | 55 | * pointer, the pure device pointer will take precedence. |
59 | */ | 56 | */ |
60 | struct pinctrl_dev *get_pinctrl_dev_from_dev(struct device *dev, | 57 | struct pinctrl_dev *get_pinctrl_dev_from_devname(const char *devname) |
61 | const char *devname) | ||
62 | { | 58 | { |
63 | struct pinctrl_dev *pctldev = NULL; | 59 | struct pinctrl_dev *pctldev = NULL; |
64 | bool found = false; | 60 | bool found = false; |
65 | 61 | ||
62 | if (!devname) | ||
63 | return NULL; | ||
64 | |||
66 | mutex_lock(&pinctrldev_list_mutex); | 65 | mutex_lock(&pinctrldev_list_mutex); |
67 | list_for_each_entry(pctldev, &pinctrldev_list, node) { | 66 | list_for_each_entry(pctldev, &pinctrldev_list, node) { |
68 | if (dev && pctldev->dev == dev) { | 67 | if (!strcmp(dev_name(pctldev->dev), devname)) { |
69 | /* Matched on device pointer */ | ||
70 | found = true; | ||
71 | break; | ||
72 | } | ||
73 | |||
74 | if (devname && | ||
75 | !strcmp(dev_name(pctldev->dev), devname)) { | ||
76 | /* Matched on device name */ | 68 | /* Matched on device name */ |
77 | found = true; | 69 | found = true; |
78 | break; | 70 | break; |
diff --git a/drivers/pinctrl/core.h b/drivers/pinctrl/core.h index cfa86da6b4b1..8a8b02e9c18e 100644 --- a/drivers/pinctrl/core.h +++ b/drivers/pinctrl/core.h | |||
@@ -72,8 +72,7 @@ struct pin_desc { | |||
72 | #endif | 72 | #endif |
73 | }; | 73 | }; |
74 | 74 | ||
75 | struct pinctrl_dev *get_pinctrl_dev_from_dev(struct device *dev, | 75 | struct pinctrl_dev *get_pinctrl_dev_from_devname(const char *dev_name); |
76 | const char *dev_name); | ||
77 | struct pin_desc *pin_desc_get(struct pinctrl_dev *pctldev, unsigned int pin); | 76 | struct pin_desc *pin_desc_get(struct pinctrl_dev *pctldev, unsigned int pin); |
78 | int pin_get_from_name(struct pinctrl_dev *pctldev, const char *name); | 77 | int pin_get_from_name(struct pinctrl_dev *pctldev, const char *name); |
79 | int pinctrl_get_device_gpio_range(unsigned gpio, | 78 | int pinctrl_get_device_gpio_range(unsigned gpio, |
diff --git a/drivers/pinctrl/pinconf.c b/drivers/pinctrl/pinconf.c index 9fb75456824c..b74f64af1923 100644 --- a/drivers/pinctrl/pinconf.c +++ b/drivers/pinctrl/pinconf.c | |||
@@ -51,7 +51,7 @@ int pin_config_get(const char *dev_name, const char *name, | |||
51 | struct pinctrl_dev *pctldev; | 51 | struct pinctrl_dev *pctldev; |
52 | int pin; | 52 | int pin; |
53 | 53 | ||
54 | pctldev = get_pinctrl_dev_from_dev(NULL, dev_name); | 54 | pctldev = get_pinctrl_dev_from_devname(dev_name); |
55 | if (!pctldev) | 55 | if (!pctldev) |
56 | return -EINVAL; | 56 | return -EINVAL; |
57 | 57 | ||
@@ -99,7 +99,7 @@ int pin_config_set(const char *dev_name, const char *name, | |||
99 | struct pinctrl_dev *pctldev; | 99 | struct pinctrl_dev *pctldev; |
100 | int pin; | 100 | int pin; |
101 | 101 | ||
102 | pctldev = get_pinctrl_dev_from_dev(NULL, dev_name); | 102 | pctldev = get_pinctrl_dev_from_devname(dev_name); |
103 | if (!pctldev) | 103 | if (!pctldev) |
104 | return -EINVAL; | 104 | return -EINVAL; |
105 | 105 | ||
@@ -118,7 +118,7 @@ int pin_config_group_get(const char *dev_name, const char *pin_group, | |||
118 | const struct pinconf_ops *ops; | 118 | const struct pinconf_ops *ops; |
119 | int selector; | 119 | int selector; |
120 | 120 | ||
121 | pctldev = get_pinctrl_dev_from_dev(NULL, dev_name); | 121 | pctldev = get_pinctrl_dev_from_devname(dev_name); |
122 | if (!pctldev) | 122 | if (!pctldev) |
123 | return -EINVAL; | 123 | return -EINVAL; |
124 | ops = pctldev->desc->confops; | 124 | ops = pctldev->desc->confops; |
@@ -151,7 +151,7 @@ int pin_config_group_set(const char *dev_name, const char *pin_group, | |||
151 | int ret; | 151 | int ret; |
152 | int i; | 152 | int i; |
153 | 153 | ||
154 | pctldev = get_pinctrl_dev_from_dev(NULL, dev_name); | 154 | pctldev = get_pinctrl_dev_from_devname(dev_name); |
155 | if (!pctldev) | 155 | if (!pctldev) |
156 | return -EINVAL; | 156 | return -EINVAL; |
157 | ops = pctldev->desc->confops; | 157 | ops = pctldev->desc->confops; |
diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c index 7c3193f7a044..1311f1d22002 100644 --- a/drivers/pinctrl/pinmux.c +++ b/drivers/pinctrl/pinmux.c | |||
@@ -354,7 +354,7 @@ int __init pinmux_register_mappings(struct pinmux_map const *maps, | |||
354 | return -EINVAL; | 354 | return -EINVAL; |
355 | } | 355 | } |
356 | 356 | ||
357 | if (!maps[i].ctrl_dev && !maps[i].ctrl_dev_name) { | 357 | if (!maps[i].ctrl_dev_name) { |
358 | pr_err("failed to register map %s (%d): no pin control device given\n", | 358 | pr_err("failed to register map %s (%d): no pin control device given\n", |
359 | maps[i].name, i); | 359 | maps[i].name, i); |
360 | return -EINVAL; | 360 | return -EINVAL; |
@@ -366,7 +366,7 @@ int __init pinmux_register_mappings(struct pinmux_map const *maps, | |||
366 | return -EINVAL; | 366 | return -EINVAL; |
367 | } | 367 | } |
368 | 368 | ||
369 | if (!maps[i].dev && !maps[i].dev_name) | 369 | if (!maps[i].dev_name) |
370 | pr_debug("add system map %s function %s with no device\n", | 370 | pr_debug("add system map %s function %s with no device\n", |
371 | maps[i].name, | 371 | maps[i].name, |
372 | maps[i].function); | 372 | maps[i].function); |
@@ -721,20 +721,12 @@ struct pinmux *pinmux_get(struct device *dev, const char *name) | |||
721 | /* | 721 | /* |
722 | * First, try to find the pctldev given in the map | 722 | * First, try to find the pctldev given in the map |
723 | */ | 723 | */ |
724 | pctldev = get_pinctrl_dev_from_dev(map->ctrl_dev, | 724 | pctldev = get_pinctrl_dev_from_devname(map->ctrl_dev_name); |
725 | map->ctrl_dev_name); | ||
726 | if (!pctldev) { | 725 | if (!pctldev) { |
727 | const char *devname = NULL; | ||
728 | |||
729 | if (map->ctrl_dev) | ||
730 | devname = dev_name(map->ctrl_dev); | ||
731 | else if (map->ctrl_dev_name) | ||
732 | devname = map->ctrl_dev_name; | ||
733 | |||
734 | pr_warning("could not find a pinctrl device for pinmux function %s, fishy, they shall all have one\n", | 726 | pr_warning("could not find a pinctrl device for pinmux function %s, fishy, they shall all have one\n", |
735 | map->function); | 727 | map->function); |
736 | pr_warning("given pinctrl device name: %s", | 728 | pr_warning("given pinctrl device name: %s", |
737 | devname ? devname : "UNDEFINED"); | 729 | map->ctrl_dev_name); |
738 | 730 | ||
739 | /* Continue to check the other mappings anyway... */ | 731 | /* Continue to check the other mappings anyway... */ |
740 | continue; | 732 | continue; |
@@ -925,7 +917,7 @@ static int pinmux_hog_map(struct pinctrl_dev *pctldev, | |||
925 | struct pinmux *pmx; | 917 | struct pinmux *pmx; |
926 | int ret; | 918 | int ret; |
927 | 919 | ||
928 | if (map->dev || map->dev_name) { | 920 | if (map->dev_name) { |
929 | /* | 921 | /* |
930 | * TODO: the day we have device tree support, we can | 922 | * TODO: the day we have device tree support, we can |
931 | * traverse the device tree and hog to specific device nodes | 923 | * traverse the device tree and hog to specific device nodes |
@@ -996,9 +988,8 @@ int pinmux_hog_maps(struct pinctrl_dev *pctldev) | |||
996 | if (!map->hog_on_boot) | 988 | if (!map->hog_on_boot) |
997 | continue; | 989 | continue; |
998 | 990 | ||
999 | if ((map->ctrl_dev == dev) || | 991 | if (map->ctrl_dev_name && |
1000 | (map->ctrl_dev_name && | 992 | !strcmp(map->ctrl_dev_name, devname)) { |
1001 | !strcmp(map->ctrl_dev_name, devname))) { | ||
1002 | /* OK time to hog! */ | 993 | /* OK time to hog! */ |
1003 | ret = pinmux_hog_map(pctldev, map); | 994 | ret = pinmux_hog_map(pctldev, map); |
1004 | if (ret) | 995 | if (ret) |
@@ -1156,14 +1147,12 @@ static int pinmux_maps_show(struct seq_file *s, void *what) | |||
1156 | struct pinmux_map const *map = &pinmux_maps[i]; | 1147 | struct pinmux_map const *map = &pinmux_maps[i]; |
1157 | 1148 | ||
1158 | seq_printf(s, "%s:\n", map->name); | 1149 | seq_printf(s, "%s:\n", map->name); |
1159 | if (map->dev || map->dev_name) | 1150 | if (map->dev_name) |
1160 | seq_printf(s, " device: %s\n", | 1151 | seq_printf(s, " device: %s\n", |
1161 | map->dev ? dev_name(map->dev) : | ||
1162 | map->dev_name); | 1152 | map->dev_name); |
1163 | else | 1153 | else |
1164 | seq_printf(s, " SYSTEM MUX\n"); | 1154 | seq_printf(s, " SYSTEM MUX\n"); |
1165 | seq_printf(s, " controlling device %s\n", | 1155 | seq_printf(s, " controlling device %s\n", |
1166 | map->ctrl_dev ? dev_name(map->ctrl_dev) : | ||
1167 | map->ctrl_dev_name); | 1156 | map->ctrl_dev_name); |
1168 | seq_printf(s, " function: %s\n", map->function); | 1157 | seq_printf(s, " function: %s\n", map->function); |
1169 | seq_printf(s, " group: %s\n", map->group ? map->group : | 1158 | seq_printf(s, " group: %s\n", map->group ? map->group : |