Lines Matching refs:pinctrl

703 	struct cygnus_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev);  in cygnus_get_groups_count()  local
705 return pinctrl->num_groups; in cygnus_get_groups_count()
711 struct cygnus_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in cygnus_get_group_name() local
713 return pinctrl->groups[selector].name; in cygnus_get_group_name()
720 struct cygnus_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in cygnus_get_group_pins() local
722 *pins = pinctrl->groups[selector].pins; in cygnus_get_group_pins()
723 *num_pins = pinctrl->groups[selector].num_pins; in cygnus_get_group_pins()
745 struct cygnus_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in cygnus_get_functions_count() local
747 return pinctrl->num_functions; in cygnus_get_functions_count()
753 struct cygnus_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in cygnus_get_function_name() local
755 return pinctrl->functions[selector].name; in cygnus_get_function_name()
763 struct cygnus_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in cygnus_get_function_groups() local
765 *groups = pinctrl->functions[selector].groups; in cygnus_get_function_groups()
766 *num_groups = pinctrl->functions[selector].num_groups; in cygnus_get_function_groups()
771 static int cygnus_pinmux_set(struct cygnus_pinctrl *pinctrl, in cygnus_pinmux_set() argument
797 dev_err(pinctrl->dev, in cygnus_pinmux_set()
799 dev_err(pinctrl->dev, "func:%s grp:%s\n", in cygnus_pinmux_set()
814 spin_lock_irqsave(&pinctrl->lock, flags); in cygnus_pinmux_set()
816 val = readl(pinctrl->base0 + grp->mux.offset); in cygnus_pinmux_set()
819 writel(val, pinctrl->base0 + grp->mux.offset); in cygnus_pinmux_set()
821 spin_unlock_irqrestore(&pinctrl->lock, flags); in cygnus_pinmux_set()
829 struct cygnus_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in cygnus_pinmux_set_mux() local
831 &pinctrl->functions[func_select]; in cygnus_pinmux_set_mux()
832 const struct cygnus_pin_group *grp = &pinctrl->groups[grp_select]; in cygnus_pinmux_set_mux()
840 return cygnus_pinmux_set(pinctrl, func, grp, pinctrl->mux_log); in cygnus_pinmux_set_mux()
847 struct cygnus_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in cygnus_gpio_request_enable() local
856 spin_lock_irqsave(&pinctrl->lock, flags); in cygnus_gpio_request_enable()
858 val = readl(pinctrl->base1 + mux->offset); in cygnus_gpio_request_enable()
860 writel(val, pinctrl->base1 + mux->offset); in cygnus_gpio_request_enable()
862 spin_unlock_irqrestore(&pinctrl->lock, flags); in cygnus_gpio_request_enable()
875 struct cygnus_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in cygnus_gpio_disable_free() local
883 spin_lock_irqsave(&pinctrl->lock, flags); in cygnus_gpio_disable_free()
885 val = readl(pinctrl->base1 + mux->offset); in cygnus_gpio_disable_free()
887 writel(val, pinctrl->base1 + mux->offset); in cygnus_gpio_disable_free()
889 spin_unlock_irqrestore(&pinctrl->lock, flags); in cygnus_gpio_disable_free()
911 static int cygnus_mux_log_init(struct cygnus_pinctrl *pinctrl) in cygnus_mux_log_init() argument
916 pinctrl->mux_log = devm_kcalloc(pinctrl->dev, CYGNUS_NUM_IOMUX, in cygnus_mux_log_init()
919 if (!pinctrl->mux_log) in cygnus_mux_log_init()
922 log = pinctrl->mux_log; in cygnus_mux_log_init()
925 log = &pinctrl->mux_log[i * CYGNUS_NUM_MUX_PER_REG in cygnus_mux_log_init()
939 struct cygnus_pinctrl *pinctrl; in cygnus_pinmux_probe() local
945 pinctrl = devm_kzalloc(&pdev->dev, sizeof(*pinctrl), GFP_KERNEL); in cygnus_pinmux_probe()
946 if (!pinctrl) in cygnus_pinmux_probe()
949 pinctrl->dev = &pdev->dev; in cygnus_pinmux_probe()
950 platform_set_drvdata(pdev, pinctrl); in cygnus_pinmux_probe()
951 spin_lock_init(&pinctrl->lock); in cygnus_pinmux_probe()
954 pinctrl->base0 = devm_ioremap_resource(&pdev->dev, res); in cygnus_pinmux_probe()
955 if (IS_ERR(pinctrl->base0)) { in cygnus_pinmux_probe()
957 return PTR_ERR(pinctrl->base0); in cygnus_pinmux_probe()
961 pinctrl->base1 = devm_ioremap_resource(&pdev->dev, res); in cygnus_pinmux_probe()
962 if (IS_ERR(pinctrl->base1)) { in cygnus_pinmux_probe()
964 return PTR_ERR(pinctrl->base1); in cygnus_pinmux_probe()
967 ret = cygnus_mux_log_init(pinctrl); in cygnus_pinmux_probe()
983 pinctrl->groups = cygnus_pin_groups; in cygnus_pinmux_probe()
984 pinctrl->num_groups = ARRAY_SIZE(cygnus_pin_groups); in cygnus_pinmux_probe()
985 pinctrl->functions = cygnus_pin_functions; in cygnus_pinmux_probe()
986 pinctrl->num_functions = ARRAY_SIZE(cygnus_pin_functions); in cygnus_pinmux_probe()
990 pinctrl->pctl = pinctrl_register(&cygnus_pinctrl_desc, &pdev->dev, in cygnus_pinmux_probe()
991 pinctrl); in cygnus_pinmux_probe()
992 if (!pinctrl->pctl) { in cygnus_pinmux_probe()