static int iomuxc_attach(device_t dev) { struct iomuxc_softc *sc; sc = device_get_softc(dev); sc->dev = dev; if (bus_alloc_resources(dev, iomuxc_spec, sc->tmr_res)) { device_printf(dev, "could not allocate resources\n"); return (ENXIO); } /* Memory interface */ sc->bst = rman_get_bustag(sc->tmr_res[0]); sc->bsh = rman_get_bushandle(sc->tmr_res[0]); pinmux_set(sc); return (0); }
static void meson_remote_pinmux_setup(void) { printk(KERN_INFO "meson_remote_pinmux_setup()\n"); pinmux_set(&meson_remote_pinmux); }
void sd_sdio_enable(SDIO_Pad_Type_t io_pad_type) { struct pinctrl_state *s; int ret; if(!p){ p=devm_pinctrl_get(card_dev); if(IS_ERR(p)) printk("set pinmux error!\n"); } switch (io_pad_type) { case SDHC_CARD_0_5 : //SDHC-B #ifdef CONFIG_OF s = pinctrl_lookup_state(p, "sdhc_b"); if (IS_ERR(s)) { devm_pinctrl_put(p); p=NULL; } ret = pinctrl_select_state(p, s); if (ret < 0) { devm_pinctrl_put(p); p=NULL; } #else pinmux_set(&SDHC_CARD_0_5_set); #endif SET_CBUS_REG_MASK(SDIO_MULT_CONFIG, (1)); break; case SDHC_BOOT_0_11 : //SDHC-C #ifdef CONFIG_OF s = pinctrl_lookup_state(p, "sdhc_c"); if (IS_ERR(s)) { pinctrl_put(p); p=NULL; } ret = pinctrl_select_state(p, s); if (ret < 0) { pinctrl_put(p); p=NULL; } #else pinmux_set(&SDHC_BOOT_0_11_set); #endif SET_CBUS_REG_MASK(SDIO_MULT_CONFIG, (2)); break; case SDHC_GPIOX_0_9 : //SDHC-A #ifdef CONFIG_OF s = pinctrl_lookup_state(p, "sdhc_a"); if (IS_ERR(s)) { pinctrl_put(p); p=NULL; } ret = pinctrl_select_state(p, s); if (ret < 0) { pinctrl_put(p); p=NULL; } #else pinmux_set(&SDHC_GPIOX_0_9_set); #endif SET_CBUS_REG_MASK(SDIO_MULT_CONFIG, (0)); break; default : printk("invalid hw io pad!!!\n"); break; } return; }