| New C structure AT91 SoC access | |
| ================================= | |
| The goal | |
| -------- | |
| Currently the at91 arch uses hundreds of address defines and special | |
| at91_xxxx_write/read functions to access the SOC. | |
| The u-boot project perferred method is to access memory mapped hw | |
| regisister via a c structure. | |
| e.g. old | |
| *AT91C_PIOA_IDR = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK; | |
| *AT91C_PIOC_PUDR = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK; | |
| *AT91C_PIOC_PER = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK; | |
| *AT91C_PIOC_OER = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK; | |
| *AT91C_PIOC_PIO = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK; | |
| at91_sys_write(AT91_RSTC_CR, | |
| AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST); | |
| e.g new | |
| pin = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK; | |
| writel(pin, &pio->pioa.idr); | |
| writel(pin, &pio->pioa.pudr); | |
| writel(pin, &pio->pioa.per); | |
| writel(pin, &pio->pioa.oer); | |
| writel(pin, &pio->pioa.sodr); | |
| writel(AT91_RSTC_KEY | AT91_RSTC_CR_PROCRST | | |
| AT91_RSTC_CR_PERRST, &rstc->cr); | |
| The method for updating | |
| ------------------------ | |
| 1. add's the temporary CONFIG_AT91_LEGACY to all at91 board configs | |
| 2. Display a compile time warning, if the board has not been converted | |
| 3. add new structures for SoC access | |
| 4. Convert arch, driver and boards file to new SoC | |
| 5. remove legacy code, if all boards and drives are ready |