2023-10-30 19:37:22

by Artur Weber

[permalink] [raw]
Subject: [PATCH 4/6] mfd: bcm590xx: Add compatible for BCM59054

The BCM59056 supported by the bcm590xx driver is similar to the
BCM59054 MFD. Add a compatible for it in the driver, in preparation
for adding support for this chip in the bcm590xx regulator driver.

Signed-off-by: Artur Weber <[email protected]>
---
drivers/mfd/bcm590xx.c | 5 ++++-
include/linux/mfd/bcm590xx.h | 7 +++++++
2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/mfd/bcm590xx.c b/drivers/mfd/bcm590xx.c
index 92eede9a5e61..f5c5fa97ca9a 100644
--- a/drivers/mfd/bcm590xx.c
+++ b/drivers/mfd/bcm590xx.c
@@ -50,6 +50,8 @@ static int bcm590xx_i2c_probe(struct i2c_client *i2c_pri)
bcm590xx->dev = &i2c_pri->dev;
bcm590xx->i2c_pri = i2c_pri;

+ bcm590xx->device_type = (unsigned int)of_device_get_match_data(bcm590xx->dev);
+
bcm590xx->regmap_pri = devm_regmap_init_i2c(i2c_pri,
&bcm590xx_regmap_config_pri);
if (IS_ERR(bcm590xx->regmap_pri)) {
@@ -91,7 +93,8 @@ static int bcm590xx_i2c_probe(struct i2c_client *i2c_pri)
}

static const struct of_device_id bcm590xx_of_match[] = {
- { .compatible = "brcm,bcm59056" },
+ { .compatible = "brcm,bcm59054", .data = (void *)BCM59054_TYPE },
+ { .compatible = "brcm,bcm59056", .data = (void *)BCM59056_TYPE },
{ }
};
MODULE_DEVICE_TABLE(of, bcm590xx_of_match);
diff --git a/include/linux/mfd/bcm590xx.h b/include/linux/mfd/bcm590xx.h
index 6b8791da6119..ed0d8be6387c 100644
--- a/include/linux/mfd/bcm590xx.h
+++ b/include/linux/mfd/bcm590xx.h
@@ -13,12 +13,19 @@
#include <linux/i2c.h>
#include <linux/regmap.h>

+/* device types */
+enum {
+ BCM59054_TYPE,
+ BCM59056_TYPE,
+};
+
/* max register address */
#define BCM590XX_MAX_REGISTER_PRI 0xe7
#define BCM590XX_MAX_REGISTER_SEC 0xf0

struct bcm590xx {
struct device *dev;
+ unsigned int device_type;
struct i2c_client *i2c_pri;
struct i2c_client *i2c_sec;
struct regmap *regmap_pri;

--
2.42.0


2023-10-31 03:38:38

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH 4/6] mfd: bcm590xx: Add compatible for BCM59054

Hi Artur,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 05d3ef8bba77c1b5f98d941d8b2d4aeab8118ef1]

url: https://github.com/intel-lab-lkp/linux/commits/Artur-Weber/dt-bindings-mfd-brcm-bcm59056-Convert-to-YAML/20231031-040046
base: 05d3ef8bba77c1b5f98d941d8b2d4aeab8118ef1
patch link: https://lore.kernel.org/r/20231030-bcm59054-v1-4-3517f980c1e3%40gmail.com
patch subject: [PATCH 4/6] mfd: bcm590xx: Add compatible for BCM59054
config: loongarch-randconfig-001-20231031 (https://download.01.org/0day-ci/archive/20231031/[email protected]/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231031/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

drivers/mfd/bcm590xx.c: In function 'bcm590xx_i2c_probe':
>> drivers/mfd/bcm590xx.c:53:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
53 | bcm590xx->device_type = (unsigned int)of_device_get_match_data(bcm590xx->dev);
| ^


vim +53 drivers/mfd/bcm590xx.c

39
40 static int bcm590xx_i2c_probe(struct i2c_client *i2c_pri)
41 {
42 struct bcm590xx *bcm590xx;
43 int ret;
44
45 bcm590xx = devm_kzalloc(&i2c_pri->dev, sizeof(*bcm590xx), GFP_KERNEL);
46 if (!bcm590xx)
47 return -ENOMEM;
48
49 i2c_set_clientdata(i2c_pri, bcm590xx);
50 bcm590xx->dev = &i2c_pri->dev;
51 bcm590xx->i2c_pri = i2c_pri;
52
> 53 bcm590xx->device_type = (unsigned int)of_device_get_match_data(bcm590xx->dev);
54
55 bcm590xx->regmap_pri = devm_regmap_init_i2c(i2c_pri,
56 &bcm590xx_regmap_config_pri);
57 if (IS_ERR(bcm590xx->regmap_pri)) {
58 ret = PTR_ERR(bcm590xx->regmap_pri);
59 dev_err(&i2c_pri->dev, "primary regmap init failed: %d\n", ret);
60 return ret;
61 }
62
63 /* Secondary I2C slave address is the base address with A(2) asserted */
64 bcm590xx->i2c_sec = i2c_new_dummy_device(i2c_pri->adapter,
65 i2c_pri->addr | BIT(2));
66 if (IS_ERR(bcm590xx->i2c_sec)) {
67 dev_err(&i2c_pri->dev, "failed to add secondary I2C device\n");
68 return PTR_ERR(bcm590xx->i2c_sec);
69 }
70 i2c_set_clientdata(bcm590xx->i2c_sec, bcm590xx);
71
72 bcm590xx->regmap_sec = devm_regmap_init_i2c(bcm590xx->i2c_sec,
73 &bcm590xx_regmap_config_sec);
74 if (IS_ERR(bcm590xx->regmap_sec)) {
75 ret = PTR_ERR(bcm590xx->regmap_sec);
76 dev_err(&bcm590xx->i2c_sec->dev,
77 "secondary regmap init failed: %d\n", ret);
78 goto err;
79 }
80
81 ret = devm_mfd_add_devices(&i2c_pri->dev, -1, bcm590xx_devs,
82 ARRAY_SIZE(bcm590xx_devs), NULL, 0, NULL);
83 if (ret < 0) {
84 dev_err(&i2c_pri->dev, "failed to add sub-devices: %d\n", ret);
85 goto err;
86 }
87
88 return 0;
89
90 err:
91 i2c_unregister_device(bcm590xx->i2c_sec);
92 return ret;
93 }
94

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

2023-11-06 09:47:48

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH 4/6] mfd: bcm590xx: Add compatible for BCM59054

