diff options
Diffstat (limited to 'ANDROID_3.4.5/include/linux/pinctrl')
-rw-r--r-- | ANDROID_3.4.5/include/linux/pinctrl/consumer.h | 159 | ||||
-rw-r--r-- | ANDROID_3.4.5/include/linux/pinctrl/machine.h | 167 | ||||
-rw-r--r-- | ANDROID_3.4.5/include/linux/pinctrl/pinconf-generic.h | 114 | ||||
-rw-r--r-- | ANDROID_3.4.5/include/linux/pinctrl/pinconf.h | 63 | ||||
-rw-r--r-- | ANDROID_3.4.5/include/linux/pinctrl/pinctrl-state.h | 6 | ||||
-rw-r--r-- | ANDROID_3.4.5/include/linux/pinctrl/pinctrl.h | 136 | ||||
-rw-r--r-- | ANDROID_3.4.5/include/linux/pinctrl/pinmux.h | 90 |
7 files changed, 0 insertions, 735 deletions
diff --git a/ANDROID_3.4.5/include/linux/pinctrl/consumer.h b/ANDROID_3.4.5/include/linux/pinctrl/consumer.h deleted file mode 100644 index 191e7268..00000000 --- a/ANDROID_3.4.5/include/linux/pinctrl/consumer.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Consumer interface the pin control subsystem - * - * Copyright (C) 2012 ST-Ericsson SA - * Written on behalf of Linaro for ST-Ericsson - * Based on bits of regulator core, gpio core and clk core - * - * Author: Linus Walleij <linus.walleij@linaro.org> - * - * License terms: GNU General Public License (GPL) version 2 - */ -#ifndef __LINUX_PINCTRL_CONSUMER_H -#define __LINUX_PINCTRL_CONSUMER_H - -#include <linux/err.h> -#include <linux/list.h> -#include <linux/seq_file.h> -#include "pinctrl-state.h" - -/* This struct is private to the core and should be regarded as a cookie */ -struct pinctrl; -struct pinctrl_state; - -#ifdef CONFIG_PINCTRL - -/* External interface to pin control */ -extern int pinctrl_request_gpio(unsigned gpio); -extern void pinctrl_free_gpio(unsigned gpio); -extern int pinctrl_gpio_direction_input(unsigned gpio); -extern int pinctrl_gpio_direction_output(unsigned gpio); - -extern struct pinctrl * __must_check pinctrl_get(struct device *dev); -extern void pinctrl_put(struct pinctrl *p); -extern struct pinctrl_state * __must_check pinctrl_lookup_state( - struct pinctrl *p, - const char *name); -extern int pinctrl_select_state(struct pinctrl *p, struct pinctrl_state *s); - -#else /* !CONFIG_PINCTRL */ - -static inline int pinctrl_request_gpio(unsigned gpio) -{ - return 0; -} - -static inline void pinctrl_free_gpio(unsigned gpio) -{ -} - -static inline int pinctrl_gpio_direction_input(unsigned gpio) -{ - return 0; -} - -static inline int pinctrl_gpio_direction_output(unsigned gpio) -{ - return 0; -} - -static inline struct pinctrl * __must_check pinctrl_get(struct device *dev) -{ - return NULL; -} - -static inline void pinctrl_put(struct pinctrl *p) -{ -} - -static inline struct pinctrl_state * __must_check pinctrl_lookup_state( - struct pinctrl *p, - const char *name) -{ - return NULL; -} - -static inline int pinctrl_select_state(struct pinctrl *p, - struct pinctrl_state *s) -{ - return 0; -} - -#endif /* CONFIG_PINCTRL */ - -static inline struct pinctrl * __must_check pinctrl_get_select( - struct device *dev, const char *name) -{ - struct pinctrl *p; - struct pinctrl_state *s; - int ret; - - p = pinctrl_get(dev); - if (IS_ERR(p)) - return p; - - s = pinctrl_lookup_state(p, name); - if (IS_ERR(s)) { - pinctrl_put(p); - return ERR_PTR(PTR_ERR(s)); - } - - ret = pinctrl_select_state(p, s); - if (ret < 0) { - pinctrl_put(p); - return ERR_PTR(ret); - } - - return p; -} - -static inline struct pinctrl * __must_check pinctrl_get_select_default( - struct device *dev) -{ - return pinctrl_get_select(dev, PINCTRL_STATE_DEFAULT); -} - -#ifdef CONFIG_PINCONF - -extern int pin_config_get(const char *dev_name, const char *name, - unsigned long *config); -extern int pin_config_set(const char *dev_name, const char *name, - unsigned long config); -extern int pin_config_group_get(const char *dev_name, - const char *pin_group, - unsigned long *config); -extern int pin_config_group_set(const char *dev_name, - const char *pin_group, - unsigned long config); - -#else - -static inline int pin_config_get(const char *dev_name, const char *name, - unsigned long *config) -{ - return 0; -} - -static inline int pin_config_set(const char *dev_name, const char *name, - unsigned long config) -{ - return 0; -} - -static inline int pin_config_group_get(const char *dev_name, - const char *pin_group, - unsigned long *config) -{ - return 0; -} - -static inline int pin_config_group_set(const char *dev_name, - const char *pin_group, - unsigned long config) -{ - return 0; -} - -#endif - -#endif /* __LINUX_PINCTRL_CONSUMER_H */ diff --git a/ANDROID_3.4.5/include/linux/pinctrl/machine.h b/ANDROID_3.4.5/include/linux/pinctrl/machine.h deleted file mode 100644 index e4d1de74..00000000 --- a/ANDROID_3.4.5/include/linux/pinctrl/machine.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Machine interface for the pinctrl subsystem. - * - * Copyright (C) 2011 ST-Ericsson SA - * Written on behalf of Linaro for ST-Ericsson - * Based on bits of regulator core, gpio core and clk core - * - * Author: Linus Walleij <linus.walleij@linaro.org> - * - * License terms: GNU General Public License (GPL) version 2 - */ -#ifndef __LINUX_PINCTRL_MACHINE_H -#define __LINUX_PINCTRL_MACHINE_H - -#include <linux/bug.h> - -#include "pinctrl-state.h" - -enum pinctrl_map_type { - PIN_MAP_TYPE_INVALID, - PIN_MAP_TYPE_DUMMY_STATE, - PIN_MAP_TYPE_MUX_GROUP, - PIN_MAP_TYPE_CONFIGS_PIN, - PIN_MAP_TYPE_CONFIGS_GROUP, -}; - -/** - * struct pinctrl_map_mux - mapping table content for MAP_TYPE_MUX_GROUP - * @group: the name of the group whose mux function is to be configured. This - * field may be left NULL, and the first applicable group for the function - * will be used. - * @function: the mux function to select for the group - */ -struct pinctrl_map_mux { - const char *group; - const char *function; -}; - -/** - * struct pinctrl_map_configs - mapping table content for MAP_TYPE_CONFIGS_* - * @group_or_pin: the name of the pin or group whose configuration parameters - * are to be configured. - * @configs: a pointer to an array of config parameters/values to program into - * hardware. Each individual pin controller defines the format and meaning - * of config parameters. - * @num_configs: the number of entries in array @configs - */ -struct pinctrl_map_configs { - const char *group_or_pin; - unsigned long *configs; - unsigned num_configs; -}; - -/** - * struct pinctrl_map - boards/machines shall provide this map for devices - * @dev_name: the name of the device using this specific mapping, the name - * must be the same as in your struct device*. If this name is set to the - * same name as the pin controllers own dev_name(), the map entry will be - * hogged by the driver itself upon registration - * @name: the name of this specific map entry for the particular machine. - * This is the parameter passed to pinmux_lookup_state() - * @type: the type of mapping table entry - * @ctrl_dev_name: the name of the device controlling this specific mapping, - * the name must be the same as in your struct device*. This field is not - * used for PIN_MAP_TYPE_DUMMY_STATE - * @data: Data specific to the mapping type - */ -struct pinctrl_map { - const char *dev_name; - const char *name; - enum pinctrl_map_type type; - const char *ctrl_dev_name; - union { - struct pinctrl_map_mux mux; - struct pinctrl_map_configs configs; - } data; -}; - -/* Convenience macros to create mapping table entries */ - -#define PIN_MAP_DUMMY_STATE(dev, state) \ - { \ - .dev_name = dev, \ - .name = state, \ - .type = PIN_MAP_TYPE_DUMMY_STATE, \ - } - -#define PIN_MAP_MUX_GROUP(dev, state, pinctrl, grp, func) \ - { \ - .dev_name = dev, \ - .name = state, \ - .type = PIN_MAP_TYPE_MUX_GROUP, \ - .ctrl_dev_name = pinctrl, \ - .data.mux = { \ - .group = grp, \ - .function = func, \ - }, \ - } - -#define PIN_MAP_MUX_GROUP_DEFAULT(dev, pinctrl, grp, func) \ - PIN_MAP_MUX_GROUP(dev, PINCTRL_STATE_DEFAULT, pinctrl, grp, func) - -#define PIN_MAP_MUX_GROUP_HOG(dev, state, grp, func) \ - PIN_MAP_MUX_GROUP(dev, state, dev, grp, func) - -#define PIN_MAP_MUX_GROUP_HOG_DEFAULT(dev, grp, func) \ - PIN_MAP_MUX_GROUP(dev, PINCTRL_STATE_DEFAULT, dev, grp, func) - -#define PIN_MAP_CONFIGS_PIN(dev, state, pinctrl, pin, cfgs) \ - { \ - .dev_name = dev, \ - .name = state, \ - .type = PIN_MAP_TYPE_CONFIGS_PIN, \ - .ctrl_dev_name = pinctrl, \ - .data.configs = { \ - .group_or_pin = pin, \ - .configs = cfgs, \ - .num_configs = ARRAY_SIZE(cfgs), \ - }, \ - } - -#define PIN_MAP_CONFIGS_PIN_DEFAULT(dev, pinctrl, pin, cfgs) \ - PIN_MAP_CONFIGS_PIN(dev, PINCTRL_STATE_DEFAULT, pinctrl, pin, cfgs) - -#define PIN_MAP_CONFIGS_PIN_HOG(dev, state, pin, cfgs) \ - PIN_MAP_CONFIGS_PIN(dev, state, dev, pin, cfgs) - -#define PIN_MAP_CONFIGS_PIN_HOG_DEFAULT(dev, pin, cfgs) \ - PIN_MAP_CONFIGS_PIN(dev, PINCTRL_STATE_DEFAULT, dev, pin, cfgs) - -#define PIN_MAP_CONFIGS_GROUP(dev, state, pinctrl, grp, cfgs) \ - { \ - .dev_name = dev, \ - .name = state, \ - .type = PIN_MAP_TYPE_CONFIGS_GROUP, \ - .ctrl_dev_name = pinctrl, \ - .data.configs = { \ - .group_or_pin = grp, \ - .configs = cfgs, \ - .num_configs = ARRAY_SIZE(cfgs), \ - }, \ - } - -#define PIN_MAP_CONFIGS_GROUP_DEFAULT(dev, pinctrl, grp, cfgs) \ - PIN_MAP_CONFIGS_GROUP(dev, PINCTRL_STATE_DEFAULT, pinctrl, grp, cfgs) - -#define PIN_MAP_CONFIGS_GROUP_HOG(dev, state, grp, cfgs) \ - PIN_MAP_CONFIGS_GROUP(dev, state, dev, grp, cfgs) - -#define PIN_MAP_CONFIGS_GROUP_HOG_DEFAULT(dev, grp, cfgs) \ - PIN_MAP_CONFIGS_GROUP(dev, PINCTRL_STATE_DEFAULT, dev, grp, cfgs) - -#ifdef CONFIG_PINCTRL - -extern int pinctrl_register_mappings(struct pinctrl_map const *map, - unsigned num_maps); - -#else - -static inline int pinctrl_register_mappings(struct pinctrl_map const *map, - unsigned num_maps) -{ - return 0; -} - -#endif /* !CONFIG_PINMUX */ -#endif diff --git a/ANDROID_3.4.5/include/linux/pinctrl/pinconf-generic.h b/ANDROID_3.4.5/include/linux/pinctrl/pinconf-generic.h deleted file mode 100644 index 4f0abb9f..00000000 --- a/ANDROID_3.4.5/include/linux/pinctrl/pinconf-generic.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Interface the generic pinconfig portions of the pinctrl subsystem - * - * Copyright (C) 2011 ST-Ericsson SA - * Written on behalf of Linaro for ST-Ericsson - * This interface is used in the core to keep track of pins. - * - * Author: Linus Walleij <linus.walleij@linaro.org> - * - * License terms: GNU General Public License (GPL) version 2 - */ -#ifndef __LINUX_PINCTRL_PINCONF_GENERIC_H -#define __LINUX_PINCTRL_PINCONF_GENERIC_H - -/* - * You shouldn't even be able to compile with these enums etc unless you're - * using generic pin config. That is why this is defined out. - */ -#ifdef CONFIG_GENERIC_PINCONF - -/** - * enum pin_config_param - possible pin configuration parameters - * @PIN_CONFIG_BIAS_DISABLE: disable any pin bias on the pin, a - * transition from say pull-up to pull-down implies that you disable - * pull-up in the process, this setting disables all biasing. - * @PIN_CONFIG_BIAS_HIGH_IMPEDANCE: the pin will be set to a high impedance - * mode, also know as "third-state" (tristate) or "high-Z" or "floating". - * On output pins this effectively disconnects the pin, which is useful - * if for example some other pin is going to drive the signal connected - * to it for a while. Pins used for input are usually always high - * impedance. - * @PIN_CONFIG_BIAS_PULL_UP: the pin will be pulled up (usually with high - * impedance to VDD). If the argument is != 0 pull-up is enabled, - * if it is 0, pull-up is disabled. - * @PIN_CONFIG_BIAS_PULL_DOWN: the pin will be pulled down (usually with high - * impedance to GROUND). If the argument is != 0 pull-down is enabled, - * if it is 0, pull-down is disabled. - * @PIN_CONFIG_DRIVE_PUSH_PULL: the pin will be driven actively high and - * low, this is the most typical case and is typically achieved with two - * active transistors on the output. Sending this config will enabale - * push-pull mode, the argument is ignored. - * @PIN_CONFIG_DRIVE_OPEN_DRAIN: the pin will be driven with open drain (open - * collector) which means it is usually wired with other output ports - * which are then pulled up with an external resistor. Sending this - * config will enabale open drain mode, the argument is ignored. - * @PIN_CONFIG_DRIVE_OPEN_SOURCE: the pin will be driven with open source - * (open emitter). Sending this config will enabale open drain mode, the - * argument is ignored. - * @PIN_CONFIG_INPUT_SCHMITT: this will configure an input pin to run in - * schmitt-trigger mode. If the schmitt-trigger has adjustable hysteresis, - * the threshold value is given on a custom format as argument when - * setting pins to this mode. The argument zero turns the schmitt trigger - * off. - * @PIN_CONFIG_INPUT_DEBOUNCE: this will configure the pin to debounce mode, - * which means it will wait for signals to settle when reading inputs. The - * argument gives the debounce time on a custom format. Setting the - * argument to zero turns debouncing off. - * @PIN_CONFIG_POWER_SOURCE: if the pin can select between different power - * supplies, the argument to this parameter (on a custom format) tells - * the driver which alternative power source to use. - * @PIN_CONFIG_LOW_POWER_MODE: this will configure the pin for low power - * operation, if several modes of operation are supported these can be - * passed in the argument on a custom form, else just use argument 1 - * to indicate low power mode, argument 0 turns low power mode off. - * @PIN_CONFIG_END: this is the last enumerator for pin configurations, if - * you need to pass in custom configurations to the pin controller, use - * PIN_CONFIG_END+1 as the base offset. - */ -enum pin_config_param { - PIN_CONFIG_BIAS_DISABLE, - PIN_CONFIG_BIAS_HIGH_IMPEDANCE, - PIN_CONFIG_BIAS_PULL_UP, - PIN_CONFIG_BIAS_PULL_DOWN, - PIN_CONFIG_DRIVE_PUSH_PULL, - PIN_CONFIG_DRIVE_OPEN_DRAIN, - PIN_CONFIG_DRIVE_OPEN_SOURCE, - PIN_CONFIG_INPUT_SCHMITT, - PIN_CONFIG_INPUT_DEBOUNCE, - PIN_CONFIG_POWER_SOURCE, - PIN_CONFIG_LOW_POWER_MODE, - PIN_CONFIG_END = 0x7FFF, -}; - -/* - * Helpful configuration macro to be used in tables etc. - */ -#define PIN_CONF_PACKED(p, a) ((a << 16) | ((unsigned long) p & 0xffffUL)) - -/* - * The following inlines stuffs a configuration parameter and data value - * into and out of an unsigned long argument, as used by the generic pin config - * system. We put the parameter in the lower 16 bits and the argument in the - * upper 16 bits. - */ - -static inline enum pin_config_param pinconf_to_config_param(unsigned long config) -{ - return (enum pin_config_param) (config & 0xffffUL); -} - -static inline u16 pinconf_to_config_argument(unsigned long config) -{ - return (enum pin_config_param) ((config >> 16) & 0xffffUL); -} - -static inline unsigned long pinconf_to_config_packed(enum pin_config_param param, - u16 argument) -{ - return PIN_CONF_PACKED(param, argument); -} - -#endif /* CONFIG_GENERIC_PINCONF */ - -#endif /* __LINUX_PINCTRL_PINCONF_GENERIC_H */ diff --git a/ANDROID_3.4.5/include/linux/pinctrl/pinconf.h b/ANDROID_3.4.5/include/linux/pinctrl/pinconf.h deleted file mode 100644 index ec431f03..00000000 --- a/ANDROID_3.4.5/include/linux/pinctrl/pinconf.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Interface the pinconfig portions of the pinctrl subsystem - * - * Copyright (C) 2011 ST-Ericsson SA - * Written on behalf of Linaro for ST-Ericsson - * This interface is used in the core to keep track of pins. - * - * Author: Linus Walleij <linus.walleij@linaro.org> - * - * License terms: GNU General Public License (GPL) version 2 - */ -#ifndef __LINUX_PINCTRL_PINCONF_H -#define __LINUX_PINCTRL_PINCONF_H - -#ifdef CONFIG_PINCONF - -struct pinctrl_dev; -struct seq_file; - -/** - * struct pinconf_ops - pin config operations, to be implemented by - * pin configuration capable drivers. - * @is_generic: for pin controllers that want to use the generic interface, - * this flag tells the framework that it's generic. - * @pin_config_get: get the config of a certain pin, if the requested config - * is not available on this controller this should return -ENOTSUPP - * and if it is available but disabled it should return -EINVAL - * @pin_config_get: get the config of a certain pin - * @pin_config_set: configure an individual pin - * @pin_config_group_get: get configurations for an entire pin group - * @pin_config_group_set: configure all pins in a group - * @pin_config_dbg_show: optional debugfs display hook that will provide - * per-device info for a certain pin in debugfs - * @pin_config_group_dbg_show: optional debugfs display hook that will provide - * per-device info for a certain group in debugfs - */ -struct pinconf_ops { -#ifdef CONFIG_GENERIC_PINCONF - bool is_generic; -#endif - int (*pin_config_get) (struct pinctrl_dev *pctldev, - unsigned pin, - unsigned long *config); - int (*pin_config_set) (struct pinctrl_dev *pctldev, - unsigned pin, - unsigned long config); - int (*pin_config_group_get) (struct pinctrl_dev *pctldev, - unsigned selector, - unsigned long *config); - int (*pin_config_group_set) (struct pinctrl_dev *pctldev, - unsigned selector, - unsigned long config); - void (*pin_config_dbg_show) (struct pinctrl_dev *pctldev, - struct seq_file *s, - unsigned offset); - void (*pin_config_group_dbg_show) (struct pinctrl_dev *pctldev, - struct seq_file *s, - unsigned selector); -}; - -#endif - -#endif /* __LINUX_PINCTRL_PINCONF_H */ diff --git a/ANDROID_3.4.5/include/linux/pinctrl/pinctrl-state.h b/ANDROID_3.4.5/include/linux/pinctrl/pinctrl-state.h deleted file mode 100644 index 3920e28b..00000000 --- a/ANDROID_3.4.5/include/linux/pinctrl/pinctrl-state.h +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Standard pin control state definitions - */ - -#define PINCTRL_STATE_DEFAULT "default" -#define PINCTRL_STATE_IDLE "idle" diff --git a/ANDROID_3.4.5/include/linux/pinctrl/pinctrl.h b/ANDROID_3.4.5/include/linux/pinctrl/pinctrl.h deleted file mode 100644 index 4e9f0788..00000000 --- a/ANDROID_3.4.5/include/linux/pinctrl/pinctrl.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Interface the pinctrl subsystem - * - * Copyright (C) 2011 ST-Ericsson SA - * Written on behalf of Linaro for ST-Ericsson - * This interface is used in the core to keep track of pins. - * - * Author: Linus Walleij <linus.walleij@linaro.org> - * - * License terms: GNU General Public License (GPL) version 2 - */ -#ifndef __LINUX_PINCTRL_PINCTRL_H -#define __LINUX_PINCTRL_PINCTRL_H - -#ifdef CONFIG_PINCTRL - -#include <linux/radix-tree.h> -#include <linux/list.h> -#include <linux/seq_file.h> -#include "pinctrl-state.h" - -struct device; -struct pinctrl_dev; -struct pinmux_ops; -struct pinconf_ops; -struct gpio_chip; - -/** - * struct pinctrl_pin_desc - boards/machines provide information on their - * pins, pads or other muxable units in this struct - * @number: unique pin number from the global pin number space - * @name: a name for this pin - */ -struct pinctrl_pin_desc { - unsigned number; - const char *name; -}; - -/* Convenience macro to define a single named or anonymous pin descriptor */ -#define PINCTRL_PIN(a, b) { .number = a, .name = b } -#define PINCTRL_PIN_ANON(a) { .number = a } - -/** - * struct pinctrl_gpio_range - each pin controller can provide subranges of - * the GPIO number space to be handled by the controller - * @node: list node for internal use - * @name: a name for the chip in this range - * @id: an ID number for the chip in this range - * @base: base offset of the GPIO range - * @pin_base: base pin number of the GPIO range - * @npins: number of pins in the GPIO range, including the base number - * @gc: an optional pointer to a gpio_chip - */ -struct pinctrl_gpio_range { - struct list_head node; - const char *name; - unsigned int id; - unsigned int base; - unsigned int pin_base; - unsigned int npins; - struct gpio_chip *gc; -}; - -/** - * struct pinctrl_ops - global pin control operations, to be implemented by - * pin controller drivers. - * @list_groups: list the number of selectable named groups available - * in this pinmux driver, the core will begin on 0 and call this - * repeatedly as long as it returns >= 0 to enumerate the groups - * @get_group_name: return the group name of the pin group - * @get_group_pins: return an array of pins corresponding to a certain - * group selector @pins, and the size of the array in @num_pins - * @pin_dbg_show: optional debugfs display hook that will provide per-device - * info for a certain pin in debugfs - */ -struct pinctrl_ops { - int (*list_groups) (struct pinctrl_dev *pctldev, unsigned selector); - const char *(*get_group_name) (struct pinctrl_dev *pctldev, - unsigned selector); - int (*get_group_pins) (struct pinctrl_dev *pctldev, - unsigned selector, - const unsigned **pins, - unsigned *num_pins); - void (*pin_dbg_show) (struct pinctrl_dev *pctldev, struct seq_file *s, - unsigned offset); -}; - -/** - * struct pinctrl_desc - pin controller descriptor, register this to pin - * control subsystem - * @name: name for the pin controller - * @pins: an array of pin descriptors describing all the pins handled by - * this pin controller - * @npins: number of descriptors in the array, usually just ARRAY_SIZE() - * of the pins field above - * @pctlops: pin control operation vtable, to support global concepts like - * grouping of pins, this is optional. - * @pmxops: pinmux operations vtable, if you support pinmuxing in your driver - * @confops: pin config operations vtable, if you support pin configuration in - * your driver - * @owner: module providing the pin controller, used for refcounting - */ -struct pinctrl_desc { - const char *name; - struct pinctrl_pin_desc const *pins; - unsigned int npins; - struct pinctrl_ops *pctlops; - struct pinmux_ops *pmxops; - struct pinconf_ops *confops; - struct module *owner; -}; - -/* External interface to pin controller */ -extern struct pinctrl_dev *pinctrl_register(struct pinctrl_desc *pctldesc, - struct device *dev, void *driver_data); -extern void pinctrl_unregister(struct pinctrl_dev *pctldev); -extern bool pin_is_valid(struct pinctrl_dev *pctldev, int pin); -extern void pinctrl_add_gpio_range(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range); -extern void pinctrl_remove_gpio_range(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range); -extern const char *pinctrl_dev_get_name(struct pinctrl_dev *pctldev); -extern void *pinctrl_dev_get_drvdata(struct pinctrl_dev *pctldev); -#else - -struct pinctrl_dev; - -/* Sufficiently stupid default functions when pinctrl is not in use */ -static inline bool pin_is_valid(struct pinctrl_dev *pctldev, int pin) -{ - return pin >= 0; -} - -#endif /* !CONFIG_PINCTRL */ - -#endif /* __LINUX_PINCTRL_PINCTRL_H */ diff --git a/ANDROID_3.4.5/include/linux/pinctrl/pinmux.h b/ANDROID_3.4.5/include/linux/pinctrl/pinmux.h deleted file mode 100644 index 47e9237e..00000000 --- a/ANDROID_3.4.5/include/linux/pinctrl/pinmux.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Interface the pinmux subsystem - * - * Copyright (C) 2011 ST-Ericsson SA - * Written on behalf of Linaro for ST-Ericsson - * Based on bits of regulator core, gpio core and clk core - * - * Author: Linus Walleij <linus.walleij@linaro.org> - * - * License terms: GNU General Public License (GPL) version 2 - */ -#ifndef __LINUX_PINCTRL_PINMUX_H -#define __LINUX_PINCTRL_PINMUX_H - -#include <linux/list.h> -#include <linux/seq_file.h> -#include "pinctrl.h" - -#ifdef CONFIG_PINMUX - -struct pinctrl_dev; - -/** - * struct pinmux_ops - pinmux operations, to be implemented by pin controller - * drivers that support pinmuxing - * @request: called by the core to see if a certain pin can be made available - * available for muxing. This is called by the core to acquire the pins - * before selecting any actual mux setting across a function. The driver - * is allowed to answer "no" by returning a negative error code - * @free: the reverse function of the request() callback, frees a pin after - * being requested - * @list_functions: list the number of selectable named functions available - * in this pinmux driver, the core will begin on 0 and call this - * repeatedly as long as it returns >= 0 to enumerate mux settings - * @get_function_name: return the function name of the muxing selector, - * called by the core to figure out which mux setting it shall map a - * certain device to - * @get_function_groups: return an array of groups names (in turn - * referencing pins) connected to a certain function selector. The group - * name can be used with the generic @pinctrl_ops to retrieve the - * actual pins affected. The applicable groups will be returned in - * @groups and the number of groups in @num_groups - * @enable: enable a certain muxing function with a certain pin group. The - * driver does not need to figure out whether enabling this function - * conflicts some other use of the pins in that group, such collisions - * are handled by the pinmux subsystem. The @func_selector selects a - * certain function whereas @group_selector selects a certain set of pins - * to be used. On simple controllers the latter argument may be ignored - * @disable: disable a certain muxing selector with a certain pin group - * @gpio_request_enable: requests and enables GPIO on a certain pin. - * Implement this only if you can mux every pin individually as GPIO. The - * affected GPIO range is passed along with an offset(pin number) into that - * specific GPIO range - function selectors and pin groups are orthogonal - * to this, the core will however make sure the pins do not collide. - * @gpio_disable_free: free up GPIO muxing on a certain pin, the reverse of - * @gpio_request_enable - * @gpio_set_direction: Since controllers may need different configurations - * depending on whether the GPIO is configured as input or output, - * a direction selector function may be implemented as a backing - * to the GPIO controllers that need pin muxing. - */ -struct pinmux_ops { - int (*request) (struct pinctrl_dev *pctldev, unsigned offset); - int (*free) (struct pinctrl_dev *pctldev, unsigned offset); - int (*list_functions) (struct pinctrl_dev *pctldev, unsigned selector); - const char *(*get_function_name) (struct pinctrl_dev *pctldev, - unsigned selector); - int (*get_function_groups) (struct pinctrl_dev *pctldev, - unsigned selector, - const char * const **groups, - unsigned * const num_groups); - int (*enable) (struct pinctrl_dev *pctldev, unsigned func_selector, - unsigned group_selector); - void (*disable) (struct pinctrl_dev *pctldev, unsigned func_selector, - unsigned group_selector); - int (*gpio_request_enable) (struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, - unsigned offset); - void (*gpio_disable_free) (struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, - unsigned offset); - int (*gpio_set_direction) (struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, - unsigned offset, - bool input); -}; - -#endif /* CONFIG_PINMUX */ - -#endif /* __LINUX_PINCTRL_PINMUX_H */ |