Lines Matching refs:state
166 static int pmic_gpio_read(struct pmic_gpio_state *state, in pmic_gpio_read() argument
172 ret = regmap_read(state->map, pad->base + addr, &val); in pmic_gpio_read()
174 dev_err(state->dev, "read 0x%x failed\n", addr); in pmic_gpio_read()
181 static int pmic_gpio_write(struct pmic_gpio_state *state, in pmic_gpio_write() argument
187 ret = regmap_write(state->map, pad->base + addr, val); in pmic_gpio_write()
189 dev_err(state->dev, "write 0x%x failed\n", addr); in pmic_gpio_write()
246 struct pmic_gpio_state *state = pinctrl_dev_get_drvdata(pctldev); in pmic_gpio_set_mux() local
267 ret = pmic_gpio_write(state, pad, PMIC_GPIO_REG_MODE_CTL, val); in pmic_gpio_set_mux()
273 return pmic_gpio_write(state, pad, PMIC_GPIO_REG_EN_CTL, val); in pmic_gpio_set_mux()
340 struct pmic_gpio_state *state = pinctrl_dev_get_drvdata(pctldev); in pmic_gpio_config_set() local
410 ret = pmic_gpio_write(state, pad, PMIC_GPIO_REG_DIG_VIN_CTL, val); in pmic_gpio_config_set()
416 ret = pmic_gpio_write(state, pad, PMIC_GPIO_REG_DIG_PULL_CTL, val); in pmic_gpio_config_set()
423 ret = pmic_gpio_write(state, pad, PMIC_GPIO_REG_DIG_OUT_CTL, val); in pmic_gpio_config_set()
439 return pmic_gpio_write(state, pad, PMIC_GPIO_REG_MODE_CTL, val); in pmic_gpio_config_set()
445 struct pmic_gpio_state *state = pinctrl_dev_get_drvdata(pctldev); in pmic_gpio_config_dbg_show() local
464 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_EN_CTL); in pmic_gpio_config_dbg_show()
471 ret = pmic_gpio_read(state, pad, PMIC_MPP_REG_RT_STS); in pmic_gpio_config_dbg_show()
498 struct pmic_gpio_state *state = to_gpio_state(chip); in pmic_gpio_direction_input() local
503 return pmic_gpio_config_set(state->ctrl, pin, &config, 1); in pmic_gpio_direction_input()
509 struct pmic_gpio_state *state = to_gpio_state(chip); in pmic_gpio_direction_output() local
514 return pmic_gpio_config_set(state->ctrl, pin, &config, 1); in pmic_gpio_direction_output()
519 struct pmic_gpio_state *state = to_gpio_state(chip); in pmic_gpio_get() local
523 pad = state->ctrl->desc->pins[pin].drv_data; in pmic_gpio_get()
529 ret = pmic_gpio_read(state, pad, PMIC_MPP_REG_RT_STS); in pmic_gpio_get()
541 struct pmic_gpio_state *state = to_gpio_state(chip); in pmic_gpio_set() local
546 pmic_gpio_config_set(state->ctrl, pin, &config, 1); in pmic_gpio_set()
574 struct pmic_gpio_state *state = to_gpio_state(chip); in pmic_gpio_to_irq() local
577 pad = state->ctrl->desc->pins[pin].drv_data; in pmic_gpio_to_irq()
584 struct pmic_gpio_state *state = to_gpio_state(chip); in pmic_gpio_dbg_show() local
588 pmic_gpio_config_dbg_show(state->ctrl, s, i); in pmic_gpio_dbg_show()
605 static int pmic_gpio_populate(struct pmic_gpio_state *state, in pmic_gpio_populate() argument
610 type = pmic_gpio_read(state, pad, PMIC_GPIO_REG_TYPE); in pmic_gpio_populate()
615 dev_err(state->dev, "incorrect block type 0x%x at 0x%x\n", in pmic_gpio_populate()
620 subtype = pmic_gpio_read(state, pad, PMIC_GPIO_REG_SUBTYPE); in pmic_gpio_populate()
636 dev_err(state->dev, "unknown GPIO type 0x%x\n", subtype); in pmic_gpio_populate()
640 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_MODE_CTL); in pmic_gpio_populate()
662 dev_err(state->dev, "unknown GPIO direction\n"); in pmic_gpio_populate()
669 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_DIG_VIN_CTL); in pmic_gpio_populate()
676 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_DIG_PULL_CTL); in pmic_gpio_populate()
683 val = pmic_gpio_read(state, pad, PMIC_GPIO_REG_DIG_OUT_CTL); in pmic_gpio_populate()
704 struct pmic_gpio_state *state; in pmic_gpio_probe() local
721 state = devm_kzalloc(dev, sizeof(*state), GFP_KERNEL); in pmic_gpio_probe()
722 if (!state) in pmic_gpio_probe()
725 platform_set_drvdata(pdev, state); in pmic_gpio_probe()
727 state->dev = &pdev->dev; in pmic_gpio_probe()
728 state->map = dev_get_regmap(dev->parent, NULL); in pmic_gpio_probe()
767 ret = pmic_gpio_populate(state, pad); in pmic_gpio_probe()
772 state->chip = pmic_gpio_gpio_template; in pmic_gpio_probe()
773 state->chip.dev = dev; in pmic_gpio_probe()
774 state->chip.base = -1; in pmic_gpio_probe()
775 state->chip.ngpio = npins; in pmic_gpio_probe()
776 state->chip.label = dev_name(dev); in pmic_gpio_probe()
777 state->chip.of_gpio_n_cells = 2; in pmic_gpio_probe()
778 state->chip.can_sleep = false; in pmic_gpio_probe()
780 state->ctrl = pinctrl_register(pctrldesc, dev, state); in pmic_gpio_probe()
781 if (!state->ctrl) in pmic_gpio_probe()
784 ret = gpiochip_add(&state->chip); in pmic_gpio_probe()
786 dev_err(state->dev, "can't add gpio chip\n"); in pmic_gpio_probe()
790 ret = gpiochip_add_pin_range(&state->chip, dev_name(dev), 0, 0, npins); in pmic_gpio_probe()
799 gpiochip_remove(&state->chip); in pmic_gpio_probe()
801 pinctrl_unregister(state->ctrl); in pmic_gpio_probe()
807 struct pmic_gpio_state *state = platform_get_drvdata(pdev); in pmic_gpio_remove() local
809 gpiochip_remove(&state->chip); in pmic_gpio_remove()
810 pinctrl_unregister(state->ctrl); in pmic_gpio_remove()