* the resistor between Vcc and Vbackup?
         */
        bool                    requires_trickle_resistor;
+       /* Some RTC's batteries and supercaps were charged by default, others
+        * allow charging but were not configured previously to do so.
+        * Remember this behavior to stay backwards compatible.
+        */
+       bool                    charge_default;
 };
 
 static const struct chip_desc chips[last_ds_type];
                .trickle_charger_reg = 0x10,
                .do_trickle_setup = &do_trickle_setup_ds1339,
                .requires_trickle_resistor = true,
+               .charge_default = true,
        },
        [ds_1340] = {
                .century_reg    = DS1307_REG_HOUR,
                .do_trickle_setup = &do_trickle_setup_ds1339,
                .trickle_charger_reg = 0x08,
                .requires_trickle_resistor = true,
+               .charge_default = true,
        },
        [ds_1341] = {
                .century_reg    = DS1307_REG_MONTH,
                              const struct chip_desc *chip)
 {
        u32 ohms;
-       bool diode = true;
+       bool diode = chip->charge_default;
 
        if (!chip->do_trickle_setup)
                return 0;