xref: /openbmc/linux/arch/arm/mach-shmobile/sh73a0.h (revision ded59d6dfc47683d1b810c069ed637e1e60e75fd)
1*ded59d6dSGeert Uytterhoeven #ifndef __ASM_SH73A0_H__
2*ded59d6dSGeert Uytterhoeven #define __ASM_SH73A0_H__
3*ded59d6dSGeert Uytterhoeven 
4*ded59d6dSGeert Uytterhoeven /* DMA slave IDs */
5*ded59d6dSGeert Uytterhoeven enum {
6*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_INVALID,
7*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF0_TX,
8*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF0_RX,
9*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF1_TX,
10*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF1_RX,
11*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF2_TX,
12*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF2_RX,
13*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF3_TX,
14*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF3_RX,
15*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF4_TX,
16*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF4_RX,
17*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF5_TX,
18*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF5_RX,
19*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF6_TX,
20*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF6_RX,
21*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF7_TX,
22*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF7_RX,
23*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF8_TX,
24*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SCIF8_RX,
25*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SDHI0_TX,
26*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SDHI0_RX,
27*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SDHI1_TX,
28*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SDHI1_RX,
29*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SDHI2_TX,
30*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_SDHI2_RX,
31*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_MMCIF_TX,
32*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_MMCIF_RX,
33*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_FSI2A_TX,
34*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_FSI2A_RX,
35*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_FSI2B_TX,
36*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_FSI2B_RX,
37*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_FSI2C_TX,
38*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_FSI2C_RX,
39*ded59d6dSGeert Uytterhoeven 	SHDMA_SLAVE_FSI2D_RX,
40*ded59d6dSGeert Uytterhoeven };
41*ded59d6dSGeert Uytterhoeven 
42*ded59d6dSGeert Uytterhoeven /*
43*ded59d6dSGeert Uytterhoeven  *		SH73A0 IRQ LOCATION TABLE
44*ded59d6dSGeert Uytterhoeven  *
45*ded59d6dSGeert Uytterhoeven  * 416	-----------------------------------------
46*ded59d6dSGeert Uytterhoeven  *		IRQ0-IRQ15
47*ded59d6dSGeert Uytterhoeven  * 431	-----------------------------------------
48*ded59d6dSGeert Uytterhoeven  * ...
49*ded59d6dSGeert Uytterhoeven  * 448	-----------------------------------------
50*ded59d6dSGeert Uytterhoeven  *		sh73a0-intcs
51*ded59d6dSGeert Uytterhoeven  *		sh73a0-intca-irq-pins
52*ded59d6dSGeert Uytterhoeven  * 680	-----------------------------------------
53*ded59d6dSGeert Uytterhoeven  * ...
54*ded59d6dSGeert Uytterhoeven  * 700	-----------------------------------------
55*ded59d6dSGeert Uytterhoeven  *		sh73a0-pint0
56*ded59d6dSGeert Uytterhoeven  * 731	-----------------------------------------
57*ded59d6dSGeert Uytterhoeven  * 732	-----------------------------------------
58*ded59d6dSGeert Uytterhoeven  *		sh73a0-pint1
59*ded59d6dSGeert Uytterhoeven  * 739	-----------------------------------------
60*ded59d6dSGeert Uytterhoeven  * ...
61*ded59d6dSGeert Uytterhoeven  * 800	-----------------------------------------
62*ded59d6dSGeert Uytterhoeven  *		IRQ16-IRQ31
63*ded59d6dSGeert Uytterhoeven  * 815	-----------------------------------------
64*ded59d6dSGeert Uytterhoeven  * ...
65*ded59d6dSGeert Uytterhoeven  * 928	-----------------------------------------
66*ded59d6dSGeert Uytterhoeven  *		sh73a0-intca-irq-pins
67*ded59d6dSGeert Uytterhoeven  * 943	-----------------------------------------
68*ded59d6dSGeert Uytterhoeven  */
69*ded59d6dSGeert Uytterhoeven 
70*ded59d6dSGeert Uytterhoeven /* PINT interrupts are located at Linux IRQ 700 and up */
71*ded59d6dSGeert Uytterhoeven #define SH73A0_PINT0_IRQ(irq) ((irq) + 700)
72*ded59d6dSGeert Uytterhoeven #define SH73A0_PINT1_IRQ(irq) ((irq) + 732)
73*ded59d6dSGeert Uytterhoeven 
74*ded59d6dSGeert Uytterhoeven extern void sh73a0_init_delay(void);
75*ded59d6dSGeert Uytterhoeven extern void sh73a0_init_irq(void);
76*ded59d6dSGeert Uytterhoeven extern void sh73a0_init_irq_dt(void);
77*ded59d6dSGeert Uytterhoeven extern void sh73a0_map_io(void);
78*ded59d6dSGeert Uytterhoeven extern void sh73a0_earlytimer_init(void);
79*ded59d6dSGeert Uytterhoeven extern void sh73a0_add_early_devices(void);
80*ded59d6dSGeert Uytterhoeven extern void sh73a0_add_standard_devices(void);
81*ded59d6dSGeert Uytterhoeven extern void sh73a0_add_standard_devices_dt(void);
82*ded59d6dSGeert Uytterhoeven extern void sh73a0_clock_init(void);
83*ded59d6dSGeert Uytterhoeven extern void sh73a0_pinmux_init(void);
84*ded59d6dSGeert Uytterhoeven extern void sh73a0_pm_init(void);
85*ded59d6dSGeert Uytterhoeven extern struct clk sh73a0_extal1_clk;
86*ded59d6dSGeert Uytterhoeven extern struct clk sh73a0_extal2_clk;
87*ded59d6dSGeert Uytterhoeven extern struct clk sh73a0_extcki_clk;
88*ded59d6dSGeert Uytterhoeven extern struct clk sh73a0_extalr_clk;
89*ded59d6dSGeert Uytterhoeven extern struct smp_operations sh73a0_smp_ops;
90*ded59d6dSGeert Uytterhoeven 
91*ded59d6dSGeert Uytterhoeven #endif /* __ASM_SH73A0_H__ */
92