Messages in this thread | | | Date | Mon, 28 Jan 2008 19:44:15 +0100 (CET) | Subject | Re: at91sam9260 wakeup on serial port | From | trimarchi@feanor ... |
| |
Hi, > On Monday 28 January 2008, Haavard Skinnemoen wrote: >> On Mon, 28 Jan 2008 12:15:00 +0100 >> michael <trimarchi@gandalf.sssup.it> wrote: >> >> > Hi, >> > I implement a little patch (ndr just for a try) for the atmel serial >> > driver atmel_serial.c to wakeup the system when it is in suspend-ram >> state. >> > I reconfigure the RXD pin as a gpio in suspend function and restore it >> > in the resume function. It is the correct way? >> >> I'm not sure...this is rather platform-specific, so I don't think it >> really belongs in the atmel_serial() driver. One solution might be to >> add a function pointer to struct atmel_uart_data that the driver can >> call from ->suspend() in order to let the platform code handle this as >> appropriate. > > The core issue is that the system clock driving the baud rate generator > is no longer running fast enough to let the UART run. (In "standby" the > clock is still driven by the PLL, so this issue doesn't come up.) The > GPIO logic can catch the START bit though ... this technique is used on > some OMAP boards too. > > Agreed that knowing exactly which pin(s) should be remuxed (UARTn.RX to > GPIO in suspend then enabling it as a wakeup irq, then reversing that > on resume; maybe UARTn.DCD should work too..), and how (as A-peripheral? > or B?) is chip-specific knowledge. Such a function pointer could work. > > What will AVR32 (AP7) need to do, when it supports system sleep states? > > - Dave > My code just works and I can try to implement a clean patches and submit to the mailing list.
Michael
| |