ARM: AM33xx: Add support for Clock Synthesizer

The CDCE913 and CDCEL913 devices are modular PLL-based, low cost,
high performance , programmable clock synthesizers. They generate
upto 3 output clocks from a single input frequency. Each output can
be programmed for any clock-frequency.

Adding support for the same.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
This commit is contained in:
Lokesh Vutla
2016-05-16 11:47:25 +05:30
committed by Tom Rini
parent d8ff4fdb10
commit 3164f3c689
3 changed files with 149 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
/*
* clk-synthesizer.h
*
* Clock synthesizer header
*
* Copyright (C) 2016, Texas Instruments, Incorporated - http://www.ti.com/
*
* SPDX-License-Identifier: GPL-2.0+
*/
#ifndef __CLK_SYNTHESIZER_H
#define __CLK_SYNTHESIZER_H
#include <common.h>
#define CLK_SYNTHESIZER_ID_REG 0x0
#define CLK_SYNTHESIZER_XCSEL 0x05
#define CLK_SYNTHESIZER_MUX_REG 0x14
#define CLK_SYNTHESIZER_PDIV2_REG 0x16
#define CLK_SYNTHESIZER_PDIV3_REG 0x17
#define CLK_SYNTHESIZER_BYTE_MODE 0x80
/**
* struct clk_synth: This structure holds data neeed for configuring
* for clock synthesizer.
* @id: The id of synthesizer
* @capacitor: value of the capacitor attached
* @mux: mux settings.
* @pdiv2: Div to be applied to second output
* @pdiv3: Div to be applied to third output
*/
struct clk_synth {
u32 id;
u32 capacitor;
u32 mux;
u32 pdiv2;
u32 pdiv3;
};
int setup_clock_synthesizer(struct clk_synth *data);
#endif