Commit 8b4da3ef authored by Sven Peter's avatar Sven Peter Committed by Andi Shyti
Browse files

i2c: pasemi: Add registers bits and switch to BIT()



Add the missing register bits to the defines and also switch
those to use the BIT macro which is much more readable than
using hardcoded masks

Co-developed-by: default avatarHector Martin <marcan@marcan.st>
Signed-off-by: default avatarHector Martin <marcan@marcan.st>
Signed-off-by: default avatarSven Peter <sven@svenpeter.dev>
Reviewed-by: default avatarNeal Gompa <neal@gompa.dev>
Reviewed-by: default avatarAlyssa Rosenzweig <alyssa@rosenzweig.io>
Signed-off-by: default avatarAndi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20250222-pasemi-fixes-v1-1-d7ea33d50c5e@svenpeter.dev
parent 088b1ca9
Loading
Loading
Loading
Loading
+25 −15
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
 * SMBus host driver for PA Semi PWRficient
 */

#include <linux/bitfield.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/kernel.h>
@@ -26,21 +27,30 @@
#define REG_REV		0x28

/* Register defs */
#define MTXFIFO_READ	0x00000400
#define MTXFIFO_STOP	0x00000200
#define MTXFIFO_START	0x00000100
#define MTXFIFO_DATA_M	0x000000ff

#define MRXFIFO_EMPTY	0x00000100
#define MRXFIFO_DATA_M	0x000000ff

#define SMSTA_XEN	0x08000000
#define SMSTA_MTN	0x00200000

#define CTL_MRR		0x00000400
#define CTL_MTR		0x00000200
#define CTL_EN		0x00000800
#define CTL_CLK_M	0x000000ff
#define MTXFIFO_READ	BIT(10)
#define MTXFIFO_STOP	BIT(9)
#define MTXFIFO_START	BIT(8)
#define MTXFIFO_DATA_M	GENMASK(7, 0)

#define MRXFIFO_EMPTY	BIT(8)
#define MRXFIFO_DATA_M	GENMASK(7, 0)

#define SMSTA_XIP	BIT(28)
#define SMSTA_XEN	BIT(27)
#define SMSTA_JMD	BIT(25)
#define SMSTA_JAM	BIT(24)
#define SMSTA_MTO	BIT(23)
#define SMSTA_MTA	BIT(22)
#define SMSTA_MTN	BIT(21)
#define SMSTA_MRNE	BIT(19)
#define SMSTA_MTE	BIT(16)
#define SMSTA_TOM	BIT(6)

#define CTL_EN		BIT(11)
#define CTL_MRR		BIT(10)
#define CTL_MTR		BIT(9)
#define CTL_UJM		BIT(8)
#define CTL_CLK_M	GENMASK(7, 0)

static inline void reg_write(struct pasemi_smbus *smbus, int reg, int val)
{