max1720x_battery: add nv ram reg dump path for debugging

Bug: 205259954
Signed-off-by: Jenny Ho <[email protected]>
Change-Id: I5b59473fc423e892ebc26327d1a938311fb8c492
diff --git a/max1720x_battery.c b/max1720x_battery.c
index 8a5225a..6cb2b5a 100644
--- a/max1720x_battery.c
+++ b/max1720x_battery.c
@@ -3753,6 +3753,43 @@
 
 BATTERY_DEBUG_ATTRIBUTE(debug_reg_all_fops, max1720x_show_reg_all, NULL);
 
+static ssize_t max1720x_show_nvreg_all(struct file *filp, char __user *buf,
+					size_t count, loff_t *ppos)
+{
+	struct max1720x_chip *chip = (struct max1720x_chip *)filp->private_data;
+	const struct max17x0x_regmap *map = &chip->regmap_nvram;
+	u32 reg_address;
+	unsigned int data;
+	char *tmp;
+	int ret = 0, len = 0;
+
+	if (!map->regmap) {
+		pr_err("Failed to read, no regmap\n");
+		return -EIO;
+	}
+
+	tmp = kmalloc(PAGE_SIZE, GFP_KERNEL);
+	if (!tmp)
+		return -ENOMEM;
+
+	for (reg_address = 0; reg_address <= 0xFF; reg_address++) {
+		ret = regmap_read(map->regmap, reg_address, &data);
+		if (ret < 0)
+			continue;
+
+		len += scnprintf(tmp + len, PAGE_SIZE - len, "%02x: %04x\n", reg_address, data);
+	}
+
+	if (len > 0)
+		len = simple_read_from_buffer(buf, count,  ppos, tmp, strlen(tmp));
+
+	kfree(tmp);
+
+	return len;
+}
+
+BATTERY_DEBUG_ATTRIBUTE(debug_nvreg_all_fops, max1720x_show_nvreg_all, NULL);
+
 static ssize_t max1720x_force_psy_update(struct file *filp,
 					 const char __user *user_buf,
 					 size_t count, loff_t *ppos)
@@ -3892,9 +3929,14 @@
 	/* dump all registers */
 	debugfs_create_file("registers", 0444, de, chip, &debug_reg_all_fops);
 
+	if (chip->regmap_nvram.regmap)
+		debugfs_create_file("nv_registers", 0444, de, chip, &debug_nvreg_all_fops);
+
 	/* reset fg eeprom data for debugging */
-	debugfs_create_file("cnhs_reset", 0400, de, chip, &debug_reset_cnhs_fops);
-	debugfs_create_file("gmsr_reset", 0400, de, chip, &debug_reset_gmsr_fops);
+	if (chip->gauge_type == MAX_M5_GAUGE_TYPE) {
+		debugfs_create_file("cnhs_reset", 0400, de, chip, &debug_reset_cnhs_fops);
+		debugfs_create_file("gmsr_reset", 0400, de, chip, &debug_reset_gmsr_fops);
+	}
 
 	/* capacity fade */
 	debugfs_create_u32("bhi_fcn_count", 0644, de, &chip->bhi_fcn_count);