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