GPIO setting
Ivor Kruger
ivor at veriline.co.za
Tue Mar 18 05:21:47 EDT 2014
Hi, I am still having a problem with the GPIO.
When I check the mux registers for the GPIO pins I want to use, i get:
barebox at Phytec phyCORE pcm049:/ md 0x4a100130
4a100130: 00070118 00070007 00070007 00070007
................
4a100140: 00000118 00000100 01180118 01180118
................
This indicates that the pins are still in safe mode despite the settings
of below in the mux.c file.
{MCSPI1_CLK, (M3)}, /* gpio134 */
{MCSPI1_SOMI, (M3)}, /* gpio135 */
{MCSPI1_SIMO, (M3)}, /* gpio136 */
{MCSPI1_CS0, (M3)}, /* gpio137 */
{MCSPI1_CS1, (M3)}, /* gpio138 */
{MCSPI1_CS2, (M3)}, /* gpio139 */
{MCSPI1_CS3, (M3)}, /* gpio140 */
In the board file I have the following code:
static int pcm049_devices_init(void)
{
i2c_register_board_info(0, i2c_devices, ARRAY_SIZE(i2c_devices));
omap44xx_add_i2c1(NULL);
omap44xx_add_mmc1(NULL);
gpmc_generic_init(0x10);
pcm049_network_init();
omap_add_gpmc_nand_device(&nand_plat);
#ifdef CONFIG_PARTITION
devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED,
"xload_raw");
dev_add_bb_dev("xload_raw", "xload");
devfs_add_partition("nand0", SZ_128K, SZ_512K, DEVFS_PARTITION_FIXED,
"self_raw");
dev_add_bb_dev("self_raw", "self0");
devfs_add_partition("nand0", SZ_128K + SZ_512K, SZ_128K,
DEVFS_PARTITION_FIXED, "env_raw");
dev_add_bb_dev("env_raw", "env0");
#endif
armlinux_set_bootparams((void *)0x80000100);
armlinux_set_architecture(MACH_TYPE_PCM049);
omap_add_display(&pcm049_fb_data);
gpio_direction_output(134, 1);
gpio_direction_output(135, 1);
gpio_direction_output(136, 1);
gpio_direction_output(137, 1);
gpio_direction_output(138, 0);
gpio_direction_output(139, 0);
gpio_direction_output(140, 0);
return 0;
}
If I do a mw 0x4a10013c 0x00030003 the register is changed as expected. I
can then use the gpio_direction_output command to toggle the pin.
So the problem clearly lies within the way the mux registers are
configured.
Any ideas on what I am doing wrong
Vielen dank
Ivor
On 2014/03/17, 2:09 PM, "Sascha Hauer" <s.hauer at pengutronix.de> wrote:
>On Mon, Mar 17, 2014 at 10:47:06AM +0200, Ivor Kruger wrote:
>> Hi, sure this is a quick and easy question for the group?
>>
>> On the OMAP4430, using the command from within barebox prompt to
>>configure
>> a GPIO for testing hardware:
>>
>> gpio_direction_output 140 0
>>
>> Should this be sufficient to set the gpio pin low, or is it required to
>> still do some pin muxing as well?
>
>The gpio functions only configure the gpio controller. If this pin is
>not gpio by default, you have to configure the pinmux controller aswell.
>There is no way to do that on the barebox commandline other than direct
>register
>writes to the pinmux controller.
>
>Sascha
>
>--
>Pengutronix e.K. | |
>Industrial Linux Solutions | http://www.pengutronix.de/ |
>Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
>Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list