1 #ifndef __ASM_ARCH_YOPY_H__
2 #define __ASM_ARCH_YOPY_H__
3 
4 /******************************************************************************
5  * Memory mappings
6  ******************************************************************************/
7 
8 /* Flash memories */
9 #define YOPY_FLASH0_BASE_P	(0x00000000)	/* CS0 */
10 #define YOPY_FLASH0_BASE_V	(0xe8000000)
11 #define YOPY_FLASH0_BASE	YOPY_FLASH0_BASE_V
12 #define YOPY_FLASH0_SIZE	(0x04000000)	/* map 64MB */
13 
14 #define YOPY_FLASH1_BASE_P	(0x08000000)	/* CS1 */
15 #define YOPY_FLASH1_BASE_V	(YOPY_FLASH0_BASE_V + YOPY_FLASH0_SIZE)
16 #define YOPY_FLASH1_BASE	YOPY_FLASH1_BASE_V
17 #define YOPY_FLASH1_SIZE	(0x04000000)	/* map 64MB */
18 
19 /* LCD Controller */
20 #define YOPY_LCD_IO_BASE_P	(0x48000000)	/* CS5 */
21 #define YOPY_LCD_IO_BASE_V	(0xf0000000)
22 
23 #define YOPY_LCD_IO_BASE	YOPY_LCD_IO_BASE_V
24 #define YOPY_LCD_IO_RANGE	(0x00208000)
25 
26 /* Extended GPIO */
27 #define YOPY_EGPIO_BASE_P	(0x10000000)	/* CS2 */
28 #define YOPY_EGPIO_BASE_V	(0xf1000000)
29 
30 #define YOPY_EGPIO_BASE		YOPY_EGPIO_BASE_V
31 #define YOPY_EGPIO_RANGE	4
32 
33 #define YOPY_EGPIO		(*((volatile Word *)YOPY_EGPIO_BASE))
34 
35 
36 /******************************************************************************
37  * GPIO assignements
38  ******************************************************************************/
39 
40 #define GPIO_UCB1200_IRQ	GPIO_GPIO0
41 #define GPIO_UCB1200_RESET	GPIO_GPIO22
42 
43 #define GPIO_CF_IREQ		GPIO_GPIO2
44 #define GPIO_CF_CD		GPIO_GPIO3
45 #define GPIO_CF_BVD1		GPIO_GPIO4
46 #define GPIO_CF_BVD2		GPIO_GPIO5
47 #define GPIO_CF_CSEL		GPIO_GPIO6
48 #define GPIO_CF_READY		GPIO_CF_IREQ
49 #define GPIO_CF_STSCHG		GPIO_CF_BVD1
50 #define GPIO_CF_SPKR		GPIO_CF_BVD2
51 
52 #define GPIO_MASK(io)		(1 << (io))
53 
54 #define GPIO_YOPY_PLL_ML	PPC_LDD7
55 #define GPIO_YOPY_PLL_MC	PPC_L_LCLK
56 #define GPIO_YOPY_PLL_MD	PPC_L_FCLK
57 
58 #define GPIO_YOPY_L3_MODE	PPC_LDD4
59 #define GPIO_YOPY_L3_CLOCK	PPC_LDD5
60 #define GPIO_YOPY_L3_DATA	PPC_LDD6
61 
62 #define GPIO_CF_RESET		0
63 #define GPIO_CLKDIV_CLR1	1
64 #define GPIO_CLKDIV_CLR2	2
65 #define GPIO_SPEAKER_MUTE	5
66 #define GPIO_CF_POWER		8
67 #define GPIO_AUDIO_OPAMP_POWER	11
68 #define GPIO_AUDIO_CODEC_POWER	12
69 #define GPIO_AUDIO_POWER	13
70 
71 #define GPIO_IRDA_POWER		PPC_L_PCLK
72 #define GPIO_IRDA_FIR		PPC_LDD0
73 
74 #ifndef __ASSEMBLY__
75 extern int yopy_gpio_test(unsigned int gpio);
76 extern void yopy_gpio_set(unsigned int gpio, int level);
77 #endif
78 
79 
80 /******************************************************************************
81  * IRQ assignements
82  ******************************************************************************/
83 
84 /* for our old drivers */
85 #define IRQ_SP0_UDC	13
86 #define IRQ_SP1_SDLC	14
87 #define IRQ_SP1_UART	15
88 #define IRQ_SP2_ICP	16
89 #define IRQ_SP2_UART	16
90 #define IRQ_SP3_UART	17
91 #define IRQ_SP4_MCP	18
92 #define IRQ_SP4_SSP	19
93 #define IRQ_RTC_HZ	30
94 #define IRQ_RTC_ALARM	31
95 
96 /* GPIO interrupts */
97 #define IRQ_GPIO_UCB1200_IRQ	IRQ_GPIO0
98 
99 #define IRQ_CF_IREQ		IRQ_GPIO2
100 #define IRQ_CF_CD		IRQ_GPIO3
101 #define IRQ_CF_BVD1		IRQ_GPIO4
102 #define IRQ_CF_BVD2		IRQ_GPIO5
103 
104 #define IRQ_UART_CTS		IRQ_GPIO7
105 #define IRQ_UART_DCD		IRQ_GPIO8
106 #define IRQ_UART_DSR		IRQ_GPIO9
107 
108 #define IRQ_FLASH_STATUS	IRQ_GPIO23
109 
110 #define IRQ_BUTTON_POWER	IRQ_GPIO1
111 #define IRQ_BUTTON_UP		IRQ_GPIO14
112 #define IRQ_BUTTON_DOWN		IRQ_GPIO15
113 #define IRQ_BUTTON_LEFT		IRQ_GPIO16
114 #define IRQ_BUTTON_RIGHT	IRQ_GPIO17
115 #define IRQ_BUTTON_SHOT0	IRQ_GPIO18
116 #define IRQ_BUTTON_SHOT1	IRQ_GPIO20
117 #define IRQ_BUTTON_PIMS		IRQ_UCB1200_IO1
118 #define IRQ_BUTTON_MP3		IRQ_UCB1200_IO2
119 #define IRQ_BUTTON_RECORD	IRQ_UCB1200_IO3
120 #define IRQ_BUTTON_PREV		IRQ_UCB1200_IO4
121 #define IRQ_BUTTON_SELECT	IRQ_UCB1200_IO5
122 #define IRQ_BUTTON_NEXT		IRQ_UCB1200_IO6
123 #define IRQ_BUTTON_CANCEL	IRQ_UCB1200_IO7
124 #define IRQ_BUTTON_REMOTE	IRQ_UCB1200_IO8
125 
126 
127 #endif
128