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