1 /* 2 * (C) Copyright 2008 Stefan Roese <sr@denx.de>, DENX Software Engineering 3 * 4 * Copyright (C) 2006 Micronas GmbH 5 * 6 * SPDX-License-Identifier: GPL-2.0+ 7 */ 8 9 #include <asm/io.h> 10 11 #include "bcu.h" 12 #include "dcgu.h" 13 #include "ebi.h" 14 #include "scc.h" 15 16 #ifdef CONFIG_VCT_PREMIUM 17 /* Global start address of all memory mapped registers */ 18 #define REG_GLOBAL_START_ADDR 0xbf800000 19 #define TOP_BASE 0x000c8000 20 21 #include "vcth/reg_ebi.h" 22 #include "vcth/reg_dcgu.h" 23 #include "vcth/reg_wdt.h" 24 #include "vcth/reg_gpio.h" 25 #include "vcth/reg_fwsram.h" 26 #include "vcth/reg_scc.h" 27 #include "vcth/reg_usbh.h" 28 #endif 29 30 #ifdef CONFIG_VCT_PLATINUM 31 /* Global start address of all memory mapped registers */ 32 #define REG_GLOBAL_START_ADDR 0xbf800000 33 #define TOP_BASE 0x000c8000 34 35 #include "vcth2/reg_ebi.h" 36 #include "vcth/reg_dcgu.h" 37 #include "vcth/reg_wdt.h" 38 #include "vcth/reg_gpio.h" 39 #include "vcth/reg_fwsram.h" 40 #include "vcth/reg_scc.h" 41 #include "vcth/reg_usbh.h" 42 #endif 43 44 #ifdef CONFIG_VCT_PLATINUMAVC 45 /* Global start address of all memory mapped registers */ 46 #define REG_GLOBAL_START_ADDR 0xbdc00000 47 #define TOP_BASE 0x00050000 48 49 #include "vctv/reg_ebi.h" 50 #include "vctv/reg_dcgu.h" 51 #include "vctv/reg_wdt.h" 52 #include "vctv/reg_gpio.h" 53 #endif 54 55 #ifndef _VCT_H 56 #define _VCT_H 57 58 /* 59 * Defines 60 */ 61 #define PRID_COMP_LEGACY 0x000000 62 #define PRID_COMP_MIPS 0x010000 63 #define PRID_IMP_LX4280 0xc200 64 #define PRID_IMP_VGC 0x9000 65 66 /* 67 * Prototypes 68 */ 69 int ebi_initialize(void); 70 int ebi_init_nor_flash(void); 71 int ebi_init_onenand(void); 72 int ebi_init_smc911x(void); 73 u32 smc911x_reg_read(u32 addr); 74 void smc911x_reg_write(u32 addr, u32 data); 75 int top_set_pin(int pin, int func); 76 void vct_pin_mux_initialize(void); 77 78 /* 79 * static inlines 80 */ 81 static inline void reg_write(u32 addr, u32 data) 82 { 83 void *reg = (void *)(addr + REG_GLOBAL_START_ADDR); 84 __raw_writel(data, reg); 85 } 86 87 static inline u32 reg_read(u32 addr) 88 { 89 const void *reg = (const void *)(addr + REG_GLOBAL_START_ADDR); 90 return __raw_readl(reg); 91 } 92 93 #endif /* _VCT_H */ 94