?? setup.c
字號:
/* * arch/mips/philips/nino/setup.c * * Copyright (C) 2001 Steven J. Hill (sjhill@realitydiluted.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * Interrupt and exception initialization for Philips Nino */#include <linux/console.h>#include <linux/init.h>#include <linux/interrupt.h>#include <linux/sched.h>#include <asm/addrspace.h>#include <asm/io.h>#include <asm/irq.h>#include <asm/reboot.h>#include <asm/time.h>#include <asm/tx3912.h>static void nino_machine_restart(char *command){ static void (*back_to_prom)(void) = (void (*)(void)) 0xbfc00000; /* Reboot */ back_to_prom();}static void nino_machine_halt(void){ printk("Nino halted.\n"); while(1);}static void nino_machine_power_off(void){ printk("Nino halted. Please turn off power.\n"); while(1);}static void __init nino_board_init(){ /* * Set up the master clock module. The value set in * the Clock Control Register by WindowsCE is 0x00432ba. * We set a few values here and let the device drivers * handle the rest. * * NOTE: The UART clocks must be enabled here to provide * enough time for them to settle. */ outl(0x00000000, TX3912_CLK_CTRL); outl((TX3912_CLK_CTRL_SIBMCLKDIR | TX3912_CLK_CTRL_SIBMCLKDIV_2 | TX3912_CLK_CTRL_ENSIBMCLK | TX3912_CLK_CTRL_CSERSEL | TX3912_CLK_CTRL_CSERDIV_3 | TX3912_CLK_CTRL_ENCSERCLK | TX3912_CLK_CTRL_ENUARTACLK | TX3912_CLK_CTRL_ENUARTBCLK), TX3912_CLK_CTRL);}static __init void nino_time_init(void){ /* Load the counter and enable the timer */ outl(TX3912_SYS_TIMER_VALUE, TX3912_TIMER_PERIOD); outl(TX3912_TIMER_CTRL_ENPERTIMER, TX3912_TIMER_CTRL); /* Enable the master timer clock */ outl(inl(TX3912_CLK_CTRL) | TX3912_CLK_CTRL_ENTIMERCLK, TX3912_CLK_CTRL); /* Enable the interrupt */ outl(inl(TX3912_INT5_ENABLE) | TX3912_INT5_PERINT, TX3912_INT5_ENABLE);}static __init void nino_timer_setup(struct irqaction *irq){ irq->dev_id = (void *) irq; setup_irq(0, irq);}void __init nino_setup(void){ extern void nino_irq_setup(void); extern void nino_wait(void); irq_setup = nino_irq_setup; set_io_port_base(KSEG1ADDR(0x10c00000)); _machine_restart = nino_machine_restart; _machine_halt = nino_machine_halt; _machine_power_off = nino_machine_power_off; board_time_init = nino_time_init; board_timer_setup = nino_timer_setup; cpu_wait = nino_wait;#ifdef CONFIG_FB conswitchp = &dummy_con;#endif nino_board_init();}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -