summaryrefslogtreecommitdiffstats
path: root/board/renesas/stout/cpld.h
blob: a2656704a19d1bd46d18f64d947ee5bca94096aa (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
/*
 * Stout board CPLD definition
 *
 * Copyright (C) 2015 Renesas Electronics Europe GmbH
 * Copyright (C) 2015 Renesas Electronics Corporation
 * Copyright (C) 2015 Cogent Embedded, Inc.
 *
 * SPDX-License-Identifier: GPL-2.0
 */

#ifndef _CPLD_H_
#define _CPLD_H_

/* power-up behaviour */
#define MODE_MSK_FREE_RUN		0x00000001
#define MODE_VAL_FREE_RUN		0x00000000
#define MODE_MSK_STEP_UP		0x00000001
#define MODE_VAL_STEP_UP		0x00000000

/* boot source */
#define MODE_MSK_BOOT_SQPI_16KB_FAST	0x0000000E
#define MODE_VAL_BOOT_SQPI_16KB_FAST	0x00000004
#define MODE_MSK_BOOT_SQPI_16KB_SLOW	0x0000000E
#define MODE_VAL_BOOT_SQPI_16KB_SLOW	0x00000008
#define MODE_MSK_BOOT_SQPI_4KB_SLOW	0x0000000E
#define MODE_VAL_BOOT_SQPI_4KB_SLOW	0x0000000C

/* booting CPU */
#define MODE_MSK_BOOT_CA15		0x000000C0
#define MODE_VAL_BOOT_CA15		0x00000000
#define MODE_MSK_BOOT_CA7		0x000000C0
#define MODE_VAL_BOOT_CA7		0x00000040
#define MODE_MSK_BOOT_SH4		0x000000C0
#define MODE_VAL_BOOT_SH4		0x000000C0

/* JTAG connection */
#define MODE_MSK_JTAG_CORESIGHT		0xC0301C00
#define MODE_VAL_JTAG_CORESIGHT		0x00200000
#define MODE_MSK_JTAG_SH4		0xC0301C00
#define MODE_VAL_JTAG_SH4		0x00300000

/* DDR3 (PLL) speed */
#define MODE_MSK_DDR3_1600		0x00080000
#define MODE_VAL_DDR3_1600		0x00000000
#define MODE_MSK_DDR3_1333		0x00080000
#define MODE_VAL_DDR3_1333		0x00080000

/* ComboPhy0 mode */
#define MODE_MSK_PHY0_SATA0		0x01000000
#define MODE_VAL_PHY0_SATA0		0x00000000
#define MODE_MSK_PHY0_PCIE		0x01000000
#define MODE_VAL_PHY0_PCIE		0x01000000

/* ComboPhy1 mode */
#define MODE_MSK_PHY1_SATA1		0x00800000
#define MODE_VAL_PHY1_SATA1		0x00000000
#define MODE_MSK_PHY1_USB3		0x00800000
#define MODE_VAL_PHY1_USB3		0x00800000

/*
 * Illegal multiplexer combinations.
 *    MUX                      Conflicts
 *    name                  with any one of
 * VIN0_BT656            VIN0_full, SD2
 * VIN0_full             VIN0_BT656, SD2, AVB, VIN2_(all)
 * VIN1_BT656            VIN1_(others), SD0
 * VIN1_10bit            VIN1_(others), SD0, VIN3_with*, I2C1
 * VIN1_12bit            VIN1_(others), SD0, VIN3_with*, I2C1, SCIFA0_(all)
 * VIN2_BT656            VIN0_full, VIN2_(others), AVB,
 * VIN2_withSYNC         VIN0_full, VIN2_(others), AVB, I2C1, SCIFA0_(all),
 *                       VIN3_with*
 * VIN2_withFIELD        VIN0_full, VIN2_(others), AVB, SQPI_(all)
 * VIN2_withSYNCandFIELD VIN0_full, VIN2_(others), AVB, SQPI_(all), I2C1,
 *                       SCIFA0_(all), VIN3_with*
 * VIN3_BT656            VIN3_(others), IRQ3
 * VIN3_withFIELD        VIN3_(others), IRQ3, VIN1_12bit, VIN2_withSYNC,
 *                       VIN2_withSYNCandFIELD, VIN1_10bit
 * VIN3_withSYNCandFIELD VIN3_(others), IRQ3, VIN1_12bit, VIN2_withSYNC,
 *                       VIN2_withSYNCandFIELD, VIN1_10bit, I2C1
 * AVB                   VIN0_full, VIN2_(all)
 * QSPI_ONBOARD          VIN2_withFIELD, VIN2_withSYNCandFIELD, QSPI_COMEXPRESS
 * QSPI_COMEXPRESS       VIN2_withFIELD, VIN2_withSYNCandFIELD, QSPI_ONBOARD
 * I2C1                  VIN1_12bit, VIN2_withSYNC, VIN2_withSYNCandFIELD,
 *                       VIN3_withSYNCandFIELD
 * IRQ3                  VIN3_(all)
 * SCIFA0_USB            VIN1_12bit, VIN2_withSYNC, VIN2_withSYNCandFIELD,
 *                       SCIFA0_COMEXPRESS
 * SCIFA0_COMEXPRESS     VIN1_12bit, VIN2_withSYNC, VIN2_withSYNCandFIELD,
 *                       SCIFA0_USB
 * SCIFA2                PWM210
 * ETH_ONBOARD           ETH_COMEXPRESS
 * ETH_COMEXPRESS        ETH_ONBOARD
 * SD0                   VIN1_(all)
 * SD2                   VIN0_(all)
 * PWM210                SCIFA2
 */

/* connected to COM Express connector and CN6 for camera, BT656 only */
#define MUX_MSK_VIN0_BT656		0x00001001
#define MUX_VAL_VIN0_BT656		0x00000000
/* connected to COM Express connector and CN6 for camera, all modes */
#define MUX_MSK_VIN0_full		0x00001007
#define MUX_VAL_VIN0_full		0x00000002
/* connected to COM Express connector, BT656 only */
#define MUX_MSK_VIN1_BT656		0x00000801
#define MUX_VAL_VIN1_BT656		0x00000800
/* connected to COM Express connector, all 10-bit modes */
#define MUX_MSK_VIN1_10bit		0x00000821
#define MUX_VAL_VIN1_10bit		0x00000800
/* connected to COM Express connector, all 12-bit modes */
#define MUX_MSK_VIN1_12bit		0x000008A1
#define MUX_VAL_VIN1_12bit		0x00000880
/* connected to COM Express connector, BT656 only */
#define MUX_MSK_VIN2_BT656		0x00000007
#define MUX_VAL_VIN2_BT656		0x00000006
/* connected to COM Express connector, modes with sync signals */
#define MUX_MSK_VIN2_withSYNC		0x000000A7
#define MUX_VAL_VIN2_withSYNC		0x00000086
/* connected to COM Express connector, modes with field, clken signals */
#define MUX_MSK_VIN2_withFIELD		0x0000000F
#define MUX_VAL_VIN2_withFIELD		0x0000000E
/* connected to COM Express connector, modes with sync, field, clken signals */
#define MUX_MSK_VIN2_withSYNCandFIELD	0x000000AF
#define MUX_VAL_VIN2_withSYNCandFIELD	0x0000008E
/* connected to COM Express connector, BT656 only */
#define MUX_MSK_VIN3_BT656		0x00000101
#define MUX_VAL_VIN3_BT656		0x00000100
/* connected to COM Express connector, modes with field, clken signals */
#define MUX_MSK_VIN3_withFIELD		0x00000121
#define MUX_VAL_VIN3_withFIELD		0x00000120
/* connected to COM Express connector, modes with sync, field, clken signals */
#define MUX_MSK_VIN3_withSYNCandFIELD	0x00000161
#define MUX_VAL_VIN3_withSYNCandFIELD	0x00000120
/* connected to COM Express connector (RGMII) */
#define MUX_MSK_AVB			0x00000003
#define MUX_VAL_AVB			0x00000000
/* connected to on-board QSPI flash */
#define MUX_MSK_QSPI_ONBOARD		0x00000019
#define MUX_VAL_QSPI_ONBOARD		0x00000000
/* connected to COM Express connector */
#define MUX_MSK_QSPI_COMEXPRESS		0x00000019
#define MUX_VAL_QSPI_COMEXPRESS		0x00000010
/* connected to COM Express connector and PMIC */
#define MUX_MSK_I2C1			0x00000061
#define MUX_VAL_I2C1			0x00000060
/* connected to HDMI driver */
#define MUX_MSK_IRQ3			0x00000101
#define MUX_VAL_IRQ3			0x00000000
/* connected to USB/FTDI */
#define MUX_MSK_SCIFA0_USB		0x00004081
#define MUX_VAL_SCIFA0_USB		0x00004000
/* connected to COM Express connector */
#define MUX_MSK_SCIFA0_COMEXPRESS	0x00004081
#define MUX_VAL_SCIFA0_COMEXPRESS	0x00000000
/* connected to COM Express connector */
#define MUX_MSK_SCIFA2			0x00002001
#define MUX_VAL_SCIFA2			0x00000000
/* connected to on-board 10/100 Phy */
#define MUX_MSK_ETH_ONBOARD		0x00000600
#define MUX_VAL_ETH_ONBOARD		0x00000000
/* connected to COM Express connector (RMII) */
#define MUX_MSK_ETH_COMEXPRESS		0x00000600
#define MUX_VAL_ETH_COMEXPRESS		0x00000400
/* connected to on-board MicroSD slot */
#define MUX_MSK_SD0			0x00000801
#define MUX_VAL_SD0			0x00000000
/* connected to COM Express connector */
#define MUX_MSK_SD2			0x00001001
#define MUX_VAL_SD2			0x00001000
/* connected to COM Express connector */
#define MUX_MSK_PWM210			0x00002001
#define MUX_VAL_PWM210			0x00002000

#define HDMI_MSK			0x07
#define HDMI_OFF			0x00
#define HDMI_ONBOARD			0x07
#define HDMI_COMEXPRESS			0x05
#define HDMI_ONBOARD_NODDC		0x03
#define HDMI_COMEXPRESS_NODDC		0x01

void cpld_init(void);

#endif	/* _CPLD_H_ */