[U-Boot-Users] ppc4xx: Initializing GPIO0_OR and GPIO0_ODR

Tolunay Orkun listmember at orkun.us
Fri Apr 7 01:00:27 CEST 2006


(Note: This is specific to PPC405EP but it might be applicable to other 
4xx cpus)

On a PPC405EP based boards, U-Boot is initializing below registers to 
select between primary and alternate functions of the GPIO pins (e.g. 
GPIO10 vs CS1) using the CFG_CPIO0_... macros defined in the board 
config file.

GPIO0_TCR, GPIO0_OSRH, GPIO0_OSRL, GPIO0_TSRH, GPIO0_TSRL, GPIO0_ISR1H, 
GPIO0_ ISR1L

This much is sufficient for alternate function programming. However, if 
a the GPIO pin is actually used as GPIO output pin, the initial signal 
level presented happens to be "0" which may not be appropriate for some 
implementations.

I propose to introduce CFG_GPIO0_OR and CFG_CPIO0_ODR macros that could 
be defined in the appropriate board config file and initialize GPIO0_OR 
and GPIO0_ODR before GPIO0_TCR. If these macros are undefined the 
existing code behavior could be maintained so the additional macros 
would not break any existing board or add any additional code.

I will be introducing a patch to take care of this but I wanted to get 
feedback first.

FYI: For our board, we have a GPIO line connected to an active low reset 
line of a custom ASIC chip. There is a pull-up so during the time while 
this pin is tri-state/input we should not reset the ASIC automatically 
while management processor is booting. Our ASIC can operate 
independently while the management processor is booting.





More information about the U-Boot mailing list