1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * iPAQ h2200 board configuration 4 * 5 * Copyright (C) 2012 Lukasz Dalek <luk0104@gmail.com> 6 */ 7 8 #include <common.h> 9 #include <asm/arch/pxa.h> 10 #include <asm/arch/pxa-regs.h> 11 #include <asm/io.h> 12 #include <usb.h> 13 #include <asm/mach-types.h> 14 15 DECLARE_GLOBAL_DATA_PTR; 16 17 int board_eth_init(bd_t *bis) 18 { 19 usb_eth_initialize(bis); 20 return 0; 21 } 22 23 void reset_cpu(ulong ignore) 24 { 25 /* Enable VLIO interface on Hamcop */ 26 writeb(0x1, 0x4000); 27 28 /* Reset board (cold reset) */ 29 writeb(0xff, 0x4002); 30 } 31 32 int board_init(void) 33 { 34 /* We have RAM, disable cache */ 35 dcache_disable(); 36 icache_disable(); 37 38 gd->bd->bi_arch_number = MACH_TYPE_H2200; 39 40 /* adress of boot parameters */ 41 gd->bd->bi_boot_params = 0xa0000100; 42 43 /* Let host see that device is disconnected */ 44 udc_disconnect(); 45 mdelay(500); 46 47 return 0; 48 } 49 50 int dram_init(void) 51 { 52 /* 53 * Everything except MSC0 was already set up by 54 * 1st stage bootloader. 55 * 56 * This setting enables access to companion chip. 57 */ 58 clrsetbits_le32(MSC0, 0xffffffff, CONFIG_SYS_MSC0_VAL); 59 gd->ram_size = CONFIG_SYS_SDRAM_SIZE; 60 return 0; 61 } 62 63 #ifdef CONFIG_USB_GADGET_PXA2XX 64 int board_usb_init(int index, enum usb_init_type init) 65 { 66 return 0; 67 } 68 69 int board_usb_cleanup(int index, enum usb_init_type init) 70 { 71 return 0; 72 } 73 #endif 74