Lines Matching refs:priv

27 	struct img_ir_priv *priv = dev_id;  in img_ir_isr()  local
30 spin_lock(&priv->lock); in img_ir_isr()
32 irq_status = img_ir_read(priv, IMG_IR_IRQ_STATUS); in img_ir_isr()
33 img_ir_write(priv, IMG_IR_IRQ_CLEAR, irq_status); in img_ir_isr()
36 irq_status &= img_ir_read(priv, IMG_IR_IRQ_ENABLE); in img_ir_isr()
39 if (irq_status & IMG_IR_IRQ_EDGE && img_ir_raw_enabled(&priv->raw)) in img_ir_isr()
40 img_ir_isr_raw(priv, irq_status); in img_ir_isr()
46 img_ir_hw_enabled(&priv->hw)) in img_ir_isr()
47 img_ir_isr_hw(priv, irq_status); in img_ir_isr()
49 spin_unlock(&priv->lock); in img_ir_isr()
53 static void img_ir_setup(struct img_ir_priv *priv) in img_ir_setup() argument
56 img_ir_write(priv, IMG_IR_IRQ_ENABLE, 0); in img_ir_setup()
58 img_ir_setup_raw(priv); in img_ir_setup()
59 img_ir_setup_hw(priv); in img_ir_setup()
61 if (!IS_ERR(priv->clk)) in img_ir_setup()
62 clk_prepare_enable(priv->clk); in img_ir_setup()
65 static void img_ir_ident(struct img_ir_priv *priv) in img_ir_ident() argument
67 u32 core_rev = img_ir_read(priv, IMG_IR_CORE_REV); in img_ir_ident()
69 dev_info(priv->dev, in img_ir_ident()
75 dev_info(priv->dev, "Modes:%s%s\n", in img_ir_ident()
76 img_ir_hw_enabled(&priv->hw) ? " hardware" : "", in img_ir_ident()
77 img_ir_raw_enabled(&priv->raw) ? " raw" : ""); in img_ir_ident()
82 struct img_ir_priv *priv; in img_ir_probe() local
94 priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); in img_ir_probe()
95 if (!priv) { in img_ir_probe()
99 platform_set_drvdata(pdev, priv); in img_ir_probe()
100 priv->dev = &pdev->dev; in img_ir_probe()
101 spin_lock_init(&priv->lock); in img_ir_probe()
105 priv->reg_base = devm_ioremap_resource(&pdev->dev, res_regs); in img_ir_probe()
106 if (IS_ERR(priv->reg_base)) in img_ir_probe()
107 return PTR_ERR(priv->reg_base); in img_ir_probe()
110 priv->clk = devm_clk_get(&pdev->dev, "core"); in img_ir_probe()
111 if (IS_ERR(priv->clk)) in img_ir_probe()
115 priv->sys_clk = devm_clk_get(&pdev->dev, "sys"); in img_ir_probe()
116 if (IS_ERR(priv->sys_clk)) in img_ir_probe()
123 if (!IS_ERR(priv->sys_clk)) { in img_ir_probe()
124 error = clk_prepare_enable(priv->sys_clk); in img_ir_probe()
132 error = img_ir_probe_raw(priv); in img_ir_probe()
133 error2 = img_ir_probe_hw(priv); in img_ir_probe()
141 priv->irq = irq; in img_ir_probe()
142 error = request_irq(priv->irq, img_ir_isr, 0, "img-ir", priv); in img_ir_probe()
145 priv->irq); in img_ir_probe()
150 img_ir_ident(priv); in img_ir_probe()
151 img_ir_setup(priv); in img_ir_probe()
156 img_ir_remove_hw(priv); in img_ir_probe()
157 img_ir_remove_raw(priv); in img_ir_probe()
159 if (!IS_ERR(priv->sys_clk)) in img_ir_probe()
160 clk_disable_unprepare(priv->sys_clk); in img_ir_probe()
166 struct img_ir_priv *priv = platform_get_drvdata(pdev); in img_ir_remove() local
168 free_irq(priv->irq, priv); in img_ir_remove()
169 img_ir_remove_hw(priv); in img_ir_remove()
170 img_ir_remove_raw(priv); in img_ir_remove()
172 if (!IS_ERR(priv->clk)) in img_ir_remove()
173 clk_disable_unprepare(priv->clk); in img_ir_remove()
174 if (!IS_ERR(priv->sys_clk)) in img_ir_remove()
175 clk_disable_unprepare(priv->sys_clk); in img_ir_remove()