hc
2024-05-14 bedbef8ad3e75a304af6361af235302bcc61d06b
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
/*
 * Copyright (C) 2008 Renesas Solutions Corp.
 * Copyright (C) 2008 Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
 *
 * SPDX-License-Identifier:    GPL-2.0+
 */
 
#include <common.h>
#include <netdev.h>
#include <asm/io.h>
#include <asm/processor.h>
 
/* PRI control register */
#define PRPRICR5    0xFF800048 /* LMB */
#define PRPRICR5_D    0x2a
 
/* FPGA control */
#define FPGA_NAND_CTL    0xB410020C
#define FPGA_NAND_RST    0x0008
#define FPGA_NAND_INIT    0x0000
#define FPGA_NAND_RST_WAIT    10000
 
/* I/O port data */
#define PACR_D    0x0000
#define PBCR_D    0x0000
#define PCCR_D    0x1000
#define PDCR_D    0x0000
#define PECR_D    0x0410
#define PFCR_D    0xffff
#define PGCR_D    0x0000
#define PHCR_D    0x5011
#define PJCR_D    0x4400
#define PKCR_D    0x7c00
#define PLCR_D    0x0000
#define PMCR_D    0x0000
#define PNCR_D    0x0000
#define PQCR_D    0x0000
#define PRCR_D    0x0000
#define PSCR_D    0x0000
#define PTCR_D    0x0010
#define PUCR_D    0x0fff
#define PVCR_D    0xffff
#define PWCR_D    0x0000
#define PXCR_D    0x7500
#define PYCR_D    0x0000
#define PZCR_D    0x5540
 
/* Pin Function Controler data */
#define PSELA_D    0x1410
#define PSELB_D    0x0140
#define PSELC_D    0x0000
#define PSELD_D    0x0400
 
/* I/O Buffer Hi-Z data */
#define    HIZCRA_D    0x0000
#define HIZCRB_D    0x1000
#define HIZCRC_D    0x0000
#define HIZCRD_D    0x0000
 
/* Module select reg data */
#define MSELCRA_D    0x0014
#define MSELCRB_D    0x0018
 
/* Module Stop reg Data */
#define MSTPCR2_D    0xFFD9F280
 
/* CPLD loader */
extern void init_cpld(void);
 
int checkboard(void)
{
   puts("BOARD: AP325RXA\n");
   return 0;
}
 
int board_init(void)
{
   /* Pin Function Controler Init */
   outw(PSELA_D, PSELA);
   outw(PSELB_D, PSELB);
   outw(PSELC_D, PSELC);
   outw(PSELD_D, PSELD);
 
   /* I/O Buffer Hi-Z Init */
   outw(HIZCRA_D, HIZCRA);
   outw(HIZCRB_D, HIZCRB);
   outw(HIZCRC_D, HIZCRC);
   outw(HIZCRD_D, HIZCRD);
 
   /* Module select reg Init */
   outw(MSELCRA_D, MSELCRA);
   outw(MSELCRB_D, MSELCRB);
 
   /* Module Stop reg Init */
   outl(MSTPCR2_D, MSTPCR2);
 
   /* I/O ports */
   outw(PACR_D, PACR);
   outw(PBCR_D, PBCR);
   outw(PCCR_D, PCCR);
   outw(PDCR_D, PDCR);
   outw(PECR_D, PECR);
   outw(PFCR_D, PFCR);
   outw(PGCR_D, PGCR);
   outw(PHCR_D, PHCR);
   outw(PJCR_D, PJCR);
   outw(PKCR_D, PKCR);
   outw(PLCR_D, PLCR);
   outw(PMCR_D, PMCR);
   outw(PNCR_D, PNCR);
   outw(PQCR_D, PQCR);
   outw(PRCR_D, PRCR);
   outw(PSCR_D, PSCR);
   outw(PTCR_D, PTCR);
   outw(PUCR_D, PUCR);
   outw(PVCR_D, PVCR);
   outw(PWCR_D, PWCR);
   outw(PXCR_D, PXCR);
   outw(PYCR_D, PYCR);
   outw(PZCR_D, PZCR);
 
   /* PRI control register Init */
   outl(PRPRICR5_D, PRPRICR5);
 
   /* cpld init */
   init_cpld();
 
   return 0;
}
 
void led_set_state(unsigned short value)
{
}
 
void ide_set_reset(int idereset)
{
   outw(FPGA_NAND_RST, FPGA_NAND_CTL);    /* NAND RESET */
   udelay(FPGA_NAND_RST_WAIT);
   outw(FPGA_NAND_INIT, FPGA_NAND_CTL);
}
 
int board_eth_init(bd_t *bis)
{
   int rc = 0;
#ifdef CONFIG_SMC911X
   rc = smc911x_initialize(0, CONFIG_SMC911X_BASE);
#endif
   return rc;
}