e77e943ed8fd13707d970397e69f4e961ac09018
[fw/openocd] / src / jtag / drivers / rlink_init.m4
1 # SPDX-License-Identifier: GPL-2.0-or-later
2
3 #
4 # Copyright (C) 2008 Lou Deluxe
5 # lou.openocd012@fixit.nospammail.net
6 #
7
8 m4_divert(`-1')
9
10 m4_undefine(`CTRL_MPEG_L')
11 m4_undefine(`CTRL_CARD_L')
12
13 m4_ifelse(SHIFTER_PRESCALER, 1, `
14         m4_define(`CTRL_MPEG_L', `m4_eval(`0x8 | 0x0')')
15 ')
16 m4_ifelse(SHIFTER_PRESCALER, 2, `
17         m4_define(`CTRL_MPEG_L', `m4_eval(`0x8 | 0x2')')
18         m4_define(`CTRL_CARD_L', `m4_eval(`0x8 | 0x1')')
19 ')
20 m4_ifelse(SHIFTER_PRESCALER, 8, `
21         m4_define(`CTRL_MPEG_L', `m4_eval(`0x8 | 0x3')')
22 ')
23 m4_ifelse(SHIFTER_PRESCALER, 11, `
24         m4_define(`CTRL_MPEG_L', `m4_eval(`0x8 | 0x4')')
25 ')
26 m4_ifelse(SHIFTER_PRESCALER, 64, `
27         m4_define(`CTRL_MPEG_L', `m4_eval(`0x8 | 0x7')')
28 ')
29
30 m4_ifdef(`CTRL_MPEG_L',,`
31         m4_errprint(`SHIFTER_PRESCALER was not defined with a supported value
32 ')      m4_m4exit(`1')
33 ')
34
35 m4_divert(`0')m4_dnl
36
37 init:
38         A.H = 0
39
40         A.L = 0
41
42         DR_MPEG = A     ; TDI and TCK start out low
43         DR_CARD = A     ; TMS starts out low
44
45         A.L = 0x6
46
47         CTRL_FCI = A    ; MPEG and CARD driven by FCI
48         DDR_MPEG = A    ; TDI and TCK are outputs
49
50         A.L = 0x1
51
52         X = A           ; X == 1
53         DDR_CARD = A    ; TMS is output
54
55         A.L = CTRL_MPEG_L
56         CTRL_MPEG = A
57 m4_ifdef(`CTRL_CARD_L',
58 `       A.L = 'CTRL_CARD_L`
59 ')m4_dnl
60         CTRL_CARD = A
61
62         STATUS STOP