Hi Wolfgang, On Fri, Apr 1, 2011 at 6:25 PM, Wolfgang Denk <w...@denx.de> wrote: > Dear Lei Wen, > > In message <AANLkTingSAd=sQH=qbmjjvofjvbjscbwh0sffykzv...@mail.gmail.com> 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.
I think my code also could handle this. They only could set the CONFIG_SYS_NS16550_REG_SIZE to be 1 and CONFIG_SYS_NS16550_MAX_REG_SIZE to be 4. Then the other bits is untouched by this driver. If CONFIG_SYS_NS16550_REG_SIZE is 4, then it would fulfill my need to clear the all other bits. > > 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. > The previous version of ns16550 has the ability of control the access width according to the CONFIG_SYS_NS16550_REG_SIZE. I just don't understand why my patch is rejected for I give this back? Best regards, Lei _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot