Dear Graeme Russ,

In message <banlktik3cxemzu0qpxdlsqmtk-abeod...@mail.gmail.com> you wrote:
> 
> Now, that being said, I see no reason not to do the following if I had,
> for example, multiple serial port configuration registers which are all
> identical:
>
> /* num data bits is stored in bits 2-4 of the serial config register */
> #define DATA_BITS_MASK                0x001c
> #define DATA_BITS_OFFSET      2
>
> u32 set_serial_data_bits(u32 ser_cfg, u8 data_bits)
> {
>       ser_cfg &= ~DATA_BITS_MASK;
>       ser_cfg |= ((u32)ser_cfg << DATA_BITS_OFFSET) &  DATA_BITS_MASK;
>
>       return ser_cfg;
> }
>
> void serial_init(void)
> {
>       u32 ser_cfg;
>
>       for (i=0; i<NUM_SERIAL_PORTS; i++) {
>               ser_cfg = read_serial_cfg(i);
>               ser_cfg = set_serial_data_bits(ser_cfg, 7);
>               write_serial_cfg(i, ser_cfg);
>       }
> }

One reason for not doing this is that we should not reinvent the wheel
again and again, and instead use standard APIs.

I cannot find any such code in U-Boot, so I cannot check, but to me it
smells a lot as if this code should rather use clrsetbits_*() and
other proper I/O accessors.

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: w...@denx.de
Steal five dollars and you were a petty  thief.  Steal  thousands  of
dollars and you are either a government or a hero.
                                   - Terry Pratchett, _Going_Postal_
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to