freebsd-dev/sys/arm/at91
Marius Strobl 31a2c906d7 - Prepend the device description with "AT91" to reflect its nature. [1]
- Move DMA tag and map creature to at91_spi_activate() where the other
  resource allocation also lives. [1]
- Flesh out at91_spi_deactivate(). [1]
- Work around the "Software Reset must be Written Twice" erratum.
- For now, run the bus at the slowest speed possible in order to work
  around data corruption on transit even seen with 9 MHz on ETHERNUT5
  (15 MHz maximum) and AT45DB321D (20 MHz maximum). This also serves as
  a poor man's work-around for the "NPCSx rises if no data data is to be
  transmitted" erratum of RM9200. Being able to use the appropriate bus
  speed would require:
  1) Adding a proper work-around for the RM9200 bug consisting of taking
     the chip select control away from the SPI peripheral and managing it
     directly as a GPIO line.
  2) Taking the maximum frequencies supported by the actual board and the
     slave devices into account and basing the whole thing on the master
     clock instead of hardcoding a divisor as previously done.
  3) Fixing the above mentioned data corruption.
- KASSERT that TX/RX command and data sizes match on transfers.
- Introduce a mutex ensuring that only one child device is running a SPI
  transfer at a time. [1]
- Add preliminary, #ifdef'ed out support for setting the chip select. [1]
- Use the RX instead of the TX commando size when setting up the RX side
  of a transfer.
- For controllers having SPI_SR_TXEMPTY, i.e. !RM9200, also wait for the
  completion of the TX part of transfers before stopping the whole thing
  again.
- Use DEVMETHOD_END. [1]
- Use NULL instead of 0 for pointers. [1, partially]

Additional testing by:  Ian Lepore

Submitted by:   Ian Lepore [1]
MFC after:      1 week
2012-06-03 00:54:10 +00:00
..
at91_aicreg.h Import preliminary support for Atmel AT91SAM9G20 cpu, and the Hot-e HL201. 2010-07-14 00:48:53 +00:00
at91_cfata.c Eliminate devclass_find_free_unit call here, since -1 gives the same 2009-06-10 17:39:19 +00:00
at91_machdep.c Initialize the clocks before we call cninit() so that the serial 2012-06-01 02:55:42 +00:00
at91_mci.c Revert debug and other immature code accidentally committed in r236372. 2012-06-01 03:00:36 +00:00
at91_mcireg.h - Add support for MCI1 revision 2xx controllers and a work-around for their 2012-04-22 00:43:32 +00:00
at91_pdcreg.h
at91_pio_rm9200.h if_ate.c: 2010-10-06 22:25:21 +00:00
at91_pio_sam9g20.h Add support for the AT91SAM9260 2010-10-06 22:40:27 +00:00
at91_pio.c - Try to bring these files closer to style(9). 2012-04-14 11:29:32 +00:00
at91_pioreg.h Hack to unbreak boot2 for at91rm9200 boot loader. When the at91sam 2012-05-11 14:40:25 +00:00
at91_piovar.h - Try to bring these files closer to style(9). 2012-04-14 11:29:32 +00:00
at91_pit.c Add support for the Atmel SAM9XE familiy of microcontrollers, which 2012-04-14 17:09:38 +00:00
at91_pitreg.h Import preliminary support for Atmel AT91SAM9G20 cpu, and the Hot-e HL201. 2010-07-14 00:48:53 +00:00
at91_pmc.c Compute the master clock frequency, so we no longer need to have it 2012-05-29 03:23:18 +00:00
at91_pmcreg.h Add support for the AT91SAM9260 2010-10-06 22:40:27 +00:00
at91_pmcvar.h if_ate.c: 2010-10-06 22:25:21 +00:00
at91_reset.S if_ate.c: 2010-10-06 22:25:21 +00:00
at91_rst.c Add support for the Atmel SAM9XE familiy of microcontrollers, which 2012-04-14 17:09:38 +00:00
at91_rstreg.h if_ate.c: 2010-10-06 22:25:21 +00:00
at91_rtc.c Remove pointless semicolons after label 2011-09-30 04:55:23 +00:00
at91_rtcreg.h
at91_spi.c - Prepend the device description with "AT91" to reflect its nature. [1] 2012-06-03 00:54:10 +00:00
at91_spireg.h - Prepend the device description with "AT91" to reflect its nature. [1] 2012-06-03 00:54:10 +00:00
at91_ssc.c Remove pointless semicolons after label 2011-09-30 04:55:23 +00:00
at91_sscreg.h
at91_st.c Remove spurious 8bit chars, turning files into plain ASCII. 2012-01-15 13:23:33 +00:00
at91_streg.h
at91_twi.c Generate an obviously missing STOP when having finished transmitting data. 2012-04-14 17:27:34 +00:00
at91_twiio.h
at91_twireg.h Add support for the Atmel SAM9XE familiy of microcontrollers, which 2012-04-14 17:09:38 +00:00
at91_usartreg.h
at91_wdt.c Add support for the Atmel SAM9XE familiy of microcontrollers, which 2012-04-14 17:09:38 +00:00
at91_wdtreg.h if_ate.c: 2010-10-06 22:25:21 +00:00
at91.c Compute the master clock frequency, so we no longer need to have it 2012-05-29 03:23:18 +00:00
at91board.h
at91reg.h Revert debug and other immature code accidentally committed in r236372. 2012-06-01 03:00:36 +00:00
at91rm92reg.h Revert debug and other immature code accidentally committed in r236372. 2012-06-01 03:00:36 +00:00
at91rm9200.c Remove support for SKYEYE simulator 2011-01-05 23:45:07 +00:00
at91sam9g20.c Add support for the AT91SAM9260 2010-10-06 22:40:27 +00:00
at91sam9g20reg.h Compute the master clock frequency, so we no longer need to have it 2012-05-29 03:23:18 +00:00
at91sam9260.c Add support for the Atmel SAM9XE familiy of microcontrollers, which 2012-04-14 17:09:38 +00:00
at91sam9260reg.h Compute the master clock frequency, so we no longer need to have it 2012-05-29 03:23:18 +00:00
at91var.h Compute the master clock frequency, so we no longer need to have it 2012-05-29 03:23:18 +00:00
board_bwct.c
board_ethernut5.c Add glue/support for the SAM9XE512-based Ethernut 5 boards. Currently, 2012-05-12 18:11:26 +00:00
board_hl200.c
board_hl201.c if_ate.c: 2010-10-06 22:25:21 +00:00
board_kb920x.c if_ate.c: 2010-10-06 22:25:21 +00:00
board_qila9g20.c Add support for the AT91SAM9260 2010-10-06 22:40:27 +00:00
board_sam9g20ek.c Fix comment about what board this is really for left over from early 2012-05-02 18:41:58 +00:00
board_tsc4370.c
files.at91 if_ate.c: 2010-10-06 22:25:21 +00:00
files.at91sam9 Revert debug and other immature code accidentally committed in r236372. 2012-06-01 03:00:36 +00:00
hints.at91rm9200
hints.at91sam9261
if_ate.c Add support for the Atmel SAM9XE familiy of microcontrollers, which 2012-04-14 17:09:38 +00:00
if_atereg.h if_ate.c: 2010-10-06 22:25:21 +00:00
if_macb.c - Use macbstart_locked() directly instead of deferring it to a task. 2011-01-06 19:32:00 +00:00
if_macbreg.h Import preliminary support for Atmel AT91SAM9G20 cpu, and the Hot-e HL201. 2010-07-14 00:48:53 +00:00
if_macbvar.h Import preliminary support for Atmel AT91SAM9G20 cpu, and the Hot-e HL201. 2010-07-14 00:48:53 +00:00
std.at91
std.at91sam9 Revert debug and other immature code accidentally committed in r236372. 2012-06-01 03:00:36 +00:00
std.bwct
std.ethernut5 Compute the master clock frequency, so we no longer need to have it 2012-05-29 03:23:18 +00:00
std.hl200 Compute the master clock frequency, so we no longer need to have it 2012-05-29 03:23:18 +00:00
std.hl201 Compute the master clock frequency, so we no longer need to have it 2012-05-29 03:23:18 +00:00
std.kb920x Compute the master clock frequency, so we no longer need to have it 2012-05-29 03:23:18 +00:00
std.qila9g20 Compute the master clock frequency, so we no longer need to have it 2012-05-29 03:23:18 +00:00
std.sam9g20ek Compute the master clock frequency, so we no longer need to have it 2012-05-29 03:23:18 +00:00
std.tsc4370
uart_bus_at91usart.c Remove support for SKYEYE simulator 2011-01-05 23:45:07 +00:00
uart_cpu_at91rm9200usart.c Remove support for SKYEYE simulator 2011-01-05 23:45:07 +00:00
uart_dev_at91usart.c - Add missing locking in at91_usart_getc(). 2012-05-01 20:42:03 +00:00