Lines Matching +full:pm8998 +full:- +full:pon

1 // SPDX-License-Identifier: GPL-2.0
2 // Copyright (c) 2017-18 Linaro Limited
12 #include <linux/reboot-mode.h>
33 struct pm8916_pon *pon = container_of in pm8916_reboot_mode_write() local
37 ret = regmap_update_bits(pon->regmap, in pm8916_reboot_mode_write()
38 pon->baseaddr + PON_SOFT_RB_SPARE, in pm8916_reboot_mode_write()
39 GENMASK(7, pon->reason_shift), in pm8916_reboot_mode_write()
40 magic << pon->reason_shift); in pm8916_reboot_mode_write()
42 dev_err(pon->dev, "update reboot mode bits failed\n"); in pm8916_reboot_mode_write()
49 struct pm8916_pon *pon; in pm8916_pon_probe() local
53 pon = devm_kzalloc(&pdev->dev, sizeof(*pon), GFP_KERNEL); in pm8916_pon_probe()
54 if (!pon) in pm8916_pon_probe()
55 return -ENOMEM; in pm8916_pon_probe()
57 pon->dev = &pdev->dev; in pm8916_pon_probe()
59 pon->regmap = dev_get_regmap(pdev->dev.parent, NULL); in pm8916_pon_probe()
60 if (!pon->regmap) { in pm8916_pon_probe()
61 dev_err(&pdev->dev, "failed to locate regmap\n"); in pm8916_pon_probe()
62 return -ENODEV; in pm8916_pon_probe()
65 error = of_property_read_u32(pdev->dev.of_node, "reg", in pm8916_pon_probe()
66 &pon->baseaddr); in pm8916_pon_probe()
70 reason_shift = (long)of_device_get_match_data(&pdev->dev); in pm8916_pon_probe()
73 pon->reboot_mode.dev = &pdev->dev; in pm8916_pon_probe()
74 pon->reason_shift = reason_shift; in pm8916_pon_probe()
75 pon->reboot_mode.write = pm8916_reboot_mode_write; in pm8916_pon_probe()
76 error = devm_reboot_mode_register(&pdev->dev, &pon->reboot_mode); in pm8916_pon_probe()
78 dev_err(&pdev->dev, "can't register reboot mode\n"); in pm8916_pon_probe()
83 platform_set_drvdata(pdev, pon); in pm8916_pon_probe()
85 return devm_of_platform_populate(&pdev->dev); in pm8916_pon_probe()
89 { .compatible = "qcom,pm8916-pon", .data = (void *)GEN1_REASON_SHIFT },
90 { .compatible = "qcom,pm8941-pon", .data = (void *)NO_REASON_SHIFT },
91 { .compatible = "qcom,pms405-pon", .data = (void *)GEN1_REASON_SHIFT },
92 { .compatible = "qcom,pm8998-pon", .data = (void *)GEN2_REASON_SHIFT },
93 { .compatible = "qcom,pmk8350-pon", .data = (void *)GEN2_REASON_SHIFT },
101 .name = "pm8916-pon",