コード例 #1
0
ファイル: acpuclock.c プロジェクト: ebmajor/msm7627a_bootable
/* Configure MMC clock */
void clock_config_mmc(uint32_t interface, uint32_t freq)
{
	uint32_t reg = 0;

	switch (freq) {
	case MMC_CLK_400KHZ:
		clock_config(SDC_CLK_NS_400KHZ,
			     SDC_CLK_MD_400KHZ,
			     SDC_NS(interface), SDC_MD(interface));
		break;
	case MMC_CLK_48MHZ:
	case MMC_CLK_50MHZ:	/* Max supported is 48MHZ */
		clock_config(SDC_CLK_NS_48MHZ,
			     SDC_CLK_MD_48MHZ,
			     SDC_NS(interface), SDC_MD(interface));
		break;
	default:
		ASSERT(0);

	}

	reg |= MMC_BOOT_MCI_CLK_ENABLE;
	reg |= MMC_BOOT_MCI_CLK_ENA_FLOW;
	reg |= MMC_BOOT_MCI_CLK_IN_FEEDBACK;
	writel(reg, MMC_BOOT_MCI_CLK);
}
コード例 #2
0
ファイル: uart_dm.c プロジェクト: Ever-Never/lk
static unsigned int msm_boot_uart_dm_config_clock(void)
{
    unsigned int curr_value = 0;

    /* Vote for PLL8 to be enabled */
    curr_value = readl(MSM_BOOT_PLL_ENABLE_SC0);
    curr_value |= (1 << 8);
    writel(curr_value, MSM_BOOT_PLL_ENABLE_SC0);

    /* Proceed only after PLL is enabled */
    while (!(readl(MSM_BOOT_PLL8_STATUS) & (1<<16)));

    /* PLL8 is enabled. Enable gsbi_uart_clk */

    /* GSBI clock frequencies for UART protocol
     * Operating mode          gsbi_uart_clk
     * UART up to 115.2 Kbps   1.8432 MHz
     * UART up to 460.8 Kbps   7.3728 MHz
     * UART up to 4 Mbit/s     64 MHz
     *

     * Choosing lowest supported value
     * Rate (KHz)   NS          MD
     * 3686400	    0xFD940043	0x0006FD8E
     */

    clock_config(0xFD940043, 0x0006FD8E,
                 MSM_BOOT_UART_DM_APPS_NS,
                 MSM_BOOT_UART_DM_APPS_MD);

    /* Enable gsbi_pclk */
    writel(0x10, MSM_BOOT_UART_DM_GSBI_HCLK_CTL);

    return MSM_BOOT_UART_DM_E_SUCCESS;
}
コード例 #3
0
/* Write the M,N,D values and enable the MMSS Clocks */
void config_mmss_clk(uint32_t ns,
		     uint32_t md,
		     uint32_t cc,
		     uint32_t ns_addr, uint32_t md_addr, uint32_t cc_addr)
{
	unsigned int val = 0;

	clock_config(ns, md, ns_addr, md_addr);

	/* Enable MND counter */
	val = cc | (1 << 5);
	val = val | readl(cc_addr);
	writel(val, cc_addr);

	/* Enable the root of the clock tree */
	val = 1 << 2;
	val = val | readl(cc_addr);
	writel(val, cc_addr);

	/* Enable the Pixel Clock */
	val = 1 << 0;
	val = val | readl(cc_addr);
	writel(val, cc_addr);

	/* Force On */
	val = 1 << 31;
	val = val | readl(cc_addr);
	writel(val, cc_addr);
}
コード例 #4
0
ファイル: example.c プロジェクト: wsilverio/msp430-libraries
int main(){
    WDTCTL = WDTPW | WDTHOLD;

    clock_config();

    serial_config();

    serial_print_string("ASCII TABLE:\n");

    char strVal[4];
    for(char i = ' '; i < 127; i++){
        itoa(i, strVal, 10);
        serial_print_string(strVal);
        serial_print_string(": ");
        serial_print_byte((char)i);
        serial_print_byte('\n');
    }

    serial_print_byte('\n');
    
    __enable_interrupt();
    __bis_SR_register(LPM4_bits);

    return 0;
}
コード例 #5
0
void hsusb_clock_init(void)
{
	/* Setup XCVR clock */
	clock_config(USB_XCVR_CLK_NS_VAL,
				 USB_XCVR_CLK_MD_VAL,
				 USB_HS1_XCVR_FS_CLK_NS,
				 USB_HS1_XCVR_FS_CLK_MD);
}
コード例 #6
0
ファイル: acpuclock.c プロジェクト: ebmajor/msm7627a_bootable
/* Configure UART clock - based on the gsbi id */
void clock_config_uart_dm(uint8_t id)
{
	/* Enable gsbi_uart_clk */
	clock_config(UART_DM_CLK_NS_115200,
		     UART_DM_CLK_MD_115200,
		     GSBIn_UART_APPS_NS(id), GSBIn_UART_APPS_MD(id));

	/* Enable gsbi_pclk */
	writel(GSBI_HCLK_CTL_CLK_ENA << GSBI_HCLK_CTL_S, GSBIn_HCLK_CTL(id));
}
コード例 #7
0
ファイル: acpuclock.c プロジェクト: ebmajor/msm7627a_bootable
void hsusb_clock_init(void)
{
	/* TODO: Enable pll8 here */
	/* Setup USB AHB clock */

	/* Setup XCVR clock */
	clock_config(USB_XCVR_CLK_NS,
		     USB_XCVR_CLK_MD,
		     USB_HS1_XCVR_FS_CLK_NS, USB_HS1_XCVR_FS_CLK_MD);
}
コード例 #8
0
ファイル: main.c プロジェクト: N7QWT/klipper
// Main entry point
int
main(void)
{
    SystemInit();
    LL_Init1msTick(SystemCoreClock);
    clock_config();
    adc_config();
    io_config();
    spi_config();
    sched_main();
    return 0;
}
コード例 #9
0
ファイル: system_config.c プロジェクト: hehao3344/mkit
// 初始化系统时钟
void system_config_clk_init(void)
{
    //clock_config(16); // 内部时钟16M    
    clock_config(8); // 内部时钟8M

#if 0
    CLK_DeInit();
    CLK_FastHaltWakeUpCmd(ENABLE);
    CLK_HSECmd(DISABLE);
    CLK_HSICmd(ENABLE);
    CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV4);
