Lines Matching full:bank

133 	struct aml_gpio_bank *bank = gpio_chip_to_bank(range->gc);  in aml_pctl_set_function()  local
137 if (!bank->reg_mux) in aml_pctl_set_function()
141 return regmap_update_bits(bank->reg_mux, reg, in aml_pctl_set_function()
211 struct aml_gpio_bank *bank = gpio_chip_to_bank(range->gc); in aml_calc_reg_and_bit() local
214 + bank->pc.bit_offset[reg_type]; in aml_calc_reg_and_bit()
215 *reg = (bank->pc.reg_offset[reg_type] + (*bit / 32)) * 4; in aml_calc_reg_and_bit()
225 struct aml_gpio_bank *bank = gpio_chip_to_bank(range->gc); in aml_pinconf_get_pull() local
231 ret = regmap_read(bank->reg_gpio, reg, &val); in aml_pinconf_get_pull()
240 ret = regmap_read(bank->reg_gpio, reg, &val); in aml_pinconf_get_pull()
259 struct aml_gpio_bank *bank = gpio_chip_to_bank(range->gc); in aml_pinconf_get_drive_strength() local
264 if (!bank->reg_ds) in aml_pinconf_get_drive_strength()
268 ret = regmap_read(bank->reg_ds, reg, &val); in aml_pinconf_get_drive_strength()
298 struct aml_gpio_bank *bank = gpio_chip_to_bank(range->gc); in aml_pinconf_get_gpio_bit() local
303 ret = regmap_read(bank->reg_gpio, reg, &val); in aml_pinconf_get_gpio_bit()
382 struct aml_gpio_bank *bank = gpio_chip_to_bank(range->gc); in aml_pinconf_disable_bias() local
387 return regmap_update_bits(bank->reg_gpio, reg, BIT(bit), 0); in aml_pinconf_disable_bias()
395 struct aml_gpio_bank *bank = gpio_chip_to_bank(range->gc); in aml_pinconf_enable_bias() local
403 ret = regmap_update_bits(bank->reg_gpio, reg, BIT(bit), val); in aml_pinconf_enable_bias()
408 return regmap_update_bits(bank->reg_gpio, reg, BIT(bit), BIT(bit)); in aml_pinconf_enable_bias()
417 struct aml_gpio_bank *bank = gpio_chip_to_bank(range->gc); in aml_pinconf_set_drive_strength() local
420 if (!bank->reg_ds) { in aml_pinconf_set_drive_strength()
442 return regmap_update_bits(bank->reg_ds, reg, 0x3 << bit, ds_val << bit); in aml_pinconf_set_drive_strength()
452 struct aml_gpio_bank *bank = gpio_chip_to_bank(range->gc); in aml_pinconf_set_gpio_bit() local
456 return regmap_update_bits(bank->reg_gpio, reg, BIT(bit), in aml_pinconf_set_gpio_bit()
702 * bank which includes gpio-controller property. The other one named
753 static inline int aml_gpio_calc_reg_and_bit(struct aml_gpio_bank *bank, in aml_gpio_calc_reg_and_bit() argument
759 *bit = gpio * aml_bit_strides[reg_type] + bank->pc.bit_offset[reg_type]; in aml_gpio_calc_reg_and_bit()
760 *reg = (bank->pc.reg_offset[reg_type] + (*bit / 32)) * 4; in aml_gpio_calc_reg_and_bit()
768 struct aml_gpio_bank *bank = gpiochip_get_data(chip); in aml_gpio_get_direction() local
772 aml_gpio_calc_reg_and_bit(bank, AML_REG_DIR, gpio, &reg, &bit); in aml_gpio_get_direction()
774 ret = regmap_read(bank->reg_gpio, reg, &val); in aml_gpio_get_direction()
783 struct aml_gpio_bank *bank = gpiochip_get_data(chip); in aml_gpio_direction_input() local
786 aml_gpio_calc_reg_and_bit(bank, AML_REG_DIR, gpio, &reg, &bit); in aml_gpio_direction_input()
788 return regmap_update_bits(bank->reg_gpio, reg, BIT(bit), BIT(bit)); in aml_gpio_direction_input()
794 struct aml_gpio_bank *bank = gpiochip_get_data(chip); in aml_gpio_direction_output() local
798 aml_gpio_calc_reg_and_bit(bank, AML_REG_DIR, gpio, &reg, &bit); in aml_gpio_direction_output()
799 ret = regmap_update_bits(bank->reg_gpio, reg, BIT(bit), 0); in aml_gpio_direction_output()
803 aml_gpio_calc_reg_and_bit(bank, AML_REG_OUT, gpio, &reg, &bit); in aml_gpio_direction_output()
805 return regmap_update_bits(bank->reg_gpio, reg, BIT(bit), in aml_gpio_direction_output()
811 struct aml_gpio_bank *bank = gpiochip_get_data(chip); in aml_gpio_set() local
814 aml_gpio_calc_reg_and_bit(bank, AML_REG_OUT, gpio, &reg, &bit); in aml_gpio_set()
816 regmap_update_bits(bank->reg_gpio, reg, BIT(bit), in aml_gpio_set()
822 struct aml_gpio_bank *bank = gpiochip_get_data(chip); in aml_gpio_get() local
825 aml_gpio_calc_reg_and_bit(bank, AML_REG_IN, gpio, &reg, &bit); in aml_gpio_get()
826 regmap_read(bank->reg_gpio, reg, &val); in aml_gpio_get()
844 struct aml_gpio_bank *bank) in init_bank_register_bit() argument
854 if (bank->bank_id == aml_rb->bank_id) { in init_bank_register_bit()
863 bank->pc.reg_offset[i] = aml_def_regoffs[i]; in init_bank_register_bit()
864 bank->pc.bit_offset[i] = 0; in init_bank_register_bit()
868 bank->pc.reg_offset[i] = aml_rb->reg_offs[i]; in init_bank_register_bit()
869 bank->pc.bit_offset[i] = aml_rb->bit_offs[i]; in init_bank_register_bit()
877 struct aml_gpio_bank *bank = &info->banks[bank_nr]; in aml_gpiolib_register_bank() local
883 dev_err(dev, "get num=%d bank identity fail\n", bank_nr); in aml_gpiolib_register_bank()
886 bank->bank_id = ret; in aml_gpiolib_register_bank()
888 bank->reg_mux = aml_map_resource(dev, bank->bank_id, np, "mux"); in aml_gpiolib_register_bank()
889 if (IS_ERR_OR_NULL(bank->reg_mux)) { in aml_gpiolib_register_bank()
890 if (bank->bank_id == AMLOGIC_GPIO_TEST_N || in aml_gpiolib_register_bank()
891 bank->bank_id == AMLOGIC_GPIO_ANALOG) in aml_gpiolib_register_bank()
892 bank->reg_mux = NULL; in aml_gpiolib_register_bank()
894 return dev_err_probe(dev, bank->reg_mux ? PTR_ERR(bank->reg_mux) : -ENOENT, in aml_gpiolib_register_bank()
898 bank->reg_gpio = aml_map_resource(dev, bank->bank_id, np, "gpio"); in aml_gpiolib_register_bank()
899 if (IS_ERR_OR_NULL(bank->reg_gpio)) in aml_gpiolib_register_bank()
900 return dev_err_probe(dev, bank->reg_gpio ? PTR_ERR(bank->reg_gpio) : -ENOENT, in aml_gpiolib_register_bank()
903 bank->reg_ds = aml_map_resource(dev, bank->bank_id, np, "ds"); in aml_gpiolib_register_bank()
904 if (IS_ERR_OR_NULL(bank->reg_ds)) { in aml_gpiolib_register_bank()
906 bank->reg_ds = bank->reg_gpio; in aml_gpiolib_register_bank()
909 bank->gpio_chip = aml_gpio_template; in aml_gpiolib_register_bank()
910 bank->gpio_chip.base = -1; in aml_gpiolib_register_bank()
911 bank->gpio_chip.ngpio = aml_bank_pins(np); in aml_gpiolib_register_bank()
912 bank->gpio_chip.fwnode = of_fwnode_handle(np); in aml_gpiolib_register_bank()
913 bank->gpio_chip.parent = dev; in aml_gpiolib_register_bank()
915 init_bank_register_bit(info, bank); in aml_gpiolib_register_bank()
916 bank->gpio_chip.label = aml_bank_name[bank->bank_id]; in aml_gpiolib_register_bank()
918 bank->pin_base = bank->bank_id << 8; in aml_gpiolib_register_bank()
931 int i = 0, j = 0, k = 0, bank; in aml_pctl_probe_dt() local
936 return dev_err_probe(dev, -EINVAL, "you need at least one gpio bank\n"); in aml_pctl_probe_dt()
961 bank = 0; in aml_pctl_probe_dt()
967 ret = aml_gpiolib_register_bank(info, bank, child); in aml_pctl_probe_dt()
971 k = info->banks[bank].pin_base; in aml_pctl_probe_dt()
972 bank_name = info->banks[bank].gpio_chip.label; in aml_pctl_probe_dt()
975 info->banks[bank].gpio_chip.ngpio); in aml_pctl_probe_dt()
979 for (j = 0; j < info->banks[bank].gpio_chip.ngpio; j++, k++) { in aml_pctl_probe_dt()
984 bank++; in aml_pctl_probe_dt()