Lines Matching refs:p

36 static int clock_board_calc_nslots(struct clock_board *p)  in clock_board_calc_nslots()  argument
38 u8 reg = upa_readb(p->clock_regs + CLOCK_STAT1) & 0xc0; in clock_board_calc_nslots()
49 if (p->clock_ver_reg) in clock_board_calc_nslots()
50 reg = upa_readb(p->clock_ver_reg); in clock_board_calc_nslots()
65 struct clock_board *p = kzalloc(sizeof(*p), GFP_KERNEL); in clock_board_probe() local
68 if (!p) { in clock_board_probe()
73 p->clock_freq_regs = of_ioremap(&op->resource[0], 0, in clock_board_probe()
76 if (!p->clock_freq_regs) { in clock_board_probe()
81 p->clock_regs = of_ioremap(&op->resource[1], 0, in clock_board_probe()
84 if (!p->clock_regs) { in clock_board_probe()
90 p->clock_ver_reg = of_ioremap(&op->resource[2], 0, in clock_board_probe()
93 if (!p->clock_ver_reg) { in clock_board_probe()
99 p->num_slots = clock_board_calc_nslots(p); in clock_board_probe()
101 p->leds_resource.start = (unsigned long) in clock_board_probe()
102 (p->clock_regs + CLOCK_CTRL); in clock_board_probe()
103 p->leds_resource.end = p->leds_resource.start; in clock_board_probe()
104 p->leds_resource.name = "leds"; in clock_board_probe()
106 p->leds_pdev.name = "sunfire-clockboard-leds"; in clock_board_probe()
107 p->leds_pdev.id = -1; in clock_board_probe()
108 p->leds_pdev.resource = &p->leds_resource; in clock_board_probe()
109 p->leds_pdev.num_resources = 1; in clock_board_probe()
110 p->leds_pdev.dev.parent = &op->dev; in clock_board_probe()
112 err = platform_device_register(&p->leds_pdev); in clock_board_probe()
120 p->num_slots); in clock_board_probe()
127 if (p->clock_ver_reg) in clock_board_probe()
128 of_iounmap(&op->resource[2], p->clock_ver_reg, in clock_board_probe()
132 of_iounmap(&op->resource[1], p->clock_regs, in clock_board_probe()
136 of_iounmap(&op->resource[0], p->clock_freq_regs, in clock_board_probe()
140 kfree(p); in clock_board_probe()
161 struct fhc *p = kzalloc(sizeof(*p), GFP_KERNEL); in fhc_probe() local
165 if (!p) { in fhc_probe()
171 p->central = true; in fhc_probe()
173 p->pregs = of_ioremap(&op->resource[0], 0, in fhc_probe()
176 if (!p->pregs) { in fhc_probe()
181 if (p->central) { in fhc_probe()
182 reg = upa_readl(p->pregs + FHC_PREGS_BSR); in fhc_probe()
183 p->board_num = ((reg >> 16) & 1) | ((reg >> 12) & 0x0e); in fhc_probe()
185 p->board_num = of_getintprop_default(op->dev.of_node, "board#", -1); in fhc_probe()
186 if (p->board_num == -1) { in fhc_probe()
190 if (upa_readl(p->pregs + FHC_PREGS_JCTRL) & FHC_JTAG_CTRL_MENAB) in fhc_probe()
191 p->jtag_master = true; in fhc_probe()
194 if (!p->central) { in fhc_probe()
195 p->leds_resource.start = (unsigned long) in fhc_probe()
196 (p->pregs + FHC_PREGS_CTRL); in fhc_probe()
197 p->leds_resource.end = p->leds_resource.start; in fhc_probe()
198 p->leds_resource.name = "leds"; in fhc_probe()
200 p->leds_pdev.name = "sunfire-fhc-leds"; in fhc_probe()
201 p->leds_pdev.id = p->board_num; in fhc_probe()
202 p->leds_pdev.resource = &p->leds_resource; in fhc_probe()
203 p->leds_pdev.num_resources = 1; in fhc_probe()
204 p->leds_pdev.dev.parent = &op->dev; in fhc_probe()
206 err = platform_device_register(&p->leds_pdev); in fhc_probe()
213 reg = upa_readl(p->pregs + FHC_PREGS_CTRL); in fhc_probe()
215 if (!p->central) in fhc_probe()
222 upa_writel(reg, p->pregs + FHC_PREGS_CTRL); in fhc_probe()
223 upa_readl(p->pregs + FHC_PREGS_CTRL); in fhc_probe()
225 reg = upa_readl(p->pregs + FHC_PREGS_ID); in fhc_probe()
227 p->board_num, in fhc_probe()
231 (p->jtag_master ? in fhc_probe()
233 (p->central ? "(Central)" : ""))); in fhc_probe()
241 of_iounmap(&op->resource[0], p->pregs, resource_size(&op->resource[0])); in fhc_probe()
244 kfree(p); in fhc_probe()