Lines Matching refs:irdec
17 #define DRIVER_NAME "zx-irdec"
37 static void zx_irdec_set_mask(struct zx_irdec *irdec, unsigned int reg,
42 data = readl(irdec->base + reg);
45 writel(data, irdec->base + reg);
50 struct zx_irdec *irdec = dev_id;
57 writel(1, irdec->base + ZX_IR_INTSTCLR);
60 if (readl(irdec->base + ZX_IR_CNUM) & ZX_NECRPT) {
61 rc_repeat(irdec->rcd);
65 rawcode = readl(irdec->base + ZX_IR_CODE);
74 rc_keydown(irdec->rcd, rc_proto, scancode, 0);
83 struct zx_irdec *irdec;
89 irdec = devm_kzalloc(dev, sizeof(*irdec), GFP_KERNEL);
90 if (!irdec)
94 irdec->base = devm_ioremap_resource(dev, res);
95 if (IS_ERR(irdec->base))
96 return PTR_ERR(irdec->base);
108 irdec->rcd = rcd;
110 rcd->priv = irdec;
119 platform_set_drvdata(pdev, irdec);
127 ret = devm_request_irq(dev, irq, zx_irdec_irq, 0, NULL, irdec);
137 zx_irdec_set_mask(irdec, ZX_IR_CTRL, ZX_DEGL_MASK, ZX_DEGL_VALUE(0));
138 zx_irdec_set_mask(irdec, ZX_IR_CTRL, ZX_WDBEGIN_MASK,
142 writel(1, irdec->base + ZX_IR_INTEN);
145 zx_irdec_set_mask(irdec, ZX_IR_ENABLE, ZX_IREN, ZX_IREN);
152 struct zx_irdec *irdec = platform_get_drvdata(pdev);
155 zx_irdec_set_mask(irdec, ZX_IR_ENABLE, ZX_IREN, 0);
158 writel(0, irdec->base + ZX_IR_INTEN);
164 { .compatible = "zte,zx296718-irdec" },