static int dc_gpio_direction_input(struct gpio_chip *chip, unsigned gpio)
{
- struct dc_pinmap *pmap = container_of(chip, struct dc_pinmap, chip);
+ struct dc_pinmap *pmap = gpiochip_get_data(chip);
int reg_off = GP_DRIVE0(gpio/PINS_PER_COLLECTION);
int bit_off = gpio % PINS_PER_COLLECTION;
u8 drive;
static int dc_gpio_direction_output(struct gpio_chip *chip, unsigned gpio,
int value)
{
- struct dc_pinmap *pmap = container_of(chip, struct dc_pinmap, chip);
+ struct dc_pinmap *pmap = gpiochip_get_data(chip);
int reg_off = GP_DRIVE0(gpio/PINS_PER_COLLECTION);
int bit_off = gpio % PINS_PER_COLLECTION;
u8 drive;
static int dc_gpio_get(struct gpio_chip *chip, unsigned gpio)
{
- struct dc_pinmap *pmap = container_of(chip, struct dc_pinmap, chip);
+ struct dc_pinmap *pmap = gpiochip_get_data(chip);
int reg_off = GP_INPUT(gpio/PINS_PER_COLLECTION);
int bit_off = gpio % PINS_PER_COLLECTION;
u8 input;
static void dc_gpio_set(struct gpio_chip *chip, unsigned gpio, int value)
{
- struct dc_pinmap *pmap = container_of(chip, struct dc_pinmap, chip);
+ struct dc_pinmap *pmap = gpiochip_get_data(chip);
int reg_off = GP_OUTPUT0(gpio/PINS_PER_COLLECTION);
int bit_off = gpio % PINS_PER_COLLECTION;
u8 output;
spin_lock_init(&pmap->lock);
- ret = gpiochip_add(chip);
+ ret = gpiochip_add_data(chip, pmap);
if (ret < 0)
return ret;