Lines Matching refs:drvdata
187 static int samsung_dt_subnode_to_map(struct samsung_pinctrl_drv_data *drvdata, in samsung_dt_subnode_to_map() argument
267 struct samsung_pinctrl_drv_data *drvdata; in samsung_dt_node_to_map() local
272 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_dt_node_to_map()
279 return samsung_dt_subnode_to_map(drvdata, pctldev->dev, in samsung_dt_node_to_map()
285 ret = samsung_dt_subnode_to_map(drvdata, pctldev->dev, np, map, in samsung_dt_node_to_map()
308 struct samsung_pinctrl_drv_data *drvdata; in samsung_get_functions_count() local
310 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_get_functions_count()
311 return drvdata->nr_functions; in samsung_get_functions_count()
318 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinmux_get_fname() local
320 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinmux_get_fname()
321 return drvdata->pmx_functions[selector].name; in samsung_pinmux_get_fname()
329 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinmux_get_groups() local
331 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinmux_get_groups()
332 *groups = drvdata->pmx_functions[selector].groups; in samsung_pinmux_get_groups()
333 *num_groups = drvdata->pmx_functions[selector].num_groups; in samsung_pinmux_get_groups()
341 static void pin_to_reg_bank(struct samsung_pinctrl_drv_data *drvdata, in pin_to_reg_bank() argument
347 b = drvdata->pin_banks; in pin_to_reg_bank()
353 *reg = drvdata->virt_base + b->pctl_offset; in pin_to_reg_bank()
363 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinmux_setup() local
372 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinmux_setup()
373 func = &drvdata->pmx_functions[selector]; in samsung_pinmux_setup()
374 grp = &drvdata->pin_groups[group]; in samsung_pinmux_setup()
376 pin_to_reg_bank(drvdata, grp->pins[0] - drvdata->pin_base, in samsung_pinmux_setup()
419 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinconf_rw() local
428 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinconf_rw()
429 pin_to_reg_bank(drvdata, pin - drvdata->pin_base, ®_base, in samsung_pinconf_rw()
488 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinconf_group_set() local
492 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinconf_group_set()
493 pins = drvdata->pin_groups[group].pins; in samsung_pinconf_group_set()
495 for (cnt = 0; cnt < drvdata->pin_groups[group].num_pins; cnt++) in samsung_pinconf_group_set()
505 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinconf_group_get() local
508 drvdata = pinctrl_dev_get_drvdata(pctldev); in samsung_pinconf_group_get()
509 pins = drvdata->pin_groups[group].pins; in samsung_pinconf_group_get()
531 reg = bank->drvdata->virt_base + bank->pctl_offset; in samsung_gpio_set()
552 reg = bank->drvdata->virt_base + bank->pctl_offset; in samsung_gpio_get()
569 struct samsung_pinctrl_drv_data *drvdata; in samsung_gpio_set_direction() local
576 drvdata = bank->drvdata; in samsung_gpio_set_direction()
578 reg = drvdata->virt_base + bank->pctl_offset + in samsung_gpio_set_direction()
635 struct samsung_pinctrl_drv_data *drvdata, in samsung_pinctrl_create_groups() argument
638 struct pinctrl_desc *ctrldesc = &drvdata->pctl; in samsung_pinctrl_create_groups()
661 struct samsung_pinctrl_drv_data *drvdata, in samsung_pinctrl_create_function() argument
705 struct samsung_pinctrl_drv_data *drvdata, in samsung_pinctrl_create_functions() argument
754 ret = samsung_pinctrl_create_function(dev, drvdata, in samsung_pinctrl_create_functions()
766 ret = samsung_pinctrl_create_function(dev, drvdata, in samsung_pinctrl_create_functions()
788 struct samsung_pinctrl_drv_data *drvdata) in samsung_pinctrl_parse_dt() argument
795 groups = samsung_pinctrl_create_groups(dev, drvdata, &grp_cnt); in samsung_pinctrl_parse_dt()
801 functions = samsung_pinctrl_create_functions(dev, drvdata, &func_cnt); in samsung_pinctrl_parse_dt()
807 drvdata->pin_groups = groups; in samsung_pinctrl_parse_dt()
808 drvdata->nr_groups = grp_cnt; in samsung_pinctrl_parse_dt()
809 drvdata->pmx_functions = functions; in samsung_pinctrl_parse_dt()
810 drvdata->nr_functions = func_cnt; in samsung_pinctrl_parse_dt()
817 struct samsung_pinctrl_drv_data *drvdata) in samsung_pinctrl_register() argument
819 struct pinctrl_desc *ctrldesc = &drvdata->pctl; in samsung_pinctrl_register()
832 drvdata->nr_pins, GFP_KERNEL); in samsung_pinctrl_register()
838 ctrldesc->npins = drvdata->nr_pins; in samsung_pinctrl_register()
842 pdesc->number = pin + drvdata->pin_base; in samsung_pinctrl_register()
849 drvdata->nr_pins, GFP_KERNEL); in samsung_pinctrl_register()
856 for (bank = 0; bank < drvdata->nr_banks; bank++) { in samsung_pinctrl_register()
857 pin_bank = &drvdata->pin_banks[bank]; in samsung_pinctrl_register()
866 ret = samsung_pinctrl_parse_dt(pdev, drvdata); in samsung_pinctrl_register()
870 drvdata->pctl_dev = pinctrl_register(ctrldesc, &pdev->dev, drvdata); in samsung_pinctrl_register()
871 if (IS_ERR(drvdata->pctl_dev)) { in samsung_pinctrl_register()
873 return PTR_ERR(drvdata->pctl_dev); in samsung_pinctrl_register()
876 for (bank = 0; bank < drvdata->nr_banks; ++bank) { in samsung_pinctrl_register()
877 pin_bank = &drvdata->pin_banks[bank]; in samsung_pinctrl_register()
880 pin_bank->grange.pin_base = drvdata->pin_base in samsung_pinctrl_register()
885 pinctrl_add_gpio_range(drvdata->pctl_dev, &pin_bank->grange); in samsung_pinctrl_register()
904 struct samsung_pinctrl_drv_data *drvdata) in samsung_gpiolib_register() argument
906 struct samsung_pin_bank *bank = drvdata->pin_banks; in samsung_gpiolib_register()
911 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) { in samsung_gpiolib_register()
915 gc->base = drvdata->pin_base + bank->pin_base; in samsung_gpiolib_register()
939 struct samsung_pinctrl_drv_data *drvdata) in samsung_gpiolib_unregister() argument
941 struct samsung_pin_bank *bank = drvdata->pin_banks; in samsung_gpiolib_unregister()
944 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) in samsung_gpiolib_unregister()
995 bank->drvdata = d; in samsung_pinctrl_get_soc_data()
1020 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinctrl_probe() local
1031 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); in samsung_pinctrl_probe()
1032 if (!drvdata) { in samsung_pinctrl_probe()
1038 ctrl = samsung_pinctrl_get_soc_data(drvdata, pdev); in samsung_pinctrl_probe()
1043 drvdata->dev = dev; in samsung_pinctrl_probe()
1046 drvdata->virt_base = devm_ioremap_resource(&pdev->dev, res); in samsung_pinctrl_probe()
1047 if (IS_ERR(drvdata->virt_base)) in samsung_pinctrl_probe()
1048 return PTR_ERR(drvdata->virt_base); in samsung_pinctrl_probe()
1052 drvdata->irq = res->start; in samsung_pinctrl_probe()
1054 ret = samsung_gpiolib_register(pdev, drvdata); in samsung_pinctrl_probe()
1058 ret = samsung_pinctrl_register(pdev, drvdata); in samsung_pinctrl_probe()
1060 samsung_gpiolib_unregister(pdev, drvdata); in samsung_pinctrl_probe()
1065 ctrl->eint_gpio_init(drvdata); in samsung_pinctrl_probe()
1067 ctrl->eint_wkup_init(drvdata); in samsung_pinctrl_probe()
1069 platform_set_drvdata(pdev, drvdata); in samsung_pinctrl_probe()
1072 list_add_tail(&drvdata->node, &drvdata_list); in samsung_pinctrl_probe()
1085 struct samsung_pinctrl_drv_data *drvdata) in samsung_pinctrl_suspend_dev() argument
1087 void __iomem *virt_base = drvdata->virt_base; in samsung_pinctrl_suspend_dev()
1090 for (i = 0; i < drvdata->nr_banks; i++) { in samsung_pinctrl_suspend_dev()
1091 struct samsung_pin_bank *bank = &drvdata->pin_banks[i]; in samsung_pinctrl_suspend_dev()
1119 if (drvdata->suspend) in samsung_pinctrl_suspend_dev()
1120 drvdata->suspend(drvdata); in samsung_pinctrl_suspend_dev()
1131 static void samsung_pinctrl_resume_dev(struct samsung_pinctrl_drv_data *drvdata) in samsung_pinctrl_resume_dev() argument
1133 void __iomem *virt_base = drvdata->virt_base; in samsung_pinctrl_resume_dev()
1136 if (drvdata->resume) in samsung_pinctrl_resume_dev()
1137 drvdata->resume(drvdata); in samsung_pinctrl_resume_dev()
1139 for (i = 0; i < drvdata->nr_banks; i++) { in samsung_pinctrl_resume_dev()
1140 struct samsung_pin_bank *bank = &drvdata->pin_banks[i]; in samsung_pinctrl_resume_dev()
1178 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinctrl_suspend() local
1180 list_for_each_entry(drvdata, &drvdata_list, node) { in samsung_pinctrl_suspend()
1181 samsung_pinctrl_suspend_dev(drvdata); in samsung_pinctrl_suspend()
1194 struct samsung_pinctrl_drv_data *drvdata; in samsung_pinctrl_resume() local
1196 list_for_each_entry_reverse(drvdata, &drvdata_list, node) { in samsung_pinctrl_resume()
1197 samsung_pinctrl_resume_dev(drvdata); in samsung_pinctrl_resume()