Lines Matching refs:state

158 static int pmic_mpp_read(struct pmic_mpp_state *state,  in pmic_mpp_read()  argument
164 ret = regmap_read(state->map, pad->base + addr, &val); in pmic_mpp_read()
166 dev_err(state->dev, "read 0x%x failed\n", addr); in pmic_mpp_read()
173 static int pmic_mpp_write(struct pmic_mpp_state *state, in pmic_mpp_write() argument
179 ret = regmap_write(state->map, pad->base + addr, val); in pmic_mpp_write()
181 dev_err(state->dev, "write 0x%x failed\n", addr); in pmic_mpp_write()
346 struct pmic_mpp_state *state = pinctrl_dev_get_drvdata(pctldev); in pmic_mpp_set_mux() local
377 ret = pmic_mpp_write(state, pad, PMIC_MPP_REG_MODE_CTL, val); in pmic_mpp_set_mux()
383 return pmic_mpp_write(state, pad, PMIC_MPP_REG_EN_CTL, val); in pmic_mpp_set_mux()
454 struct pmic_mpp_state *state = pinctrl_dev_get_drvdata(pctldev); in pmic_mpp_config_set() local
515 ret = pmic_mpp_write(state, pad, PMIC_MPP_REG_DIG_VIN_CTL, val); in pmic_mpp_config_set()
521 ret = pmic_mpp_write(state, pad, PMIC_MPP_REG_DIG_PULL_CTL, val); in pmic_mpp_config_set()
527 ret = pmic_mpp_write(state, pad, PMIC_MPP_REG_AIN_CTL, val); in pmic_mpp_config_set()
553 return pmic_mpp_write(state, pad, PMIC_MPP_REG_MODE_CTL, val); in pmic_mpp_config_set()
559 struct pmic_mpp_state *state = pinctrl_dev_get_drvdata(pctldev); in pmic_mpp_config_dbg_show() local
572 val = pmic_mpp_read(state, pad, PMIC_MPP_REG_EN_CTL); in pmic_mpp_config_dbg_show()
579 ret = pmic_mpp_read(state, pad, PMIC_MPP_REG_RT_STS); in pmic_mpp_config_dbg_show()
604 struct pmic_mpp_state *state = to_mpp_state(chip); in pmic_mpp_direction_input() local
609 return pmic_mpp_config_set(state->ctrl, pin, &config, 1); in pmic_mpp_direction_input()
615 struct pmic_mpp_state *state = to_mpp_state(chip); in pmic_mpp_direction_output() local
620 return pmic_mpp_config_set(state->ctrl, pin, &config, 1); in pmic_mpp_direction_output()
625 struct pmic_mpp_state *state = to_mpp_state(chip); in pmic_mpp_get() local
629 pad = state->ctrl->desc->pins[pin].drv_data; in pmic_mpp_get()
632 ret = pmic_mpp_read(state, pad, PMIC_MPP_REG_RT_STS); in pmic_mpp_get()
644 struct pmic_mpp_state *state = to_mpp_state(chip); in pmic_mpp_set() local
649 pmic_mpp_config_set(state->ctrl, pin, &config, 1); in pmic_mpp_set()
677 struct pmic_mpp_state *state = to_mpp_state(chip); in pmic_mpp_to_irq() local
680 pad = state->ctrl->desc->pins[pin].drv_data; in pmic_mpp_to_irq()
687 struct pmic_mpp_state *state = to_mpp_state(chip); in pmic_mpp_dbg_show() local
691 pmic_mpp_config_dbg_show(state->ctrl, s, i); in pmic_mpp_dbg_show()
708 static int pmic_mpp_populate(struct pmic_mpp_state *state, in pmic_mpp_populate() argument
713 type = pmic_mpp_read(state, pad, PMIC_MPP_REG_TYPE); in pmic_mpp_populate()
718 dev_err(state->dev, "incorrect block type 0x%x at 0x%x\n", in pmic_mpp_populate()
723 subtype = pmic_mpp_read(state, pad, PMIC_MPP_REG_SUBTYPE); in pmic_mpp_populate()
739 dev_err(state->dev, "unknown MPP type 0x%x at 0x%x\n", in pmic_mpp_populate()
744 val = pmic_mpp_read(state, pad, PMIC_MPP_REG_MODE_CTL); in pmic_mpp_populate()
785 dev_err(state->dev, "unknown MPP direction\n"); in pmic_mpp_populate()
792 val = pmic_mpp_read(state, pad, PMIC_MPP_REG_DIG_VIN_CTL); in pmic_mpp_populate()
799 val = pmic_mpp_read(state, pad, PMIC_MPP_REG_DIG_PULL_CTL); in pmic_mpp_populate()
806 val = pmic_mpp_read(state, pad, PMIC_MPP_REG_AIN_CTL); in pmic_mpp_populate()
824 struct pmic_mpp_state *state; in pmic_mpp_probe() local
840 state = devm_kzalloc(dev, sizeof(*state), GFP_KERNEL); in pmic_mpp_probe()
841 if (!state) in pmic_mpp_probe()
844 platform_set_drvdata(pdev, state); in pmic_mpp_probe()
846 state->dev = &pdev->dev; in pmic_mpp_probe()
847 state->map = dev_get_regmap(dev->parent, NULL); in pmic_mpp_probe()
881 ret = pmic_mpp_populate(state, pad); in pmic_mpp_probe()
886 state->chip = pmic_mpp_gpio_template; in pmic_mpp_probe()
887 state->chip.dev = dev; in pmic_mpp_probe()
888 state->chip.base = -1; in pmic_mpp_probe()
889 state->chip.ngpio = npins; in pmic_mpp_probe()
890 state->chip.label = dev_name(dev); in pmic_mpp_probe()
891 state->chip.of_gpio_n_cells = 2; in pmic_mpp_probe()
892 state->chip.can_sleep = false; in pmic_mpp_probe()
894 state->ctrl = pinctrl_register(pctrldesc, dev, state); in pmic_mpp_probe()
895 if (!state->ctrl) in pmic_mpp_probe()
898 ret = gpiochip_add(&state->chip); in pmic_mpp_probe()
900 dev_err(state->dev, "can't add gpio chip\n"); in pmic_mpp_probe()
904 ret = gpiochip_add_pin_range(&state->chip, dev_name(dev), 0, 0, npins); in pmic_mpp_probe()
913 gpiochip_remove(&state->chip); in pmic_mpp_probe()
915 pinctrl_unregister(state->ctrl); in pmic_mpp_probe()
921 struct pmic_mpp_state *state = platform_get_drvdata(pdev); in pmic_mpp_remove() local
923 gpiochip_remove(&state->chip); in pmic_mpp_remove()
924 pinctrl_unregister(state->ctrl); in pmic_mpp_remove()