Commit 1b9a8a6d authored by Lucas Tanure's avatar Lucas Tanure Committed by Wolfram Sang
Browse files

i2c: meson: Use _SHIFT and _MASK for register definitions



Differentiate between masks and shifts

Signed-off-by: default avatarLucas Tanure <tanure@linux.com>
Reviewed-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
parent 633c0e75
Loading
Loading
Loading
Loading
+22 −19
Original line number Diff line number Diff line
@@ -34,13 +34,16 @@
#define REG_CTRL_ACK_IGNORE		BIT(1)
#define REG_CTRL_STATUS			BIT(2)
#define REG_CTRL_ERROR			BIT(3)
#define REG_CTRL_CLKDIV		GENMASK(21, 12)
#define REG_CTRL_CLKDIVEXT	GENMASK(29, 28)

#define REG_SLV_ADDR		GENMASK(7, 0)
#define REG_SLV_SDA_FILTER	GENMASK(10, 8)
#define REG_SLV_SCL_FILTER	GENMASK(13, 11)
#define REG_SLV_SCL_LOW		GENMASK(27, 16)
#define REG_CTRL_CLKDIV_SHIFT		12
#define REG_CTRL_CLKDIV_MASK		GENMASK(21, REG_CTRL_CLKDIV_SHIFT)
#define REG_CTRL_CLKDIVEXT_SHIFT	28
#define REG_CTRL_CLKDIVEXT_MASK		GENMASK(29, REG_CTRL_CLKDIVEXT_SHIFT)

#define REG_SLV_ADDR_MASK		GENMASK(7, 0)
#define REG_SLV_SDA_FILTER_MASK		GENMASK(10, 8)
#define REG_SLV_SCL_FILTER_MASK		GENMASK(13, 11)
#define REG_SLV_SCL_LOW_SHIFT		16
#define REG_SLV_SCL_LOW_MASK		GENMASK(27, REG_SLV_SCL_LOW_SHIFT)
#define REG_SLV_SCL_LOW_EN		BIT(28)

#define I2C_TIMEOUT_MS		500
@@ -149,11 +152,11 @@ static void meson_i2c_set_clk_div(struct meson_i2c *i2c, unsigned int freq)
		div = GENMASK(11, 0);
	}

	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIV,
			   FIELD_PREP(REG_CTRL_CLKDIV, div & GENMASK(9, 0)));
	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIV_MASK,
			   FIELD_PREP(REG_CTRL_CLKDIV_MASK, div & GENMASK(9, 0)));

	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIVEXT,
			   FIELD_PREP(REG_CTRL_CLKDIVEXT, div >> 10));
	meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIVEXT_MASK,
			   FIELD_PREP(REG_CTRL_CLKDIVEXT_MASK, div >> 10));

	/* Disable HIGH/LOW mode */
	meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_SCL_LOW_EN, 0);
@@ -292,8 +295,8 @@ static void meson_i2c_do_start(struct meson_i2c *i2c, struct i2c_msg *msg)
		TOKEN_SLAVE_ADDR_WRITE;


	meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_ADDR,
			   FIELD_PREP(REG_SLV_ADDR, msg->addr << 1));
	meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_ADDR_MASK,
			   FIELD_PREP(REG_SLV_ADDR_MASK, msg->addr << 1));

	meson_i2c_add_token(i2c, TOKEN_START);
	meson_i2c_add_token(i2c, token);
@@ -467,7 +470,7 @@ static int meson_i2c_probe(struct platform_device *pdev)

	/* Disable filtering */
	meson_i2c_set_mask(i2c, REG_SLAVE_ADDR,
			   REG_SLV_SDA_FILTER | REG_SLV_SCL_FILTER, 0);
			   REG_SLV_SDA_FILTER_MASK | REG_SLV_SCL_FILTER_MASK, 0);

	meson_i2c_set_clk_div(i2c, timings.bus_freq_hz);