• Home
  • Raw
  • Download

Lines Matching +full:multi +full:- +full:function

16 #include <linux/pinctrl/pinconf-generic.h>
21 * functions. The SoC function enabled on a pin is determined on a priority
26 * bits. Some difficulty arises as the pin's function bit masks for each
30 * values in the hardware strapping register (which is treated as read-only).
32 * SoC Multi-function Pin Expression Examples
33 * ------------------------------------------
39 * D6 is a pin with a single function (beside GPIO); a high priority signal
40 * that participates in one function:
43 * -----+---------+-----------+-----------------------------+-----------+---------------+----------
45 * -----+---------+-----------+-----------------------------+-----------+---------------+----------
47 * C5 is a multi-signal pin (high and low priority signals). Here we touch
50 * -----+---------+-----------+-----------------------------+-----------+---------------+----------
52 * -----+---------+-----------+-----------------------------+-----------+---------------+----------
54 * E19 is a single-signal pin with two functions that influence the active
55 * signal. In this case both bits have the same meaning - enable a dedicated
57 * OR-relationship have the same meaning.
59 * -----+---------+-----------+-----------------------------+-----------+---------------+----------
61 * -----+---------+-----------+-----------------------------+-----------+---------------+----------
63 * For example, pin B19 has a low-priority signal that's enabled by two
67 * priority function must be disabled for GPIOF1 to be used.
70 …* -----+---------+-----------+-----------------------------------------+-----------+--------------…
72 …* -----+---------+-----------+-----------------------------------------+-----------+--------------…
77 * * SCU3C[3]: Enable external SOC reset function
78 * * SCU80[15]: Enable SPICS1# or EXTRST# function pin
81 …* -----+---------+-----------+-----------------------------------------+-----------+--------------…
83 …* -----+---------+-----------+-----------------------------------------+-----------+--------------…
88 * Pin T5 is a multi-signal pin with a more complex configuration:
91 * -----+---------+-----------+------------------------------+-----------+---------------+----------
93 * -----+---------+-----------+------------------------------+-----------+---------------+----------
103 * Re-writing:
105 * -----+---------+-----------+------------------------------+-----------+---------------+----------
109 * -----+---------+-----------+------------------------------+-----------+---------------+----------
112 * function pin", where the signal itself is determined by whether SCU94[5:4]
115 * Other video-input-related pins require an explicit state in SCU90[5:4], e.g.
118 * -----+---------+-----------+------------------------------+-----------+---------------+----------
121 * -----+---------+-----------+------------------------------+-----------+---------------+----------
128 * signals are required. However, this isn't done consistently - UART1 is
129 * enabled on a per-pin basis, and by contrast, all signals for UART6 are
134 * function, but the UART signals should retain the ability to be configured
136 * signal's expressions with the function they participate in, rather than
137 * defining masks affecting multiple signals per function. The latter approach
143 …* -----+------------+-----------+---------------------------+-----------+---------------+---------…
146 …* -----+------------+-----------+---------------------------+-----------+---------------+---------…
148 * A12 demonstrates that the "Other" signal isn't always GPIO - in this case
149 * GPIOT0 is a high-priority signal and RGMII1TXCK is Other. Thus, GPIO
150 * should be treated like any other signal type with full function expression
153 * pins in the function's group to disable the higher-priority signals such
154 * that the signal for the function of interest is correctly enabled.
173 * * A function represents a set of signals; functions are distinct if their
178 * * A function is described by an expression of one or more signal
184 * * A function's signal is active on a pin if evaluating all signal
185 * descriptors in the pin's signal expression for the function yields a 'true'
192 * * GPIO is configured per-pin
196 * * To disable a signal, any function(s) activating the signal must be
200 * participates, for the purpose of enabling the Other function. This is done
210 * * The NDCD1 signal participates in just its own NDCD1 function
222 * --------------
224 * If pinctrl allows us to allocate a pin we can configure a function without
225 * concern for the function of already allocated pins, if pin groups are
241 * The "Multi-function Pins Mapping and Control" table in the SoC datasheet
244 * opposed to naming them e.g. PINMUX_CTRL_[0-9]). Further, signal expressions
255 #define SCU80 0x80 /* Multi-function Pin Control #1 */
256 #define SCU84 0x84 /* Multi-function Pin Control #2 */
257 #define SCU88 0x88 /* Multi-function Pin Control #3 */
258 #define SCU8C 0x8C /* Multi-function Pin Control #4 */
259 #define SCU90 0x90 /* Multi-function Pin Control #5 */
260 #define SCU94 0x94 /* Multi-function Pin Control #6 */
261 #define SCUA0 0xA0 /* Multi-function Pin Control #7 */
262 #define SCUA4 0xA4 /* Multi-function Pin Control #8 */
263 #define SCUA8 0xA8 /* Multi-function Pin Control #9 */
264 #define SCUAC 0xAC /* Multi-function Pin Control #10 */
276 * @enable: The value that enables the function. Value should be in the LSBs,
278 * @disable: The value that disables the function. Value should be in the
296 * @function: The name of the function the signal participates in for the
300 * function expression
304 const char *function; member
330 * Short-hand macro for describing an SCU descriptor enabled by the state of
335 * @val: The value (0 or 1) that enables the function
343 * A further short-hand macro expanding to an SCU descriptor enabled by a set
361 .function = #func, \
371 * @func: The function in which the signal is participating
374 * For example, the following declares the ROMD8 signal for the ROM16 function:
391 * @func: The macro symbol name for the function (subjected to token pasting)
403 * For example, the 16-bit ROM bus can be enabled by one of two possible signal
417 * A short-hand macro for declaring a function expression and an expression
418 * list with a single function.
420 * @func: A macro symbol name for the function (is subjected to token pasting)
421 * @...: Function descriptors that define the function expression
423 * For example, signal NCTS6 participates in its own function with one group:
448 * Declare a multi-signal pin
497 * Single signal, single function pin declaration
502 * @...: Signal descriptors that define the function expression
589 unsigned int function);
591 unsigned int function, const char * const **groups,
593 int aspeed_pinmux_set_mux(struct pinctrl_dev *pctldev, unsigned int function,