Hi Artur,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 05d3ef8bba77c1b5f98d941d8b2d4aeab8118ef1]

url: https://github.com/intel-lab-lkp/linux/commits/Artur-Weber/dt-bindings-mfd-brcm-bcm59056-Convert-to-YAML/20231031-040046
base: 05d3ef8bba77c1b5f98d941d8b2d4aeab8118ef1
patch link: https://lore.kernel.org/r/20231030-bcm59054-v1-4-3517f980c1e3%40gmail.com
patch subject: [PATCH 4/6] mfd: bcm590xx: Add compatible for BCM59054
config: powerpc64-allyesconfig (https://download.01.org/0day-ci/archive/20231106/[email protected]/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231106/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

>> drivers/mfd/bcm590xx.c:53:26: warning: cast to smaller integer type 'unsigned int' from 'const void *' [-Wvoid-pointer-to-int-cast]
53 | bcm590xx->device_type = (unsigned int)of_device_get_match_data(bcm590xx->dev);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.


vim +53 drivers/mfd/bcm590xx.c

39
40 static int bcm590xx_i2c_probe(struct i2c_client *i2c_pri)
41 {
42 struct bcm590xx *bcm590xx;
43 int ret;
44
45 bcm590xx = devm_kzalloc(&i2c_pri->dev, sizeof(*bcm590xx), GFP_KERNEL);
46 if (!bcm590xx)
47 return -ENOMEM;
48
49 i2c_set_clientdata(i2c_pri, bcm590xx);
50 bcm590xx->dev = &i2c_pri->dev;
51 bcm590xx->i2c_pri = i2c_pri;
52
> 53 bcm590xx->device_type = (unsigned int)of_device_get_match_data(bcm590xx->dev);
54
55 bcm590xx->regmap_pri = devm_regmap_init_i2c(i2c_pri,
56 &bcm590xx_regmap_config_pri);
57 if (IS_ERR(bcm590xx->regmap_pri)) {
58 ret = PTR_ERR(bcm590xx->regmap_pri);
59 dev_err(&i2c_pri->dev, "primary regmap init failed: %d\n", ret);
60 return ret;
61 }
62
63 /* Secondary I2C slave address is the base address with A(2) asserted */
64 bcm590xx->i2c_sec = i2c_new_dummy_device(i2c_pri->adapter,
65 i2c_pri->addr | BIT(2));
66 if (IS_ERR(bcm590xx->i2c_sec)) {
67 dev_err(&i2c_pri->dev, "failed to add secondary I2C device\n");
68 return PTR_ERR(bcm590xx->i2c_sec);
69 }
70 i2c_set_clientdata(bcm590xx->i2c_sec, bcm590xx);
71
72 bcm590xx->regmap_sec = devm_regmap_init_i2c(bcm590xx->i2c_sec,
73 &bcm590xx_regmap_config_sec);
74 if (IS_ERR(bcm590xx->regmap_sec)) {
75 ret = PTR_ERR(bcm590xx->regmap_sec);
76 dev_err(&bcm590xx->i2c_sec->dev,
77 "secondary regmap init failed: %d\n", ret);
78 goto err;
79 }
80
81 ret = devm_mfd_add_devices(&i2c_pri->dev, -1, bcm590xx_devs,
82 ARRAY_SIZE(bcm590xx_devs), NULL, 0, NULL);
83 if (ret < 0) {
84 dev_err(&i2c_pri->dev, "failed to add sub-devices: %d\n", ret);
85 goto err;
86 }
87
88 return 0;
89
90 err:
91 i2c_unregister_device(bcm590xx->i2c_sec);
92 return ret;
93 }
94

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki