static void regulator_show(struct seq_file *s, const char *id) { struct regulator *regulator = regulator_get(NULL, id); if (IS_ERR_OR_NULL(regulator)) { SEQ_PRINTF(s, "%-20s (unknown error)\n", id); return; } { struct regulator_dev *rdev = regulator->rdev; struct sci_regulator_desc *desc = (struct sci_regulator_desc *)rdev->desc; const struct sci_regulator_regs *regs = desc->regs; int count; int i; int is_enabled; int volc_ctl_shft = __ffs(regs->vol_ctl_bits); is_enabled = regulator_is_enabled(regulator); SEQ_PRINTF(s, "%-20s %-5s %-3s ", id, types[regs->typ], is_enabled < 0 ? "U" : (is_enabled ? "ON" : "OFF")); count = regs->vol_sel_cnt; if (count > 0) { int found = 0; for (i = 0; i < count; i++) { int mV = regs->vol_sel[i]; if (!found && regs->vol_ctl) { int sel = (sci_adi_read(regs->vol_ctl) & regs->vol_ctl_bits) >> volc_ctl_shft; if (sel == i) { SEQ_PRINTF(s, "*"); found = 1; } } SEQ_PRINTF(s, "%u ", mV); } }
static int st_fdma_debugfs_regs_show(struct seq_file *m, void *v) { struct st_fdma_device *fdev = m->private; int i; seq_printf(m, "--- %s (0x%p) (FW: %s) ---\n", dev_name(fdev->dev), fdev->io_base, st_fdma_debugfs_fw_state[fdev->fw_state]); SEQ_PRINTF(m, "ID", fdev->io_base + fdev->regs.id); SEQ_PRINTF(m, "VER", fdev->io_base + fdev->regs.ver); SEQ_PRINTF(m, "EN", fdev->io_base + fdev->regs.en); SEQ_PRINTF(m, "CLK_GATE", fdev->io_base + fdev->regs.clk_gate); SEQ_PRINTF(m, "SLIM_PC", fdev->io_base + fdev->regs.slim_pc); SEQ_PRINTF(m, "STBUS_SYNC", fdev->io_base + fdev->regs.sync_reg); SEQ_PRINTF(m, "REV_ID", fdev->io_base + fdev->regs.rev_id); if (fdev->regs.mchi_rx_nb_cur) SEQ_PRINTF(m, "MCHI_RX_NB_CUR", fdev->io_base + fdev->regs.mchi_rx_nb_cur); if (fdev->regs.mchi_rx_nb_all) SEQ_PRINTF(m, "MCHI_RX_NB_ALL", fdev->io_base + fdev->regs.mchi_rx_nb_all); for (i = 1; i < 31; ++i) { char buffer[80]; sprintf(buffer, "REQ_CONTROL[%d]", i); SEQ_PRINTF(m, buffer, REQ_CONTROLn_REG(fdev, i)); } SEQ_PRINTF(m, "CMD_STA", fdev->io_base + fdev->regs.cmd_sta); SEQ_PRINTF(m, "CMD_SET", fdev->io_base + fdev->regs.cmd_set); SEQ_PRINTF(m, "CMD_CLR", fdev->io_base + fdev->regs.cmd_clr); SEQ_PRINTF(m, "CMD_MASK", fdev->io_base + fdev->regs.cmd_mask); SEQ_PRINTF(m, "INT_STA", fdev->io_base + fdev->regs.int_sta); SEQ_PRINTF(m, "INT_SET", fdev->io_base + fdev->regs.int_set); SEQ_PRINTF(m, "INT_CLR", fdev->io_base + fdev->regs.int_clr); SEQ_PRINTF(m, "INT_MASK", fdev->io_base + fdev->regs.int_mask); return 0; }
static int st_fdma_debugfs_chan_show(struct seq_file *m, void *v) { struct st_fdma_chan *fchan = m->private; char buffer[80]; int i; seq_printf(m, "--- %s (0x%p) channel %d (%s) ---\n", dev_name(fchan->fdev->dev), fchan->fdev->io_base, fchan->id, st_fdma_debugfs_fchan_state[fchan->state]); SEQ_PRINTF(m, "CMD_STAT", CMD_STAT_REG(fchan)); SEQ_PRINTF(m, "PTR", NODE_PTR_REG(fchan)); SEQ_PRINTF(m, "CTRL", NODE_CTRL_REG(fchan)); SEQ_PRINTF(m, "COUNT", NODE_COUNT_REG(fchan)); SEQ_PRINTF(m, "SADDR", NODE_SADDR_REG(fchan)); SEQ_PRINTF(m, "DADDR", NODE_DADDR_REG(fchan)); switch (fchan->type) { case ST_DMA_TYPE_TELSS: SEQ_PRINTF(m, "NPARAM", NODE_TELSS_NODE_PARAM_REG(fchan)); for (i = 0; i < ST_FDMA_LLU_TELSS_HANDSETS; ++i) { sprintf(buffer, "HPARAM[%d]", i); SEQ_PRINTF(m, buffer, NODE_TELSS_HANDSET_PARAMn_REG(fchan, i)); } break; case ST_DMA_TYPE_MCHI: SEQ_PRINTF(m, "MCHI_LENGTH", NODE_MCHI_LENGTH_REG(fchan)); SEQ_PRINTF(m, "MCHI_RX_FIFO_THR_ADDR", NODE_MCHI_RX_FIFO_THR_ADDR_REG(fchan)); SEQ_PRINTF(m, "MCHI_DSTRIDE", NODE_MCHI_DSTRIDE_REG(fchan)); break; default: /* No additional registers to print */ break; } if (fchan->dreq) { sprintf(buffer, "REQ_CONTROL[%d]", fchan->dreq->request_line); SEQ_PRINTF(m, buffer, REQ_CONTROLn_REG(fchan->fdev, fchan->dreq->request_line)); sprintf(buffer, "TRANSFER DIRECTION"); seq_printf(m, "%-30s = %s\n", buffer, st_fdma_debugfs_direction[fchan->dreq->direction]); } seq_printf(m, "\n"); return 0; }