Skip to content

Commit b3868c0

Browse files
committed
iio: adc: adrv902x: Add DPD status
Add DEBUGF attribut for getting DPD status on each of the 4 Tx channels. Signed-off-by: George Mois <[email protected]>
1 parent 1f66bcd commit b3868c0

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

drivers/iio/adc/adrv902x/adrv9025.c

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1594,6 +1594,26 @@ static ssize_t adrv9025_tx_lol_status_read(struct adrv9025_rf_phy *phy,
15941594
txLolStatus.updateCount);
15951595
}
15961596

1597+
static ssize_t adrv9025_tx_dpd_status_read(struct adrv9025_rf_phy *phy,
1598+
adi_adrv9025_TxChannels_e txChannel,
1599+
char *buf)
1600+
{
1601+
adi_adrv9025_DpdStatus_v2_t txDpdStatus = { 0 };
1602+
int ret;
1603+
1604+
mutex_lock(&phy->lock);
1605+
ret = adi_adrv9025_DpdStatusGet_v2(phy->madDevice, txChannel, &txDpdStatus);
1606+
mutex_unlock(&phy->lock);
1607+
if (ret)
1608+
return adrv9025_dev_err(phy);
1609+
1610+
return scnprintf(buf, PAGE_SIZE, "err %d %% %d iter cnt %d update cnt %d\n",
1611+
txDpdStatus.dpdErrorCode,
1612+
txDpdStatus.dpdPercentComplete,
1613+
txDpdStatus.dpdIterCount,
1614+
txDpdStatus.dpdUpdateCount);
1615+
}
1616+
15971617
static ssize_t adrv9025_debugfs_read(struct file *file, char __user *userbuf,
15981618
size_t count, loff_t *ppos)
15991619
{
@@ -1672,6 +1692,16 @@ static ssize_t adrv9025_debugfs_read(struct file *file, char __user *userbuf,
16721692
return ret;
16731693
len = ret;
16741694
break;
1695+
case DBGFS_TX0_DPD_STATUS:
1696+
case DBGFS_TX1_DPD_STATUS:
1697+
case DBGFS_TX2_DPD_STATUS:
1698+
case DBGFS_TX3_DPD_STATUS:
1699+
chan = ADI_ADRV9025_TX1 << (entry->cmd - DBGFS_TX0_DPD_STATUS);
1700+
ret = adrv9025_tx_dpd_status_read(phy, chan, buf);
1701+
if (ret < 0)
1702+
return ret;
1703+
len = ret;
1704+
break;
16751705
default:
16761706
val = entry->val;
16771707
}
@@ -1854,6 +1884,10 @@ static int adrv9025_register_debugfs(struct iio_dev *indio_dev)
18541884
adrv9025_add_debugfs_entry(phy, "tx1_lol_status", DBGFS_TX1_LOL_STATUS);
18551885
adrv9025_add_debugfs_entry(phy, "tx2_lol_status", DBGFS_TX2_LOL_STATUS);
18561886
adrv9025_add_debugfs_entry(phy, "tx3_lol_status", DBGFS_TX3_LOL_STATUS);
1887+
adrv9025_add_debugfs_entry(phy, "tx0_dpd_status", DBGFS_TX0_DPD_STATUS);
1888+
adrv9025_add_debugfs_entry(phy, "tx1_dpd_status", DBGFS_TX1_DPD_STATUS);
1889+
adrv9025_add_debugfs_entry(phy, "tx2_dpd_status", DBGFS_TX2_DPD_STATUS);
1890+
adrv9025_add_debugfs_entry(phy, "tx3_dpd_status", DBGFS_TX3_DPD_STATUS);
18571891

18581892
for (i = 0; i < phy->adrv9025_debugfs_entry_index; i++) {
18591893
if (phy->adrv9025_debugfs_entry_index > DBGFS_BIST_TONE)

drivers/iio/adc/adrv902x/adrv9025.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ enum debugfs_cmd {
5454
DBGFS_TX1_LOL_STATUS,
5555
DBGFS_TX2_LOL_STATUS,
5656
DBGFS_TX3_LOL_STATUS,
57+
DBGFS_TX0_DPD_STATUS,
58+
DBGFS_TX1_DPD_STATUS,
59+
DBGFS_TX2_DPD_STATUS,
60+
DBGFS_TX3_DPD_STATUS,
5761
};
5862

5963
enum adrv9025_rx_ext_info {

0 commit comments

Comments
 (0)