Lines Matching refs:keys

78 	struct mtk_pmic_keys *keys;
89 struct mtk_pmic_keys_info keys[MTK_PMIC_MAX_KEY_COUNT];
98 static void mtk_pmic_keys_lp_reset_setup(struct mtk_pmic_keys *keys,
104 ret = of_property_read_u32(keys->dev->of_node,
109 regmap_update_bits(keys->regmap, pmic_rst_reg,
113 ret = of_property_read_u32(keys->dev->of_node,
120 regmap_update_bits(keys->regmap, pmic_rst_reg,
123 regmap_update_bits(keys->regmap, pmic_rst_reg,
128 regmap_update_bits(keys->regmap, pmic_rst_reg,
131 regmap_update_bits(keys->regmap, pmic_rst_reg,
136 regmap_update_bits(keys->regmap, pmic_rst_reg,
139 regmap_update_bits(keys->regmap, pmic_rst_reg,
153 regmap_read(info->keys->regmap, info->regs->deb_reg, &key_deb);
159 input_report_key(info->keys->input_dev, info->keycode, pressed);
160 input_sync(info->keys->input_dev);
162 dev_dbg(info->keys->dev, "(%s) key =%d using PMIC\n",
168 static int mtk_pmic_key_setup(struct mtk_pmic_keys *keys,
173 info->keys = keys;
175 ret = regmap_update_bits(keys->regmap, info->regs->intsel_reg,
181 ret = devm_request_threaded_irq(keys->dev, info->irq, NULL,
184 "mtk-pmic-keys", info);
186 dev_err(keys->dev, "Failed to request IRQ: %d: %d\n",
191 input_set_capability(keys->input_dev, EV_KEY, info->keycode);
198 struct mtk_pmic_keys *keys = dev_get_drvdata(dev);
202 if (keys->keys[index].wakeup)
203 enable_irq_wake(keys->keys[index].irq);
211 struct mtk_pmic_keys *keys = dev_get_drvdata(dev);
215 if (keys->keys[index].wakeup)
216 disable_irq_wake(keys->keys[index].irq);
227 .compatible = "mediatek,mt6397-keys",
230 .compatible = "mediatek,mt6323-keys",
244 struct mtk_pmic_keys *keys;
250 keys = devm_kzalloc(&pdev->dev, sizeof(*keys), GFP_KERNEL);
251 if (!keys)
254 keys->dev = &pdev->dev;
255 keys->regmap = pmic_chip->regmap;
258 keys->input_dev = input_dev = devm_input_allocate_device(keys->dev);
260 dev_err(keys->dev, "input allocate device fail.\n");
264 input_dev->name = "mtk-pmic-keys";
272 dev_err(keys->dev, "too many keys defined (%d)\n", keycount);
277 keys->keys[index].regs = &mtk_pmic_regs->keys_regs[index];
279 keys->keys[index].irq = platform_get_irq(pdev, index);
280 if (keys->keys[index].irq < 0) {
282 return keys->keys[index].irq;
286 "linux,keycodes", &keys->keys[index].keycode);
288 dev_err(keys->dev,
296 keys->keys[index].wakeup = true;
298 error = mtk_pmic_key_setup(keys, &keys->keys[index]);
314 mtk_pmic_keys_lp_reset_setup(keys, mtk_pmic_regs->pmic_rst_reg);
316 platform_set_drvdata(pdev, keys);
324 .name = "mtk-pmic-keys",
334 MODULE_DESCRIPTION("MTK pmic-keys driver v0.1");