Grant Carter gcarter at
Wed Jun 7 22:34:30 EST 2000


I have been looking at uart.c in the kernel and have come across
something that I cannot figure out. Perhaps I am just being stupid.
Perhaps someone can set me straight please.

The following code is taken fron uart.c and is used to set up either
both SMC2 and SMC1 pins or, in the #else, just set up SMC1's pins.

#if USE_SMC2
        cp->cp_pbpar |= 0x00000cc0;
        cp->cp_pbdir &= ~0x00000cc0;
        cp->cp_pbodr &= ~0x00000cc0;
        /* This will only enable SMC1 if you want SMC2 for something
        cp->cp_pbpar |= 0x000000c0;
        cp->cp_pbdir &= ~0x000000c0;
        cp->cp_pbodr &= ~0x000000c0;

When I look at my manuals, I see no reference made to the bits 20 and 21
in pbpar, pbdir or pbodr. How does setting those bits enable the SMC2
pins? Those are located in Port A (PA8 and PA9)

I guess my point is why are the Port B registers being modified for SMC2
pins which are found in Port A?

Many thanks

Grant Carter                              gcarter at
Department of Electrical Engineering      University of Cape Town
Tel: +27 (0)21 650-3467                   Fax: +27 (0)21 650-3465
                     "Coffee not found - operator halted!"

** Sent via the linuxppc-embedded mail list. See

More information about the Linuxppc-embedded mailing list