/* * * arch/arm/mach-u300/clock.c * * * Copyright (C) 2007-2009 ST-Ericsson AB * License terms: GNU General Public License (GPL) version 2 * Define clocks in the app platform. * Author: Linus Walleij <linus.walleij@stericsson.com> * Author: Jonas Aaberg <jonas.aberg@stericsson.com> * */#include<linux/module.h>#include<linux/kernel.h>#include<linux/list.h>#include<linux/errno.h>#include<linux/err.h>#include<linux/string.h>#include<linux/clk.h>#include<linux/mutex.h>#include<linux/spinlock.h>#include<linux/debugfs.h>#include<linux/device.h>#include<linux/init.h>#include<linux/timer.h>#include<linux/io.h>#include<linux/seq_file.h>#include<asm/clkdev.h>#include<mach/hardware.h>#include<mach/syscon.h>#include"clock.h"/* * TODO: * - move all handling of the CCR register into this file and create * a spinlock for the CCR register * - switch to the clkdevice lookup mechanism that maps clocks to * device ID:s instead when it becomes available in kernel 2.6.29. * - implement rate get/set for all clocks that need it. *//* * Syscon clock I/O registers lock so clock requests don't collide * NOTE: this is a local lock only used to lock access to clock and * reset registers in syscon. */staticDEFINE_SPINLOCK(syscon_clkreg_lock);static