#endif
}
コード例 #10
0
ファイル: main.c プロジェクト: MaxStrange/MSP430
/*
 * main.c
 */
int main(void)
{
	lcd_pin_init();
	clock_config();
	lcd_start();

	while (1)
	{
		write_to_lcd();
		delay_ms(1500);
	}

	return 0;
}
コード例 #11
0
/* Configure UART clock - based on the gsbi id */
void clock_config_uart_dm(uint8_t id)
{
	/* Enable gsbi_uart_clk */
	clock_config(UART_DM_CLK_NS_115200,
				 UART_DM_CLK_MD_115200,
				 GSBIn_QUP_APPS_NS(id),
				 GSBIn_QUP_APPS_MD(id));

	/* Configure clock selection register for tx and rx rates.
	 * Selecting 115.2k for both RX and TX.
	 */
	writel(UART_DM_CLK_RX_TX_BIT_RATE, MSM_BOOT_UART_DM_CSR(id));

	/* Enable gsbi_pclk */
	writel(GSBI_HCLK_CTL_CLK_ENA << GSBI_HCLK_CTL_S, GSBIn_HCLK_CTL(id));
}
コード例 #12
0
void system_init()
{
	/* Stop the watchdog */
	startup_watchdog_disable(); /* Do it right now, before it gets a chance to break in */

	/* Note: Brown-Out detection must be powered to operate the ADC. adc_on() will power
	 *  it back on if called after system_init() */
	system_brown_out_detection_config(0);
	system_set_default_power_state();
	clock_config(SELECTED_FREQ);
	set_pins(common_pins);
	gpio_on();
	/* System tick timer MUST be configured and running in order to use the sleeping
	 * functions */
	systick_timer_on(1); /* 1ms */
	systick_start();
}
コード例 #13
0
ファイル: acpuclock.c プロジェクト: ebmajor/msm7627a_bootable
/* Configure i2c clock */
void clock_config_i2c(uint8_t id, uint32_t freq)
{
	uint32_t ns;
	uint32_t md;

	switch (freq) {
	case 24000000:
		ns = I2C_CLK_NS_24MHz;
		md = I2C_CLK_MD_24MHz;
		break;
	default:
		ASSERT(0);
	}

	clock_config(ns, md, GSBIn_QUP_APPS_NS(id), GSBIn_QUP_APPS_MD(id));

	/* Enable the GSBI HCLK */
	writel(GSBI_HCLK_CTL_CLK_ENA << GSBI_HCLK_CTL_S, GSBIn_HCLK_CTL(id));
}
コード例 #14
0
ファイル: main.c プロジェクト: Goodjamp/ble_app_template
/**
 * @brief Function for main application entry.
 */
