Exemple #1
0
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);
			}
			
		}
Exemple #2
0
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;
}
Exemple #3
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;
}