Hi, On 03/17/2014 09:28 AM, Ian Campbell wrote: > On Mon, 2014-03-17 at 12:05 +0800, Chen-Yu Tsai wrote: >> @@ -162,40 +151,47 @@ static int mmc_clk_io_on(int sdc_no) >> switch (sdc_no) { >> case 0: >> /* D1-PF0, D0-PF1, CLK-PF2, CMD-PF3, D3-PF4, D4-PF5 */ >> - writel(0x222222, &gpio_f->cfg[0]); >> - writel(0x555, &gpio_f->pull[0]); >> - writel(0xaaa, &gpio_f->drv[0]); >> + for (pin = SUNXI_GPF(0); pin <= SUNXI_GPF(5); pin++) { >> + sunxi_gpio_set_cfgpin(pin, SUNXI_GPF0_SDC0_CMD); > > I appreciate that the function is the same for each pin but this still > looks odd. Perhaps just #define SUNXI_GPFx_SDC0 and use that? > > I did something similar yesterday and just opencoded the calls. > >> + sunxi_gpio_set_pull(pin, SUNXI_GPIO_PULL_UP); >> + sunxi_gpio_set_drv(pin, 2); > > I was wondering about these -- do these matter even when the PIN is > configured for a specific function and not as a GPIO?
Yes, the drive-strength and pull-up also influence the pins when there multiplexed to some non gpio ip-block. IE with the GMAC the drive-strength needs to be set according to the PHY type, for phys which use a DDR type signalling the drive strength must be 3. Likewise for DDR mmc modes (which we don't support atm, but the ip-block does) drive strength must be set to 3 too. Regards, Hans -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.