/** * struct abx500_function - ABx500 pinctrl mux function * @name: The name of the function, exported to pinctrl core. * @groups: An array of pin groups that may select this function. * @ngroups: The number of entries in @groups.
*/ struct abx500_function { constchar *name; constchar * const *groups; unsigned ngroups;
};
/** * struct abx500_pingroup - describes a ABx500 pin group * @name: the name of this specific pin group * @pins: an array of discrete physical pins used in this group, taken * from the driver-local pin enumeration space * @num_pins: the number of pins in this group array, i.e. the number of * elements in .pins so we can iterate over that array * @altsetting: the altsetting to apply to all pins in this group to * configure them to be used by a function
*/ struct abx500_pingroup { constchar *name; constunsignedint *pins; constunsigned npins; int altsetting;
};
#define UNUSED -1 /** * struct alternate_functions * @pin_number: The pin number * @gpiosel_bit: Control bit in GPIOSEL register, * @alt_bit1: First AlternateFunction bit used to select the * alternate function * @alt_bit2: Second AlternateFunction bit used to select the * alternate function * * these 3 following fields are necessary due to none * coherency on how to select the altA, altB and altC * function between the ABx500 SOC family when using * alternatfunc register. * @alta_val: value to write in alternatfunc to select altA function * @altb_val: value to write in alternatfunc to select altB function * @altc_val: value to write in alternatfunc to select altC function
*/ struct alternate_functions { unsigned pin_number;
s8 gpiosel_bit;
s8 alt_bit1;
s8 alt_bit2;
u8 alta_val;
u8 altb_val;
u8 altc_val;
};
#define GPIO_IRQ_CLUSTER(a, b, c) \
{ \
.start = a, \
.end = b, \
.to_irq = c, \
}
/** * struct abx500_gpio_irq_cluster - indicates GPIOs which are interrupt * capable * @start: The pin number of the first pin interrupt capable * @end: The pin number of the last pin interrupt capable * @to_irq: The ABx500 GPIO's associated IRQs are clustered * together throughout the interrupt numbers at irregular * intervals. To solve this quandary, we will place the * read-in values into the cluster information table
*/
struct abx500_gpio_irq_cluster { int start; int end; int to_irq;
};
/** * struct abx500_pinrange - map pin numbers to GPIO offsets * @offset: offset into the GPIO local numberspace, incidentally * identical to the offset into the local pin numberspace * @npins: number of pins to map from both offsets * @altfunc: altfunc setting to be used to enable GPIO on a pin in * this range (may vary)
*/ struct abx500_pinrange { unsignedint offset; unsignedint npins; int altfunc;
};
#define ABX500_PINRANGE(a, b, c) { .offset = a, .npins = b, .altfunc = c }
/** * struct abx500_pinctrl_soc_data - ABx500 pin controller per-SoC configuration * @gpio_ranges: An array of GPIO ranges for this SoC * @gpio_num_ranges: The number of GPIO ranges for this SoC * @pins: An array describing all pins the pin controller affects. * All pins which are also GPIOs must be listed first within the * array, and be numbered identically to the GPIO controller's * numbering. * @npins: The number of entries in @pins. * @functions: The functions supported on this SoC. * @nfunction: The number of entries in @functions. * @groups: An array describing all pin groups the pin SoC supports. * @ngroups: The number of entries in @groups. * @alternate_functions: array describing pins which supports alternate and * how to set it. * @gpio_irq_cluster: An array of GPIO interrupt capable for this SoC * @ngpio_irq_cluster: The number of GPIO inetrrupt capable for this SoC * @irq_gpio_rising_offset: Interrupt offset used as base to compute specific * setting strategy of the rising interrupt line * @irq_gpio_falling_offset: Interrupt offset used as base to compute specific * setting strategy of the falling interrupt line * @irq_gpio_factor: Factor used to compute specific setting strategy of * the interrupt line
*/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.