Lines Matching refs:chip

51 static void gpio_get_data_reg(struct sh_pfc_chip *chip, unsigned int offset,  in gpio_get_data_reg()  argument
55 int idx = sh_pfc_get_pin_index(chip->pfc, offset); in gpio_get_data_reg()
56 struct sh_pfc_gpio_pin *gpio_pin = &chip->pins[idx]; in gpio_get_data_reg()
58 *reg = &chip->regs[gpio_pin->dreg]; in gpio_get_data_reg()
62 static u32 gpio_read_data_reg(struct sh_pfc_chip *chip, in gpio_read_data_reg() argument
66 void __iomem *mem = address - chip->mem->phys + chip->mem->virt; in gpio_read_data_reg()
71 static void gpio_write_data_reg(struct sh_pfc_chip *chip, in gpio_write_data_reg() argument
75 void __iomem *mem = address - chip->mem->phys + chip->mem->virt; in gpio_write_data_reg()
80 static void gpio_setup_data_reg(struct sh_pfc_chip *chip, unsigned idx) in gpio_setup_data_reg() argument
82 struct sh_pfc *pfc = chip->pfc; in gpio_setup_data_reg()
83 struct sh_pfc_gpio_pin *gpio_pin = &chip->pins[idx]; in gpio_setup_data_reg()
102 static int gpio_setup_data_regs(struct sh_pfc_chip *chip) in gpio_setup_data_regs() argument
104 struct sh_pfc *pfc = chip->pfc; in gpio_setup_data_regs()
114 chip->regs = devm_kzalloc(pfc->dev, i * sizeof(*chip->regs), in gpio_setup_data_regs()
116 if (chip->regs == NULL) in gpio_setup_data_regs()
120 chip->regs[i].info = dreg; in gpio_setup_data_regs()
121 chip->regs[i].shadow = gpio_read_data_reg(chip, dreg); in gpio_setup_data_regs()
128 gpio_setup_data_reg(chip, i); in gpio_setup_data_regs()
154 static void gpio_pin_set_value(struct sh_pfc_chip *chip, unsigned offset, in gpio_pin_set_value() argument
161 gpio_get_data_reg(chip, offset, &reg, &bit); in gpio_pin_set_value()
170 gpio_write_data_reg(chip, reg->info, reg->shadow); in gpio_pin_set_value()
188 struct sh_pfc_chip *chip = gpio_to_pfc_chip(gc); in gpio_pin_get() local
193 gpio_get_data_reg(chip, offset, &reg, &bit); in gpio_pin_get()
197 return (gpio_read_data_reg(chip, reg->info) >> pos) & 1; in gpio_pin_get()
225 static int gpio_pin_setup(struct sh_pfc_chip *chip) in gpio_pin_setup() argument
227 struct sh_pfc *pfc = chip->pfc; in gpio_pin_setup()
228 struct gpio_chip *gc = &chip->gpio_chip; in gpio_pin_setup()
231 chip->pins = devm_kzalloc(pfc->dev, pfc->info->nr_pins * in gpio_pin_setup()
232 sizeof(*chip->pins), GFP_KERNEL); in gpio_pin_setup()
233 if (chip->pins == NULL) in gpio_pin_setup()
236 ret = gpio_setup_data_regs(chip); in gpio_pin_setup()
287 static int gpio_function_setup(struct sh_pfc_chip *chip) in gpio_function_setup() argument
289 struct sh_pfc *pfc = chip->pfc; in gpio_function_setup()
290 struct gpio_chip *gc = &chip->gpio_chip; in gpio_function_setup()
311 struct sh_pfc_chip *chip; in sh_pfc_add_gpiochip() local
314 chip = devm_kzalloc(pfc->dev, sizeof(*chip), GFP_KERNEL); in sh_pfc_add_gpiochip()
315 if (unlikely(!chip)) in sh_pfc_add_gpiochip()
318 chip->mem = mem; in sh_pfc_add_gpiochip()
319 chip->pfc = pfc; in sh_pfc_add_gpiochip()
321 ret = setup(chip); in sh_pfc_add_gpiochip()
325 ret = gpiochip_add(&chip->gpio_chip); in sh_pfc_add_gpiochip()
330 chip->gpio_chip.label, chip->gpio_chip.base, in sh_pfc_add_gpiochip()
331 chip->gpio_chip.base + chip->gpio_chip.ngpio - 1); in sh_pfc_add_gpiochip()
333 return chip; in sh_pfc_add_gpiochip()
338 struct sh_pfc_chip *chip; in sh_pfc_register_gpiochip() local
369 chip = sh_pfc_add_gpiochip(pfc, gpio_pin_setup, &pfc->windows[i]); in sh_pfc_register_gpiochip()
370 if (IS_ERR(chip)) in sh_pfc_register_gpiochip()
371 return PTR_ERR(chip); in sh_pfc_register_gpiochip()
373 pfc->gpio = chip; in sh_pfc_register_gpiochip()
392 ret = gpiochip_add_pin_range(&chip->gpio_chip, in sh_pfc_register_gpiochip()
403 chip = sh_pfc_add_gpiochip(pfc, gpio_function_setup, NULL); in sh_pfc_register_gpiochip()
404 if (IS_ERR(chip)) in sh_pfc_register_gpiochip()
405 return PTR_ERR(chip); in sh_pfc_register_gpiochip()
407 pfc->func = chip; in sh_pfc_register_gpiochip()