Lines Matching refs:pinctrl
503 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_get_groups_count() local
505 return pinctrl->num_groups; in ns2_get_groups_count()
511 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_get_group_name() local
513 return pinctrl->groups[selector].name; in ns2_get_group_name()
520 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_get_group_pins() local
522 *pins = pinctrl->groups[selector].pins; in ns2_get_group_pins()
523 *num_pins = pinctrl->groups[selector].num_pins; in ns2_get_group_pins()
545 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_get_functions_count() local
547 return pinctrl->num_functions; in ns2_get_functions_count()
553 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_get_function_name() local
555 return pinctrl->functions[selector].name; in ns2_get_function_name()
563 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_get_function_groups() local
565 *groups = pinctrl->functions[selector].groups; in ns2_get_function_groups()
566 *num_groups = pinctrl->functions[selector].num_groups; in ns2_get_function_groups()
571 static int ns2_pinmux_set(struct ns2_pinctrl *pinctrl, in ns2_pinmux_set() argument
597 dev_err(pinctrl->dev, in ns2_pinmux_set()
599 dev_err(pinctrl->dev, "func:%s grp:%s\n", in ns2_pinmux_set()
615 base_address = pinctrl->base0; in ns2_pinmux_set()
619 base_address = pinctrl->base1; in ns2_pinmux_set()
626 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pinmux_set()
631 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pinmux_set()
639 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_pinmux_enable() local
643 if (grp_select >= pinctrl->num_groups || in ns2_pinmux_enable()
644 func_select >= pinctrl->num_functions) in ns2_pinmux_enable()
647 func = &pinctrl->functions[func_select]; in ns2_pinmux_enable()
648 grp = &pinctrl->groups[grp_select]; in ns2_pinmux_enable()
656 return ns2_pinmux_set(pinctrl, func, grp, pinctrl->mux_log); in ns2_pinmux_enable()
662 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_set_enable() local
668 base_address = pinctrl->pinconf_base; in ns2_pin_set_enable()
669 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_set_enable()
677 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_set_enable()
685 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_get_enable() local
690 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_get_enable()
691 enable = readl(pinctrl->pinconf_base + pin_data->pin_conf.offset); in ns2_pin_get_enable()
694 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_get_enable()
708 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_set_slew() local
714 base_address = pinctrl->pinconf_base; in ns2_pin_set_slew()
715 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_set_slew()
723 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_set_slew()
732 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_get_slew() local
737 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_get_slew()
738 val = readl(pinctrl->pinconf_base + pin_data->pin_conf.offset); in ns2_pin_get_slew()
740 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_get_slew()
749 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_set_pull() local
755 base_address = pinctrl->pinconf_base; in ns2_pin_set_pull()
756 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_set_pull()
765 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_set_pull()
776 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_get_pull() local
781 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_get_pull()
782 val = readl(pinctrl->pinconf_base + pin_data->pin_conf.offset); in ns2_pin_get_pull()
792 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_get_pull()
798 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_set_strength() local
808 base_address = pinctrl->pinconf_base; in ns2_pin_set_strength()
809 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_set_strength()
814 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_set_strength()
824 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_get_strength() local
829 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_get_strength()
830 val = readl(pinctrl->pinconf_base + pin_data->pin_conf.offset); in ns2_pin_get_strength()
834 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_get_strength()
982 static int ns2_mux_log_init(struct ns2_pinctrl *pinctrl) in ns2_mux_log_init() argument
987 pinctrl->mux_log = devm_kcalloc(pinctrl->dev, NS2_NUM_IOMUX, in ns2_mux_log_init()
990 if (!pinctrl->mux_log) in ns2_mux_log_init()
994 pinctrl->mux_log[i].is_configured = false; in ns2_mux_log_init()
996 log = &pinctrl->mux_log[0]; in ns2_mux_log_init()
1008 log = &pinctrl->mux_log[i]; in ns2_mux_log_init()
1020 log = &pinctrl->mux_log[(NS2_NUM_IOMUX - NS2_NUM_PWM_MUX) + i]; in ns2_mux_log_init()
1031 struct ns2_pinctrl *pinctrl; in ns2_pinmux_probe() local
1037 pinctrl = devm_kzalloc(&pdev->dev, sizeof(*pinctrl), GFP_KERNEL); in ns2_pinmux_probe()
1038 if (!pinctrl) in ns2_pinmux_probe()
1041 pinctrl->dev = &pdev->dev; in ns2_pinmux_probe()
1042 platform_set_drvdata(pdev, pinctrl); in ns2_pinmux_probe()
1043 spin_lock_init(&pinctrl->lock); in ns2_pinmux_probe()
1046 pinctrl->base0 = devm_ioremap_resource(&pdev->dev, res); in ns2_pinmux_probe()
1047 if (IS_ERR(pinctrl->base0)) in ns2_pinmux_probe()
1048 return PTR_ERR(pinctrl->base0); in ns2_pinmux_probe()
1051 pinctrl->base1 = devm_ioremap_nocache(&pdev->dev, res->start, in ns2_pinmux_probe()
1053 if (!pinctrl->base1) { in ns2_pinmux_probe()
1059 pinctrl->pinconf_base = devm_ioremap_resource(&pdev->dev, res); in ns2_pinmux_probe()
1060 if (IS_ERR(pinctrl->pinconf_base)) in ns2_pinmux_probe()
1061 return PTR_ERR(pinctrl->pinconf_base); in ns2_pinmux_probe()
1063 ret = ns2_mux_log_init(pinctrl); in ns2_pinmux_probe()
1079 pinctrl->groups = ns2_pin_groups; in ns2_pinmux_probe()
1080 pinctrl->num_groups = ARRAY_SIZE(ns2_pin_groups); in ns2_pinmux_probe()
1081 pinctrl->functions = ns2_pin_functions; in ns2_pinmux_probe()
1082 pinctrl->num_functions = ARRAY_SIZE(ns2_pin_functions); in ns2_pinmux_probe()
1086 pinctrl->pctl = pinctrl_register(&ns2_pinctrl_desc, &pdev->dev, in ns2_pinmux_probe()
1087 pinctrl); in ns2_pinmux_probe()
1088 if (IS_ERR(pinctrl->pctl)) { in ns2_pinmux_probe()
1090 return PTR_ERR(pinctrl->pctl); in ns2_pinmux_probe()