Lines Matching refs:group

31  * struct mstp_clock_group - MSTP gating clocks group
33 * @data: clock specifier translation for clocks in this group
38 * @clks: clocks in this group
53 * @group: MSTP clocks group
58 struct mstp_clock_group *group;
63 static inline u32 cpg_mstp_read(struct mstp_clock_group *group,
66 return group->width_8bit ? readb(reg) : readl(reg);
69 static inline void cpg_mstp_write(struct mstp_clock_group *group, u32 val,
72 group->width_8bit ? writeb(val, reg) : writel(val, reg);
78 struct mstp_clock_group *group = clock->group;
84 spin_lock_irqsave(&group->lock, flags);
86 value = cpg_mstp_read(group, group->smstpcr);
91 cpg_mstp_write(group, value, group->smstpcr);
93 if (!group->mstpsr) {
95 cpg_mstp_read(group, group->smstpcr);
96 barrier_data(group->smstpcr);
99 spin_unlock_irqrestore(&group->lock, flags);
101 if (!enable || !group->mstpsr)
105 if (!(cpg_mstp_read(group, group->mstpsr) & bitmask))
112 group->smstpcr, clock->bit_index);
132 struct mstp_clock_group *group = clock->group;
135 if (group->mstpsr)
136 value = cpg_mstp_read(group, group->mstpsr);
138 value = cpg_mstp_read(group, group->smstpcr);
151 struct mstp_clock_group *group)
173 clock->group = group;
186 struct mstp_clock_group *group;
191 group = kzalloc(struct_size(group, clks, MSTP_MAX_CLOCKS), GFP_KERNEL);
192 if (!group)
195 clks = group->clks;
196 spin_lock_init(&group->lock);
197 group->data.clks = clks;
199 group->smstpcr = of_iomap(np, 0);
200 group->mstpsr = of_iomap(np, 1);
202 if (group->smstpcr == NULL) {
204 kfree(group);
209 group->width_8bit = true;
243 clkidx, group);
245 group->data.clk_num = max(group->data.clk_num,
262 of_clk_add_provider(np, of_clk_src_onecell_get, &group->data);