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); }
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; }
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(); }
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); } }
/** 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); } }