On Tuesday 29 August 2006 21:04, Russell King wrote: > It's worse than that - this code is there to read the ID from the divisor > registers implemented in some UARTs. If it isn't one of those UARTs, it's > expected to return zero. > > So we don't actually want to be prodding some other random registers on > differing UARTs. For the RM9000, DLL and DLM are located at distinct addresses, so these registers could be accessed without prior setting of DLAB. However, the h/w docs say that DLAB has to be used nonetheless. I doubt that, but wanted to play safe. So, in order to make this work, I had two options: 1. to monitor all register writes for setting/clearing of DLAB, and switch the register mapping tables accordingly, or 2. implement serial_dl_read()/serial_dl_write() to directly access the registers, thus bypassing the mapping. I decided to implement option #2, because it seemed less of a kludge. Would you still say that this is an abuse? Thomas -- Thomas Koeller, Software Development Basler Vision Technologies An der Strusbek 60-62 22926 Ahrensburg Germany Tel +49 (4102) 463-390 Fax +49 (4102) 463-46390 mailto:thomas.koeller@xxxxxxxxxxxxx http://www.baslerweb.com