linux/arch/arm/mach-at91/clock.h
<<
>>
Prefs
   1/*
   2 * linux/arch/arm/mach-at91/clock.h
   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/clkdev.h>
  10
  11#define CLK_TYPE_PRIMARY        0x1
  12#define CLK_TYPE_PLL            0x2
  13#define CLK_TYPE_PROGRAMMABLE   0x4
  14#define CLK_TYPE_PERIPHERAL     0x8
  15#define CLK_TYPE_SYSTEM         0x10
  16
  17
  18struct clk {
  19        struct list_head node;
  20        const char      *name;          /* unique clock name */
  21        struct clk_lookup cl;
  22        unsigned long   rate_hz;
  23        struct clk      *parent;
  24        u32             pmc_mask;
  25        void            (*mode)(struct clk *, int);
  26        unsigned        id:3;           /* PCK0..4, or 32k/main/a/b */
  27        unsigned        type;           /* clock type */
  28        u16             users;
  29};
  30
  31
  32extern int __init clk_register(struct clk *clk);
  33extern struct clk mck;
  34extern struct clk utmi_clk;
  35
  36#define CLKDEV_CON_ID(_id, _clk)                        \
  37        {                                               \
  38                .con_id = _id,                          \
  39                .clk = _clk,                            \
  40        }
  41
  42#define CLKDEV_CON_DEV_ID(_con_id, _dev_id, _clk)       \
  43        {                                               \
  44                .con_id = _con_id,                      \
  45                .dev_id = _dev_id,                      \
  46                .clk = _clk,                            \
  47        }
  48