xref: /openbmc/u-boot/board/h2200/h2200.c (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+
234cda7a0SŁukasz Dałek /*
334cda7a0SŁukasz Dałek  * iPAQ h2200 board configuration
434cda7a0SŁukasz Dałek  *
534cda7a0SŁukasz Dałek  * Copyright (C) 2012 Lukasz Dalek <luk0104@gmail.com>
634cda7a0SŁukasz Dałek  */
734cda7a0SŁukasz Dałek 
834cda7a0SŁukasz Dałek #include <common.h>
934cda7a0SŁukasz Dałek #include <asm/arch/pxa.h>
1034cda7a0SŁukasz Dałek #include <asm/arch/pxa-regs.h>
1134cda7a0SŁukasz Dałek #include <asm/io.h>
12a33fada1SLukasz Dalek #include <usb.h>
13c62db35dSSimon Glass #include <asm/mach-types.h>
1434cda7a0SŁukasz Dałek 
1534cda7a0SŁukasz Dałek DECLARE_GLOBAL_DATA_PTR;
1634cda7a0SŁukasz Dałek 
board_eth_init(bd_t * bis)17a33fada1SLukasz Dalek int board_eth_init(bd_t *bis)
18a33fada1SLukasz Dalek {
19a33fada1SLukasz Dalek 	usb_eth_initialize(bis);
20a33fada1SLukasz Dalek 	return 0;
21a33fada1SLukasz Dalek }
22a33fada1SLukasz Dalek 
reset_cpu(ulong ignore)2366a62ce0SŁukasz Dałek void reset_cpu(ulong ignore)
2466a62ce0SŁukasz Dałek {
2566a62ce0SŁukasz Dałek 	/* Enable VLIO interface on Hamcop */
2666a62ce0SŁukasz Dałek 	writeb(0x1, 0x4000);
2766a62ce0SŁukasz Dałek 
2866a62ce0SŁukasz Dałek 	/* Reset board (cold reset) */
2966a62ce0SŁukasz Dałek 	writeb(0xff, 0x4002);
3066a62ce0SŁukasz Dałek }
3166a62ce0SŁukasz Dałek 
board_init(void)3234cda7a0SŁukasz Dałek int board_init(void)
3334cda7a0SŁukasz Dałek {
3434cda7a0SŁukasz Dałek 	/* We have RAM, disable cache */
3534cda7a0SŁukasz Dałek 	dcache_disable();
3634cda7a0SŁukasz Dałek 	icache_disable();
3734cda7a0SŁukasz Dałek 
3834cda7a0SŁukasz Dałek 	gd->bd->bi_arch_number = MACH_TYPE_H2200;
3934cda7a0SŁukasz Dałek 
4034cda7a0SŁukasz Dałek 	/* adress of boot parameters */
4134cda7a0SŁukasz Dałek 	gd->bd->bi_boot_params = 0xa0000100;
4234cda7a0SŁukasz Dałek 
43a33fada1SLukasz Dalek 	/* Let host see that device is disconnected */
44a33fada1SLukasz Dalek 	udc_disconnect();
45a33fada1SLukasz Dalek 	mdelay(500);
46a33fada1SLukasz Dalek 
4734cda7a0SŁukasz Dałek 	return 0;
4834cda7a0SŁukasz Dałek }
4934cda7a0SŁukasz Dałek 
dram_init(void)5034cda7a0SŁukasz Dałek int dram_init(void)
5134cda7a0SŁukasz Dałek {
5234cda7a0SŁukasz Dałek 	/*
5334cda7a0SŁukasz Dałek 	 * Everything except MSC0 was already set up by
5434cda7a0SŁukasz Dałek 	 * 1st stage bootloader.
5534cda7a0SŁukasz Dałek 	 *
5634cda7a0SŁukasz Dałek 	 * This setting enables access to companion chip.
5734cda7a0SŁukasz Dałek 	 */
5834cda7a0SŁukasz Dałek 	clrsetbits_le32(MSC0, 0xffffffff, CONFIG_SYS_MSC0_VAL);
5934cda7a0SŁukasz Dałek 	gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
6034cda7a0SŁukasz Dałek 	return 0;
6134cda7a0SŁukasz Dałek }
62cc4f1558SKishon Vijay Abraham I 
63cc4f1558SKishon Vijay Abraham I #ifdef CONFIG_USB_GADGET_PXA2XX
board_usb_init(int index,enum usb_init_type init)64cc4f1558SKishon Vijay Abraham I int board_usb_init(int index, enum usb_init_type init)
65cc4f1558SKishon Vijay Abraham I {
66cc4f1558SKishon Vijay Abraham I 	return 0;
67cc4f1558SKishon Vijay Abraham I }
68cc4f1558SKishon Vijay Abraham I 
board_usb_cleanup(int index,enum usb_init_type init)69cc4f1558SKishon Vijay Abraham I int board_usb_cleanup(int index, enum usb_init_type init)
70cc4f1558SKishon Vijay Abraham I {
71cc4f1558SKishon Vijay Abraham I 	return 0;
72cc4f1558SKishon Vijay Abraham I }
73cc4f1558SKishon Vijay Abraham I #endif
74