Lines Matching defs:scu_ic
53 struct aspeed_scu_ic *scu_ic = irq_desc_get_handler_data(desc);
55 unsigned int mask = scu_ic->irq_enable << ASPEED_SCU_IC_STATUS_SHIFT;
69 regmap_read(scu_ic->scu, scu_ic->reg, &sts);
70 enabled = sts & scu_ic->irq_enable;
73 bit = scu_ic->irq_shift;
74 max = scu_ic->num_irqs + bit;
77 generic_handle_domain_irq(scu_ic->irq_domain,
78 bit - scu_ic->irq_shift);
80 regmap_write_bits(scu_ic->scu, scu_ic->reg, mask,
89 struct aspeed_scu_ic *scu_ic = irq_data_get_irq_chip_data(data);
90 unsigned int mask = BIT(data->hwirq + scu_ic->irq_shift) |
91 (scu_ic->irq_enable << ASPEED_SCU_IC_STATUS_SHIFT);
98 regmap_update_bits(scu_ic->scu, scu_ic->reg, mask, 0);
103 struct aspeed_scu_ic *scu_ic = irq_data_get_irq_chip_data(data);
104 unsigned int bit = BIT(data->hwirq + scu_ic->irq_shift);
106 (scu_ic->irq_enable << ASPEED_SCU_IC_STATUS_SHIFT);
113 regmap_update_bits(scu_ic->scu, scu_ic->reg, mask, bit);
143 static int aspeed_scu_ic_of_init_common(struct aspeed_scu_ic *scu_ic,
154 scu_ic->scu = syscon_node_to_regmap(node->parent);
155 if (IS_ERR(scu_ic->scu)) {
156 rc = PTR_ERR(scu_ic->scu);
159 regmap_write_bits(scu_ic->scu, scu_ic->reg, ASPEED_SCU_IC_STATUS, ASPEED_SCU_IC_STATUS);
160 regmap_write_bits(scu_ic->scu, scu_ic->reg, ASPEED_SCU_IC_ENABLE, 0);
168 scu_ic->irq_domain = irq_domain_add_linear(node, scu_ic->num_irqs,
170 scu_ic);
171 if (!scu_ic->irq_domain) {
177 scu_ic);
182 kfree(scu_ic);
190 struct aspeed_scu_ic *scu_ic = kzalloc(sizeof(*scu_ic), GFP_KERNEL);
192 if (!scu_ic)
195 scu_ic->irq_enable = ASPEED_SCU_IC_ENABLE;
196 scu_ic->irq_shift = ASPEED_SCU_IC_SHIFT;
197 scu_ic->num_irqs = ASPEED_SCU_IC_NUM_IRQS;
198 scu_ic->reg = ASPEED_SCU_IC_REG;
200 return aspeed_scu_ic_of_init_common(scu_ic, node);
206 struct aspeed_scu_ic *scu_ic = kzalloc(sizeof(*scu_ic), GFP_KERNEL);
208 if (!scu_ic)
211 scu_ic->irq_enable = ASPEED_AST2600_SCU_IC0_ENABLE;
212 scu_ic->irq_shift = ASPEED_AST2600_SCU_IC0_SHIFT;
213 scu_ic->num_irqs = ASPEED_AST2600_SCU_IC0_NUM_IRQS;
214 scu_ic->reg = ASPEED_AST2600_SCU_IC0_REG;
216 return aspeed_scu_ic_of_init_common(scu_ic, node);
222 struct aspeed_scu_ic *scu_ic = kzalloc(sizeof(*scu_ic), GFP_KERNEL);
224 if (!scu_ic)
227 scu_ic->irq_enable = ASPEED_AST2600_SCU_IC1_ENABLE;
228 scu_ic->irq_shift = ASPEED_AST2600_SCU_IC1_SHIFT;
229 scu_ic->num_irqs = ASPEED_AST2600_SCU_IC1_NUM_IRQS;
230 scu_ic->reg = ASPEED_AST2600_SCU_IC1_REG;
232 return aspeed_scu_ic_of_init_common(scu_ic, node);