I want to configure GPIOs on MPC8315, but I can't set the gpio. Below the configuration code and the output.
What is wrong? #define SPI_CS_IO 0x20000000 int board_mmc_init(bd_t *bd) { volatile immap_t *immr = (volatile immap_t *)CONFIG_SYS_IMMR; volatile gpio83xx_t *gpio = (volatile gpio83xx_t *)&immr->gpio[0]; printf("INIT MMC\n"); //tmpval = inbe32( out_be32(&gpio->dir, SPI_CS_IO); // Set IO as output out_be32(&gpio->odr, 0 /*~SPI_CS_IO*/); // Set pulled up out_be32(&gpio->ier, SPI_CS_IO); // Disable interrupt out_be32(&gpio->imr, 0 /*~SPI_CS_IO*/); // Disable interrupt mask out_be32(&gpio->icr, 0 /*~SPI_CS_IO*/); // Disable interrupt level/edge udelay(2000); out_be32(&gpio->dat, SPI_CS_IO); // Set the output pin /*DEBUG*/ printf("SPI - CHIP SELECT CONFIGURATION\n"); printf("$gpio = %x\n", gpio); printf("gpio->dir = %x \n", gpio->dir ); printf("gpio->odr = %x \n", gpio->odr ); printf("gpio->ier = %x \n", gpio->ier ); printf("gpio->imr = %x \n", gpio->imr ); printf("gpio->icr = %x \n", gpio->icr ); printf("gpio->dat = %x \n", gpio->dat ); } This is the output. MMC: INIT MMC SPI - CHIP SELECT CONFIGURATION $gpio = e0000c00 gpio->dir = 3f000000 gpio->odr = 0 gpio->ier = c00dff00 gpio->imr = 0 gpio->icr = 0 gpio->dat = 0 FINISH MMC Thanks in advance, Marcos Cunha Electrical Engineer _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot