Example #1
0
static void southbridge_init(struct device *dev)
{
	printk(BIOS_DEBUG, "vx800 sb init\n");
	vx800_sb_init(dev);
	pci_routing_fixup(dev);

	setup_i8259();		// make sure interupt controller is configured before keyboard init

	/* turn on keyboard and RTC, no need to visit this reg twice */
	pc_keyboard_init();

	printk(BIOS_DEBUG, "ps2 usb lid, you  set who can wakeup system from s3 sleep\n");
	S3_ps2_kb_ms_wakeup(dev);
	S3_usb_wakeup(dev);
	S3_lid_wakeup(dev);

/*	enable acpi cpu c3 state. (c2 state need not do anything.)
	#1
		fadt->pm2_cnt_blk = 0x22;//to support cpu-c3
		fadt->p_lvl2_lat = 0x50; //this is the coreboot source
		fadt->p_lvl3_lat = 0x320;//
		fadt->pm2_cnt_len = 1;//to support cpu-c3
	#2
		ssdt? ->every cpu has a P_BLK address. set it to 0x10 (so that "Read Processor Level3 register(PMIORx15<7:0>) to enter C3 state"---VIA vx800 P SPEC )
       #3    write 0x17 in to PMIO=VX800_ACPI_IO_BASE + 0x26, following the describtion in the P-spec.
	       1  enable SLP# asserts in C3 state  PMIORx26<1> =1
		2    enable CPUSTP# asserts in C3 state;  PMIORx26<2> =1
		3  CLKRUN# is always asserted  PMIORx26<3> =0
		4    Disable PCISTP# When CLKRUN# is asserted
		1: PCISTP# will not assert When CLKRUN# is asserted
		PMIORx26<4> =1
		5  This bit controls whether the CPU voltage is lowered when in C3/S1 state.
		VRDSLP will be active in either this bit set in C3 or LVL4 register read
		PMIORx26<0> =0
		6  Read Processor Level3 register(PMIORx15<7:0>) to enter C3 state  PMIORx15
	*/
	outb(0x17, VX800_ACPI_IO_BASE + 0x26);

}
Example #2
0
static void southbridge_init(struct device *dev)
{
	r8610_init(dev);
	pci_routing_fixup(dev);
}
Example #3
0
static void southbridge_init(struct device *dev)
{
	vortex86mx_sb_init(dev);
	pci_routing_fixup(dev);
}