/* Configure GPIO pins to be used as LED and push button */ static void configure_gpios() { mdev_t *pinmux_dev, *gpio_dev; /* Initialize pinmux driver */ pinmux_drv_init(); /* Open pinmux driver */ pinmux_dev = pinmux_drv_open("MDEV_PINMUX"); /* Initialize GPIO driver */ gpio_drv_init(); /* Open GPIO driver */ gpio_dev = gpio_drv_open("MDEV_GPIO"); /* Configure GPIO pin function for GPIO connected to LED */ pinmux_drv_setfunc(pinmux_dev, gpio_led, GPIO_LED_FN); /* Configure GPIO pin direction as Output */ gpio_drv_setdir(gpio_dev, gpio_led, GPIO_OUTPUT); /* Keep initial state of LED: ON */ gpio_drv_write(gpio_dev, gpio_led, 0); /* Close drivers */ pinmux_drv_close(pinmux_dev); gpio_drv_close(gpio_dev); }
/* Basic Sensor IO initialization to be done here This function will be called only once during sensor registration */ int ultrasonic_sensor_init(struct sensor_info *curevent) { wmprintf("%s\r\n", __FUNCTION__); mdev_t *pinmux_dev, *gpio_dev; /* Initialize pinmux driver */ pinmux_drv_init(); /* Open pinmux driver */ pinmux_dev = pinmux_drv_open("MDEV_PINMUX"); /* Initialize GPIO driver */ gpio_drv_init(); /* Open GPIO driver */ gpio_dev = gpio_drv_open("MDEV_GPIO"); /* Configure GPIO pin function for GPIO connected to LED */ pinmux_drv_setfunc(pinmux_dev, ULTRASONIC_SEN_IO, ULTRASONIC_SEN_IO_GPIO); /* Confiugre GPIO pin direction as Input */ gpio_drv_setdir(gpio_dev, ULTRASONIC_SEN_IO, GPIO_INPUT); /* Close drivers */ pinmux_drv_close(pinmux_dev); gpio_drv_close(gpio_dev); #ifdef ULTRASONIC_SENSOR_TEST check_ultrasonic_sensor(); #endif /* ULTRASONIC_SENSOR_TEST */ return 0; }
// configuring gpios static void configure_gpios() { mdev_t *pinmux_dev, *gpio_dev; /* Initialize pinmux driver */ pinmux_drv_init(); /* Open pinmux driver */ pinmux_dev = pinmux_drv_open("MDEV_PINMUX"); /* Initialize GPIO driver */ gpio_drv_init(); /* Open GPIO driver */ gpio_dev = gpio_drv_open("MDEV_GPIO"); /* Configure GPIO pin function for GPIO connected to LED */ pinmux_drv_setfunc(pinmux_dev, gpio_led, GPIO_LED_FN); /* Configure GPIO pin direction as Output */ gpio_drv_setdir(gpio_dev, gpio_led, GPIO_OUTPUT); /* Keep initial state of LED: ON */ gpio_drv_write(gpio_dev, gpio_led, 0); /* Configure GPIO pin function for GPIO connected to push button */ pinmux_drv_setfunc(pinmux_dev, gpio_pushbutton, GPIO_PUSHBUTTON_FN); /* Configure GPIO pin direction as input */ gpio_drv_setdir(gpio_dev, gpio_pushbutton, GPIO_INPUT); /* Register a callback for push button interrupt */ gpio_drv_set_cb(gpio_dev, gpio_pushbutton, GPIO_INT_FALLING_EDGE, NULL, pushbutton_press); /* Close drivers */ pinmux_drv_close(pinmux_dev); gpio_drv_close(gpio_dev); }
int lcd_drv_init(I2C_ID_Type id) { int ret; MDEV_lcd.name = MDEV_NAME_lcd; if (mdev_get_handle(MDEV_NAME_lcd) != NULL) return WM_SUCCESS; pinmux_drv_init(); gpio_drv_init(); i2c_drv_init(id); ret = os_mutex_create(&lcd_mutex, "lcd", OS_MUTEX_INHERIT); if (ret == -WM_FAIL) { lcd_e("Failed to create mutex"); return -WM_FAIL; } mdev_register(&MDEV_lcd); MDEV_lcd.private_data = (uint32_t) id; init_lcd(); return WM_SUCCESS; }
static void modules_init() { int ret; struct partition_entry *p; flash_desc_t fl; /* * Initialize wmstdio prints */ ret = wmstdio_init(UART0_ID, 115200); if (ret != WM_SUCCESS) { appln_critical_error_handler((void *) -WM_FAIL); } /* Initialize time subsystem. * * Initializes time to 1/1/1970 epoch 0. */ ret = wmtime_init(); if (ret != WM_SUCCESS) { wmprintf("Error: wmtime_init failed"); appln_critical_error_handler((void *) -WM_FAIL); } /* * Initialize CLI Commands */ ret = cli_init(); if (ret != WM_SUCCESS) { LOG_ERROR("Error: cli_init failed"); appln_critical_error_handler((void *) -WM_FAIL); } /* Initialize the partition module */ ret = part_init(); if (ret != 0) { LOG_ERROR("Failed to initialize partition\r\n"); appln_critical_error_handler((void *) -WM_FAIL); } p = part_get_layout_by_id(FC_COMP_PSM, NULL); if (!p) { LOG_ERROR("Error: no psm partition found"); appln_critical_error_handler((void *) -WM_FAIL); } part_to_flash_desc(p, &fl); #if defined CONFIG_CPU_MC200 && defined CONFIG_WiFi_8801 //check psm _format psm_format_check(&fl); #endif /* Initilize psm module */ ret = app_psm_init(); if (ret != 0) { LOG_ERROR("Failed to initialize psm module\r\n"); appln_critical_error_handler((void *) -WM_FAIL); } wmprintf("\n\r"); wmprintf("_| _| _|_|_| _|_|_| _|_| \n\r"); wmprintf("_|_| _|_| _| _| _| _|\n\r"); wmprintf("_| _| _| _| _| _| _|\n\r"); wmprintf("_| _| _| _| _| _|\n\r"); wmprintf("_| _| _|_|_| _|_|_| _|_| \n\r"); print_versions(); read_provision_status(); #ifndef RELEASE /* Initilize cli for psm module */ ret = psm_cli_init(); if (ret != 0) { LOG_ERROR("Failed to register psm-cli commands\r\n"); appln_critical_error_handler((void *) -WM_FAIL); } #endif ret = gpio_drv_init(); if (ret != WM_SUCCESS) { LOG_ERROR("Error: gpio_drv_init failed"); appln_critical_error_handler((void *) -WM_FAIL); } ret = aes_drv_init(); if (ret != WM_SUCCESS) { LOG_ERROR("Error: aes drv init failed"); appln_critical_error_handler((void *) -WM_FAIL); } ret = factory_cli_init(); if (ret != 0) { LOG_ERROR("Error: factory_cli_init failed"); appln_critical_error_handler((void *) -WM_FAIL); } ret = miio_chip_rpc_init(); if (ret != 0) { LOG_ERROR("Error: miio_chip_rpc_cli_init failed"); appln_critical_error_handler((void *) -WM_FAIL); } #ifndef RELEASE ret = appln_cli_init(); if (ret != 0) { LOG_ERROR("Error: appln init failed"); appln_critical_error_handler((void *) -WM_FAIL); } #endif /* init add on interface */ init_addon_interface(); ret = ota_init(); if (ret != 0) { LOG_ERROR("Error: ota init failed"); appln_critical_error_handler((void *) -WM_FAIL); } #ifdef MIIO_COMMANDS ret = mcmd_create(UART1_ID); if (ret < 0) { LOG_ERROR("Error: miio command init failed(%d)\r\n", ret); appln_critical_error_handler((void *) -WM_FAIL); } #endif /* * Initialize Power Management Subsystem */ ret = pm_init(); if (ret != WM_SUCCESS) { LOG_ERROR("Error: pm_init failed"); appln_critical_error_handler((void *) -WM_FAIL); } }