Exemplo n.º 1
0
static int miniabb_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) {

    printk("[Miniabb] :: miniabb i2c probe \n");

    struct i2c_client *new_client;
    struct miniabb_i2c_data *obj;
    u8 databuf[2];

    int err = 0;

    if(!(obj = kzalloc(sizeof(*obj), GFP_KERNEL)))
    {
        miniabb_i2c_client = NULL;
        return -ENOMEM;
    }

    memset(obj, 0, sizeof(struct miniabb_i2c_data));

    i2c_data = obj;
    obj->client = client;
    new_client = obj->client;
    i2c_set_clientdata(new_client,obj);

    miniabb_i2c_client = client;

    //printk("miniabb_i2c_client number = 0x%x.\n", miniabb_i2c_client);

    if (MINIABB_CheckDevID(client) < 0)
    {
        obj = i2c_get_clientdata(new_client);
        kfree(obj);
        miniabb_i2c_client = NULL;
        return -1;
    }

    if(err = miniabb_create_attr(&miniabb_driver.driver))
    {
        printk("miniabb create attribute err = %d\n", err);
    }

    /*                                                                                                */
    if (Is_Not_FactoryCable_PowerOn() == 0)
    {
        miniabb_is_PTM = MINI_ABB_FACTORY_MODE;
    }
    else

    {
        miniabb_is_PTM = MINI_ABB_NORMAL_MODE;
    }
    /*                                                                                                */

    return 0;

}
Exemplo n.º 2
0
static int miniabb_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) {

    printk("[Miniabb] :: miniabb i2c probe \n");

    struct i2c_client *new_client;
    struct miniabb_i2c_data *obj;
    u8 databuf[2];

    int err = 0;

    if(!(obj = kzalloc(sizeof(*obj), GFP_KERNEL)))
    {
        err = -ENOMEM;
        goto exit;
    }

    memset(obj, 0, sizeof(struct miniabb_i2c_data));

    i2c_data = obj;
    obj->client = client;
    new_client = obj->client;
    i2c_set_clientdata(new_client,obj);

    miniabb_i2c_client = client;

    //printk("miniabb_i2c_client number = 0x%x.\n", miniabb_i2c_client);

    MINIABB_CheckDevID(client);

    if(err = miniabb_create_attr(&miniabb_driver.driver))
    {
        printk("miniabb create attribute err = %d\n", err);
    }

    return 0;

exit:
    miniabb_i2c_client = NULL;
    return err;

}