Lines Matching refs:state
141 * @is_enabled: Set to false when GPIO should be put in high Z state.
225 static int pmic_gpio_read(struct pmic_gpio_state *state,
231 ret = regmap_read(state->map, pad->base + addr, &val);
233 dev_err(state->dev, "read 0x%x failed\n", addr);
240 static int pmic_gpio_write(struct pmic_gpio_state *state,
246 ret = regmap_write(state->map, pad->base + addr, val);
248 dev_err(state->dev, "write 0x%x failed\n", addr);
305 struct pmic_gpio_state *state = pinctrl_dev_get_drvdata(pctldev);
343 ret = pmic_gpio_write(state, pad,
349 ret = pmic_gpio_write(state, pad,
358 ret = pmic_gpio_write(state, pad,
367 ret = pmic_gpio_write(state, pad, PMIC_GPIO_REG_MODE_CTL, val);
374 return pmic_gpio_write(state, pad, PMIC_GPIO_REG_EN_CTL, val);
479 struct pmic_gpio_state *state = pinctrl_dev_get_drvdata(pctldev);
578 ret = pmic_gpio_write(state, pad, PMIC_GPIO_REG_DIG_VIN_CTL, val);
584 ret = pmic_gpio_write(state, pad, PMIC_GPIO_REG_DIG_PULL_CTL, val);
591 ret = pmic_gpio_write(state, pad, PMIC_GPIO_REG_DIG_OUT_CTL, val);
605 ret = pmic_gpio_write(state, pad, PMIC_GPIO_REG_DIG_IN_CTL, val);
619 ret = pmic_gpio_write(state, pad,
625 ret = pmic_gpio_write(state, pad,
634 ret = pmic_gpio_write(state, pad,
643 ret = pmic_gpio_write(state, pad, PMIC_GPIO_REG_MODE_CTL, val);
650 ret = pmic_gpio_write(state, pad, PMIC_GPIO_REG_EN_CTL, val);
658 struct pmic_gpio_state *state = pinctrl_dev_get_drvdata(pctldev);
677 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_EN_CTL);
683 ret = pmic_gpio_read(state, pad, PMIC_MPP_REG_RT_STS);
725 struct pmic_gpio_state *state = gpiochip_get_data(chip);
730 return pmic_gpio_config_set(state->ctrl, pin, &config, 1);
736 struct pmic_gpio_state *state = gpiochip_get_data(chip);
741 return pmic_gpio_config_set(state->ctrl, pin, &config, 1);
746 struct pmic_gpio_state *state = gpiochip_get_data(chip);
750 pad = state->ctrl->desc->pins[pin].drv_data;
756 ret = pmic_gpio_read(state, pad, PMIC_MPP_REG_RT_STS);
768 struct pmic_gpio_state *state = gpiochip_get_data(chip);
773 pmic_gpio_config_set(state->ctrl, pin, &config, 1);
791 struct pmic_gpio_state *state = gpiochip_get_data(chip);
795 pmic_gpio_config_dbg_show(state->ctrl, s, i);
811 static int pmic_gpio_populate(struct pmic_gpio_state *state,
816 type = pmic_gpio_read(state, pad, PMIC_GPIO_REG_TYPE);
821 dev_err(state->dev, "incorrect block type 0x%x at 0x%x\n",
826 subtype = pmic_gpio_read(state, pad, PMIC_GPIO_REG_SUBTYPE);
864 dev_err(state->dev, "unknown GPIO type 0x%x\n", subtype);
869 val = pmic_gpio_read(state, pad,
877 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_MODE_CTL);
883 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_MODE_CTL);
914 dev_err(state->dev, "unknown GPIO direction\n");
918 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_DIG_VIN_CTL);
925 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_DIG_PULL_CTL);
932 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_DIG_IN_CTL);
944 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_DIG_OUT_CTL);
955 val = pmic_gpio_read(state, pad,
972 struct pmic_gpio_state *state = container_of(domain->host_data,
977 fwspec->param[0] < 1 || fwspec->param[0] > state->chip.ngpio)
998 struct pmic_gpio_state *state = gpiochip_get_data(chip);
1000 *parent_hwirq = child_hwirq + state->pid_base;
1011 struct pmic_gpio_state *state = gpiochip_get_data(chip);
1017 fwspec->param[0] = state->usid;
1060 struct pmic_gpio_state *state;
1074 state = devm_kzalloc(dev, sizeof(*state), GFP_KERNEL);
1075 if (!state)
1078 platform_set_drvdata(pdev, state);
1080 state->dev = &pdev->dev;
1081 state->map = dev_get_regmap(dev->parent, NULL);
1083 state->usid = parent_spmi_dev->usid;
1084 state->pid_base = reg >> 8;
1119 ret = pmic_gpio_populate(state, pad);
1124 state->chip = pmic_gpio_gpio_template;
1125 state->chip.parent = dev;
1126 state->chip.base = -1;
1127 state->chip.ngpio = npins;
1128 state->chip.label = dev_name(dev);
1129 state->chip.of_gpio_n_cells = 2;
1130 state->chip.can_sleep = false;
1132 state->ctrl = devm_pinctrl_register(dev, pctrldesc, state);
1133 if (IS_ERR(state->ctrl))
1134 return PTR_ERR(state->ctrl);
1136 parent_node = of_irq_find_parent(state->dev->of_node);
1145 girq = &state->chip.irq;
1149 girq->fwnode = dev_fwnode(state->dev);
1156 ret = gpiochip_add_data(&state->chip, state);
1158 dev_err(state->dev, "can't add gpio chip\n");
1173 ret = gpiochip_add_pin_range(&state->chip, dev_name(dev), 0, 0,
1184 gpiochip_remove(&state->chip);
1190 struct pmic_gpio_state *state = platform_get_drvdata(pdev);
1192 gpiochip_remove(&state->chip);