brintos

brintos / linux-shallow public Read only

0
0
Text · 7.8 KiB · 301fa10 Raw
245 lines · c
1// SPDX-License-Identifier: GPL-2.02/*3 * c8sectpfe-debugfs.c - C8SECTPFE STi DVB driver4 *5 * Copyright (c) STMicroelectronics 20156 *7 * Author: Peter Griffin <peter.griffin@linaro.org>8 *9 */10#include <linux/debugfs.h>11#include <linux/device.h>12#include <linux/interrupt.h>13#include <linux/io.h>14#include <linux/kernel.h>15#include <linux/seq_file.h>16#include <linux/slab.h>17#include <linux/types.h>18 19#include "c8sectpfe-debugfs.h"20 21#define dump_register(nm ...)			\22{						\23	.name	= #nm,				\24	.offset	= nm,				\25}26 27static const struct debugfs_reg32 fei_sys_regs[] = {28	dump_register(SYS_INPUT_ERR_STATUS),29	dump_register(SYS_OTHER_ERR_STATUS),30	dump_register(SYS_INPUT_ERR_MASK),31	dump_register(SYS_DMA_ROUTE),32	dump_register(SYS_INPUT_CLKEN),33	dump_register(IBENABLE_MASK),34	dump_register(SYS_OTHER_CLKEN),35	dump_register(SYS_CFG_NUM_IB),36	dump_register(SYS_CFG_NUM_MIB),37	dump_register(SYS_CFG_NUM_SWTS),38	dump_register(SYS_CFG_NUM_TSOUT),39	dump_register(SYS_CFG_NUM_CCSC),40	dump_register(SYS_CFG_NUM_RAM),41	dump_register(SYS_CFG_NUM_TP),42 43	dump_register(C8SECTPFE_IB_IP_FMT_CFG(0)),44	dump_register(C8SECTPFE_IB_TAGBYTES_CFG(0)),45	dump_register(C8SECTPFE_IB_PID_SET(0)),46	dump_register(C8SECTPFE_IB_PKT_LEN(0)),47	dump_register(C8SECTPFE_IB_BUFF_STRT(0)),48	dump_register(C8SECTPFE_IB_BUFF_END(0)),49	dump_register(C8SECTPFE_IB_READ_PNT(0)),50	dump_register(C8SECTPFE_IB_WRT_PNT(0)),51	dump_register(C8SECTPFE_IB_PRI_THRLD(0)),52	dump_register(C8SECTPFE_IB_STAT(0)),53	dump_register(C8SECTPFE_IB_MASK(0)),54	dump_register(C8SECTPFE_IB_SYS(0)),55 56	dump_register(C8SECTPFE_IB_IP_FMT_CFG(1)),57	dump_register(C8SECTPFE_IB_TAGBYTES_CFG(1)),58	dump_register(C8SECTPFE_IB_PID_SET(1)),59	dump_register(C8SECTPFE_IB_PKT_LEN(1)),60	dump_register(C8SECTPFE_IB_BUFF_STRT(1)),61	dump_register(C8SECTPFE_IB_BUFF_END(1)),62	dump_register(C8SECTPFE_IB_READ_PNT(1)),63	dump_register(C8SECTPFE_IB_WRT_PNT(1)),64	dump_register(C8SECTPFE_IB_PRI_THRLD(1)),65	dump_register(C8SECTPFE_IB_STAT(1)),66	dump_register(C8SECTPFE_IB_MASK(1)),67	dump_register(C8SECTPFE_IB_SYS(1)),68 69	dump_register(C8SECTPFE_IB_IP_FMT_CFG(2)),70	dump_register(C8SECTPFE_IB_TAGBYTES_CFG(2)),71	dump_register(C8SECTPFE_IB_PID_SET(2)),72	dump_register(C8SECTPFE_IB_PKT_LEN(2)),73	dump_register(C8SECTPFE_IB_BUFF_STRT(2)),74	dump_register(C8SECTPFE_IB_BUFF_END(2)),75	dump_register(C8SECTPFE_IB_READ_PNT(2)),76	dump_register(C8SECTPFE_IB_WRT_PNT(2)),77	dump_register(C8SECTPFE_IB_PRI_THRLD(2)),78	dump_register(C8SECTPFE_IB_STAT(2)),79	dump_register(C8SECTPFE_IB_MASK(2)),80	dump_register(C8SECTPFE_IB_SYS(2)),81 82	dump_register(C8SECTPFE_IB_IP_FMT_CFG(3)),83	dump_register(C8SECTPFE_IB_TAGBYTES_CFG(3)),84	dump_register(C8SECTPFE_IB_PID_SET(3)),85	dump_register(C8SECTPFE_IB_PKT_LEN(3)),86	dump_register(C8SECTPFE_IB_BUFF_STRT(3)),87	dump_register(C8SECTPFE_IB_BUFF_END(3)),88	dump_register(C8SECTPFE_IB_READ_PNT(3)),89	dump_register(C8SECTPFE_IB_WRT_PNT(3)),90	dump_register(C8SECTPFE_IB_PRI_THRLD(3)),91	dump_register(C8SECTPFE_IB_STAT(3)),92	dump_register(C8SECTPFE_IB_MASK(3)),93	dump_register(C8SECTPFE_IB_SYS(3)),94 95	dump_register(C8SECTPFE_IB_IP_FMT_CFG(4)),96	dump_register(C8SECTPFE_IB_TAGBYTES_CFG(4)),97	dump_register(C8SECTPFE_IB_PID_SET(4)),98	dump_register(C8SECTPFE_IB_PKT_LEN(4)),99	dump_register(C8SECTPFE_IB_BUFF_STRT(4)),100	dump_register(C8SECTPFE_IB_BUFF_END(4)),101	dump_register(C8SECTPFE_IB_READ_PNT(4)),102	dump_register(C8SECTPFE_IB_WRT_PNT(4)),103	dump_register(C8SECTPFE_IB_PRI_THRLD(4)),104	dump_register(C8SECTPFE_IB_STAT(4)),105	dump_register(C8SECTPFE_IB_MASK(4)),106	dump_register(C8SECTPFE_IB_SYS(4)),107 108	dump_register(C8SECTPFE_IB_IP_FMT_CFG(5)),109	dump_register(C8SECTPFE_IB_TAGBYTES_CFG(5)),110	dump_register(C8SECTPFE_IB_PID_SET(5)),111	dump_register(C8SECTPFE_IB_PKT_LEN(5)),112	dump_register(C8SECTPFE_IB_BUFF_STRT(5)),113	dump_register(C8SECTPFE_IB_BUFF_END(5)),114	dump_register(C8SECTPFE_IB_READ_PNT(5)),115	dump_register(C8SECTPFE_IB_WRT_PNT(5)),116	dump_register(C8SECTPFE_IB_PRI_THRLD(5)),117	dump_register(C8SECTPFE_IB_STAT(5)),118	dump_register(C8SECTPFE_IB_MASK(5)),119	dump_register(C8SECTPFE_IB_SYS(5)),120 121	dump_register(C8SECTPFE_IB_IP_FMT_CFG(6)),122	dump_register(C8SECTPFE_IB_TAGBYTES_CFG(6)),123	dump_register(C8SECTPFE_IB_PID_SET(6)),124	dump_register(C8SECTPFE_IB_PKT_LEN(6)),125	dump_register(C8SECTPFE_IB_BUFF_STRT(6)),126	dump_register(C8SECTPFE_IB_BUFF_END(6)),127	dump_register(C8SECTPFE_IB_READ_PNT(6)),128	dump_register(C8SECTPFE_IB_WRT_PNT(6)),129	dump_register(C8SECTPFE_IB_PRI_THRLD(6)),130	dump_register(C8SECTPFE_IB_STAT(6)),131	dump_register(C8SECTPFE_IB_MASK(6)),132	dump_register(C8SECTPFE_IB_SYS(6)),133 134	dump_register(DMA_CPU_ID),135	dump_register(DMA_CPU_VCR),136	dump_register(DMA_CPU_RUN),137	dump_register(DMA_CPU_PC),138 139	dump_register(DMA_PER_TPn_DREQ_MASK),140	dump_register(DMA_PER_TPn_DACK_SET),141	dump_register(DMA_PER_TPn_DREQ),142	dump_register(DMA_PER_TPn_DACK),143	dump_register(DMA_PER_DREQ_MODE),144	dump_register(DMA_PER_STBUS_SYNC),145	dump_register(DMA_PER_STBUS_ACCESS),146	dump_register(DMA_PER_STBUS_ADDRESS),147	dump_register(DMA_PER_IDLE_INT),148	dump_register(DMA_PER_PRIORITY),149	dump_register(DMA_PER_MAX_OPCODE),150	dump_register(DMA_PER_MAX_CHUNK),151	dump_register(DMA_PER_PAGE_SIZE),152	dump_register(DMA_PER_MBOX_STATUS),153	dump_register(DMA_PER_MBOX_SET),154	dump_register(DMA_PER_MBOX_CLEAR),155	dump_register(DMA_PER_MBOX_MASK),156	dump_register(DMA_PER_INJECT_PKT_SRC),157	dump_register(DMA_PER_INJECT_PKT_DEST),158	dump_register(DMA_PER_INJECT_PKT_ADDR),159	dump_register(DMA_PER_INJECT_PKT),160	dump_register(DMA_PER_PAT_PTR_INIT),161	dump_register(DMA_PER_PAT_PTR),162	dump_register(DMA_PER_SLEEP_MASK),163	dump_register(DMA_PER_SLEEP_COUNTER),164 165	dump_register(DMA_FIRMWARE_VERSION),166	dump_register(DMA_PTRREC_BASE),167	dump_register(DMA_PTRREC_INPUT_OFFSET),168	dump_register(DMA_ERRREC_BASE),169 170	dump_register(DMA_ERROR_RECORD(0)),171	dump_register(DMA_ERROR_RECORD(1)),172	dump_register(DMA_ERROR_RECORD(2)),173	dump_register(DMA_ERROR_RECORD(3)),174	dump_register(DMA_ERROR_RECORD(4)),175	dump_register(DMA_ERROR_RECORD(5)),176	dump_register(DMA_ERROR_RECORD(6)),177	dump_register(DMA_ERROR_RECORD(7)),178	dump_register(DMA_ERROR_RECORD(8)),179	dump_register(DMA_ERROR_RECORD(9)),180	dump_register(DMA_ERROR_RECORD(10)),181	dump_register(DMA_ERROR_RECORD(11)),182	dump_register(DMA_ERROR_RECORD(12)),183	dump_register(DMA_ERROR_RECORD(13)),184	dump_register(DMA_ERROR_RECORD(14)),185	dump_register(DMA_ERROR_RECORD(15)),186	dump_register(DMA_ERROR_RECORD(16)),187	dump_register(DMA_ERROR_RECORD(17)),188	dump_register(DMA_ERROR_RECORD(18)),189	dump_register(DMA_ERROR_RECORD(19)),190	dump_register(DMA_ERROR_RECORD(20)),191	dump_register(DMA_ERROR_RECORD(21)),192	dump_register(DMA_ERROR_RECORD(22)),193 194	dump_register(DMA_IDLE_REQ),195	dump_register(DMA_FIRMWARE_CONFIG),196 197	dump_register(PIDF_BASE(0)),198	dump_register(PIDF_BASE(1)),199	dump_register(PIDF_BASE(2)),200	dump_register(PIDF_BASE(3)),201	dump_register(PIDF_BASE(4)),202	dump_register(PIDF_BASE(5)),203	dump_register(PIDF_BASE(6)),204	dump_register(PIDF_BASE(7)),205	dump_register(PIDF_BASE(8)),206	dump_register(PIDF_BASE(9)),207	dump_register(PIDF_BASE(10)),208	dump_register(PIDF_BASE(11)),209	dump_register(PIDF_BASE(12)),210	dump_register(PIDF_BASE(13)),211	dump_register(PIDF_BASE(14)),212	dump_register(PIDF_BASE(15)),213	dump_register(PIDF_BASE(16)),214	dump_register(PIDF_BASE(17)),215	dump_register(PIDF_BASE(18)),216	dump_register(PIDF_BASE(19)),217	dump_register(PIDF_BASE(20)),218	dump_register(PIDF_BASE(21)),219	dump_register(PIDF_BASE(22)),220	dump_register(PIDF_LEAK_ENABLE),221	dump_register(PIDF_LEAK_STATUS),222	dump_register(PIDF_LEAK_COUNT_RESET),223	dump_register(PIDF_LEAK_COUNTER),224};225 226void c8sectpfe_debugfs_init(struct c8sectpfei *fei)227{228	fei->regset =  devm_kzalloc(fei->dev, sizeof(*fei->regset), GFP_KERNEL);229	if (!fei->regset)230		return;231 232	fei->regset->regs = fei_sys_regs;233	fei->regset->nregs = ARRAY_SIZE(fei_sys_regs);234	fei->regset->base = fei->io;235 236	fei->root = debugfs_create_dir("c8sectpfe", NULL);237	debugfs_create_regset32("registers", S_IRUGO, fei->root, fei->regset);238}239 240void c8sectpfe_debugfs_exit(struct c8sectpfei *fei)241{242	debugfs_remove_recursive(fei->root);243	fei->root = NULL;244}245