xref: /linux/arch/powerpc/platforms/86xx/common.c (revision ad1d7d7c106961af43404a44da40369045fc69a2)
1*ad1d7d7cSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
24f9d6e95SAlessio Igor Bogani /*
34f9d6e95SAlessio Igor Bogani  * Routines common to most mpc86xx-based boards.
44f9d6e95SAlessio Igor Bogani  */
54f9d6e95SAlessio Igor Bogani 
64f9d6e95SAlessio Igor Bogani #include <linux/of_platform.h>
74f9d6e95SAlessio Igor Bogani #include <asm/synch.h>
84f9d6e95SAlessio Igor Bogani 
94f9d6e95SAlessio Igor Bogani #include "mpc86xx.h"
104f9d6e95SAlessio Igor Bogani 
114f9d6e95SAlessio Igor Bogani static const struct of_device_id mpc86xx_common_ids[] __initconst = {
124f9d6e95SAlessio Igor Bogani 	{ .type = "soc", },
134f9d6e95SAlessio Igor Bogani 	{ .compatible = "soc", },
144f9d6e95SAlessio Igor Bogani 	{ .compatible = "simple-bus", },
154f9d6e95SAlessio Igor Bogani 	{ .name = "localbus", },
164f9d6e95SAlessio Igor Bogani 	{ .compatible = "gianfar", },
174f9d6e95SAlessio Igor Bogani 	{ .compatible = "fsl,mpc8641-pcie", },
184f9d6e95SAlessio Igor Bogani 	{},
194f9d6e95SAlessio Igor Bogani };
204f9d6e95SAlessio Igor Bogani 
214f9d6e95SAlessio Igor Bogani int __init mpc86xx_common_publish_devices(void)
224f9d6e95SAlessio Igor Bogani {
234f9d6e95SAlessio Igor Bogani 	return of_platform_bus_probe(NULL, mpc86xx_common_ids, NULL);
244f9d6e95SAlessio Igor Bogani }
254f9d6e95SAlessio Igor Bogani 
264f9d6e95SAlessio Igor Bogani long __init mpc86xx_time_init(void)
274f9d6e95SAlessio Igor Bogani {
284f9d6e95SAlessio Igor Bogani 	unsigned int temp;
294f9d6e95SAlessio Igor Bogani 
304f9d6e95SAlessio Igor Bogani 	/* Set the time base to zero */
314f9d6e95SAlessio Igor Bogani 	mtspr(SPRN_TBWL, 0);
324f9d6e95SAlessio Igor Bogani 	mtspr(SPRN_TBWU, 0);
334f9d6e95SAlessio Igor Bogani 
344f9d6e95SAlessio Igor Bogani 	temp = mfspr(SPRN_HID0);
354f9d6e95SAlessio Igor Bogani 	temp |= HID0_TBEN;
364f9d6e95SAlessio Igor Bogani 	mtspr(SPRN_HID0, temp);
374f9d6e95SAlessio Igor Bogani 	isync();
384f9d6e95SAlessio Igor Bogani 
394f9d6e95SAlessio Igor Bogani 	return 0;
404f9d6e95SAlessio Igor Bogani }
41