aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/pinctrl-at91.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pinctrl/pinctrl-at91.c')
-rw-r--r--drivers/pinctrl/pinctrl-at91.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index c5e757157183..471c71f7f8b6 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -265,7 +265,7 @@ static int at91_dt_node_to_map(struct pinctrl_dev *pctldev,
265 /* create mux map */ 265 /* create mux map */
266 parent = of_get_parent(np); 266 parent = of_get_parent(np);
267 if (!parent) { 267 if (!parent) {
268 kfree(new_map); 268 devm_kfree(pctldev->dev, new_map);
269 return -EINVAL; 269 return -EINVAL;
270 } 270 }
271 new_map[0].type = PIN_MAP_TYPE_MUX_GROUP; 271 new_map[0].type = PIN_MAP_TYPE_MUX_GROUP;
@@ -792,8 +792,8 @@ static struct pinctrl_desc at91_pinctrl_desc = {
792 792
793static const char *gpio_compat = "atmel,at91rm9200-gpio"; 793static const char *gpio_compat = "atmel,at91rm9200-gpio";
794 794
795static void __devinit at91_pinctrl_child_count(struct at91_pinctrl *info, 795static void at91_pinctrl_child_count(struct at91_pinctrl *info,
796 struct device_node *np) 796 struct device_node *np)
797{ 797{
798 struct device_node *child; 798 struct device_node *child;
799 799
@@ -807,8 +807,8 @@ static void __devinit at91_pinctrl_child_count(struct at91_pinctrl *info,
807 } 807 }
808} 808}
809 809
810static int __devinit at91_pinctrl_mux_mask(struct at91_pinctrl *info, 810static int at91_pinctrl_mux_mask(struct at91_pinctrl *info,
811 struct device_node *np) 811 struct device_node *np)
812{ 812{
813 int ret = 0; 813 int ret = 0;
814 int size; 814 int size;
@@ -840,10 +840,9 @@ static int __devinit at91_pinctrl_mux_mask(struct at91_pinctrl *info,
840 return ret; 840 return ret;
841} 841}
842 842
843static int __devinit at91_pinctrl_parse_groups(struct device_node *np, 843static int at91_pinctrl_parse_groups(struct device_node *np,
844 struct at91_pin_group *grp, 844 struct at91_pin_group *grp,
845 struct at91_pinctrl *info, 845 struct at91_pinctrl *info, u32 index)
846 u32 index)
847{ 846{
848 struct at91_pmx_pin *pin; 847 struct at91_pmx_pin *pin;
849 int size; 848 int size;
@@ -889,8 +888,8 @@ static int __devinit at91_pinctrl_parse_groups(struct device_node *np,
889 return 0; 888 return 0;
890} 889}
891 890
892static int __devinit at91_pinctrl_parse_functions(struct device_node *np, 891static int at91_pinctrl_parse_functions(struct device_node *np,
893 struct at91_pinctrl *info, u32 index) 892 struct at91_pinctrl *info, u32 index)
894{ 893{
895 struct device_node *child; 894 struct device_node *child;
896 struct at91_pmx_func *func; 895 struct at91_pmx_func *func;
@@ -926,14 +925,14 @@ static int __devinit at91_pinctrl_parse_functions(struct device_node *np,
926 return 0; 925 return 0;
927} 926}
928 927
929static struct of_device_id at91_pinctrl_of_match[] __devinitdata = { 928static struct of_device_id at91_pinctrl_of_match[] = {
930 { .compatible = "atmel,at91sam9x5-pinctrl", .data = &at91sam9x5_ops }, 929 { .compatible = "atmel,at91sam9x5-pinctrl", .data = &at91sam9x5_ops },
931 { .compatible = "atmel,at91rm9200-pinctrl", .data = &at91rm9200_ops }, 930 { .compatible = "atmel,at91rm9200-pinctrl", .data = &at91rm9200_ops },
932 { /* sentinel */ } 931 { /* sentinel */ }
933}; 932};
934 933
935static int __devinit at91_pinctrl_probe_dt(struct platform_device *pdev, 934static int at91_pinctrl_probe_dt(struct platform_device *pdev,
936 struct at91_pinctrl *info) 935 struct at91_pinctrl *info)
937{ 936{
938 int ret = 0; 937 int ret = 0;
939 int i, j; 938 int i, j;
@@ -999,7 +998,7 @@ static int __devinit at91_pinctrl_probe_dt(struct platform_device *pdev,
999 return 0; 998 return 0;
1000} 999}
1001 1000
1002static int __devinit at91_pinctrl_probe(struct platform_device *pdev) 1001static int at91_pinctrl_probe(struct platform_device *pdev)
1003{ 1002{
1004 struct at91_pinctrl *info; 1003 struct at91_pinctrl *info;
1005 struct pinctrl_pin_desc *pdesc; 1004 struct pinctrl_pin_desc *pdesc;
@@ -1063,7 +1062,7 @@ err:
1063 return ret; 1062 return ret;
1064} 1063}
1065 1064
1066static int __devexit at91_pinctrl_remove(struct platform_device *pdev) 1065static int at91_pinctrl_remove(struct platform_device *pdev)
1067{ 1066{
1068 struct at91_pinctrl *info = platform_get_drvdata(pdev); 1067 struct at91_pinctrl *info = platform_get_drvdata(pdev);
1069 1068
@@ -1443,7 +1442,7 @@ static struct gpio_chip at91_gpio_template = {
1443 .ngpio = MAX_NB_GPIO_PER_BANK, 1442 .ngpio = MAX_NB_GPIO_PER_BANK,
1444}; 1443};
1445 1444
1446static void __devinit at91_gpio_probe_fixup(void) 1445static void at91_gpio_probe_fixup(void)
1447{ 1446{
1448 unsigned i; 1447 unsigned i;
1449 struct at91_gpio_chip *at91_gpio, *last = NULL; 1448 struct at91_gpio_chip *at91_gpio, *last = NULL;
@@ -1461,13 +1460,13 @@ static void __devinit at91_gpio_probe_fixup(void)
1461 } 1460 }
1462} 1461}
1463 1462
1464static struct of_device_id at91_gpio_of_match[] __devinitdata = { 1463static struct of_device_id at91_gpio_of_match[] = {
1465 { .compatible = "atmel,at91sam9x5-gpio", .data = &at91sam9x5_ops, }, 1464 { .compatible = "atmel,at91sam9x5-gpio", .data = &at91sam9x5_ops, },
1466 { .compatible = "atmel,at91rm9200-gpio", .data = &at91rm9200_ops }, 1465 { .compatible = "atmel,at91rm9200-gpio", .data = &at91rm9200_ops },
1467 { /* sentinel */ } 1466 { /* sentinel */ }
1468}; 1467};
1469 1468
1470static int __devinit at91_gpio_probe(struct platform_device *pdev) 1469static int at91_gpio_probe(struct platform_device *pdev)
1471{ 1470{
1472 struct device_node *np = pdev->dev.of_node; 1471 struct device_node *np = pdev->dev.of_node;
1473 struct resource *res; 1472 struct resource *res;
@@ -1609,7 +1608,7 @@ static struct platform_driver at91_pinctrl_driver = {
1609 .of_match_table = of_match_ptr(at91_pinctrl_of_match), 1608 .of_match_table = of_match_ptr(at91_pinctrl_of_match),
1610 }, 1609 },
1611 .probe = at91_pinctrl_probe, 1610 .probe = at91_pinctrl_probe,
1612 .remove = __devexit_p(at91_pinctrl_remove), 1611 .remove = at91_pinctrl_remove,
1613}; 1612};
1614 1613
1615static int __init at91_pinctrl_init(void) 1614static int __init at91_pinctrl_init(void)