Lines Matching defs:drvdata

172 static int samsung_dt_subnode_to_map(struct samsung_pinctrl_drv_data *drvdata,
252 struct samsung_pinctrl_drv_data *drvdata;
257 drvdata = pinctrl_dev_get_drvdata(pctldev);
264 return samsung_dt_subnode_to_map(drvdata, pctldev->dev,
270 ret = samsung_dt_subnode_to_map(drvdata, pctldev->dev, np, map,
323 struct samsung_pinctrl_drv_data *drvdata;
325 drvdata = pinctrl_dev_get_drvdata(pctldev);
326 return drvdata->nr_functions;
333 struct samsung_pinctrl_drv_data *drvdata;
335 drvdata = pinctrl_dev_get_drvdata(pctldev);
336 return drvdata->pmx_functions[selector].name;
344 struct samsung_pinctrl_drv_data *drvdata;
346 drvdata = pinctrl_dev_get_drvdata(pctldev);
347 *groups = drvdata->pmx_functions[selector].groups;
348 *num_groups = drvdata->pmx_functions[selector].num_groups;
356 static void pin_to_reg_bank(struct samsung_pinctrl_drv_data *drvdata,
362 b = drvdata->pin_banks;
378 struct samsung_pinctrl_drv_data *drvdata;
388 drvdata = pinctrl_dev_get_drvdata(pctldev);
389 func = &drvdata->pmx_functions[selector];
390 grp = &drvdata->pin_groups[group];
392 pin_to_reg_bank(drvdata, grp->pins[0], &reg, &pin_offset, &bank);
402 ret = clk_enable(drvdata->pclk);
417 clk_disable(drvdata->pclk);
442 struct samsung_pinctrl_drv_data *drvdata;
452 drvdata = pinctrl_dev_get_drvdata(pctldev);
453 pin_to_reg_bank(drvdata, pin, &reg_base, &pin_offset, &bank);
462 ret = clk_enable(drvdata->pclk);
464 dev_err(drvdata->dev, "failed to enable clock\n");
487 clk_disable(drvdata->pclk);
519 struct samsung_pinctrl_drv_data *drvdata;
523 drvdata = pinctrl_dev_get_drvdata(pctldev);
524 pins = drvdata->pin_groups[group].pins;
526 for (cnt = 0; cnt < drvdata->pin_groups[group].num_pins; cnt++)
536 struct samsung_pinctrl_drv_data *drvdata;
539 drvdata = pinctrl_dev_get_drvdata(pctldev);
540 pins = drvdata->pin_groups[group].pins;
578 struct samsung_pinctrl_drv_data *drvdata = bank->drvdata;
581 if (clk_enable(drvdata->pclk)) {
582 dev_err(drvdata->dev, "failed to enable clock\n");
590 clk_disable(drvdata->pclk);
600 struct samsung_pinctrl_drv_data *drvdata = bank->drvdata;
605 ret = clk_enable(drvdata->pclk);
607 dev_err(drvdata->dev, "failed to enable clock\n");
615 clk_disable(drvdata->pclk);
661 struct samsung_pinctrl_drv_data *drvdata = bank->drvdata;
665 ret = clk_enable(drvdata->pclk);
667 dev_err(drvdata->dev, "failed to enable clock\n");
675 clk_disable(drvdata->pclk);
685 struct samsung_pinctrl_drv_data *drvdata = bank->drvdata;
689 ret = clk_enable(drvdata->pclk);
691 dev_err(drvdata->dev, "failed to enable clock\n");
700 clk_disable(drvdata->pclk);
732 pinctrl_add_gpio_range(bank->drvdata->pctl_dev, &bank->grange);
739 struct samsung_pinctrl_drv_data *drvdata,
742 struct pinctrl_desc *ctrldesc = &drvdata->pctl;
765 struct samsung_pinctrl_drv_data *drvdata,
809 struct samsung_pinctrl_drv_data *drvdata,
856 ret = samsung_pinctrl_create_function(dev, drvdata,
870 ret = samsung_pinctrl_create_function(dev, drvdata,
895 struct samsung_pinctrl_drv_data *drvdata)
902 groups = samsung_pinctrl_create_groups(dev, drvdata, &grp_cnt);
908 functions = samsung_pinctrl_create_functions(dev, drvdata, &func_cnt);
914 drvdata->pin_groups = groups;
915 drvdata->nr_groups = grp_cnt;
916 drvdata->pmx_functions = functions;
917 drvdata->nr_functions = func_cnt;
924 struct samsung_pinctrl_drv_data *drvdata)
926 struct pinctrl_desc *ctrldesc = &drvdata->pctl;
939 drvdata->nr_pins, sizeof(*pindesc),
944 ctrldesc->npins = drvdata->nr_pins;
956 drvdata->nr_pins),
962 for (bank = 0; bank < drvdata->nr_banks; bank++) {
963 pin_bank = &drvdata->pin_banks[bank];
973 ret = samsung_pinctrl_parse_dt(pdev, drvdata);
977 ret = devm_pinctrl_register_and_init(&pdev->dev, ctrldesc, drvdata,
978 &drvdata->pctl_dev);
989 struct samsung_pinctrl_drv_data *drvdata)
991 struct samsung_pin_bank *bank = drvdata->pin_banks;
994 for (i = 0; i < drvdata->nr_banks; ++i, ++bank)
995 pinctrl_remove_gpio_range(drvdata->pctl_dev, &bank->grange);
1014 struct samsung_pinctrl_drv_data *drvdata)
1016 struct samsung_pin_bank *bank = drvdata->pin_banks;
1021 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) {
1173 bank->drvdata = d;
1194 struct samsung_pinctrl_drv_data *drvdata;
1199 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
1200 if (!drvdata)
1203 ctrl = samsung_pinctrl_get_soc_data(drvdata, pdev);
1208 drvdata->dev = dev;
1214 drvdata->irq = ret;
1217 drvdata->retention_ctrl = ctrl->retention_data->init(drvdata,
1219 if (IS_ERR(drvdata->retention_ctrl)) {
1220 ret = PTR_ERR(drvdata->retention_ctrl);
1225 drvdata->pclk = devm_clk_get_optional_prepared(dev, "pclk");
1226 if (IS_ERR(drvdata->pclk)) {
1227 ret = PTR_ERR(drvdata->pclk);
1231 ret = samsung_pinctrl_register(pdev, drvdata);
1236 ctrl->eint_gpio_init(drvdata);
1238 ctrl->eint_wkup_init(drvdata);
1240 ret = samsung_gpiolib_register(pdev, drvdata);
1244 ret = pinctrl_enable(drvdata->pctl_dev);
1248 platform_set_drvdata(pdev, drvdata);
1253 samsung_pinctrl_unregister(pdev, drvdata);
1255 samsung_banks_node_put(drvdata);
1266 struct samsung_pinctrl_drv_data *drvdata = dev_get_drvdata(dev);
1269 i = clk_enable(drvdata->pclk);
1271 dev_err(drvdata->dev,
1276 for (i = 0; i < drvdata->nr_banks; i++) {
1277 struct samsung_pin_bank *bank = &drvdata->pin_banks[i];
1305 clk_disable(drvdata->pclk);
1307 if (drvdata->suspend)
1308 drvdata->suspend(drvdata);
1309 if (drvdata->retention_ctrl && drvdata->retention_ctrl->enable)
1310 drvdata->retention_ctrl->enable(drvdata);
1325 struct samsung_pinctrl_drv_data *drvdata = dev_get_drvdata(dev);
1333 ret = clk_enable(drvdata->pclk);
1335 dev_err(drvdata->dev,
1340 if (drvdata->resume)
1341 drvdata->resume(drvdata);
1343 for (i = 0; i < drvdata->nr_banks; i++) {
1344 struct samsung_pin_bank *bank = &drvdata->pin_banks[i];
1374 clk_disable(drvdata->pclk);
1376 if (drvdata->retention_ctrl && drvdata->retention_ctrl->disable)
1377 drvdata->retention_ctrl->disable(drvdata);