Lines Matching +full:gemini +full:- +full:rtc

1 // SPDX-License-Identifier: GPL-2.0
3 * Gemini power management controller
42 val = readl(gpw->base + GEMINI_PWC_CTRLREG); in gemini_powerbutton_interrupt()
44 writel(val, gpw->base + GEMINI_PWC_CTRLREG); in gemini_powerbutton_interrupt()
46 val = readl(gpw->base + GEMINI_PWC_STATREG); in gemini_powerbutton_interrupt()
55 dev_info(gpw->dev, "infrared poweroff - ignored\n"); in gemini_powerbutton_interrupt()
58 dev_info(gpw->dev, "RTC poweroff\n"); in gemini_powerbutton_interrupt()
62 dev_info(gpw->dev, "poweroff button pressed\n"); in gemini_powerbutton_interrupt()
66 dev_info(gpw->dev, "other power management IRQ\n"); in gemini_powerbutton_interrupt()
75 struct gemini_powercon *gpw = data->cb_data; in gemini_poweroff()
78 dev_crit(gpw->dev, "Gemini power off\n"); in gemini_poweroff()
79 val = readl(gpw->base + GEMINI_PWC_CTRLREG); in gemini_poweroff()
81 writel(val, gpw->base + GEMINI_PWC_CTRLREG); in gemini_poweroff()
85 writel(val, gpw->base + GEMINI_PWC_CTRLREG); in gemini_poweroff()
92 struct device *dev = &pdev->dev; in gemini_poweroff_probe()
100 return -ENOMEM; in gemini_poweroff_probe()
102 gpw->base = devm_platform_ioremap_resource(pdev, 0); in gemini_poweroff_probe()
103 if (IS_ERR(gpw->base)) in gemini_poweroff_probe()
104 return PTR_ERR(gpw->base); in gemini_poweroff_probe()
110 gpw->dev = dev; in gemini_poweroff_probe()
112 val = readl(gpw->base + GEMINI_PWC_IDREG); in gemini_poweroff_probe()
117 return -ENODEV; in gemini_poweroff_probe()
121 * Enable the power controller. This is crucial on Gemini in gemini_poweroff_probe()
126 val = readl(gpw->base + GEMINI_PWC_CTRLREG); in gemini_poweroff_probe()
128 writel(val, gpw->base + GEMINI_PWC_CTRLREG); in gemini_poweroff_probe()
131 val = readl(gpw->base + GEMINI_PWC_CTRLREG); in gemini_poweroff_probe()
133 writel(val, gpw->base + GEMINI_PWC_CTRLREG); in gemini_poweroff_probe()
136 val = readl(gpw->base + GEMINI_PWC_STATREG); in gemini_poweroff_probe()
138 val = readl(gpw->base + GEMINI_PWC_STATREG); in gemini_poweroff_probe()
141 val = readl(gpw->base + GEMINI_PWC_CTRLREG); in gemini_poweroff_probe()
143 writel(val, gpw->base + GEMINI_PWC_CTRLREG); in gemini_poweroff_probe()
156 dev_info(dev, "Gemini poweroff driver registered\n"); in gemini_poweroff_probe()
163 .compatible = "cortina,gemini-power-controller",
171 .name = "gemini-poweroff",