xref: /linux/arch/sh/include/mach-x3proto/mach/ilsel.h (revision 2da68a77)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __ASM_SH_ILSEL_H
3 #define __ASM_SH_ILSEL_H
4 
5 typedef enum {
6 	ILSEL_NONE,
7 	ILSEL_LAN,
8 	ILSEL_USBH_I,
9 	ILSEL_USBH_S,
10 	ILSEL_USBH_V,
11 	ILSEL_RTC,
12 	ILSEL_USBP_I,
13 	ILSEL_USBP_S,
14 	ILSEL_USBP_V,
15 	ILSEL_KEY,
16 
17 	/*
18 	 * ILSEL Aliases - corner cases for interleaved level tables.
19 	 *
20 	 * Someone thought this was a good idea and less hassle than
21 	 * demuxing a shared vector, really.
22 	 */
23 
24 	/* ILSEL0 and 2 */
25 	ILSEL_FPGA0,
26 	ILSEL_FPGA1,
27 	ILSEL_EX1,
28 	ILSEL_EX2,
29 	ILSEL_EX3,
30 	ILSEL_EX4,
31 
32 	/* ILSEL1 and 3 */
33 	ILSEL_FPGA2 = ILSEL_FPGA0,
34 	ILSEL_FPGA3 = ILSEL_FPGA1,
35 	ILSEL_EX5 = ILSEL_EX1,
36 	ILSEL_EX6 = ILSEL_EX2,
37 	ILSEL_EX7 = ILSEL_EX3,
38 	ILSEL_EX8 = ILSEL_EX4,
39 } ilsel_source_t;
40 
41 /* arch/sh/boards/renesas/x3proto/ilsel.c */
42 int ilsel_enable(ilsel_source_t set);
43 int ilsel_enable_fixed(ilsel_source_t set, unsigned int level);
44 void ilsel_disable(unsigned int irq);
45 
46 #endif /* __ASM_SH_ILSEL_H */
47