Lines Matching +full:gpio +full:- +full:mux +full:- +full:clock
15 #include <linux/gpio.h>
27 { .compatible = "fsl,mpc5200-xlb", },
28 { .compatible = "mpc5200-xlb", },
32 { .compatible = "fsl,mpc5200-immr", },
33 { .compatible = "fsl,mpc5200b-immr", },
34 { .compatible = "simple-bus", },
73 out_be32(&xlb->master_pri_enable, 0xff); in mpc5200_setup_xlb_arbiter()
74 out_be32(&xlb->master_priority, 0x11111111); in mpc5200_setup_xlb_arbiter()
79 * transaction and re-enable it afterwards ...) in mpc5200_setup_xlb_arbiter()
83 out_be32(&xlb->config, in_be32(&xlb->config) | MPC52xx_XLB_CFG_PLDIS); in mpc5200_setup_xlb_arbiter()
114 { .compatible = "fsl,mpc5200-gpt", },
115 { .compatible = "mpc5200-gpt", }, /* old */
119 { .compatible = "fsl,mpc5200-cdm", },
120 { .compatible = "mpc5200-cdm", }, /* old */
124 { .compatible = "fsl,mpc5200-gpio", },
128 { .compatible = "fsl,mpc5200-gpio-wkup", },
143 * on a gpt0, so check has-wdt property before mapping. in mpc52xx_map_common_devices()
146 if (of_get_property(np, "fsl,has-wdt", NULL) || in mpc52xx_map_common_devices()
147 of_get_property(np, "has-wdt", NULL)) { in mpc52xx_map_common_devices()
154 /* Clock Distribution Module, used by PSC clock setting function */ in mpc52xx_map_common_devices()
171 * mpc52xx_set_psc_clkdiv: Set clock divider in the CDM for PSC ports
174 * @clkdiv: clock divider value to put into CDM PSC register.
185 return -ENODEV; in mpc52xx_set_psc_clkdiv()
189 case 1: reg = &mpc52xx_cdm->mclken_div_psc1; mask = 0x20; break; in mpc52xx_set_psc_clkdiv()
190 case 2: reg = &mpc52xx_cdm->mclken_div_psc2; mask = 0x40; break; in mpc52xx_set_psc_clkdiv()
191 case 3: reg = &mpc52xx_cdm->mclken_div_psc3; mask = 0x80; break; in mpc52xx_set_psc_clkdiv()
192 case 6: reg = &mpc52xx_cdm->mclken_div_psc6; mask = 0x10; break; in mpc52xx_set_psc_clkdiv()
194 return -ENODEV; in mpc52xx_set_psc_clkdiv()
197 /* Set the rate and enable the clock */ in mpc52xx_set_psc_clkdiv()
200 val = in_be32(&mpc52xx_cdm->clk_enables); in mpc52xx_set_psc_clkdiv()
201 out_be32(&mpc52xx_cdm->clk_enables, val | mask); in mpc52xx_set_psc_clkdiv()
209 * mpc52xx_get_xtal_freq - Get SYS_XTAL_IN frequency for a device
213 * Returns the frequency of the external oscillator clock connected
228 if (in_8(&mpc52xx_cdm->ipb_clk_sel) & 0x1) in mpc52xx_get_xtal_freq()
231 val = in_be32(&mpc52xx_cdm->rstcfg); in mpc52xx_get_xtal_freq()
246 * mpc52xx_restart: ppc_md->restart hook for mpc5200 using the watchdog timer
256 out_be32(&mpc52xx_wdt->mode, 0x00000000); in mpc52xx_restart()
257 out_be32(&mpc52xx_wdt->count, 0x000000ff); in mpc52xx_restart()
258 out_be32(&mpc52xx_wdt->mode, 0x00009004); in mpc52xx_restart()
277 * mpc5200_psc_ac97_gpio_reset: Use gpio pins to reset the ac97 bus
284 u32 gpio; in mpc5200_psc_ac97_gpio_reset() local
285 u32 mux; in mpc5200_psc_ac97_gpio_reset() local
291 return -ENODEV; in mpc5200_psc_ac97_gpio_reset()
298 gpio = MPC52xx_GPIO_PSC1_MASK; in mpc5200_psc_ac97_gpio_reset()
304 gpio = MPC52xx_GPIO_PSC2_MASK; in mpc5200_psc_ac97_gpio_reset()
308 "cold-reset will be performed\n"); in mpc5200_psc_ac97_gpio_reset()
309 return -ENODEV; in mpc5200_psc_ac97_gpio_reset()
314 /* Reconfiure pin-muxing to gpio */ in mpc5200_psc_ac97_gpio_reset()
315 mux = in_be32(&simple_gpio->port_config); in mpc5200_psc_ac97_gpio_reset()
316 out_be32(&simple_gpio->port_config, mux & (~gpio)); in mpc5200_psc_ac97_gpio_reset()
318 /* enable gpio pins for output */ in mpc5200_psc_ac97_gpio_reset()
319 setbits8(&wkup_gpio->wkup_gpioe, reset); in mpc5200_psc_ac97_gpio_reset()
320 setbits32(&simple_gpio->simple_gpioe, sync | out); in mpc5200_psc_ac97_gpio_reset()
322 setbits8(&wkup_gpio->wkup_ddr, reset); in mpc5200_psc_ac97_gpio_reset()
323 setbits32(&simple_gpio->simple_ddr, sync | out); in mpc5200_psc_ac97_gpio_reset()
326 clrbits32(&simple_gpio->simple_dvo, sync | out); in mpc5200_psc_ac97_gpio_reset()
327 clrbits8(&wkup_gpio->wkup_dvo, reset); in mpc5200_psc_ac97_gpio_reset()
333 setbits8(&wkup_gpio->wkup_dvo, reset); in mpc5200_psc_ac97_gpio_reset()
339 /* Restore pin-muxing */ in mpc5200_psc_ac97_gpio_reset()
340 out_be32(&simple_gpio->port_config, mux); in mpc5200_psc_ac97_gpio_reset()