⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setup.c

📁 microwindows移植到S3C44B0的源码
💻 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 + -