Lines Matching refs:mtu

33 	struct sh_mtu2_device *mtu;
161 return ioread8(ch->mtu->mapbase + 0x280);
177 return iowrite8(value, ch->mtu->mapbase + 0x280);
192 raw_spin_lock_irqsave(&ch->mtu->lock, flags);
201 raw_spin_unlock_irqrestore(&ch->mtu->lock, flags);
210 pm_runtime_get_sync(&ch->mtu->pdev->dev);
211 dev_pm_syscore_device(&ch->mtu->pdev->dev, true);
214 ret = clk_enable(ch->mtu->clk);
216 dev_err(&ch->mtu->pdev->dev, "ch%u: cannot enable clock\n",
224 rate = clk_get_rate(ch->mtu->clk) / 64;
251 clk_disable(ch->mtu->clk);
253 dev_pm_syscore_device(&ch->mtu->pdev->dev, false);
254 pm_runtime_put(&ch->mtu->pdev->dev);
292 dev_info(&ch->mtu->pdev->dev, "ch%u: used for periodic clock events\n",
300 dev_pm_genpd_suspend(&ced_to_sh_mtu2(ced)->mtu->pdev->dev);
305 dev_pm_genpd_resume(&ced_to_sh_mtu2(ced)->mtu->pdev->dev);
322 dev_info(&ch->mtu->pdev->dev, "ch%u: used for clock events\n",
329 ch->mtu->has_clockevent = true;
340 struct sh_mtu2_device *mtu)
346 ch->mtu = mtu;
349 irq = platform_get_irq_byname(mtu->pdev, name);
357 dev_name(&ch->mtu->pdev->dev), ch);
359 dev_err(&ch->mtu->pdev->dev, "ch%u: failed to request irq %d\n",
364 ch->base = mtu->mapbase + sh_mtu2_channel_offsets[index];
367 return sh_mtu2_register(ch, dev_name(&mtu->pdev->dev));
370 static int sh_mtu2_map_memory(struct sh_mtu2_device *mtu)
374 res = platform_get_resource(mtu->pdev, IORESOURCE_MEM, 0);
376 dev_err(&mtu->pdev->dev, "failed to get I/O memory\n");
380 mtu->mapbase = ioremap(res->start, resource_size(res));
381 if (mtu->mapbase == NULL)
387 static int sh_mtu2_setup(struct sh_mtu2_device *mtu,
393 mtu->pdev = pdev;
395 raw_spin_lock_init(&mtu->lock);
398 mtu->clk = clk_get(&mtu->pdev->dev, "fck");
399 if (IS_ERR(mtu->clk)) {
400 dev_err(&mtu->pdev->dev, "cannot get clock\n");
401 return PTR_ERR(mtu->clk);
404 ret = clk_prepare(mtu->clk);
409 ret = sh_mtu2_map_memory(mtu);
411 dev_err(&mtu->pdev->dev, "failed to remap I/O memory\n");
420 mtu->num_channels = min_t(unsigned int, ret,
423 mtu->channels = kcalloc(mtu->num_channels, sizeof(*mtu->channels),
425 if (mtu->channels == NULL) {
430 for (i = 0; i < mtu->num_channels; ++i) {
431 ret = sh_mtu2_setup_channel(&mtu->channels[i], i, mtu);
436 platform_set_drvdata(pdev, mtu);
441 kfree(mtu->channels);
442 iounmap(mtu->mapbase);
444 clk_unprepare(mtu->clk);
446 clk_put(mtu->clk);
452 struct sh_mtu2_device *mtu = platform_get_drvdata(pdev);
460 if (mtu) {
465 mtu = kzalloc(sizeof(*mtu), GFP_KERNEL);
466 if (mtu == NULL)
469 ret = sh_mtu2_setup(mtu, pdev);
471 kfree(mtu);
479 if (mtu->has_clockevent)