Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages | Examples

at91_pmc.h File Reference


Detailed Description

AT91 peripherals.

 *
 * $Log: at91_pmc.h,v $
 * Revision 1.6  2006/09/29 12:43:44  haraldkipp
 * Excluded second PLL from SAM7X builds. Corrected USB divider names.
 *
 * Revision 1.5  2006/08/31 19:08:14  haraldkipp
 * Defining register offsets simplifies assembly programming.
 *
 * Revision 1.4  2006/08/05 11:59:23  haraldkipp
 * Wrong PMC register offsets fixed.
 *
 * Revision 1.3  2006/07/26 11:22:05  haraldkipp
 * Added shift values for multi-bit parameters.
 *
 * Revision 1.2  2006/07/18 14:05:26  haraldkipp
 * Changed coding style to follow existing headers.
 *
 * Revision 1.1  2006/07/05 07:45:28  haraldkipp
 * Split on-chip interface definitions.
 *
 *
 * 


System Clock Enable, Disable and Status Register

#define PMC_SCER_OFF   0x00000000
 System clock enable register offset.
#define PMC_SCER   (PMC_BASE + PMC_SCER_OFF)
 System clock enable register address.
#define PMC_SCDR_OFF   0x00000004
 System clock disable register offset.
#define PMC_SCDR   (PMC_BASE + PMC_SCDR_OFF)
 System clock disable register address.
#define PMC_SCSR_OFF   0x00000008
 System clock status register offset.
#define PMC_SCSR   (PMC_BASE + PMC_SCSR_OFF)
 System clock status register address.
#define PMC_PCK   0x00000001
 Processor clock.
#define PMC_UHP   0x00000040
 USB host port clock.
#define PMC_UDP   0x00000080
 USB device port clock.
#define PMC_PCK0   0x00000100
 Programmable clock 0 output.
#define PMC_PCK1   0x00000200
 Programmable clock 1 output.
#define PMC_PCK2   0x00000400
 Programmable clock 2 output.
#define PMC_PCK3   0x00000800
 Programmable clock 3 output.

Peripheral Clock Enable, Disable and Status Register

#define PMC_PCER_OFF   0x00000010
 Peripheral clock enable register offset.
#define PMC_PCER   (PMC_BASE + PMC_PCER_OFF)
 Peripheral clock enable register address.
#define PMC_PCDR_OFF   0x00000014
 Peripheral clock disable register offset.
#define PMC_PCDR   (PMC_BASE + PMC_PCDR_OFF)
 Peripheral clock disable register address.
#define PMC_PCSR_OFF   0x00000018
 Peripheral clock status register offset.
#define PMC_PCSR   (PMC_BASE + PMC_PCSR_OFF)
 Peripheral clock status register address.

Clock Generator Main Oscillator Register

#define CKGR_MOR_OFF   0x00000020
 Main oscillator register offset.
#define CKGR_MOR   (PMC_BASE + CKGR_MOR_OFF)
 Main oscillator register address.
#define CKGR_MOSCEN   0x00000001
 Main oscillator enable.
#define CKGR_OSCBYPASS   0x00000002
 Main oscillator bypass.
#define CKGR_OSCOUNT   0x0000FF00
 Main oscillator start-up time mask.
#define CKGR_OSCOUNT_LSB   8
 Main oscillator start-up time LSB.

Clock Generator Main Clock Frequency Register

#define CKGR_MCFR_OFF   0x00000024
 Main clock frequency register offset.
#define CKGR_MCFR   (PMC_BASE + CKGR_MCFR_OFF)
 Main clock frequency register address.
#define CKGR_MAINF   0x0000FFFF
 Main clock frequency mask mask.
#define CKGR_MAINF_OFF   0
 Main clock frequency mask LSB.
#define CKGR_MAINRDY   0x00010000
 Main clock ready.

PLL Registers

#define CKGR_DIV   0x000000FF
 Divider.
#define CKGR_DIV_LSB   0
 Least significant bit of the divider.
#define CKGR_DIV_0   0x00000000
 Divider output is 0.
#define CKGR_DIV_BYPASS   0x00000001
 Divider is bypassed.
#define CKGR_PLLCOUNT   0x00003F00
 PLL counter mask.
#define CKGR_PLLCOUNT_LSB   8
 PLL counter LSB.
#define CKGR_OUT   0x0000C000
 PLL output frequency range.
#define CKGR_OUT_0   0x00000000
 Please refer to the PLL datasheet.