int main(void)
{
    ret_code_t err_code;
    char config;
    
    APP_ERROR_CHECK(NRF_LOG_INIT(NULL));
    
    bsp_board_leds_init();

    err_code = clock_config();
    APP_ERROR_CHECK(err_code);
    
    APP_TIMER_INIT(APP_TIMER_PRESCALER, OP_QUEUES_SIZE, NULL);

    
    NRF_LOG_INFO("Capacitive sensing driver example.\r\n");
    
    csense_initialize();    

    NRF_LOG_INFO("Do you want to enter configuration mode to set thresholds?(y/n)\r\n");
    NRF_LOG_FLUSH();
    
    config = NRF_LOG_GETCHAR();
    
    conf_mode = (config == 'y') ? true : false;
    
    if (conf_mode)
    {
        configure_thresholds();
        conf_mode = false;
    }

    NRF_LOG_INFO("Module ready.\r\n");
    
    start_app_timer();    

    while (1)
    {
        NRF_LOG_FLUSH();
        __WFI();
    }
}
コード例 #15
0
void
hal_bsp_init(void)
{
    int rc;

    (void)rc;

    clock_config();

#if MYNEWT_VAL(UART_0)
    rc = os_dev_create((struct os_dev *) &hal_uart0, "uart0",
      OS_DEV_INIT_PRIMARY, 0, uart_hal_init, (void *)&uart_cfg[0]);
    assert(rc == 0);
#endif

#if MYNEWT_VAL(TIMER_0)
    hal_timer_init(0, TIM9);
#endif

#if MYNEWT_VAL(TIMER_1)
    hal_timer_init(1, TIM10);
#endif

#if MYNEWT_VAL(TIMER_2)
    hal_timer_init(2, TIM11);
#endif

#if MYNEWT_VAL(SPI_1_MASTER)
    rc = hal_spi_init(1, &spi1_cfg, HAL_SPI_TYPE_MASTER);
    assert(rc == 0);
#endif

#if MYNEWT_VAL(SPI_1_SLAVE)
    rc = hal_spi_init(1, &spi1_cfg, HAL_SPI_TYPE_SLAVE);
    assert(rc == 0);
#endif

#if MYNEWT_VAL(I2C_0)
    rc = hal_i2c_init(0, &i2c_cfg0);
    assert(rc == 0);
#endif
}
コード例 #16
0
ファイル: main.c プロジェクト: csanand/STM32
int main(void)
{

	clock_config();
	gpio_init();
    timer_init();
    TIM2->CR1 |=(1<<0) ;

    while(1)
    {
    	//led on
    	GPIOD->ODR |= (1<<12)
		// wait until UIF flag is set
    	while(!(TIM2->SR & 1));
    	//led off
    	GPIOD->ODR &= ~(1<<12);
    	// wait until UIF flag is set
    	while(!(TIM2->SR & 1));

    }
}
コード例 #17
0
ファイル: i2c_qup.c プロジェクト: Ever-Never/lk
void set_i2c_clk(struct qup_i2c_dev *dev)
{
    uint32_t md = 0;
    uint32_t ns = 0;

    switch (dev->src_clk_freq) {
    case 24000000:
        ns = I2C_APPS_CLK_NS_24MHz;
        md = I2C_APPS_CLK_MD_24MHz;
        break;
    default:
        return;
    }
    /* Enable the GSBI8 HCLK */
    writel((GSBI8_HCLK_CTL_CLK_ENA << GSBI8_HCLK_CTL_S),
           GSBIn_HCLK_CTL(dev->gsbi_number));
    clock_config(ns,
                 md,
                 GSBIn_QUP_APPS_NS(dev->gsbi_number),
                 GSBIn_QUP_APPS_MD(dev->gsbi_number));
}
コード例 #18
0
ファイル: startup-STM32F10x.c プロジェクト: hjawe557/marsta
static void
sys_reset(void)
{
    unsigned int volatile *d;
    d = dummy;

    /* turn on the internal oscillator */
    RCC->CR |= RCC_CR_HSION;

    /* turn off the external oscillator, the clock security system, and the PLL */
    RCC->CR &= (uint32_t)0xFEF6FFFF;

    /* disable and clear any pending interrupts  */
    RCC->CIR =
        RCC_CIR_LSIRDYC |
        RCC_CIR_LSERDYC |
        RCC_CIR_HSIRDYC |
        RCC_CIR_HSERDYC |
        RCC_CIR_PLLRDYC |
        RCC_CIR_CSSC;

    /* turn on the flash pre-fetch buffer and set its wait state to 2 */
    FLASH->ACR |= FLASH_ACR_PRFTBE;
    FLASH->ACR  = (FLASH->ACR & ~FLASH_ACR_LATENCY) | FLASH_ACR_LATENCY_2;

    copy_initialized();
    clear_bss();
    enable_fault_exceptions();
    clock_config();
    start_hse_clock();
    flash_config();
    use_pll();

    main();
    while(1);

}
コード例 #19
0
ファイル: model_dep.c プロジェクト: William-Henrique/xnu
/**
 * machine_init
 *
 * Machine-specific initialization.
 */
