mirror of
https://github.com/torvalds/linux.git
synced 2024-12-17 08:31:39 +00:00
128a06d4bb
This solves the riddle on how the U300 pin controller shall be able to reference the struct gpio_chip even though these are two separate drivers: spawn the pinctrl child from the GPIO driver and pass in the struct gpio_chip as platform data. In the process we rename the U300 "pinmux-u300" to "pinctrl-u300" so as not to confuse. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
38 lines
1.0 KiB
C
38 lines
1.0 KiB
C
/*
|
|
* Copyright (C) 2007-2011 ST-Ericsson AB
|
|
* License terms: GNU General Public License (GPL) version 2
|
|
* GPIO block resgister definitions and inline macros for
|
|
* U300 GPIO COH 901 335 or COH 901 571/3
|
|
* Author: Linus Walleij <linus.walleij@stericsson.com>
|
|
*/
|
|
|
|
#ifndef __MACH_U300_GPIO_U300_H
|
|
#define __MACH_U300_GPIO_U300_H
|
|
|
|
/**
|
|
* enum u300_gpio_variant - the type of U300 GPIO employed
|
|
*/
|
|
enum u300_gpio_variant {
|
|
U300_GPIO_COH901335,
|
|
U300_GPIO_COH901571_3_BS335,
|
|
U300_GPIO_COH901571_3_BS365,
|
|
};
|
|
|
|
/**
|
|
* struct u300_gpio_platform - U300 GPIO platform data
|
|
* @variant: IP block variant
|
|
* @ports: number of GPIO block ports
|
|
* @gpio_base: first GPIO number for this block (use a free range)
|
|
* @gpio_irq_base: first GPIO IRQ number for this block (use a free range)
|
|
* @pinctrl_device: pin control device to spawn as child
|
|
*/
|
|
struct u300_gpio_platform {
|
|
enum u300_gpio_variant variant;
|
|
u8 ports;
|
|
int gpio_base;
|
|
int gpio_irq_base;
|
|
struct platform_device *pinctrl_device;
|
|
};
|
|
|
|
#endif /* __MACH_U300_GPIO_U300_H */
|