#define CKGR_OUT_1   0x00004000
 Please refer to the PLL datasheet.
#define CKGR_OUT_2   0x00008000
 Please refer to the PLL datasheet.
#define CKGR_OUT_3   0x0000C000
 Please refer to the PLL datasheet.
#define CKGR_MUL   0x07FF0000
 PLL multiplier.
#define CKGR_MUL_LSB   16
 Least significant bit of the PLL multiplier.
#define CKGR_USBDIV   0x30000000
 Divider for USB clocks.
#define CKGR_USBDIV_1   0x00000000
 Divider output is PLL clock output.
#define CKGR_USBDIV_2   0x10000000
 Divider output is PLL clock output divided by 2.
#define CKGR_USBDIV_4   0x20000000
 Divider output is PLL clock output divided by 4.

Master Clock Register

#define PMC_MCKR_OFF   0x00000030
 Master clock register offset.
#define PMC_MCKR   (PMC_BASE + PMC_MCKR_OFF)
 Master clock register address.
#define PMC_ACKR_OFF   0x00000034
 Application clock register offset.
#define PMC_ACKR   (PMC_BASE + PMC_ACKR_OFF)
 Application clock register address.
#define PMC_PCKR0_OFF   0x00000040
 Programmable clock 0 register offset.
#define PMC_PCKR0   (PMC_BASE + PMC_PCKR0_OFF)
 Programmable clock 0 register address.
#define PMC_PCKR1_OFF   0x00000044
 Programmable clock 1 register offset.
#define PMC_PCKR1   (PMC_BASE + PMC_PCKR1_OFF)
 Programmable clock 1 register address.
#define PMC_PCKR2_OFF   0x00000048
 Programmable clock 2 register offset.
#define PMC_PCKR2   (PMC_BASE + PMC_PCKR2_OFF)
 Programmable clock 2 register address.
#define PMC_PCKR3_OFF   0x0000004C
 Programmable clock 3 register offset.
#define PMC_PCKR3   (PMC_BASE + PMC_PCKR3_OFF)
 Programmable clock 3 register address.
#define PMC_CSS   0x00000003
 Clock selection mask.
#define PMC_CSS_SLOW_CLK   0x00000000
 Slow clock selected.
#define PMC_CSS_MAIN_CLK   0x00000001
 Main clock selected.
#define PMC_PRES   0x0000001C
 Clock prescaler mask.
#define PMC_PRES_LSB   2
 Clock prescaler LSB.
#define PMC_PRES_CLK   0x00000000
 Selected clock, not divided.
#define PMC_PRES_CLK_2   0x00000004
 Selected clock divided by 2.
#define PMC_PRES_CLK_4   0x00000008
 Selected clock divided by 4.
#define PMC_PRES_CLK_8   0x0000000C
 Selected clock divided by 8.
#define PMC_PRES_CLK_16   0x00000010
 Selected clock divided by 16.
#define PMC_PRES_CLK_32   0x00000014
 Selected clock divided by 32.
#define PMC_PRES_CLK_64   0x00000018
 Selected clock divided by 64.

Power Management Status and Interrupt Registers

#define PMC_IER_OFF   0x00000060
 Interrupt enable register offset.
#define PMC_IER   (PMC_BASE + PMC_IER_OFF)
 Interrupt enable register address.
#define PMC_IDR_OFF   0x00000064
 Interrupt disable register offset.
#define PMC_IDR   (PMC_BASE + PMC_IDR_OFF)
 Interrupt disable register address.
#define PMC_SR_OFF   0x00000068
 Status register offset.
#define PMC_SR   (PMC_BASE + PMC_SR_OFF)
 Status register address.
#define PMC_IMR_OFF   0x0000006C
 Interrupt mask register offset.
#define PMC_IMR   (PMC_BASE + PMC_IMR_OFF)
 Interrupt mask register address.
#define PMC_MOSCS   0x00000001
 Main oscillator.
#define PMC_MCKRDY   0x00000008
 Master clock ready.
#define PMC_OSC_SEL   0x00000080
 Slow clock oscillator selection.
#define PMC_PCKRDY0   0x00000100
 Programmable clock 0 ready.
#define PMC_PCKRDY1   0x00000200
 Programmable clock 1 ready.
#define PMC_PCKRDY2   0x00000400
 Programmable clock 2 ready.
#define PMC_PCKRDY3   0x00000800
 Programmable clock 3 ready.


© 2000-2006 by egnite Software GmbH - visit http://www.ethernut.de/