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