switch ((id2 & WM8350_CHIP_REV_MASK) >> 12) {
                case WM8350_REV_E:
                        dev_info(wm8350->dev, "Found Rev E device\n");
-                       wm8350->rev = WM8350_REV_E;
                        break;
                case WM8350_REV_F:
                        dev_info(wm8350->dev, "Found Rev F device\n");
-                       wm8350->rev = WM8350_REV_F;
                        break;
                case WM8350_REV_G:
                        dev_info(wm8350->dev, "Found Rev G device\n");
-                       wm8350->rev = WM8350_REV_G;
+                       wm8350->power.rev_g_coeff = 1;
                        break;
                case WM8350_REV_H:
                        dev_info(wm8350->dev, "Found Rev H device\n");
-                       wm8350->rev = WM8350_REV_H;
+                       wm8350->power.rev_g_coeff = 1;
                        break;
                default:
                        /* For safety we refuse to run on unknown hardware */
 
 
 static inline int wm8350_charge_time_min(struct wm8350 *wm8350, int min)
 {
-       if (wm8350->rev < WM8350_REV_G)
+       if (!wm8350->power.rev_g_coeff)
                return (((min - 30) / 15) & 0xf) << 8;
        else
                return (((min - 30) / 30) & 0xf) << 8;