Lines Matching refs:rsmu

12 #include <linux/mfd/rsmu.h>
18 #include "rsmu.h"
57 static int rsmu_read_device(struct rsmu_ddata *rsmu, u8 reg, u8 *buf, u16 bytes)
59 struct i2c_client *client = to_i2c_client(rsmu->dev);
76 dev_err(rsmu->dev, "i2c_transfer failed at addr: %04x!", reg);
79 dev_err(rsmu->dev,
87 static int rsmu_write_device(struct rsmu_ddata *rsmu, u8 reg, u8 *buf, u16 bytes)
89 struct i2c_client *client = to_i2c_client(rsmu->dev);
110 static int rsmu_write_page_register(struct rsmu_ddata *rsmu, u32 reg)
121 if (rsmu->page == page)
129 err = rsmu_write_device(rsmu, RSMU_CM_PAGE_ADDR, buf, sizeof(buf));
131 dev_err(rsmu->dev, "Failed to set page offset 0x%x\n", page);
134 rsmu->page = page;
141 struct rsmu_ddata *rsmu = i2c_get_clientdata((struct i2c_client *)context);
145 err = rsmu_write_page_register(rsmu, reg);
149 err = rsmu_read_device(rsmu, addr, (u8 *)val, 1);
151 dev_err(rsmu->dev, "Failed to read offset address 0x%x\n", addr);
158 struct rsmu_ddata *rsmu = i2c_get_clientdata((struct i2c_client *)context);
163 err = rsmu_write_page_register(rsmu, reg);
167 err = rsmu_write_device(rsmu, addr, &data, 1);
169 dev_err(rsmu->dev,
208 struct rsmu_ddata *rsmu;
211 rsmu = devm_kzalloc(&client->dev, sizeof(*rsmu), GFP_KERNEL);
212 if (!rsmu)
215 i2c_set_clientdata(client, rsmu);
217 rsmu->dev = &client->dev;
218 rsmu->type = (enum rsmu_type)id->driver_data;
220 switch (rsmu->type) {
231 dev_err(rsmu->dev, "Unsupported RSMU device type: %d\n", rsmu->type);
235 if (rsmu->type == RSMU_CM)
236 rsmu->regmap = devm_regmap_init(&client->dev, NULL, client, cfg);
238 rsmu->regmap = devm_regmap_init_i2c(client, cfg);
239 if (IS_ERR(rsmu->regmap)) {
240 ret = PTR_ERR(rsmu->regmap);
241 dev_err(rsmu->dev, "Failed to allocate register map: %d\n", ret);
245 return rsmu_core_init(rsmu);
250 struct rsmu_ddata *rsmu = i2c_get_clientdata(client);
252 rsmu_core_exit(rsmu);
279 .name = "rsmu-i2c",