Loading drivers/mfd/ab8500-debugfs.c +372 −11 Original line number Diff line number Diff line Loading @@ -156,7 +156,9 @@ static struct hwreg_cfg hwreg_cfg = { #define AB8500_REV_REG 0x80 static struct ab8500_prcmu_ranges debug_ranges[AB8500_NUM_BANKS] = { static struct ab8500_prcmu_ranges *debug_ranges; struct ab8500_prcmu_ranges ab8500_debug_ranges[AB8500_NUM_BANKS] = { [0x0] = { .num_ranges = 0, .range = NULL, Loading Loading @@ -485,6 +487,365 @@ static struct ab8500_prcmu_ranges debug_ranges[AB8500_NUM_BANKS] = { }, }; struct ab8500_prcmu_ranges ab8505_debug_ranges[AB8500_NUM_BANKS] = { [0x0] = { .num_ranges = 0, .range = NULL, }, [AB8500_SYS_CTRL1_BLOCK] = { .num_ranges = 5, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x04, }, { .first = 0x42, .last = 0x42, }, { .first = 0x52, .last = 0x52, }, { .first = 0x54, .last = 0x57, }, { .first = 0x80, .last = 0x83, }, }, }, [AB8500_SYS_CTRL2_BLOCK] = { .num_ranges = 5, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x0D, }, { .first = 0x0F, .last = 0x17, }, { .first = 0x20, .last = 0x20, }, { .first = 0x30, .last = 0x30, }, { .first = 0x32, .last = 0x3A, }, }, }, [AB8500_REGU_CTRL1] = { .num_ranges = 3, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x00, }, { .first = 0x03, .last = 0x11, }, { .first = 0x80, .last = 0x86, }, }, }, [AB8500_REGU_CTRL2] = { .num_ranges = 6, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x06, }, { .first = 0x08, .last = 0x15, }, { .first = 0x17, .last = 0x19, }, { .first = 0x1B, .last = 0x1D, }, { .first = 0x1F, .last = 0x30, }, { .first = 0x40, .last = 0x48, }, /* 0x80-0x8B is SIM registers and should * not be accessed from here */ }, }, [AB8500_USB] = { .num_ranges = 3, .range = (struct ab8500_reg_range[]) { { .first = 0x80, .last = 0x83, }, { .first = 0x87, .last = 0x8A, }, { .first = 0x91, .last = 0x94, }, }, }, [AB8500_TVOUT] = { .num_ranges = 0, .range = NULL, }, [AB8500_DBI] = { .num_ranges = 0, .range = NULL, }, [AB8500_ECI_AV_ACC] = { .num_ranges = 1, .range = (struct ab8500_reg_range[]) { { .first = 0x80, .last = 0x82, }, }, }, [AB8500_RESERVED] = { .num_ranges = 0, .range = NULL, }, [AB8500_GPADC] = { .num_ranges = 1, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x08, }, }, }, [AB8500_CHARGER] = { .num_ranges = 9, .range = (struct ab8500_reg_range[]) { { .first = 0x02, .last = 0x03, }, { .first = 0x05, .last = 0x05, }, { .first = 0x40, .last = 0x44, }, { .first = 0x50, .last = 0x57, }, { .first = 0x60, .last = 0x60, }, { .first = 0xA0, .last = 0xA7, }, { .first = 0xAF, .last = 0xB2, }, { .first = 0xC0, .last = 0xC2, }, { .first = 0xF5, .last = 0xF5, }, }, }, [AB8500_GAS_GAUGE] = { .num_ranges = 3, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x00, }, { .first = 0x07, .last = 0x0A, }, { .first = 0x10, .last = 0x14, }, }, }, [AB8500_AUDIO] = { .num_ranges = 1, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x83, }, }, }, [AB8500_INTERRUPT] = { .num_ranges = 11, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x04, }, { .first = 0x06, .last = 0x07, }, { .first = 0x09, .last = 0x09, }, { .first = 0x0B, .last = 0x0C, }, { .first = 0x12, .last = 0x15, }, { .first = 0x18, .last = 0x18, }, /* Latch registers should not be read here */ { .first = 0x40, .last = 0x44, }, { .first = 0x46, .last = 0x49, }, { .first = 0x4B, .last = 0x4D, }, { .first = 0x52, .last = 0x55, }, { .first = 0x58, .last = 0x58, }, /* LatchHier registers should not be read here */ }, }, [AB8500_RTC] = { .num_ranges = 2, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x14, }, { .first = 0x16, .last = 0x17, }, }, }, [AB8500_MISC] = { .num_ranges = 8, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x06, }, { .first = 0x10, .last = 0x16, }, { .first = 0x20, .last = 0x26, }, { .first = 0x30, .last = 0x36, }, { .first = 0x40, .last = 0x46, }, { .first = 0x50, .last = 0x50, }, { .first = 0x60, .last = 0x6B, }, { .first = 0x80, .last = 0x82, }, }, }, [AB8500_DEVELOPMENT] = { .num_ranges = 2, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x00, }, { .first = 0x05, .last = 0x05, }, }, }, [AB8500_DEBUG] = { .num_ranges = 1, .range = (struct ab8500_reg_range[]) { { .first = 0x05, .last = 0x07, }, }, }, [AB8500_PROD_TEST] = { .num_ranges = 0, .range = NULL, }, [AB8500_STE_TEST] = { .num_ranges = 0, .range = NULL, }, [AB8500_OTP_EMUL] = { .num_ranges = 1, .range = (struct ab8500_reg_range[]) { { .first = 0x01, .last = 0x15, }, }, }, }; static irqreturn_t ab8500_debug_handler(int irq, void *data) { char buf[16]; Loading Loading @@ -529,9 +890,6 @@ static int ab8500_registers_print(struct device *dev, u32 bank, err = seq_printf(s, " [0x%02X/0x%02X]: 0x%02X\n", bank, reg, value); if (err < 0) { dev_err(dev, "seq_printf overflow bank=0x%02X reg=0x%02X\n", bank, reg); /* Error is not returned here since * the output is wanted in any case */ return 0; Loading Loading @@ -581,8 +939,6 @@ static int ab8500_print_all_banks(struct seq_file *s, void *p) for (i = 1; i < AB8500_NUM_BANKS; i++) { err = seq_printf(s, " bank 0x%02X:\n", i); if (err < 0) dev_err(dev, "seq_printf overflow, bank=0x%02X\n", i); ab8500_registers_print(dev, i, s); } Loading Loading @@ -1937,14 +2293,19 @@ static int ab8500_debug_probe(struct platform_device *plf) if (!file) goto err; if (is_ab8500(ab8500)) if (is_ab8500(ab8500)) { debug_ranges = ab8500_debug_ranges; num_interrupt_lines = AB8500_NR_IRQS; else if (is_ab8505(ab8500)) } else if (is_ab8505(ab8500)) { debug_ranges = ab8505_debug_ranges; num_interrupt_lines = AB8505_NR_IRQS; else if (is_ab9540(ab8500)) } else if (is_ab9540(ab8500)) { debug_ranges = ab8505_debug_ranges; num_interrupt_lines = AB9540_NR_IRQS; else if (is_ab8540(ab8500)) } else if (is_ab8540(ab8500)) { debug_ranges = ab8505_debug_ranges; num_interrupt_lines = AB8540_NR_IRQS; } file = debugfs_create_file("interrupts", (S_IRUGO), ab8500_dir, &plf->dev, &ab8500_interrupts_fops); Loading Loading
drivers/mfd/ab8500-debugfs.c +372 −11 Original line number Diff line number Diff line Loading @@ -156,7 +156,9 @@ static struct hwreg_cfg hwreg_cfg = { #define AB8500_REV_REG 0x80 static struct ab8500_prcmu_ranges debug_ranges[AB8500_NUM_BANKS] = { static struct ab8500_prcmu_ranges *debug_ranges; struct ab8500_prcmu_ranges ab8500_debug_ranges[AB8500_NUM_BANKS] = { [0x0] = { .num_ranges = 0, .range = NULL, Loading Loading @@ -485,6 +487,365 @@ static struct ab8500_prcmu_ranges debug_ranges[AB8500_NUM_BANKS] = { }, }; struct ab8500_prcmu_ranges ab8505_debug_ranges[AB8500_NUM_BANKS] = { [0x0] = { .num_ranges = 0, .range = NULL, }, [AB8500_SYS_CTRL1_BLOCK] = { .num_ranges = 5, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x04, }, { .first = 0x42, .last = 0x42, }, { .first = 0x52, .last = 0x52, }, { .first = 0x54, .last = 0x57, }, { .first = 0x80, .last = 0x83, }, }, }, [AB8500_SYS_CTRL2_BLOCK] = { .num_ranges = 5, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x0D, }, { .first = 0x0F, .last = 0x17, }, { .first = 0x20, .last = 0x20, }, { .first = 0x30, .last = 0x30, }, { .first = 0x32, .last = 0x3A, }, }, }, [AB8500_REGU_CTRL1] = { .num_ranges = 3, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x00, }, { .first = 0x03, .last = 0x11, }, { .first = 0x80, .last = 0x86, }, }, }, [AB8500_REGU_CTRL2] = { .num_ranges = 6, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x06, }, { .first = 0x08, .last = 0x15, }, { .first = 0x17, .last = 0x19, }, { .first = 0x1B, .last = 0x1D, }, { .first = 0x1F, .last = 0x30, }, { .first = 0x40, .last = 0x48, }, /* 0x80-0x8B is SIM registers and should * not be accessed from here */ }, }, [AB8500_USB] = { .num_ranges = 3, .range = (struct ab8500_reg_range[]) { { .first = 0x80, .last = 0x83, }, { .first = 0x87, .last = 0x8A, }, { .first = 0x91, .last = 0x94, }, }, }, [AB8500_TVOUT] = { .num_ranges = 0, .range = NULL, }, [AB8500_DBI] = { .num_ranges = 0, .range = NULL, }, [AB8500_ECI_AV_ACC] = { .num_ranges = 1, .range = (struct ab8500_reg_range[]) { { .first = 0x80, .last = 0x82, }, }, }, [AB8500_RESERVED] = { .num_ranges = 0, .range = NULL, }, [AB8500_GPADC] = { .num_ranges = 1, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x08, }, }, }, [AB8500_CHARGER] = { .num_ranges = 9, .range = (struct ab8500_reg_range[]) { { .first = 0x02, .last = 0x03, }, { .first = 0x05, .last = 0x05, }, { .first = 0x40, .last = 0x44, }, { .first = 0x50, .last = 0x57, }, { .first = 0x60, .last = 0x60, }, { .first = 0xA0, .last = 0xA7, }, { .first = 0xAF, .last = 0xB2, }, { .first = 0xC0, .last = 0xC2, }, { .first = 0xF5, .last = 0xF5, }, }, }, [AB8500_GAS_GAUGE] = { .num_ranges = 3, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x00, }, { .first = 0x07, .last = 0x0A, }, { .first = 0x10, .last = 0x14, }, }, }, [AB8500_AUDIO] = { .num_ranges = 1, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x83, }, }, }, [AB8500_INTERRUPT] = { .num_ranges = 11, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x04, }, { .first = 0x06, .last = 0x07, }, { .first = 0x09, .last = 0x09, }, { .first = 0x0B, .last = 0x0C, }, { .first = 0x12, .last = 0x15, }, { .first = 0x18, .last = 0x18, }, /* Latch registers should not be read here */ { .first = 0x40, .last = 0x44, }, { .first = 0x46, .last = 0x49, }, { .first = 0x4B, .last = 0x4D, }, { .first = 0x52, .last = 0x55, }, { .first = 0x58, .last = 0x58, }, /* LatchHier registers should not be read here */ }, }, [AB8500_RTC] = { .num_ranges = 2, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x14, }, { .first = 0x16, .last = 0x17, }, }, }, [AB8500_MISC] = { .num_ranges = 8, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x06, }, { .first = 0x10, .last = 0x16, }, { .first = 0x20, .last = 0x26, }, { .first = 0x30, .last = 0x36, }, { .first = 0x40, .last = 0x46, }, { .first = 0x50, .last = 0x50, }, { .first = 0x60, .last = 0x6B, }, { .first = 0x80, .last = 0x82, }, }, }, [AB8500_DEVELOPMENT] = { .num_ranges = 2, .range = (struct ab8500_reg_range[]) { { .first = 0x00, .last = 0x00, }, { .first = 0x05, .last = 0x05, }, }, }, [AB8500_DEBUG] = { .num_ranges = 1, .range = (struct ab8500_reg_range[]) { { .first = 0x05, .last = 0x07, }, }, }, [AB8500_PROD_TEST] = { .num_ranges = 0, .range = NULL, }, [AB8500_STE_TEST] = { .num_ranges = 0, .range = NULL, }, [AB8500_OTP_EMUL] = { .num_ranges = 1, .range = (struct ab8500_reg_range[]) { { .first = 0x01, .last = 0x15, }, }, }, }; static irqreturn_t ab8500_debug_handler(int irq, void *data) { char buf[16]; Loading Loading @@ -529,9 +890,6 @@ static int ab8500_registers_print(struct device *dev, u32 bank, err = seq_printf(s, " [0x%02X/0x%02X]: 0x%02X\n", bank, reg, value); if (err < 0) { dev_err(dev, "seq_printf overflow bank=0x%02X reg=0x%02X\n", bank, reg); /* Error is not returned here since * the output is wanted in any case */ return 0; Loading Loading @@ -581,8 +939,6 @@ static int ab8500_print_all_banks(struct seq_file *s, void *p) for (i = 1; i < AB8500_NUM_BANKS; i++) { err = seq_printf(s, " bank 0x%02X:\n", i); if (err < 0) dev_err(dev, "seq_printf overflow, bank=0x%02X\n", i); ab8500_registers_print(dev, i, s); } Loading Loading @@ -1937,14 +2293,19 @@ static int ab8500_debug_probe(struct platform_device *plf) if (!file) goto err; if (is_ab8500(ab8500)) if (is_ab8500(ab8500)) { debug_ranges = ab8500_debug_ranges; num_interrupt_lines = AB8500_NR_IRQS; else if (is_ab8505(ab8500)) } else if (is_ab8505(ab8500)) { debug_ranges = ab8505_debug_ranges; num_interrupt_lines = AB8505_NR_IRQS; else if (is_ab9540(ab8500)) } else if (is_ab9540(ab8500)) { debug_ranges = ab8505_debug_ranges; num_interrupt_lines = AB9540_NR_IRQS; else if (is_ab8540(ab8500)) } else if (is_ab8540(ab8500)) { debug_ranges = ab8505_debug_ranges; num_interrupt_lines = AB8540_NR_IRQS; } file = debugfs_create_file("interrupts", (S_IRUGO), ab8500_dir, &plf->dev, &ab8500_interrupts_fops); Loading