summaryrefslogtreecommitdiff
path: root/arch/sh/include/mach-x3proto/mach/ilsel.h
blob: 47aeb4b55ea17bb7f6e5a8cb69c6992fe8647ed9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ASM_SH_ILSEL_H
#define __ASM_SH_ILSEL_H

typedef enum {
	ILSEL_NONE,
	ILSEL_LAN,
	ILSEL_USBH_I,
	ILSEL_USBH_S,
	ILSEL_USBH_V,
	ILSEL_RTC,
	ILSEL_USBP_I,
	ILSEL_USBP_S,
	ILSEL_USBP_V,
	ILSEL_KEY,

	/*
	 * ILSEL Aliases - corner cases for interleaved level tables.
	 *
	 * Someone thought this was a good idea and less hassle than
	 * demuxing a shared vector, really.
	 */

	/* ILSEL0 and 2 */
	ILSEL_FPGA0,
	ILSEL_FPGA1,
	ILSEL_EX1,
	ILSEL_EX2,
	ILSEL_EX3,
	ILSEL_EX4,

	/* ILSEL1 and 3 */
	ILSEL_FPGA2 = ILSEL_FPGA0,
	ILSEL_FPGA3 = ILSEL_FPGA1,
	ILSEL_EX5 = ILSEL_EX1,
	ILSEL_EX6 = ILSEL_EX2,
	ILSEL_EX7 = ILSEL_EX3,
	ILSEL_EX8 = ILSEL_EX4,
} ilsel_source_t;

/* arch/sh/boards/renesas/x3proto/ilsel.c */
int ilsel_enable(ilsel_source_t set);
int ilsel_enable_fixed(ilsel_source_t set, unsigned int level);
void ilsel_disable(unsigned int irq);

#endif /* __ASM_SH_ILSEL_H */