Merge branches 'pm-avs', 'pm-clk', 'pm-devfreq' and 'pm-sleep'
[cascardo/linux.git] / drivers / gpio / gpio-octeon.c
index 62ae251..7665ebc 100644 (file)
@@ -41,7 +41,7 @@ struct octeon_gpio {
 
 static int octeon_gpio_dir_in(struct gpio_chip *chip, unsigned offset)
 {
-       struct octeon_gpio *gpio = container_of(chip, struct octeon_gpio, chip);
+       struct octeon_gpio *gpio = gpiochip_get_data(chip);
 
        cvmx_write_csr(gpio->register_base + bit_cfg_reg(offset), 0);
        return 0;
@@ -49,7 +49,7 @@ static int octeon_gpio_dir_in(struct gpio_chip *chip, unsigned offset)
 
 static void octeon_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 {
-       struct octeon_gpio *gpio = container_of(chip, struct octeon_gpio, chip);
+       struct octeon_gpio *gpio = gpiochip_get_data(chip);
        u64 mask = 1ull << offset;
        u64 reg = gpio->register_base + (value ? TX_SET : TX_CLEAR);
        cvmx_write_csr(reg, mask);
@@ -58,7 +58,7 @@ static void octeon_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 static int octeon_gpio_dir_out(struct gpio_chip *chip, unsigned offset,
                               int value)
 {
-       struct octeon_gpio *gpio = container_of(chip, struct octeon_gpio, chip);
+       struct octeon_gpio *gpio = gpiochip_get_data(chip);
        union cvmx_gpio_bit_cfgx cfgx;
 
        octeon_gpio_set(chip, offset, value);
@@ -72,7 +72,7 @@ static int octeon_gpio_dir_out(struct gpio_chip *chip, unsigned offset,
 
 static int octeon_gpio_get(struct gpio_chip *chip, unsigned offset)
 {
-       struct octeon_gpio *gpio = container_of(chip, struct octeon_gpio, chip);
+       struct octeon_gpio *gpio = gpiochip_get_data(chip);
        u64 read_bits = cvmx_read_csr(gpio->register_base + RX_DAT);
 
        return ((1ull << offset) & read_bits) != 0;
@@ -108,7 +108,7 @@ static int octeon_gpio_probe(struct platform_device *pdev)
 
        pdev->dev.platform_data = chip;
        chip->label = "octeon-gpio";
-       chip->dev = &pdev->dev;
+       chip->parent = &pdev->dev;
        chip->owner = THIS_MODULE;
        chip->base = 0;
        chip->can_sleep = false;
@@ -117,7 +117,7 @@ static int octeon_gpio_probe(struct platform_device *pdev)
        chip->get = octeon_gpio_get;
        chip->direction_output = octeon_gpio_dir_out;
        chip->set = octeon_gpio_set;
-       err = gpiochip_add(chip);
+       err = gpiochip_add_data(chip, gpio);
        if (err)
                goto out;
 
@@ -128,7 +128,7 @@ out:
 
 static int octeon_gpio_remove(struct platform_device *pdev)
 {
-       struct gpio_chip *chip = pdev->dev.platform_data;
+       struct gpio_chip *chip = dev_get_platdata(&pdev->dev);
        gpiochip_remove(chip);
        return 0;
 }