Lines Matching refs:pinctrl

497 	struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev);  in ns2_get_groups_count()  local
499 return pinctrl->num_groups; in ns2_get_groups_count()
505 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_get_group_name() local
507 return pinctrl->groups[selector].name; in ns2_get_group_name()
514 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_get_group_pins() local
516 *pins = pinctrl->groups[selector].pins; in ns2_get_group_pins()
517 *num_pins = pinctrl->groups[selector].num_pins; in ns2_get_group_pins()
539 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_get_functions_count() local
541 return pinctrl->num_functions; in ns2_get_functions_count()
547 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_get_function_name() local
549 return pinctrl->functions[selector].name; in ns2_get_function_name()
557 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_get_function_groups() local
559 *groups = pinctrl->functions[selector].groups; in ns2_get_function_groups()
560 *num_groups = pinctrl->functions[selector].num_groups; in ns2_get_function_groups()
565 static int ns2_pinmux_set(struct ns2_pinctrl *pinctrl, in ns2_pinmux_set() argument
591 dev_err(pinctrl->dev, in ns2_pinmux_set()
593 dev_err(pinctrl->dev, "func:%s grp:%s\n", in ns2_pinmux_set()
609 base_address = pinctrl->base0; in ns2_pinmux_set()
613 base_address = pinctrl->base1; in ns2_pinmux_set()
620 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pinmux_set()
625 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pinmux_set()
633 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev); in ns2_pinmux_enable() local
637 if (grp_select >= pinctrl->num_groups || in ns2_pinmux_enable()
638 func_select >= pinctrl->num_functions) in ns2_pinmux_enable()
641 func = &pinctrl->functions[func_select]; in ns2_pinmux_enable()
642 grp = &pinctrl->groups[grp_select]; in ns2_pinmux_enable()
650 return ns2_pinmux_set(pinctrl, func, grp, pinctrl->mux_log); in ns2_pinmux_enable()
656 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_set_enable() local
662 base_address = pinctrl->pinconf_base; in ns2_pin_set_enable()
663 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_set_enable()
671 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_set_enable()
679 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_get_enable() local
684 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_get_enable()
685 enable = readl(pinctrl->pinconf_base + pin_data->pin_conf.offset); in ns2_pin_get_enable()
688 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_get_enable()
702 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_set_slew() local
708 base_address = pinctrl->pinconf_base; in ns2_pin_set_slew()
709 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_set_slew()
717 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_set_slew()
726 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_get_slew() local
731 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_get_slew()
732 val = readl(pinctrl->pinconf_base + pin_data->pin_conf.offset); in ns2_pin_get_slew()
734 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_get_slew()
743 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_set_pull() local
749 base_address = pinctrl->pinconf_base; in ns2_pin_set_pull()
750 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_set_pull()
759 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_set_pull()
770 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_get_pull() local
775 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_get_pull()
776 val = readl(pinctrl->pinconf_base + pin_data->pin_conf.offset); in ns2_pin_get_pull()
786 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_get_pull()
792 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_set_strength() local
802 base_address = pinctrl->pinconf_base; in ns2_pin_set_strength()
803 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_set_strength()
808 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_set_strength()
818 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); in ns2_pin_get_strength() local
823 spin_lock_irqsave(&pinctrl->lock, flags); in ns2_pin_get_strength()
824 val = readl(pinctrl->pinconf_base + pin_data->pin_conf.offset); in ns2_pin_get_strength()
828 spin_unlock_irqrestore(&pinctrl->lock, flags); in ns2_pin_get_strength()
976 static int ns2_mux_log_init(struct ns2_pinctrl *pinctrl) in ns2_mux_log_init() argument
981 pinctrl->mux_log = devm_kcalloc(pinctrl->dev, NS2_NUM_IOMUX, in ns2_mux_log_init()
984 if (!pinctrl->mux_log) in ns2_mux_log_init()
988 pinctrl->mux_log[i].is_configured = false; in ns2_mux_log_init()
990 log = &pinctrl->mux_log[0]; in ns2_mux_log_init()
1002 log = &pinctrl->mux_log[i]; in ns2_mux_log_init()
1014 log = &pinctrl->mux_log[(NS2_NUM_IOMUX - NS2_NUM_PWM_MUX) + i]; in ns2_mux_log_init()
1025 struct ns2_pinctrl *pinctrl; in ns2_pinmux_probe() local
1031 pinctrl = devm_kzalloc(&pdev->dev, sizeof(*pinctrl), GFP_KERNEL); in ns2_pinmux_probe()
1032 if (!pinctrl) in ns2_pinmux_probe()
1035 pinctrl->dev = &pdev->dev; in ns2_pinmux_probe()
1036 platform_set_drvdata(pdev, pinctrl); in ns2_pinmux_probe()
1037 spin_lock_init(&pinctrl->lock); in ns2_pinmux_probe()
1039 pinctrl->base0 = devm_platform_ioremap_resource(pdev, 0); in ns2_pinmux_probe()
1040 if (IS_ERR(pinctrl->base0)) in ns2_pinmux_probe()
1041 return PTR_ERR(pinctrl->base0); in ns2_pinmux_probe()
1046 pinctrl->base1 = devm_ioremap(&pdev->dev, res->start, in ns2_pinmux_probe()
1048 if (!pinctrl->base1) { in ns2_pinmux_probe()
1053 pinctrl->pinconf_base = devm_platform_ioremap_resource(pdev, 2); in ns2_pinmux_probe()
1054 if (IS_ERR(pinctrl->pinconf_base)) in ns2_pinmux_probe()
1055 return PTR_ERR(pinctrl->pinconf_base); in ns2_pinmux_probe()
1057 ret = ns2_mux_log_init(pinctrl); in ns2_pinmux_probe()
1073 pinctrl->groups = ns2_pin_groups; in ns2_pinmux_probe()
1074 pinctrl->num_groups = ARRAY_SIZE(ns2_pin_groups); in ns2_pinmux_probe()
1075 pinctrl->functions = ns2_pin_functions; in ns2_pinmux_probe()
1076 pinctrl->num_functions = ARRAY_SIZE(ns2_pin_functions); in ns2_pinmux_probe()
1080 pinctrl->pctl = pinctrl_register(&ns2_pinctrl_desc, &pdev->dev, in ns2_pinmux_probe()
1081 pinctrl); in ns2_pinmux_probe()
1082 if (IS_ERR(pinctrl->pctl)) { in ns2_pinmux_probe()
1084 return PTR_ERR(pinctrl->pctl); in ns2_pinmux_probe()