diff options
author | Stefan Roese <sr@denx.de> | 2006-10-12 19:43:29 +0200 |
---|---|---|
committer | Stefan Roese <sr@denx.de> | 2006-10-12 20:09:27 +0200 |
commit | e0a46554c3459dc7cabf149c135e79e8df70ae14 (patch) | |
tree | 5d4c602315da528087450b2a188a460aff7ea0ad /cpu | |
parent | 87621bc24789e024c62a8a12bebd592943cdfb02 (diff) | |
download | u-boot-imx-e0a46554c3459dc7cabf149c135e79e8df70ae14.zip u-boot-imx-e0a46554c3459dc7cabf149c135e79e8df70ae14.tar.gz u-boot-imx-e0a46554c3459dc7cabf149c135e79e8df70ae14.tar.bz2 |
* PPC405EP: Add CFG_GPIO0_OR, CFG_GPIO0_ODR to setup GPIO completely.
- Add configuration of Open Drain GPIO Output selection
- Add configuration of initial value of GPIO output pins
Patch by Tolunay Orkun, 07 Apr 2006
Diffstat (limited to 'cpu')
-rw-r--r-- | cpu/ppc4xx/cpu_init.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/cpu/ppc4xx/cpu_init.c b/cpu/ppc4xx/cpu_init.c index b27567f..def46f1 100644 --- a/cpu/ppc4xx/cpu_init.c +++ b/cpu/ppc4xx/cpu_init.c @@ -226,13 +226,19 @@ cpu_init_f (void) /* * GPIO0 setup (select GPIO or alternate function) */ - out32(GPIO0_OSRH, CFG_GPIO0_OSRH); /* output select */ +#if defined(CFG_GPIO0_OR) + out32(GPIO0_OR, CFG_GPIO0_OR); /* set initial state of output pins */ +#endif +#if defined(CFG_GPIO0_ODR) + out32(GPIO0_ODR, CFG_GPIO0_ODR); /* open-drain select */ +#endif + out32(GPIO0_OSRH, CFG_GPIO0_OSRH); /* output select */ out32(GPIO0_OSRL, CFG_GPIO0_OSRL); - out32(GPIO0_ISR1H, CFG_GPIO0_ISR1H); /* input select */ + out32(GPIO0_ISR1H, CFG_GPIO0_ISR1H); /* input select */ out32(GPIO0_ISR1L, CFG_GPIO0_ISR1L); - out32(GPIO0_TSRH, CFG_GPIO0_TSRH); /* three-state select */ + out32(GPIO0_TSRH, CFG_GPIO0_TSRH); /* three-state select */ out32(GPIO0_TSRL, CFG_GPIO0_TSRL); - out32(GPIO0_TCR, CFG_GPIO0_TCR); /* enable output driver for outputs */ + out32(GPIO0_TCR, CFG_GPIO0_TCR); /* enable output driver for outputs */ /* * Set EMAC noise filter bits |