brintos

brintos / linux-shallow public Read only

0
0
Text · 930 B · b9cebe9 Raw
39 lines · c
1// SPDX-License-Identifier: GPL-2.02#include "tw5864.h"3 4void tw5864_indir_writeb(struct tw5864_dev *dev, u16 addr, u8 data)5{6	int retries = 30000;7 8	while (tw_readl(TW5864_IND_CTL) & BIT(31) && --retries)9		;10	if (!retries)11		dev_err(&dev->pci->dev,12			"tw_indir_writel() retries exhausted before writing\n");13 14	tw_writel(TW5864_IND_DATA, data);15	tw_writel(TW5864_IND_CTL, addr << 2 | TW5864_RW | TW5864_ENABLE);16}17 18u8 tw5864_indir_readb(struct tw5864_dev *dev, u16 addr)19{20	int retries = 30000;21 22	while (tw_readl(TW5864_IND_CTL) & BIT(31) && --retries)23		;24	if (!retries)25		dev_err(&dev->pci->dev,26			"tw_indir_readl() retries exhausted before reading\n");27 28	tw_writel(TW5864_IND_CTL, addr << 2 | TW5864_ENABLE);29 30	retries = 30000;31	while (tw_readl(TW5864_IND_CTL) & BIT(31) && --retries)32		;33	if (!retries)34		dev_err(&dev->pci->dev,35			"tw_indir_readl() retries exhausted at reading\n");36 37	return tw_readl(TW5864_IND_DATA);38}39