[U-Boot-Users] [PATCH (RESUBMIT)] ppc4xx: Use CFG_4xx_GPIO_TABLE to configure Sequoia board
Stefan Roese
sr at denx.de
Fri Jan 4 07:37:19 CET 2008
Hi Larry,
On Friday 04 January 2008, Lawrence R. Johnson wrote:
> Note: this patch changes the configuration of some GPIO registers:
>
> Register Old Value New Value
> --------------- ---------- ----------
> DCR GPIO0_TCR 0x0000000F 0x0000F0CF
> DCR GPIO0_TSRH 0x55005000 0x00000000
> DCR GPIO1_TCR 0xC2000000 0xE2000000
> DCR GPIO1_TSRL 0x0C000000 0x00200000
> DCR GPIO1_ISR2L 0x00050000 0x00110000
>
> Signed-off-by: Larry Johnson <lrj at acm.org>
> ---
> Hi Stefan,
>
> This is my attempt to use apply the new GPIO configuration to the
> Sequoia board. I didn't find much about GPIO in the Sequoia manual, so
> I just tried to produce a table that matched the current Sequoia
> configuration as closely as possible.
>
> I think the changed values above are OK. The TCR and TSR changes are
> generated from the table, and should be correct. The ISR change
> reflects that GPIO37 Alt2 is bidirectional, and GPIO38 Alt2 is an
> output.
Thanks a lot for the good work. Really appreciated. I'll re-check the Sequouia
values again.
Please find one further comment below.
> Best regards,
> Larry
>
> N.B.: This patch depends on my previously-submitted patch for GPIO.
>
> board/amcc/sequoia/sequoia.c | 31 +------------
> include/configs/sequoia.h | 106
> ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 107
> insertions(+), 30 deletions(-)
>
> diff --git a/board/amcc/sequoia/sequoia.c b/board/amcc/sequoia/sequoia.c
> index 37b4f31..2268bc0 100644
> --- a/board/amcc/sequoia/sequoia.c
> +++ b/board/amcc/sequoia/sequoia.c
> @@ -26,6 +26,7 @@
> #include <libfdt.h>
> #include <fdt_support.h>
> #include <ppc440.h>
> +#include <asm/gpio.h>
> #include <asm/processor.h>
> #include <asm/io.h>
>
> @@ -45,36 +46,6 @@ int board_early_init_f(void)
> mtdcr(ebccfgd, 0xb8400000);
>
> /*--------------------------------------------------------------------
> - * Setup the GPIO pins
> - *-------------------------------------------------------------------*/
> - /* test-only: take GPIO init from pcs440ep ???? in config file */
> - out_be32((u32 *) GPIO0_OR, 0x00000000);
> - out_be32((u32 *) GPIO0_TCR, 0x0000000f);
> - out_be32((u32 *) GPIO0_OSRL, 0x50015400);
> - out_be32((u32 *) GPIO0_OSRH, 0x550050aa);
> - out_be32((u32 *) GPIO0_TSRL, 0x50015400);
> - out_be32((u32 *) GPIO0_TSRH, 0x55005000);
> - out_be32((u32 *) GPIO0_ISR1L, 0x50000000);
> - out_be32((u32 *) GPIO0_ISR1H, 0x00000000);
> - out_be32((u32 *) GPIO0_ISR2L, 0x00000000);
> - out_be32((u32 *) GPIO0_ISR2H, 0x00000100);
> - out_be32((u32 *) GPIO0_ISR3L, 0x00000000);
> - out_be32((u32 *) GPIO0_ISR3H, 0x00000000);
> -
> - out_be32((u32 *) GPIO1_OR, 0x00000000);
> - out_be32((u32 *) GPIO1_TCR, 0xc2000000);
> - out_be32((u32 *) GPIO1_OSRL, 0x5c280000);
> - out_be32((u32 *) GPIO1_OSRH, 0x00000000);
> - out_be32((u32 *) GPIO1_TSRL, 0x0c000000);
> - out_be32((u32 *) GPIO1_TSRH, 0x00000000);
> - out_be32((u32 *) GPIO1_ISR1L, 0x00005550);
> - out_be32((u32 *) GPIO1_ISR1H, 0x00000000);
> - out_be32((u32 *) GPIO1_ISR2L, 0x00050000);
> - out_be32((u32 *) GPIO1_ISR2H, 0x00000000);
> - out_be32((u32 *) GPIO1_ISR3L, 0x01400000);
> - out_be32((u32 *) GPIO1_ISR3H, 0x00000000);
> -
> - /*--------------------------------------------------------------------
> * Setup the interrupt controller polarities, triggers, etc.
> *-------------------------------------------------------------------*/
> mtdcr(uic0sr, 0xffffffff); /* clear all */
> diff --git a/include/configs/sequoia.h b/include/configs/sequoia.h
> index 1f72b54..86dd9d6 100644
> --- a/include/configs/sequoia.h
> +++ b/include/configs/sequoia.h
> @@ -476,6 +476,112 @@
> #define CFG_NAND_BASE (CFG_NAND_ADDR + CFG_NAND_CS)
> #define CFG_NAND_SELECT_DEVICE 1 /* nand driver supports mutipl. chips */
>
> +/*-----------------------------------------------------------------------
> + * PPC440 GPIO Configuration
> + */
> +/* test-only: take GPIO init from pcs440ep ???? in config file */
> +/*
> + TEST_DCR(GPIO0_OR, 0x00000000);
> + TEST_DCR(GPIO0_TCR, 0x0000000f);
> + TEST_DCR(GPIO0_OSRL, 0x50015400);
> + TEST_DCR(GPIO0_OSRH, 0x550050aa);
> + TEST_DCR(GPIO0_TSRL, 0x50015400);
> + TEST_DCR(GPIO0_TSRH, 0x55005000);
> + TEST_DCR(GPIO0_ISR1L, 0x50000000);
> + TEST_DCR(GPIO0_ISR1H, 0x00000000);
> + TEST_DCR(GPIO0_ISR2L, 0x00000000);
> + TEST_DCR(GPIO0_ISR2H, 0x00000100);
> + TEST_DCR(GPIO0_ISR3L, 0x00000000);
> + TEST_DCR(GPIO0_ISR3H, 0x00000000);
> +
> +
> + TEST_DCR(GPIO1_OR, 0x00000000);
> + TEST_DCR(GPIO1_TCR, 0xc2000000);
> + TEST_DCR(GPIO1_OSRL, 0x5c280000);
> + TEST_DCR(GPIO1_OSRH, 0x00000000);
> + TEST_DCR(GPIO1_TSRL, 0x0c000000);
> + TEST_DCR(GPIO1_TSRH, 0x00000000);
> + TEST_DCR(GPIO1_ISR1L, 0x00005550);
> + TEST_DCR(GPIO1_ISR1H, 0x00000000);
> + TEST_DCR(GPIO1_ISR2L, 0x00050000);
> + TEST_DCR(GPIO1_ISR2H, 0x00000000);
> + TEST_DCR(GPIO1_ISR3L, 0x01400000);
> + TEST_DCR(GPIO1_ISR3H, 0x00000000);
> +*/
What are these TEST_DCR()'s for? Please remove and resumbit.
Thanks.
Best regards,
Stefan
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================
More information about the U-Boot
mailing list