1 // SPDX-License-Identifier: GPL-2.0+
4 #include <linux/device.h>
5 #include <linux/debugfs.h>
6 #include <linux/fsl/ptp_qoriq.h>
8 static int ptp_qoriq_fiper1_lpbk_get(void *data
, u64
*val
)
10 struct ptp_qoriq
*ptp_qoriq
= data
;
11 struct ptp_qoriq_registers
*regs
= &ptp_qoriq
->regs
;
14 ctrl
= ptp_qoriq
->read(®s
->ctrl_regs
->tmr_ctrl
);
15 *val
= ctrl
& PP1L
? 1 : 0;
20 static int ptp_qoriq_fiper1_lpbk_set(void *data
, u64 val
)
22 struct ptp_qoriq
*ptp_qoriq
= data
;
23 struct ptp_qoriq_registers
*regs
= &ptp_qoriq
->regs
;
26 ctrl
= ptp_qoriq
->read(®s
->ctrl_regs
->tmr_ctrl
);
32 ptp_qoriq
->write(®s
->ctrl_regs
->tmr_ctrl
, ctrl
);
36 DEFINE_DEBUGFS_ATTRIBUTE(ptp_qoriq_fiper1_fops
, ptp_qoriq_fiper1_lpbk_get
,
37 ptp_qoriq_fiper1_lpbk_set
, "%llu\n");
39 static int ptp_qoriq_fiper2_lpbk_get(void *data
, u64
*val
)
41 struct ptp_qoriq
*ptp_qoriq
= data
;
42 struct ptp_qoriq_registers
*regs
= &ptp_qoriq
->regs
;
45 ctrl
= ptp_qoriq
->read(®s
->ctrl_regs
->tmr_ctrl
);
46 *val
= ctrl
& PP2L
? 1 : 0;
51 static int ptp_qoriq_fiper2_lpbk_set(void *data
, u64 val
)
53 struct ptp_qoriq
*ptp_qoriq
= data
;
54 struct ptp_qoriq_registers
*regs
= &ptp_qoriq
->regs
;
57 ctrl
= ptp_qoriq
->read(®s
->ctrl_regs
->tmr_ctrl
);
63 ptp_qoriq
->write(®s
->ctrl_regs
->tmr_ctrl
, ctrl
);
67 DEFINE_DEBUGFS_ATTRIBUTE(ptp_qoriq_fiper2_fops
, ptp_qoriq_fiper2_lpbk_get
,
68 ptp_qoriq_fiper2_lpbk_set
, "%llu\n");
70 void ptp_qoriq_create_debugfs(struct ptp_qoriq
*ptp_qoriq
)
74 root
= debugfs_create_dir(dev_name(ptp_qoriq
->dev
), NULL
);
80 ptp_qoriq
->debugfs_root
= root
;
82 if (!debugfs_create_file_unsafe("fiper1-loopback", 0600, root
,
83 ptp_qoriq
, &ptp_qoriq_fiper1_fops
))
85 if (!debugfs_create_file_unsafe("fiper2-loopback", 0600, root
,
86 ptp_qoriq
, &ptp_qoriq_fiper2_fops
))
91 debugfs_remove_recursive(root
);
92 ptp_qoriq
->debugfs_root
= NULL
;
94 dev_err(ptp_qoriq
->dev
, "failed to initialize debugfs\n");
97 void ptp_qoriq_remove_debugfs(struct ptp_qoriq
*ptp_qoriq
)
99 debugfs_remove_recursive(ptp_qoriq
->debugfs_root
);
100 ptp_qoriq
->debugfs_root
= NULL
;