コード例 #1
0
ファイル: actuator_PWM.c プロジェクト: cond0160/mAEWing1
extern void init_actuators(){
	int i;
	
	// initialize PWM I/O channels
	GPT_Init();
	
	// PWM Output
	for(i=0;i<8;i++)
		if( GPT_Open_PWM(i) < 0) fprintf(stderr, "\n GPT_Open_PWM() failed Ch. %d",i);	
}
コード例 #2
0
static int charging_ic_probe(struct platform_device *dev)
{
    int ret = 0;
/*                                                                                                              */
#ifdef SINGLE_CHARGER_CONTOL_USING_GPT_TIMER

    /* 1 Counter : about 0.0769 us */
    GPT_CLK_SRC clkSrc = GPT_CLK_SRC_SYS;
    GPT_CLK_DIV clkDiv = GPT_CLK_DIV_1;

    xlog_printk(ANDROID_LOG_INFO, "Power/Charger", "[charger_rt9536] :: charging_ic_probe is done\n");

    GPT_Init (gpt_num, gpt_timer_irq_handler);

    config.num = gpt_num;
    config.mode = GPT_ONE_SHOT;
    config.clkSrc = clkSrc;
    config.clkDiv = clkDiv;
    config.u4CompareL = 13000000;           // 1 S
    config.u4CompareH = 0;
    config.bIrqEnable = TRUE;

    if (GPT_Config(config) == FALSE)
    {
        xlog_printk(ANDROID_LOG_INFO, "Power/Charger", "[charger_rt9536] :: charging_ic_probe is failed because gpt timer failed !!!\n");
        return -1;
    }

#endif
/*                                                                                                              */

    mt_set_gpio_mode(CHG_EN_SET_N, CHG_EN_MODE);
    mt_set_gpio_dir(CHG_EN_SET_N, CHG_EN_DIR);
    mt_set_gpio_out(CHG_EN_SET_N, CHG_EN_DATA_OUT);

/*                                                                                 */
    mt_set_gpio_out(CHG_EN_SET_N, GPIO_OUT_ZERO);
    mt_set_gpio_pull_enable(CHG_EN_SET_N, CHG_EOC_PULL_ENABLE);
    mt_set_gpio_pull_select(CHG_EN_SET_N, GPIO_PULL_DOWN);
/*                                                                                 */

    mt_set_gpio_mode(CHG_EOC_N, CHG_EOC_MODE);
    mt_set_gpio_dir(CHG_EOC_N, CHG_EOC_DIR);
    mt_set_gpio_pull_enable(CHG_EOC_N, CHG_EOC_PULL_ENABLE);
    mt_set_gpio_pull_select(CHG_EOC_N, CHG_EOC_PULL_SELECT);

    xlog_printk(ANDROID_LOG_INFO, "Power/Charger", "[charger_rt9536] :: charging IC Initialization is done\n");

    return 0;
}
コード例 #3
0
void mt6577_dcm_init(void)
{
    int ret = 0;
#ifdef CONFIG_LOCAL_TIMERS
    GPT_CONFIG gpt_config = {
        .num = WAKEUP_GPT,
        .mode = GPT_ONE_SHOT,
        .clkSrc = GPT_CLK_SRC_SYS,
        .clkDiv = 0x0000,
        .bIrqEnable = true,
        .u4CompareL = 0x0,
    };
#endif
    
    dcm_info("[%s]: enable HW dcm\n", __func__);
    dcm_enable_all();

    chip_ver = (get_chip_eco_ver() == CHIP_E1) ? 1 : 0; 
    memset(dpidle_block_mask, 0, MT65XX_CLOCK_CATEGORY_COUNT * sizeof(unsigned int));

#ifdef CONFIG_LOCAL_TIMERS
    GPT_Init(gpt_config.num, NULL);
    if (GPT_Config(gpt_config) == FALSE) {
        dcm_err("[%s]: config GPT%d failed\n", __func__, gpt_config.num);
    }
#endif
    
    ret = sysfs_create_file(power_kobj, &dcm_state_attr.attr);
    ret = sysfs_create_file(power_kobj, &idle_state_attr.attr);
    ret = sysfs_create_file(power_kobj, &dpidle_state_attr.attr);

    if (ret) {
        dcm_err("[%s]: create sysfs failed\n", __func__);
    }
}

void mt6577_dcm_exit(void)
{
    dcm_info("[%s]: disable HW dcm\n", __func__);
    dcm_disable_all();
}
コード例 #4
0
ファイル: drv_hwtimer.c プロジェクト: geniusgogo/rt-thread
static void rt1052_hwtimer_init(rt_hwtimer_t *timer, rt_uint32_t state)
{
    GPT_Type *hwtimer_dev;
    gpt_config_t gptConfig;
    hwtimer_dev = (GPT_Type *)timer->parent.user_data;

    RT_ASSERT(timer != RT_NULL);

    GPT_Deinit(hwtimer_dev);

    if (state == 1)
    {
        /*Clock setting for GPT*/
        CLOCK_SetMux(kCLOCK_PerclkMux, EXAMPLE_GPT_CLOCK_SOURCE_SELECT);
        CLOCK_SetDiv(kCLOCK_PerclkDiv, EXAMPLE_GPT_CLOCK_DIVIDER_SELECT);

        /* Initialize GPT module by default config */
        GPT_GetDefaultConfig(&gptConfig);
        GPT_Init(hwtimer_dev, &gptConfig);
    }
}
コード例 #5
0
ファイル: lp_ticker.c プロジェクト: oscarh/mbed-os
/** Initialize the low power ticker
 *
 */
void lp_ticker_init(void)
{
    gpt_config_t gptConfig;

    if (!lp_ticker_inited) {
        /* Setup GPT */
        GPT_GetDefaultConfig(&gptConfig);
        /* Use 32kHz drive */
        gptConfig.clockSource = kGPT_ClockSource_LowFreq;
        gptConfig.enableFreeRun = true;
        gptConfig.enableMode = false;

        GPT_Init(GPT2, &gptConfig);
        GPT_EnableInterrupts(GPT2, kGPT_OutputCompare1InterruptEnable);
        NVIC_ClearPendingIRQ(GPT2_IRQn);
        NVIC_SetVector(GPT2_IRQn, (uint32_t)gpt_isr);
        EnableIRQ(GPT2_IRQn);
        GPT_StartTimer(GPT2);
        lp_ticker_inited = true;
    } else {
        GPT_DisableInterrupts(GPT2, kGPT_OutputCompare1InterruptEnable);
    }
}