This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ25898YFFR linux driver

Other Parts Discussed in Thread: BQ25898

Hi all,

I have using linux kernel version 4.4.9 .  Which driver used for BQ25898 chip ? Below driver can be integrate with our linux kernel ?

Thanks

Tejas patil

  • that one is for dual bq25898 application, can you send me you email so that I can send you copy of single bq25898 reference driver?
  • Hi Falong,

    My email id patil.tejas1914@gmail.com & tejas.patil@einfochips.com please send me copy of single bq25898 driver .

    Thanks
    Tejas patil
  • Hi,

    I was integrate the dirver but compile time it gives error.  which kernel source you will integrate ? my kernel verison is 4.4.9

    rivers/power/bq25898_charger.c: In function 'bq2589x_psy_register':
    drivers/power/bq25898_charger.c:1008:9: error: 'struct power_supply' has no member named 'name'
      bq->usb.name = "bq2589x-usb";
             ^
    drivers/power/bq25898_charger.c:1009:9: error: 'struct power_supply' has no member named 'type'
      bq->usb.type = POWER_SUPPLY_TYPE_USB;
             ^
    drivers/power/bq25898_charger.c:1010:9: error: 'struct power_supply' has no member named 'properties'
      bq->usb.properties = bq2589x_charger_props;
             ^
    drivers/power/bq25898_charger.c:1011:9: error: 'struct power_supply' has no member named 'num_properties'
      bq->usb.num_properties = ARRAY_SIZE(bq2589x_charger_props);
             ^
    drivers/power/bq25898_charger.c:1012:9: error: 'struct power_supply' has no member named 'get_property'
      bq->usb.get_property = bq2589x_usb_get_property;
             ^
    drivers/power/bq25898_charger.c:1013:9: error: 'struct power_supply' has no member named 'external_power_changed'
      bq->usb.external_power_changed = NULL;
             ^
    drivers/power/bq25898_charger.c:1015:39: warning: passing argument 2 of 'power_supply_register' from incompatible pointer type [-Wincompatible-pointer-types]
      ret = power_supply_register(bq->dev, &bq->usb);
                                           ^
    In file included from drivers/power/bq25898_charger.c:20:0:
    include/linux/power_supply.h:326:1: note: expected 'const struct power_supply_desc *' but argument is of type 'struct power_supply *'
     power_supply_register(struct device *parent,
     ^
    drivers/power/bq25898_charger.c:1015:8: error: too few arguments to function 'power_supply_register'
      ret = power_supply_register(bq->dev, &bq->usb);
            ^
    In file included from drivers/power/bq25898_charger.c:20:0:
    include/linux/power_supply.h:326:1: note: declared here
     power_supply_register(struct device *parent,
     ^
    drivers/power/bq25898_charger.c:1021:10: error: 'struct power_supply' has no member named 'name'
      bq->wall.name = "bq2589x-Wall";
              ^
    drivers/power/bq25898_charger.c:1022:10: error: 'struct power_supply' has no member named 'type'
      bq->wall.type = POWER_SUPPLY_TYPE_MAINS;
              ^
    drivers/power/bq25898_charger.c:1023:10: error: 'struct power_supply' has no member named 'properties'
      bq->wall.properties = bq2589x_charger_props;
              ^
    drivers/power/bq25898_charger.c:1024:10: error: 'struct power_supply' has no member named 'num_properties'
      bq->wall.num_properties = ARRAY_SIZE(bq2589x_charger_props);
              ^
    drivers/power/bq25898_charger.c:1025:10: error: 'struct power_supply' has no member named 'get_property'
      bq->wall.get_property = bq2589x_wall_get_property;
              ^
    drivers/power/bq25898_charger.c:1026:10: error: 'struct power_supply' has no member named 'external_power_changed'
      bq->wall.external_power_changed = NULL;
              ^
    drivers/power/bq25898_charger.c:1028:39: warning: passing argument 2 of 'power_supply_register' from incompatible pointer type [-Wincompatible-pointer-types]
      ret = power_supply_register(bq->dev, &bq->wall);
                                           ^
    In file included from drivers/power/bq25898_charger.c:20:0:
    include/linux/power_supply.h:326:1: note: expected 'const struct power_supply_desc *' but argument is of type 'struct power_supply *'
     power_supply_register(struct device *parent,
     ^
    drivers/power/bq25898_charger.c:1028:8: error: too few arguments to function 'power_supply_register'
      ret = power_supply_register(bq->dev, &bq->wall);
            ^
    In file included from drivers/power/bq25898_charger.c:20:0:
    include/linux/power_supply.h:326:1: note: declared here
     power_supply_register(struct device *parent,
     ^
    In file included from include/linux/thread_info.h:11:0,
                     from include/asm-generic/current.h:4,
                     from arch/arm64/include/generated/asm/current.h:1,
                     from include/linux/mutex.h:13,
                     from include/linux/kernfs.h:13,
                     from include/linux/sysfs.h:15,
                     from include/linux/kobject.h:21,
                     from include/linux/of.h:21,
                     from include/asm-generic/gpio.h:7,
                     from include/linux/gpio.h:51,
                     from drivers/power/bq25898_charger.c:15:
    drivers/power/bq25898_charger.c: At top level:
    include/linux/bug.h:33:45: error: negative width in bit-field '<anonymous>'
     #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
                                                 ^
    include/linux/kernel.h:831:3: note: in expansion of macro 'BUILD_BUG_ON_ZERO'
       BUILD_BUG_ON_ZERO((perms) & 2) +     \
       ^
    include/linux/sysfs.h:102:12: note: in expansion of macro 'VERIFY_OCTAL_PERMISSIONS'
        .mode = VERIFY_OCTAL_PERMISSIONS(_mode) },  \
                ^
    include/linux/device.h:571:45: note: in expansion of macro '__ATTR'
      struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)
                                                 ^
    drivers/power/bq25898_charger.c:1149:8: note: in expansion of macro 'DEVICE_ATTR'
     static DEVICE_ATTR(adjvolt, S_IWUGO, NULL, bq2589x_adjust_adapter_volt);
            ^
    drivers/power/bq25898_charger.c: In function 'bq2589x_read_batt_rsoc':
    drivers/power/bq25898_charger.c:1222:15: error: 'struct power_supply' has no member named 'get_property'
       bq->batt_psy->get_property(bq->batt_psy,POWER_SUPPLY_PROP_CAPACITY,&ret);
                   ^
    make[2]: *** [drivers/power/bq25898_charger.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
    drivers/power/avs/qcom-cpr.c:822:12: warning: 'cpr_disable' defined but not used [-Wunused-function]
     static int cpr_disable(struct cpr_drv *drv)
                ^
    drivers/power/avs/qcom-cpr.c: In function 'cpr_probe':
    drivers/power/avs/qcom-cpr.c:1176:33: warning: 'step_size_uv' may be used uninitialized in this function [-Wmaybe-uninitialized]
        uV = fdata[i].ref_uV + steps * step_size_uv;
                                     ^
    drivers/power/avs/qcom-cpr.c:1097:13: note: 'step_size_uv' was declared here
      int steps, step_size_uv;
                 ^

  • Hi,

    I am starting integrate the your source code in our kernel but my kernel veriosn is 4.4.9 . some errors comes power_supply variables

    plz refer belw log:-
    drivers/power/bq25898_charger.c: In function 'bq2589x_psy_register':
    drivers/power/bq25898_charger.c:1008:9: error: 'struct power_supply' has no member named 'name'
    bq->usb.name = "bq2589x-usb";
    ^
    drivers/power/bq25898_charger.c:1009:9: error: 'struct power_supply' has no member named 'type'
    bq->usb.type = POWER_SUPPLY_TYPE_USB;
    ^
    drivers/power/bq25898_charger.c:1010:9: error: 'struct power_supply' has no member named 'properties'
    bq->usb.properties = bq2589x_charger_props;
    ^
    drivers/power/bq25898_charger.c:1011:9: error: 'struct power_supply' has no member named 'num_properties'
    bq->usb.num_properties = ARRAY_SIZE(bq2589x_charger_props);