Lines Matching refs:pmx
4926 struct atlas7_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); in atlas7_pmx_get_funcs_count() local
4928 return pmx->pctl_data->funcs_cnt; in atlas7_pmx_get_funcs_count()
4934 struct atlas7_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); in atlas7_pmx_get_func_name() local
4936 return pmx->pctl_data->funcs[selector].name; in atlas7_pmx_get_func_name()
4943 struct atlas7_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); in atlas7_pmx_get_func_groups() local
4945 *groups = pmx->pctl_data->funcs[selector].groups; in atlas7_pmx_get_func_groups()
4946 *num_groups = pmx->pctl_data->funcs[selector].num_groups; in atlas7_pmx_get_func_groups()
4951 static void __atlas7_pmx_pin_input_disable_set(struct atlas7_pmx *pmx, in __atlas7_pmx_pin_input_disable_set() argument
4962 pmx->regs[BANK_DS] + CLR_REG(mux->dinput_reg)); in __atlas7_pmx_pin_input_disable_set()
4964 pmx->regs[BANK_DS] + mux->dinput_reg); in __atlas7_pmx_pin_input_disable_set()
4968 pmx->regs[BANK_DS] + CLR_REG(mux->dinput_val_reg)); in __atlas7_pmx_pin_input_disable_set()
4970 pmx->regs[BANK_DS] + mux->dinput_val_reg); in __atlas7_pmx_pin_input_disable_set()
4974 static void __atlas7_pmx_pin_input_disable_clr(struct atlas7_pmx *pmx, in __atlas7_pmx_pin_input_disable_clr() argument
4980 pmx->regs[BANK_DS] + CLR_REG(mux->dinput_reg)); in __atlas7_pmx_pin_input_disable_clr()
4982 pmx->regs[BANK_DS] + mux->dinput_reg); in __atlas7_pmx_pin_input_disable_clr()
4985 pmx->regs[BANK_DS] + CLR_REG(mux->dinput_val_reg)); in __atlas7_pmx_pin_input_disable_clr()
4987 pmx->regs[BANK_DS] + mux->dinput_val_reg); in __atlas7_pmx_pin_input_disable_clr()
4991 static int __atlas7_pmx_pin_ad_sel(struct atlas7_pmx *pmx, in __atlas7_pmx_pin_ad_sel() argument
4999 pmx->regs[bank] + CLR_REG(conf->ad_ctrl_reg)); in __atlas7_pmx_pin_ad_sel()
5002 regv = readl(pmx->regs[bank] + conf->ad_ctrl_reg); in __atlas7_pmx_pin_ad_sel()
5005 pmx->regs[bank] + conf->ad_ctrl_reg); in __atlas7_pmx_pin_ad_sel()
5007 regv = readl(pmx->regs[bank] + conf->ad_ctrl_reg); in __atlas7_pmx_pin_ad_sel()
5013 static int __atlas7_pmx_pin_analog_enable(struct atlas7_pmx *pmx, in __atlas7_pmx_pin_analog_enable() argument
5020 return __atlas7_pmx_pin_ad_sel(pmx, conf, bank, 0); in __atlas7_pmx_pin_analog_enable()
5023 static int __atlas7_pmx_pin_digital_enable(struct atlas7_pmx *pmx, in __atlas7_pmx_pin_digital_enable() argument
5030 return __atlas7_pmx_pin_ad_sel(pmx, conf, bank, 1); in __atlas7_pmx_pin_digital_enable()
5033 static int __atlas7_pmx_pin_enable(struct atlas7_pmx *pmx, in __atlas7_pmx_pin_enable() argument
5045 conf = &pmx->pctl_data->confs[pin]; in __atlas7_pmx_pin_enable()
5050 ret = __atlas7_pmx_pin_analog_enable(pmx, conf, bank); in __atlas7_pmx_pin_enable()
5052 dev_err(pmx->dev, in __atlas7_pmx_pin_enable()
5059 ret = __atlas7_pmx_pin_digital_enable(pmx, conf, bank); in __atlas7_pmx_pin_enable()
5061 dev_err(pmx->dev, in __atlas7_pmx_pin_enable()
5069 pmx->regs[bank] + CLR_REG(conf->mux_reg)); in __atlas7_pmx_pin_enable()
5072 regv = readl(pmx->regs[bank] + conf->mux_reg); in __atlas7_pmx_pin_enable()
5075 pmx->regs[bank] + conf->mux_reg); in __atlas7_pmx_pin_enable()
5077 regv = readl(pmx->regs[bank] + conf->mux_reg); in __atlas7_pmx_pin_enable()
5088 struct atlas7_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); in atlas7_pmx_set_mux() local
5094 pmx_func = &pmx->pctl_data->funcs[func_selector]; in atlas7_pmx_set_mux()
5095 pin_grp = &pmx->pctl_data->grps[group_selector]; in atlas7_pmx_set_mux()
5104 __atlas7_pmx_pin_input_disable_set(pmx, mux); in atlas7_pmx_set_mux()
5105 ret = __atlas7_pmx_pin_enable(pmx, mux->pin, mux->func); in atlas7_pmx_set_mux()
5107 dev_err(pmx->dev, in atlas7_pmx_set_mux()
5113 __atlas7_pmx_pin_input_disable_clr(pmx, mux); in atlas7_pmx_set_mux()
5145 struct atlas7_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); in altas7_pinctrl_set_pull_sel() local
5146 struct atlas7_pad_config *conf = &pmx->pctl_data->confs[pin]; in altas7_pinctrl_set_pull_sel()
5154 pull_sel_reg = pmx->regs[bank] + conf->pupd_reg; in altas7_pinctrl_set_pull_sel()
5171 struct atlas7_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); in __altas7_pinctrl_set_drive_strength_sel() local
5172 struct atlas7_pad_config *conf = &pmx->pctl_data->confs[pin]; in __altas7_pinctrl_set_drive_strength_sel()
5182 ds_sel_reg = pmx->regs[bank] + conf->drvstr_reg; in __altas7_pinctrl_set_drive_strength_sel()
5198 struct atlas7_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); in altas7_pinctrl_set_drive_strength_sel() local
5199 struct atlas7_pad_config *conf = &pmx->pctl_data->confs[pin]; in altas7_pinctrl_set_drive_strength_sel()
5221 struct atlas7_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); in atlas7_pmx_gpio_request_enable() local
5224 dev_dbg(pmx->dev, in atlas7_pmx_gpio_request_enable()
5232 dev_err(pmx->dev, in atlas7_pmx_gpio_request_enable()
5238 __atlas7_pmx_pin_enable(pmx, pin, FUNC_GPIO); in atlas7_pmx_gpio_request_enable()
5253 struct atlas7_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); in atlas7_pinctrl_get_groups_count() local
5255 return pmx->pctl_data->grps_cnt; in atlas7_pinctrl_get_groups_count()
5261 struct atlas7_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); in atlas7_pinctrl_get_group_name() local
5263 return pmx->pctl_data->grps[group].name; in atlas7_pinctrl_get_group_name()
5269 struct atlas7_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); in atlas7_pinctrl_get_group_pins() local
5271 *num_pins = pmx->pctl_data->grps[group].num_pins; in atlas7_pinctrl_get_group_pins()
5272 *pins = pmx->pctl_data->grps[group].pins; in atlas7_pinctrl_get_group_pins()
5385 struct atlas7_pmx *pmx; in atlas7_pinmux_probe() local
5390 pmx = devm_kzalloc(&pdev->dev, sizeof(*pmx), GFP_KERNEL); in atlas7_pinmux_probe()
5391 if (!pmx) in atlas7_pinmux_probe()
5394 pmx->dev = &pdev->dev; in atlas7_pinmux_probe()
5396 pmx->pctl_data = &atlas7_ioc_data; in atlas7_pinmux_probe()
5397 pmx->pctl_desc.name = "pinctrl-atlas7"; in atlas7_pinmux_probe()
5398 pmx->pctl_desc.pins = pmx->pctl_data->pads; in atlas7_pinmux_probe()
5399 pmx->pctl_desc.npins = pmx->pctl_data->pads_cnt; in atlas7_pinmux_probe()
5400 pmx->pctl_desc.pctlops = &atlas7_pinctrl_ops; in atlas7_pinmux_probe()
5401 pmx->pctl_desc.pmxops = &atlas7_pinmux_ops; in atlas7_pinmux_probe()
5402 pmx->pctl_desc.confops = &atlas7_pinconf_ops; in atlas7_pinmux_probe()
5405 pmx->regs[idx] = of_iomap(np, idx); in atlas7_pinmux_probe()
5406 if (!pmx->regs[idx]) { in atlas7_pinmux_probe()
5415 pmx->pctl = pinctrl_register(&pmx->pctl_desc, &pdev->dev, pmx); in atlas7_pinmux_probe()
5416 if (IS_ERR(pmx->pctl)) { in atlas7_pinmux_probe()
5418 ret = PTR_ERR(pmx->pctl); in atlas7_pinmux_probe()
5422 platform_set_drvdata(pdev, pmx); in atlas7_pinmux_probe()
5430 if (!pmx->regs[idx]) in atlas7_pinmux_probe()
5432 iounmap(pmx->regs[idx]); in atlas7_pinmux_probe()
5441 struct atlas7_pmx *pmx = dev_get_drvdata(dev); in atlas7_pinmux_suspend_noirq() local
5450 for (idx = 0; idx < pmx->pctl_desc.npins; idx++) { in atlas7_pinmux_suspend_noirq()
5452 conf = &pmx->pctl_data->confs[idx]; in atlas7_pinmux_suspend_noirq()
5454 status = &pmx->sleep_data[idx]; in atlas7_pinmux_suspend_noirq()
5457 regv = readl(pmx->regs[bank] + conf->mux_reg); in atlas7_pinmux_suspend_noirq()
5464 regv = readl(pmx->regs[bank] + conf->ad_ctrl_reg); in atlas7_pinmux_suspend_noirq()
5474 regv = readl(pmx->regs[bank] + conf->drvstr_reg); in atlas7_pinmux_suspend_noirq()
5480 regv = readl(pmx->regs[bank] + conf->pupd_reg); in atlas7_pinmux_suspend_noirq()
5490 pmx->status_ds[idx] = readl(pmx->regs[BANK_DS] + in atlas7_pinmux_suspend_noirq()
5492 pmx->status_dsv[idx] = readl(pmx->regs[BANK_DS] + in atlas7_pinmux_suspend_noirq()
5501 struct atlas7_pmx *pmx = dev_get_drvdata(dev); in atlas7_pinmux_resume_noirq() local
5507 for (idx = 0; idx < pmx->pctl_desc.npins; idx++) { in atlas7_pinmux_resume_noirq()
5509 conf = &pmx->pctl_data->confs[idx]; in atlas7_pinmux_resume_noirq()
5511 status = &pmx->sleep_data[idx]; in atlas7_pinmux_resume_noirq()
5514 __atlas7_pmx_pin_enable(pmx, idx, (u32)status->func & 0xff); in atlas7_pinmux_resume_noirq()
5520 __altas7_pinctrl_set_drive_strength_sel(pmx->pctl, idx, in atlas7_pinmux_resume_noirq()
5525 altas7_pinctrl_set_pull_sel(pmx->pctl, idx, in atlas7_pinmux_resume_noirq()
5534 writel(~0, pmx->regs[BANK_DS] + in atlas7_pinmux_resume_noirq()
5536 writel(pmx->status_ds[idx], pmx->regs[BANK_DS] + in atlas7_pinmux_resume_noirq()
5538 writel(~0, pmx->regs[BANK_DS] + in atlas7_pinmux_resume_noirq()
5540 writel(pmx->status_dsv[idx], pmx->regs[BANK_DS] + in atlas7_pinmux_resume_noirq()