
10 Jun
2012
10 Jun
'12
4:38 p.m.
On Sun, Jun 10, 2012 at 10:03 AM, Vikram Narayanan vikram186@gmail.com wrote:
/* drop PHY power and assert reset (low) */
- val = readl(&gpio4->gpio_dr) & ~((1 << 7) | (1 << 9));
- writel(val, &gpio4->gpio_dr);
- val = readl(&gpio4->gpio_dir) | (1 << 7) | (1 << 9);
- writel(val, &gpio4->gpio_dir);
- gpio_direction_output(GPIO_FEC_RESET_B, 0);
- gpio_direction_output(GPIO_FEC_ENABLE_B, 0);
- gpio_direction_output(GPIO_FEC_RESET_B, 1);
- gpio_direction_output(GPIO_FEC_ENABLE_B, 1);
gpio_direction_output should be set only once for each GPIO.
After you set the direction (input or output) you should use 'gpio_set_value' for setting the GPIO to 0 or 1.
Also, please remove the:
gpio_direction_output(GPIO_FEC_RESET_B, 1);
gpio_direction_output(GPIO_FEC_ENABLE_B, 1);
lines, as the setting to 1 should be after the delay (via gpio_set_value).