@@ -282,7 +282,6 @@ struct qcom_battmgr_wireless {
282
282
283
283
struct qcom_battmgr {
284
284
struct device * dev ;
285
- struct auxiliary_device * adev ;
286
285
struct pmic_glink_client * client ;
287
286
288
287
enum qcom_battmgr_variant variant ;
@@ -1294,69 +1293,11 @@ static void qcom_battmgr_enable_worker(struct work_struct *work)
1294
1293
dev_err (battmgr -> dev , "failed to request power notifications\n" );
1295
1294
}
1296
1295
1297
- static char * qcom_battmgr_battery [] = { "battery" };
1298
-
1299
- static void qcom_battmgr_register_psy (struct qcom_battmgr * battmgr )
1300
- {
1301
- struct power_supply_config psy_cfg_supply = {};
1302
- struct auxiliary_device * adev = battmgr -> adev ;
1303
- struct power_supply_config psy_cfg = {};
1304
- struct device * dev = & adev -> dev ;
1305
-
1306
- psy_cfg .drv_data = battmgr ;
1307
- psy_cfg .of_node = adev -> dev .of_node ;
1308
-
1309
- psy_cfg_supply .drv_data = battmgr ;
1310
- psy_cfg_supply .of_node = adev -> dev .of_node ;
1311
- psy_cfg_supply .supplied_to = qcom_battmgr_battery ;
1312
- psy_cfg_supply .num_supplicants = 1 ;
1313
-
1314
- if (battmgr -> variant == QCOM_BATTMGR_SC8280XP ) {
1315
- battmgr -> bat_psy = devm_power_supply_register (dev , & sc8280xp_bat_psy_desc , & psy_cfg );
1316
- if (IS_ERR (battmgr -> bat_psy ))
1317
- dev_err (dev , "failed to register battery power supply (%ld)\n" ,
1318
- PTR_ERR (battmgr -> bat_psy ));
1319
-
1320
- battmgr -> ac_psy = devm_power_supply_register (dev , & sc8280xp_ac_psy_desc , & psy_cfg_supply );
1321
- if (IS_ERR (battmgr -> ac_psy ))
1322
- dev_err (dev , "failed to register AC power supply (%ld)\n" ,
1323
- PTR_ERR (battmgr -> ac_psy ));
1324
-
1325
- battmgr -> usb_psy = devm_power_supply_register (dev , & sc8280xp_usb_psy_desc , & psy_cfg_supply );
1326
- if (IS_ERR (battmgr -> usb_psy ))
1327
- dev_err (dev , "failed to register USB power supply (%ld)\n" ,
1328
- PTR_ERR (battmgr -> usb_psy ));
1329
-
1330
- battmgr -> wls_psy = devm_power_supply_register (dev , & sc8280xp_wls_psy_desc , & psy_cfg_supply );
1331
- if (IS_ERR (battmgr -> wls_psy ))
1332
- dev_err (dev , "failed to register wireless charing power supply (%ld)\n" ,
1333
- PTR_ERR (battmgr -> wls_psy ));
1334
- } else {
1335
- battmgr -> bat_psy = devm_power_supply_register (dev , & sm8350_bat_psy_desc , & psy_cfg );
1336
- if (IS_ERR (battmgr -> bat_psy ))
1337
- dev_err (dev , "failed to register battery power supply (%ld)\n" ,
1338
- PTR_ERR (battmgr -> bat_psy ));
1339
-
1340
- battmgr -> usb_psy = devm_power_supply_register (dev , & sm8350_usb_psy_desc , & psy_cfg_supply );
1341
- if (IS_ERR (battmgr -> usb_psy ))
1342
- dev_err (dev , "failed to register USB power supply (%ld)\n" ,
1343
- PTR_ERR (battmgr -> usb_psy ));
1344
-
1345
- battmgr -> wls_psy = devm_power_supply_register (dev , & sm8350_wls_psy_desc , & psy_cfg_supply );
1346
- if (IS_ERR (battmgr -> wls_psy ))
1347
- dev_err (dev , "failed to register wireless charing power supply (%ld)\n" ,
1348
- PTR_ERR (battmgr -> wls_psy ));
1349
- }
1350
- }
1351
-
1352
1296
static void qcom_battmgr_pdr_notify (void * priv , int state )
1353
1297
{
1354
1298
struct qcom_battmgr * battmgr = priv ;
1355
1299
1356
1300
if (state == SERVREG_SERVICE_STATE_UP ) {
1357
- if (!battmgr -> bat_psy )
1358
- qcom_battmgr_register_psy (battmgr );
1359
-
1360
1301
battmgr -> service_up = true;
1361
1302
schedule_work (& battmgr -> enable_work );
1362
1303
} else {
@@ -1371,9 +1312,13 @@ static const struct of_device_id qcom_battmgr_of_variants[] = {
1371
1312
{}
1372
1313
};
1373
1314
1315
+ static char * qcom_battmgr_battery [] = { "battery" };
1316
+
1374
1317
static int qcom_battmgr_probe (struct auxiliary_device * adev ,
1375
1318
const struct auxiliary_device_id * id )
1376
1319
{
1320
+ struct power_supply_config psy_cfg_supply = {};
1321
+ struct power_supply_config psy_cfg = {};
1377
1322
const struct of_device_id * match ;
1378
1323
struct qcom_battmgr * battmgr ;
1379
1324
struct device * dev = & adev -> dev ;
@@ -1383,7 +1328,14 @@ static int qcom_battmgr_probe(struct auxiliary_device *adev,
1383
1328
return - ENOMEM ;
1384
1329
1385
1330
battmgr -> dev = dev ;
1386
- battmgr -> adev = adev ;
1331
+
1332
+ psy_cfg .drv_data = battmgr ;
1333
+ psy_cfg .of_node = adev -> dev .of_node ;
1334
+
1335
+ psy_cfg_supply .drv_data = battmgr ;
1336
+ psy_cfg_supply .of_node = adev -> dev .of_node ;
1337
+ psy_cfg_supply .supplied_to = qcom_battmgr_battery ;
1338
+ psy_cfg_supply .num_supplicants = 1 ;
1387
1339
1388
1340
INIT_WORK (& battmgr -> enable_work , qcom_battmgr_enable_worker );
1389
1341
mutex_init (& battmgr -> lock );
@@ -1395,6 +1347,43 @@ static int qcom_battmgr_probe(struct auxiliary_device *adev,
1395
1347
else
1396
1348
battmgr -> variant = QCOM_BATTMGR_SM8350 ;
1397
1349
1350
+ if (battmgr -> variant == QCOM_BATTMGR_SC8280XP ) {
1351
+ battmgr -> bat_psy = devm_power_supply_register (dev , & sc8280xp_bat_psy_desc , & psy_cfg );
1352
+ if (IS_ERR (battmgr -> bat_psy ))
1353
+ return dev_err_probe (dev , PTR_ERR (battmgr -> bat_psy ),
1354
+ "failed to register battery power supply\n" );
1355
+
1356
+ battmgr -> ac_psy = devm_power_supply_register (dev , & sc8280xp_ac_psy_desc , & psy_cfg_supply );
1357
+ if (IS_ERR (battmgr -> ac_psy ))
1358
+ return dev_err_probe (dev , PTR_ERR (battmgr -> ac_psy ),
1359
+ "failed to register AC power supply\n" );
1360
+
1361
+ battmgr -> usb_psy = devm_power_supply_register (dev , & sc8280xp_usb_psy_desc , & psy_cfg_supply );
1362
+ if (IS_ERR (battmgr -> usb_psy ))
1363
+ return dev_err_probe (dev , PTR_ERR (battmgr -> usb_psy ),
1364
+ "failed to register USB power supply\n" );
1365
+
1366
+ battmgr -> wls_psy = devm_power_supply_register (dev , & sc8280xp_wls_psy_desc , & psy_cfg_supply );
1367
+ if (IS_ERR (battmgr -> wls_psy ))
1368
+ return dev_err_probe (dev , PTR_ERR (battmgr -> wls_psy ),
1369
+ "failed to register wireless charing power supply\n" );
1370
+ } else {
1371
+ battmgr -> bat_psy = devm_power_supply_register (dev , & sm8350_bat_psy_desc , & psy_cfg );
1372
+ if (IS_ERR (battmgr -> bat_psy ))
1373
+ return dev_err_probe (dev , PTR_ERR (battmgr -> bat_psy ),
1374
+ "failed to register battery power supply\n" );
1375
+
1376
+ battmgr -> usb_psy = devm_power_supply_register (dev , & sm8350_usb_psy_desc , & psy_cfg_supply );
1377
+ if (IS_ERR (battmgr -> usb_psy ))
1378
+ return dev_err_probe (dev , PTR_ERR (battmgr -> usb_psy ),
1379
+ "failed to register USB power supply\n" );
1380
+
1381
+ battmgr -> wls_psy = devm_power_supply_register (dev , & sm8350_wls_psy_desc , & psy_cfg_supply );
1382
+ if (IS_ERR (battmgr -> wls_psy ))
1383
+ return dev_err_probe (dev , PTR_ERR (battmgr -> wls_psy ),
1384
+ "failed to register wireless charing power supply\n" );
1385
+ }
1386
+
1398
1387
battmgr -> client = devm_pmic_glink_register_client (dev ,
1399
1388
PMIC_GLINK_OWNER_BATTMGR ,
1400
1389
qcom_battmgr_callback ,
0 commit comments