int drv_acc_bosch_bma253_init(void){
    int ret = 0;
    sensor_obj_t sensor;

    /* fill the sensor obj parameters here */
    sensor.io_port    = I2C_PORT;
    sensor.tag        = TAG_DEV_ACC;
    sensor.path       = dev_acc_path;
    sensor.open       = drv_acc_bosch_bma253_open;
    sensor.close      = drv_acc_bosch_bma253_close;
    sensor.read       = drv_acc_bosch_bma253_read;
    sensor.write      = NULL;
    sensor.ioctl      = drv_acc_bosch_bma253_ioctl;
    sensor.irq_handle = drv_acc_bosch_bma253_irq_handle;
    sensor.bus = &bma253_ctx;

    ret = sensor_create_obj(&sensor);
    if(unlikely(ret)){
        return -1;
    }

    ret = drv_acc_bosch_bma253_validate_id(&bma253_ctx, BMA253_CHIP_ID_ADDR, BMA253_CHIP_ID_VALUE);
    if(unlikely(ret)){
        return -1;
    }

    ret = drv_acc_bosch_bma253_soft_reset(&bma253_ctx);
    if(unlikely(ret)){
        return -1;
    }

    ret = drv_acc_bosch_bma253_set_range(&bma253_ctx, ACC_RANGE_8G);
    if(unlikely(ret)){
        return -1;
    }

    //set odr is 100hz, and will update
    ret = drv_acc_bosch_bma253_set_odr(&bma253_ctx, BMA253_DEFAULT_ODR_100HZ);
    if(unlikely(ret)){
        return -1;
    }
    
    ret = drv_acc_bosch_bma253_set_power_mode(&bma253_ctx, DEV_POWER_OFF);
    if(unlikely(ret)){
        return -1;
    }

    /* update the phy sensor info to sensor hal */
    LOG("%s %s successfully \n", SENSOR_STR, __func__);
    return 0;
}
int drv_ps_liteon_ltr553_init(void)
{
    int ret = 0;
    sensor_obj_t sensor_ps;

    if (!g_init_bitwise) {
        ret = drv_als_ps_liteon_ltr553_validate_id(&ltr553_ctx, LTR553_PART_ID_VAL, LTR553_MANUFAC_ID_VAL);
        if(unlikely(ret)) {
            return -1;
        }
    }

    if (!(g_init_bitwise & (1 << FLAG_INIT_PS))) {
        /* fill the sensor_ps obj parameters here */
        sensor_ps.tag = TAG_DEV_PS;
        sensor_ps.path = dev_ps_path;
        sensor_ps.io_port = I2C_PORT;
        sensor_ps.open = drv_ps_liteon_ltr553_open;
        sensor_ps.close = drv_ps_liteon_ltr553_close;
        sensor_ps.read = drv_ps_liteon_ltr553_read;
        sensor_ps.write = drv_ps_liteon_ltr553_write;
        sensor_ps.ioctl = drv_ps_liteon_ltr553_ioctl;
        sensor_ps.irq_handle = drv_ps_liteon_ltr553_irq_handle;

        ret = sensor_create_obj(&sensor_ps);
        if(unlikely(ret)) {
            return -1;
        }

        ret = drv_ps_liteon_ltr553_set_default_config(&ltr553_ctx);
        if(unlikely(ret)) {
            return -1;
        }

        g_init_bitwise |= 1 << FLAG_INIT_PS;
    }

    LOG("%s %s successfully \n", SENSOR_STR, __func__);
    return 0;
}