Dear Lei Wen, In message <[email protected]> you wrote: > > > 3. You say that the current implementation, which uses a writeb() call > > (i. e. a byte write operation) to this register would not only > > affect bits 0...7, as expected, but also clear bit 9. > > That is not my case. In my case, for writeb, it would affect only > bits0-7, but leave > bit 8 untouched. However, I need the bit 8 to be set to be 0, which is > 1 at the power > on. ... > Yes, that is what I want. The bit8 set to 0.
Ah. But this is completely different thing, then. Your code would only perform this operation by accident, and this is definitely wrong. Assume some other system where this bit needs to be set to 1 - then your code would corrupt the setting. So I think: 1) The current NS16550 driver behaves correctly. It sets up the NS16550 compatible parts of your chip in the correct way, without messing with any non-standard bits. 2) If you have additional, non-standard bits in your device, you must initialize these separately. Eventually you provide a custom driver which just calls the standard NS16550 driver functions, except where you have additional need to manipulate the extra, non-standard bits of your device. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: [email protected] For every complex problem, there is a solution that is simple, neat, and wrong. -- H. L. Mencken _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

