blob: 9a9f74e234916127edbb5011c0d94803d8d40d4f [file] [log] [blame]
Jens Scharsig128ecd02010-02-03 22:45:42 +01001 New C structure AT91 SoC access
2=================================
3
4The goal
5--------
6
7Currently the at91 arch uses hundreds of address defines and special
8at91_xxxx_write/read functions to access the SOC.
9The u-boot project perferred method is to access memory mapped hw
10regisister via a c structure.
11
12e.g. old
13
14 *AT91C_PIOA_IDR = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
15 *AT91C_PIOC_PUDR = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
16 *AT91C_PIOC_PER = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
17 *AT91C_PIOC_OER = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
18 *AT91C_PIOC_PIO = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
19
20 at91_sys_write(AT91_RSTC_CR,
21 AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
22
23e.g new
24 pin = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK;
25 writel(pin, &pio->pioa.idr);
26 writel(pin, &pio->pioa.pudr);
27 writel(pin, &pio->pioa.per);
28 writel(pin, &pio->pioa.oer);
29 writel(pin, &pio->pioa.sodr);
30
31 writel(AT91_RSTC_KEY | AT91_RSTC_CR_PROCRST |
32 AT91_RSTC_CR_PERRST, &rstc->cr);
33
34The method for updating
35------------------------
36
371. add's the temporary CONFIG_AT91_LEGACY to all at91 board configs
382. Display a compile time warning, if the board has not been converted
393. add new structures for SoC access
404. Convert arch, driver and boards file to new SoC
415. remove legacy code, if all boards and drives are ready
Andreas Bießmanne0a501f2013-10-30 15:18:22 +010042
Andreas Bießmann07dafdb2016-05-01 03:46:16 +0200432013-10-30 Andreas Bießmann <andreas@biessmann.org>:
Andreas Bießmanne0a501f2013-10-30 15:18:22 +010044
45The goal is almost reached, we could remove the CONFIG_AT91_LEGACY switch but
46remain the CONFIG_ATMEL_LEGACY switch until the GPIO disaster is fixed. The
47AT91 spi driver has also some CONFIG_ATMEL_LEGACY stuff left, so another point
48to fix until this README can be removed.