* @interval_not_charging charge alg cycle period time when not charging (sec)
  * @temp_hysteresis    temperature hysteresis
  * @gnd_lift_resistance        Battery ground to phone ground resistance (mOhm)
- * @n_chg_out_curr             number of elements in array chg_output_curr
- * @n_chg_in_curr              number of elements in array chg_input_curr
- * @chg_output_curr    charger output current level map
- * @chg_input_curr             charger input current level map
  * @maxi               maximization parameters
  * @cap_levels         capacity in percent for the different capacity levels
  * @bat_type           table of supported battery types
        int interval_not_charging;
        int temp_hysteresis;
        int gnd_lift_resistance;
-       int n_chg_out_curr;
-       int n_chg_in_curr;
-       int *chg_output_curr;
-       int *chg_input_curr;
        const struct ab8500_maxim_parameters *maxi;
        const struct ab8500_bm_capacity_levels *cap_levels;
        struct ab8500_battery_type *bat_type;
 
        .ac_curr_max            = 1500,
 };
 
-/*
- * This array maps the raw hex value to charger output current used by the
- * AB8500 values
- */
-static int ab8500_charge_output_curr_map[] = {
-        100,    200,    300,    400,    500,    600,    700,    800,
-        900,    1000,   1100,   1200,   1300,   1400,   1500,   1500,
-};
-
-/*
- * This array maps the raw hex value to charger input current used by the
- * AB8500 values
- */
-static int ab8500_charge_input_curr_map[] = {
-        50,     98,     193,    290,    380,    450,    500,    600,
-        700,    800,    900,    1000,   1100,   1300,   1400,   1500,
-};
-
 struct ab8500_bm_data ab8500_bm_data = {
        .temp_under             = 3,
        .temp_low               = 8,
        .interval_not_charging  = 120,
        .temp_hysteresis        = 3,
        .gnd_lift_resistance    = 34,
-       .chg_output_curr        = ab8500_charge_output_curr_map,
-       .n_chg_out_curr         = ARRAY_SIZE(ab8500_charge_output_curr_map),
        .maxi                   = &ab8500_maxi_params,
        .chg_params             = &chg,
        .fg_params              = &fg,
-        .chg_input_curr         = ab8500_charge_input_curr_map,
-        .n_chg_in_curr          = ARRAY_SIZE(ab8500_charge_input_curr_map),
 };
 
 int ab8500_bm_of_probe(struct power_supply *psy,
 
                return -1;
 }
 
+/* This array maps the raw register value to charger input current */
+static int ab8500_charge_input_curr_map[] = {
+       50, 98, 193, 290, 380, 450, 500, 600,
+       700, 800, 900, 1000, 1100, 1300, 1400, 1500,
+};
+
+/* This array maps the raw register value to charger output current */
+static int ab8500_charge_output_curr_map[] = {
+       100, 200, 300, 400, 500, 600, 700, 800,
+       900, 1000, 1100, 1200, 1300, 1400, 1500, 1500,
+};
+
 static int ab8500_current_to_regval(struct ab8500_charger *di, int curr)
 {
        int i;
 
-       if (curr < di->bm->chg_output_curr[0])
+       if (curr < ab8500_charge_output_curr_map[0])
                return 0;
 
-       for (i = 0; i < di->bm->n_chg_out_curr; i++) {
-               if (curr < di->bm->chg_output_curr[i])
+       for (i = 0; i < ARRAY_SIZE(ab8500_charge_output_curr_map); i++) {
+               if (curr < ab8500_charge_output_curr_map[i])
                        return i - 1;
        }
 
        /* If not last element, return error */
-       i = di->bm->n_chg_out_curr - 1;
-       if (curr == di->bm->chg_output_curr[i])
+       i =  ARRAY_SIZE(ab8500_charge_output_curr_map) - 1;
+       if (curr == ab8500_charge_output_curr_map[i])
                return i;
        else
                return -1;
 {
        int i;
 
-       if (curr < di->bm->chg_input_curr[0])
+       if (curr < ab8500_charge_input_curr_map[0])
                return 0;
 
-       for (i = 0; i < di->bm->n_chg_in_curr; i++) {
-               if (curr < di->bm->chg_input_curr[i])
+       for (i = 0; i < ARRAY_SIZE(ab8500_charge_input_curr_map); i++) {
+               if (curr < ab8500_charge_input_curr_map[i])
                        return i - 1;
        }
 
        /* If not last element, return error */
-       i = di->bm->n_chg_in_curr - 1;
-       if (curr == di->bm->chg_input_curr[i])
+       i =  ARRAY_SIZE(ab8500_charge_input_curr_map) - 1;
+       if (curr == ab8500_charge_input_curr_map[i])
                return i;
        else
                return -1;
                return;
        }
 
-       curr = di->bm->chg_input_curr[
+       curr = ab8500_charge_input_curr_map[
                reg_value >> AUTO_VBUS_IN_CURR_LIM_SHIFT];
 
        if (di->max_usb_in_curr.calculated_max != curr) {
        di->ac_chg.max_out_volt = ab8500_charger_voltage_map[
                ARRAY_SIZE(ab8500_charger_voltage_map) - 1];
        di->ac_chg.max_out_curr =
-               di->bm->chg_output_curr[di->bm->n_chg_out_curr - 1];
+               ab8500_charge_output_curr_map[ARRAY_SIZE(ab8500_charge_output_curr_map) - 1];
        di->ac_chg.wdt_refresh = CHG_WD_INTERVAL;
        /*
         * The AB8505 only supports USB charging. If we are not the
        di->usb_chg.max_out_volt = ab8500_charger_voltage_map[
                ARRAY_SIZE(ab8500_charger_voltage_map) - 1];
        di->usb_chg.max_out_curr =
-               di->bm->chg_output_curr[di->bm->n_chg_out_curr - 1];
+               ab8500_charge_output_curr_map[ARRAY_SIZE(ab8500_charge_output_curr_map) - 1];
        di->usb_chg.wdt_refresh = CHG_WD_INTERVAL;
        di->usb_chg.external = false;
        di->usb_state.usb_current = -1;