sd2snes/src/clock.h

78 lines
1.7 KiB
C

#ifndef _CLOCK_H
#define _CLOCK_H
#define PLL_MULT(x) ((x-1)&0x7fff)
#define PLL_PREDIV(x) (((x-1)<<16)&0xff0000)
#define CCLK_DIV(x) ((x-1)&0xff)
#define CLKSRC_MAINOSC (1)
#define PLLE0 (1<<0)
#define PLLC0 (1<<1)
#define PLOCK0 (1<<26)
#define OSCEN (1<<5)
#define OSCSTAT (1<<6)
#define FLASHTIM(x) (((x-1)<<12)|0x3A)
#define PCLK_CCLK(x) (1<<(x))
#define PCLK_CCLK4(x) (0)
#define PCLK_CCLK8(x) (3<<(x))
#define PCLK_CCLK2(x) (2<<(x))
/* shift values for use with PCLKSEL0 */
#define PCLK_WDT (0)
#define PCLK_TIMER0 (2)
#define PCLK_TIMER1 (4)
#define PCLK_UART0 (6)
#define PCLK_UART1 (8)
#define PCLK_PWM1 (12)
#define PCLK_I2C0 (14)
#define PCLK_SPI (16)
#define PCLK_SSP1 (20)
#define PCLK_DAC (22)
#define PCLK_ADC (24)
#define PCLK_CAN1 (26)
#define PCLK_CAN2 (28)
#define PCLK_ACF (30)
/* shift values for use with PCLKSEL1 */
#define PCLK_QEI (0)
#define PCLK_GPIOINT (2)
#define PCLK_PCB (4)
#define PCLK_I2C1 (6)
#define PCLK_SSP0 (10)
#define PCLK_TIMER2 (12)
#define PCLK_TIMER3 (14)
#define PCLK_UART2 (16)
#define PCLK_UART3 (18)
#define PCLK_I2C2 (20)
#define PCLK_I2S (22)
#define PCLK_RIT (26)
#define PCLK_SYSCON (28)
#define PCLK_MC (30)
void clock_disconnect( void );
void clock_init( void );
void setFlashAccessTime( uint8_t clocks );
void setPLL0MultPrediv( uint16_t mult, uint8_t prediv );
void enablePLL0( void );
void disablePLL0( void );
void connectPLL0( void );
void disconnectPLL0( void );
void setCCLKDiv( uint8_t div );
void enableMainOsc( void );
void disableMainOsc( void );
void PLL0feed( void );
void setClkSrc( uint8_t src );
#endif