void machine_init(void)
{
    debug_log_init();
    clock_config();
    return;
}
コード例 #20
0
ファイル: tmu.c プロジェクト: MarginC/kame
/*ARGSUSED*/
static void
tmuattach(struct device *parent, struct device *self, void *args)
{
	struct pbridge_attach_args *pa = args;
	struct tmu_softc *sc;
	u_int32_t tcnt;
	int i;

	tmu_sc = sc = (struct tmu_softc *)self;

	sc->sc_bust = pa->pa_bust;
	bus_space_map(sc->sc_bust, pa->pa_offset, TMU_REG_SIZE, 0,&sc->sc_bush);

	/*
	 * Disable the timers
	 */
	bus_space_write_1(sc->sc_bust, sc->sc_bush, TMU_REG_TOCR, 0);
	bus_space_write_1(sc->sc_bust, sc->sc_bush, TMU_REG_TSTR, 0);

	for (i = 0; i < TMU_NTIMERS; i++)
		bus_space_write_2(sc->sc_bust, sc->sc_bush, TMU_REG_TCR(i), 0);

	/*
	 * Hook the timer interrupts.
	 * Note that passing NULL as the "arg" parameter tells the interrupt
	 * dispatcher to pass our handlers a pointer to the interrupt frame.
	 */
	sc->sc_clkih = sh5_intr_establish(pa->pa_intevt, IST_LEVEL,
	    pa->pa_ipl, tmu_clkint, NULL);
	sc->sc_statih = sh5_intr_establish(pa->pa_intevt + 0x20, IST_LEVEL,
	    pa->pa_ipl, tmu_statint, NULL);

	/*
	 * Calculate the number of timer ticks per millisecond
	 * This will be used in tmu_microtime() to return the
	 * number of micro-seconds since the last underflow.
	 */
	sc->sc_ticksperms = cprc_clocks.cc_peripheral / 4000;

	printf(": Timer Unit\n");
	printf("%s: Ticks per uS: %d.%03d\n", sc->sc_dev.dv_xname,
	    sc->sc_ticksperms / 1000, sc->sc_ticksperms % 1000);

	/*
	 * Calculate the delay constant.
	 */
	_sh5_delay_constant = 1;
	bus_space_write_4(sc->sc_bust, sc->sc_bush, TMU_REG_TCNT(0),
	    0xffffffff);
	bus_space_write_2(sc->sc_bust, sc->sc_bush, TMU_REG_TCR(0),
	    TMU_TCR_TPSC_PDIV4);
	bus_space_write_1(sc->sc_bust, sc->sc_bush, TMU_REG_TSTR, TMU_TSTR(0));
	delay(100000);
	tcnt = 0 - bus_space_read_4(sc->sc_bust, sc->sc_bush, TMU_REG_TCNT(0));
	bus_space_write_1(sc->sc_bust, sc->sc_bush, TMU_REG_TSTR, 0);
	tcnt = (tcnt * 1000) / sc->sc_ticksperms;
	_sh5_delay_constant = (100000 / tcnt) + 1;

	printf("%s: Delay constant: %d\n", sc->sc_dev.dv_xname,
	    _sh5_delay_constant);

	/*
	 * Attach to the common clock back-end
	 */
	sc->sc_ca.ca_rate = cprc_clocks.cc_peripheral / 4;
	sc->sc_ca.ca_has_stat_clock = 0;
	sc->sc_ca.ca_arg = sc;
	sc->sc_ca.ca_start = tmu_start;
	sc->sc_ca.ca_microtime = tmu_microtime;
	clock_config(self, &sc->sc_ca, sh5_intr_evcnt(sc->sc_clkih));
}