gpio-sch311x.c (a02001086bbfb4da35d1228bebc2f1b442db455f) | gpio-sch311x.c (58383c78425e4ee1c077253cf297b641c861c02e) |
---|---|
1/* 2 * GPIO driver for the SMSC SCH311x Super-I/O chips 3 * 4 * Copyright (C) 2013 Bruno Randolf <br1@einfach.org> 5 * 6 * SuperIO functions and chip detection: 7 * (c) Copyright 2008 Wim Van Sebroeck <wim@iguana.be>. 8 * --- 135 unchanged lines hidden (view full) --- 144{ 145 struct sch311x_gpio_block *block = to_sch311x_gpio_block(chip); 146 147 if (block->config_regs[offset] == 0) /* GPIO is not available */ 148 return -ENODEV; 149 150 if (!request_region(block->runtime_reg + block->config_regs[offset], 151 1, DRV_NAME)) { | 1/* 2 * GPIO driver for the SMSC SCH311x Super-I/O chips 3 * 4 * Copyright (C) 2013 Bruno Randolf <br1@einfach.org> 5 * 6 * SuperIO functions and chip detection: 7 * (c) Copyright 2008 Wim Van Sebroeck <wim@iguana.be>. 8 * --- 135 unchanged lines hidden (view full) --- 144{ 145 struct sch311x_gpio_block *block = to_sch311x_gpio_block(chip); 146 147 if (block->config_regs[offset] == 0) /* GPIO is not available */ 148 return -ENODEV; 149 150 if (!request_region(block->runtime_reg + block->config_regs[offset], 151 1, DRV_NAME)) { |
152 dev_err(chip->dev, "Failed to request region 0x%04x.\n", | 152 dev_err(chip->parent, "Failed to request region 0x%04x.\n", |
153 block->runtime_reg + block->config_regs[offset]); 154 return -EBUSY; 155 } 156 return 0; 157} 158 159static void sch311x_gpio_free(struct gpio_chip *chip, unsigned offset) 160{ --- 95 unchanged lines hidden (view full) --- 256 block->chip.owner = THIS_MODULE; 257 block->chip.request = sch311x_gpio_request; 258 block->chip.free = sch311x_gpio_free; 259 block->chip.direction_input = sch311x_gpio_direction_in; 260 block->chip.direction_output = sch311x_gpio_direction_out; 261 block->chip.get = sch311x_gpio_get; 262 block->chip.set = sch311x_gpio_set; 263 block->chip.ngpio = 8; | 153 block->runtime_reg + block->config_regs[offset]); 154 return -EBUSY; 155 } 156 return 0; 157} 158 159static void sch311x_gpio_free(struct gpio_chip *chip, unsigned offset) 160{ --- 95 unchanged lines hidden (view full) --- 256 block->chip.owner = THIS_MODULE; 257 block->chip.request = sch311x_gpio_request; 258 block->chip.free = sch311x_gpio_free; 259 block->chip.direction_input = sch311x_gpio_direction_in; 260 block->chip.direction_output = sch311x_gpio_direction_out; 261 block->chip.get = sch311x_gpio_get; 262 block->chip.set = sch311x_gpio_set; 263 block->chip.ngpio = 8; |
264 block->chip.dev = &pdev->dev; | 264 block->chip.parent = &pdev->dev; |
265 block->chip.base = sch311x_gpio_blocks[i].base; 266 block->config_regs = sch311x_gpio_blocks[i].config_regs; 267 block->data_reg = sch311x_gpio_blocks[i].data_reg; 268 block->runtime_reg = pdata->runtime_reg; 269 270 err = gpiochip_add(&block->chip); 271 if (err < 0) { 272 dev_err(&pdev->dev, --- 166 unchanged lines hidden --- | 265 block->chip.base = sch311x_gpio_blocks[i].base; 266 block->config_regs = sch311x_gpio_blocks[i].config_regs; 267 block->data_reg = sch311x_gpio_blocks[i].data_reg; 268 block->runtime_reg = pdata->runtime_reg; 269 270 err = gpiochip_add(&block->chip); 271 if (err < 0) { 272 dev_err(&pdev->dev, --- 166 unchanged lines hidden --- |