1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ASM_SH_ILSEL_H
3#define __ASM_SH_ILSEL_H
4
5typedef 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 */
42int ilsel_enable(ilsel_source_t set);
43int ilsel_enable_fixed(ilsel_source_t set, unsigned int level);
44void ilsel_disable(unsigned int irq);
45
46#endif /* __ASM_SH_ILSEL_H */
47