OSDN Git Service

i2c: meson: Use _SHIFT and _MASK for register definitions
authorLucas Tanure <tanure@linux.com>
Sat, 9 Apr 2022 16:43:33 +0000 (17:43 +0100)
committerWolfram Sang <wsa@kernel.org>
Fri, 15 Apr 2022 21:44:39 +0000 (23:44 +0200)
Differentiate between masks and shifts

Signed-off-by: Lucas Tanure <tanure@linux.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-meson.c

index 07eb819..4b4a5b2 100644 (file)
 #define REG_TOK_RDATA1         0x1c
 
 /* Control register fields */
-#define REG_CTRL_START         BIT(0)
-#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_SLV_SCL_LOW_EN     BIT(28)
+#define REG_CTRL_START                 BIT(0)
+#define REG_CTRL_ACK_IGNORE            BIT(1)
+#define REG_CTRL_STATUS                        BIT(2)
+#define REG_CTRL_ERROR                 BIT(3)
+#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
 #define FILTER_DELAY           15
@@ -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);