static void mxs_gpio_set(struct gpio_chip *chip, unsigned offset, int value) { struct mxs_gpio_port *port = container_of(chip, struct mxs_gpio_port, chip); void __iomem *pin_addr = port->base + PINCTRL_DOUT(port->id); if (value) __mxs_setl(1 << offset, pin_addr); else __mxs_clrl(1 << offset, pin_addr); }
void gpio_set_value(int gp, int value) { uint32_t bank = PAD_BANK(gp); uint32_t offset = PINCTRL_DOUT(bank); struct mx28_register *reg = (struct mx28_register *)(MXS_PINCTRL_BASE + offset); if (value) writel(1 << PAD_PIN(gp), ®->reg_set); else writel(1 << PAD_PIN(gp), ®->reg_clr); }
void gpio_set_value(unsigned gpio, int value) { uint32_t bank = PAD_BANK(gpio); uint32_t offset = PINCTRL_DOUT(bank); struct mxs_register_32 *reg = (struct mxs_register_32 *)(MXS_PINCTRL_BASE + offset); if (value) writel(1 << PAD_PIN(gpio), ®->reg_set); else writel(1 << PAD_PIN(gpio), ®->reg_clr); }