|  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 | 
 |  | 
 | 2013-10-30 Andreas Bießmann <andreas.devel@googlemail.com>: | 
 |  | 
 | The goal is almost reached, we could remove the CONFIG_AT91_LEGACY switch but | 
 | remain the CONFIG_ATMEL_LEGACY switch until the GPIO disaster is fixed. The | 
 | AT91 spi driver has also some CONFIG_ATMEL_LEGACY stuff left, so another point | 
 | to fix until this README can be removed. |