mpc5121_ads.c (1521B)
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Copyright (C) 2007, 2008 Freescale Semiconductor, Inc. All rights reserved. 4 * 5 * Author: John Rigby, <jrigby@freescale.com>, Thur Mar 29 2007 6 * 7 * Description: 8 * MPC5121 ADS board setup 9 */ 10 11#include <linux/kernel.h> 12#include <linux/io.h> 13#include <linux/of_platform.h> 14 15#include <asm/machdep.h> 16#include <asm/ipic.h> 17#include <asm/time.h> 18 19#include <sysdev/fsl_pci.h> 20 21#include "mpc512x.h" 22#include "mpc5121_ads.h" 23 24static void __init mpc5121_ads_setup_arch(void) 25{ 26 printk(KERN_INFO "MPC5121 ADS board from Freescale Semiconductor\n"); 27 /* 28 * cpld regs are needed early 29 */ 30 mpc5121_ads_cpld_map(); 31 32 mpc512x_setup_arch(); 33} 34 35static void __init mpc5121_ads_setup_pci(void) 36{ 37#ifdef CONFIG_PCI 38 struct device_node *np; 39 40 for_each_compatible_node(np, "pci", "fsl,mpc5121-pci") 41 mpc83xx_add_bridge(np); 42#endif 43} 44 45static void __init mpc5121_ads_init_IRQ(void) 46{ 47 mpc512x_init_IRQ(); 48 mpc5121_ads_cpld_pic_init(); 49} 50 51/* 52 * Called very early, MMU is off, device-tree isn't unflattened 53 */ 54static int __init mpc5121_ads_probe(void) 55{ 56 if (!of_machine_is_compatible("fsl,mpc5121ads")) 57 return 0; 58 59 mpc512x_init_early(); 60 61 return 1; 62} 63 64define_machine(mpc5121_ads) { 65 .name = "MPC5121 ADS", 66 .probe = mpc5121_ads_probe, 67 .setup_arch = mpc5121_ads_setup_arch, 68 .discover_phbs = mpc5121_ads_setup_pci, 69 .init = mpc512x_init, 70 .init_IRQ = mpc5121_ads_init_IRQ, 71 .get_irq = ipic_get_irq, 72 .calibrate_decr = generic_calibrate_decr, 73 .restart = mpc512x_restart, 74};