pinctrl-imx.c (aa63e6562ab38f838fd7e3e5d6708495dd144c05) pinctrl-imx.c (7442936633bd1906a2571116ae334b68c56c8a72)
1// SPDX-License-Identifier: GPL-2.0+
2//
3// Core driver for the imx pin controller
4//
5// Copyright (C) 2012 Freescale Semiconductor, Inc.
6// Copyright (C) 2012 Linaro Ltd.
7//
8// Author: Dong Aisheng <dong.aisheng@linaro.org>

--- 635 unchanged lines hidden (view full) ---

644 struct imx_pinctrl *ipctl,
645 u32 index)
646{
647 struct pinctrl_dev *pctl = ipctl->pctl;
648 struct device_node *child;
649 struct function_desc *func;
650 struct group_desc *grp;
651 const char **group_names;
1// SPDX-License-Identifier: GPL-2.0+
2//
3// Core driver for the imx pin controller
4//
5// Copyright (C) 2012 Freescale Semiconductor, Inc.
6// Copyright (C) 2012 Linaro Ltd.
7//
8// Author: Dong Aisheng <dong.aisheng@linaro.org>

--- 635 unchanged lines hidden (view full) ---

644 struct imx_pinctrl *ipctl,
645 u32 index)
646{
647 struct pinctrl_dev *pctl = ipctl->pctl;
648 struct device_node *child;
649 struct function_desc *func;
650 struct group_desc *grp;
651 const char **group_names;
652 u32 i = 0;
652 u32 i;
653
654 dev_dbg(pctl->dev, "parse function(%d): %pOFn\n", index, np);
655
656 func = pinmux_generic_get_function(pctl, index);
657 if (!func)
658 return -EINVAL;
659
660 /* Initialise function */
661 func->name = np->name;
662 func->num_group_names = of_get_child_count(np);
663 if (func->num_group_names == 0) {
664 dev_err(ipctl->dev, "no groups defined in %pOF\n", np);
665 return -EINVAL;
666 }
667
668 group_names = devm_kcalloc(ipctl->dev, func->num_group_names,
669 sizeof(char *), GFP_KERNEL);
670 if (!group_names)
671 return -ENOMEM;
653
654 dev_dbg(pctl->dev, "parse function(%d): %pOFn\n", index, np);
655
656 func = pinmux_generic_get_function(pctl, index);
657 if (!func)
658 return -EINVAL;
659
660 /* Initialise function */
661 func->name = np->name;
662 func->num_group_names = of_get_child_count(np);
663 if (func->num_group_names == 0) {
664 dev_err(ipctl->dev, "no groups defined in %pOF\n", np);
665 return -EINVAL;
666 }
667
668 group_names = devm_kcalloc(ipctl->dev, func->num_group_names,
669 sizeof(char *), GFP_KERNEL);
670 if (!group_names)
671 return -ENOMEM;
672 i = 0;
672 for_each_child_of_node(np, child)
673 for_each_child_of_node(np, child)
673 group_names[i] = child->name;
674 group_names[i++] = child->name;
674 func->group_names = group_names;
675
675 func->group_names = group_names;
676
677 i = 0;
676 for_each_child_of_node(np, child) {
677 grp = devm_kzalloc(ipctl->dev, sizeof(struct group_desc),
678 GFP_KERNEL);
679 if (!grp) {
680 of_node_put(child);
681 return -ENOMEM;
682 }
683

--- 225 unchanged lines hidden ---
678 for_each_child_of_node(np, child) {
679 grp = devm_kzalloc(ipctl->dev, sizeof(struct group_desc),
680 GFP_KERNEL);
681 if (!grp) {
682 of_node_put(child);
683 return -ENOMEM;
684 }
685

--- 225 unchanged lines hidden ---