linux/arch/avr32/mach-at32ap/pdc.c
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2006 Atmel Corporation
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2 as
   6 * published by the Free Software Foundation.
   7 */
   8
   9#include <linux/clk.h>
  10#include <linux/err.h>
  11#include <linux/init.h>
  12#include <linux/platform_device.h>
  13
  14static int __init pdc_probe(struct platform_device *pdev)
  15{
  16        struct clk *pclk, *hclk;
  17
  18        pclk = clk_get(&pdev->dev, "pclk");
  19        if (IS_ERR(pclk)) {
  20                dev_err(&pdev->dev, "no pclk defined\n");
  21                return PTR_ERR(pclk);
  22        }
  23        hclk = clk_get(&pdev->dev, "hclk");
  24        if (IS_ERR(hclk)) {
  25                dev_err(&pdev->dev, "no hclk defined\n");
  26                clk_put(pclk);
  27                return PTR_ERR(hclk);
  28        }
  29
  30        clk_enable(pclk);
  31        clk_enable(hclk);
  32
  33        dev_info(&pdev->dev, "Atmel Peripheral DMA Controller enabled\n");
  34        return 0;
  35}
  36
  37static struct platform_driver pdc_driver = {
  38        .probe          = pdc_probe,
  39        .driver         = {
  40                .name   = "pdc",
  41        },
  42};
  43
  44static int __init pdc_init(void)
  45{
  46        return platform_driver_register(&pdc_driver);
  47}
  48arch_initcall(pdc_init);
  49