2019-02-15 16:14:25

by Axel Lin

[permalink] [raw]
Subject: [PATCH 1/2] regulator: ltc3676: Simplify .readable_reg and .writable_reg callbacks

Use case range for continuous range to make the code shorter.
The .readable_reg and .writable_reg implementation are exactly the same,
so use a common ltc3676_readable_writeable_reg function instead.

Signed-off-by: Axel Lin <[email protected]>
---
drivers/regulator/ltc3676.c | 63 +++----------------------------------
1 file changed, 5 insertions(+), 58 deletions(-)

diff --git a/drivers/regulator/ltc3676.c b/drivers/regulator/ltc3676.c
index 71fd0f2a4b76..549a1a243870 100644
--- a/drivers/regulator/ltc3676.c
+++ b/drivers/regulator/ltc3676.c
@@ -241,61 +241,10 @@ static struct regulator_desc ltc3676_regulators[LTC3676_NUM_REGULATORS] = {
LTC3676_FIXED_REG(LDO4, ldo4, LDOB, 2),
};

-static bool ltc3676_writeable_reg(struct device *dev, unsigned int reg)
+static bool ltc3676_readable_writeable_reg(struct device *dev, unsigned int reg)
{
switch (reg) {
- case LTC3676_IRQSTAT:
- case LTC3676_BUCK1:
- case LTC3676_BUCK2:
- case LTC3676_BUCK3:
- case LTC3676_BUCK4:
- case LTC3676_LDOA:
- case LTC3676_LDOB:
- case LTC3676_SQD1:
- case LTC3676_SQD2:
- case LTC3676_CNTRL:
- case LTC3676_DVB1A:
- case LTC3676_DVB1B:
- case LTC3676_DVB2A:
- case LTC3676_DVB2B:
- case LTC3676_DVB3A:
- case LTC3676_DVB3B:
- case LTC3676_DVB4A:
- case LTC3676_DVB4B:
- case LTC3676_MSKIRQ:
- case LTC3676_MSKPG:
- case LTC3676_USER:
- case LTC3676_HRST:
- case LTC3676_CLIRQ:
- return true;
- }
- return false;
-}
-
-static bool ltc3676_readable_reg(struct device *dev, unsigned int reg)
-{
- switch (reg) {
- case LTC3676_IRQSTAT:
- case LTC3676_BUCK1:
- case LTC3676_BUCK2:
- case LTC3676_BUCK3:
- case LTC3676_BUCK4:
- case LTC3676_LDOA:
- case LTC3676_LDOB:
- case LTC3676_SQD1:
- case LTC3676_SQD2:
- case LTC3676_CNTRL:
- case LTC3676_DVB1A:
- case LTC3676_DVB1B:
- case LTC3676_DVB2A:
- case LTC3676_DVB2B:
- case LTC3676_DVB3A:
- case LTC3676_DVB3B:
- case LTC3676_DVB4A:
- case LTC3676_DVB4B:
- case LTC3676_MSKIRQ:
- case LTC3676_MSKPG:
- case LTC3676_USER:
+ case LTC3676_BUCK1 ... LTC3676_IRQSTAT:
case LTC3676_HRST:
case LTC3676_CLIRQ:
return true;
@@ -306,9 +255,7 @@ static bool ltc3676_readable_reg(struct device *dev, unsigned int reg)
static bool ltc3676_volatile_reg(struct device *dev, unsigned int reg)
{
switch (reg) {
- case LTC3676_IRQSTAT:
- case LTC3676_PGSTATL:
- case LTC3676_PGSTATRT:
+ case LTC3676_IRQSTAT ... LTC3676_PGSTATRT:
return true;
}
return false;
@@ -317,8 +264,8 @@ static bool ltc3676_volatile_reg(struct device *dev, unsigned int reg)
static const struct regmap_config ltc3676_regmap_config = {
.reg_bits = 8,
.val_bits = 8,
- .writeable_reg = ltc3676_writeable_reg,
- .readable_reg = ltc3676_readable_reg,
+ .writeable_reg = ltc3676_readable_writeable_reg,
+ .readable_reg = ltc3676_readable_writeable_reg,
.volatile_reg = ltc3676_volatile_reg,
.max_register = LTC3676_CLIRQ,
.use_single_read = true,
--
2.17.1



2019-02-15 16:13:08

by Axel Lin

[permalink] [raw]
Subject: [PATCH 2/2] regulator: ltc3676: Fix module description

This driver is for LTC3676 rather than LTC1376.

Signed-off-by: Axel Lin <[email protected]>
---
drivers/regulator/ltc3676.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/regulator/ltc3676.c b/drivers/regulator/ltc3676.c
index 549a1a243870..e6d66e492b85 100644
--- a/drivers/regulator/ltc3676.c
+++ b/drivers/regulator/ltc3676.c
@@ -389,5 +389,5 @@ static struct i2c_driver ltc3676_driver = {
module_i2c_driver(ltc3676_driver);

MODULE_AUTHOR("Tim Harvey <[email protected]>");
-MODULE_DESCRIPTION("Regulator driver for Linear Technology LTC1376");
+MODULE_DESCRIPTION("Regulator driver for Linear Technology LTC3676");
MODULE_LICENSE("GPL v2");
--
2.17.1


2019-02-15 16:58:21

by Tim Harvey

[permalink] [raw]
Subject: Re: [PATCH 2/2] regulator: ltc3676: Fix module description

On Fri, Feb 15, 2019 at 3:54 AM Axel Lin <[email protected]> wrote:
>
> This driver is for LTC3676 rather than LTC1376.
>
> Signed-off-by: Axel Lin <[email protected]>
> ---
> drivers/regulator/ltc3676.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/regulator/ltc3676.c b/drivers/regulator/ltc3676.c
> index 549a1a243870..e6d66e492b85 100644
> --- a/drivers/regulator/ltc3676.c
> +++ b/drivers/regulator/ltc3676.c
> @@ -389,5 +389,5 @@ static struct i2c_driver ltc3676_driver = {
> module_i2c_driver(ltc3676_driver);
>
> MODULE_AUTHOR("Tim Harvey <[email protected]>");
> -MODULE_DESCRIPTION("Regulator driver for Linear Technology LTC1376");
> +MODULE_DESCRIPTION("Regulator driver for Linear Technology LTC3676");
> MODULE_LICENSE("GPL v2");
> --

Acked-by: Tim Harvey <[email protected]>

Tim

2019-02-15 17:02:45

by Tim Harvey

[permalink] [raw]
Subject: Re: [PATCH 1/2] regulator: ltc3676: Simplify .readable_reg and .writable_reg callbacks

On Fri, Feb 15, 2019 at 3:54 AM Axel Lin <[email protected]> wrote:
>
> Use case range for continuous range to make the code shorter.
> The .readable_reg and .writable_reg implementation are exactly the same,
> so use a common ltc3676_readable_writeable_reg function instead.
>
> Signed-off-by: Axel Lin <[email protected]>
> ---
> drivers/regulator/ltc3676.c | 63 +++----------------------------------
> 1 file changed, 5 insertions(+), 58 deletions(-)
>
> diff --git a/drivers/regulator/ltc3676.c b/drivers/regulator/ltc3676.c
> index 71fd0f2a4b76..549a1a243870 100644
> --- a/drivers/regulator/ltc3676.c
> +++ b/drivers/regulator/ltc3676.c
> @@ -241,61 +241,10 @@ static struct regulator_desc ltc3676_regulators[LTC3676_NUM_REGULATORS] = {
> LTC3676_FIXED_REG(LDO4, ldo4, LDOB, 2),
> };
>
> -static bool ltc3676_writeable_reg(struct device *dev, unsigned int reg)
> +static bool ltc3676_readable_writeable_reg(struct device *dev, unsigned int reg)
> {
> switch (reg) {
> - case LTC3676_IRQSTAT:
> - case LTC3676_BUCK1:
> - case LTC3676_BUCK2:
> - case LTC3676_BUCK3:
> - case LTC3676_BUCK4:
> - case LTC3676_LDOA:
> - case LTC3676_LDOB:
> - case LTC3676_SQD1:
> - case LTC3676_SQD2:
> - case LTC3676_CNTRL:
> - case LTC3676_DVB1A:
> - case LTC3676_DVB1B:
> - case LTC3676_DVB2A:
> - case LTC3676_DVB2B:
> - case LTC3676_DVB3A:
> - case LTC3676_DVB3B:
> - case LTC3676_DVB4A:
> - case LTC3676_DVB4B:
> - case LTC3676_MSKIRQ:
> - case LTC3676_MSKPG:
> - case LTC3676_USER:
> - case LTC3676_HRST:
> - case LTC3676_CLIRQ:
> - return true;
> - }
> - return false;
> -}
> -
> -static bool ltc3676_readable_reg(struct device *dev, unsigned int reg)
> -{
> - switch (reg) {
> - case LTC3676_IRQSTAT:
> - case LTC3676_BUCK1:
> - case LTC3676_BUCK2:
> - case LTC3676_BUCK3:
> - case LTC3676_BUCK4:
> - case LTC3676_LDOA:
> - case LTC3676_LDOB:
> - case LTC3676_SQD1:
> - case LTC3676_SQD2:
> - case LTC3676_CNTRL:
> - case LTC3676_DVB1A:
> - case LTC3676_DVB1B:
> - case LTC3676_DVB2A:
> - case LTC3676_DVB2B:
> - case LTC3676_DVB3A:
> - case LTC3676_DVB3B:
> - case LTC3676_DVB4A:
> - case LTC3676_DVB4B:
> - case LTC3676_MSKIRQ:
> - case LTC3676_MSKPG:
> - case LTC3676_USER:
> + case LTC3676_BUCK1 ... LTC3676_IRQSTAT:
> case LTC3676_HRST:
> case LTC3676_CLIRQ:
> return true;
> @@ -306,9 +255,7 @@ static bool ltc3676_readable_reg(struct device *dev, unsigned int reg)
> static bool ltc3676_volatile_reg(struct device *dev, unsigned int reg)
> {
> switch (reg) {
> - case LTC3676_IRQSTAT:
> - case LTC3676_PGSTATL:
> - case LTC3676_PGSTATRT:
> + case LTC3676_IRQSTAT ... LTC3676_PGSTATRT:
> return true;
> }
> return false;
> @@ -317,8 +264,8 @@ static bool ltc3676_volatile_reg(struct device *dev, unsigned int reg)
> static const struct regmap_config ltc3676_regmap_config = {
> .reg_bits = 8,
> .val_bits = 8,
> - .writeable_reg = ltc3676_writeable_reg,
> - .readable_reg = ltc3676_readable_reg,
> + .writeable_reg = ltc3676_readable_writeable_reg,
> + .readable_reg = ltc3676_readable_writeable_reg,
> .volatile_reg = ltc3676_volatile_reg,
> .max_register = LTC3676_CLIRQ,
> .use_single_read = true,
> --
> 2.17.1
>

Acked-by: Tim Harvey <[email protected]>

Tim