Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Chip specific defines for DA8XX/OMAP L1XX SoC
0004  *
0005  * Author: Mark A. Greer <mgreer@mvista.com>
0006  *
0007  * 2007, 2009-2010 (c) MontaVista Software, Inc.
0008  */
0009 #ifndef __ASM_ARCH_DAVINCI_DA8XX_H
0010 #define __ASM_ARCH_DAVINCI_DA8XX_H
0011 
0012 #include <video/da8xx-fb.h>
0013 
0014 #include <linux/platform_device.h>
0015 #include <linux/davinci_emac.h>
0016 #include <linux/spi/spi.h>
0017 #include <linux/platform_data/davinci_asp.h>
0018 #include <linux/reboot.h>
0019 #include <linux/regmap.h>
0020 #include <linux/videodev2.h>
0021 
0022 #include "serial.h"
0023 #include "pm.h"
0024 
0025 #include <linux/platform_data/edma.h>
0026 #include <linux/platform_data/i2c-davinci.h>
0027 #include <linux/platform_data/mmc-davinci.h>
0028 #include <linux/platform_data/usb-davinci.h>
0029 #include <linux/platform_data/spi-davinci.h>
0030 #include <linux/platform_data/uio_pruss.h>
0031 
0032 #include <media/davinci/vpif_types.h>
0033 
0034 extern void __iomem *da8xx_syscfg0_base;
0035 extern void __iomem *da8xx_syscfg1_base;
0036 
0037 /*
0038  * If the DA850/OMAP-L138/AM18x SoC on board is of a higher speed grade
0039  * (than the regular 300MHz variant), the board code should set this up
0040  * with the supported speed before calling da850_register_cpufreq().
0041  */
0042 extern unsigned int da850_max_speed;
0043 
0044 /*
0045  * The cp_intc interrupt controller for the da8xx isn't in the same
0046  * chunk of physical memory space as the other registers (like it is
0047  * on the davincis) so it needs to be mapped separately.  It will be
0048  * mapped early on when the I/O space is mapped and we'll put it just
0049  * before the I/O space in the processor's virtual memory space.
0050  */
0051 #define DA8XX_CP_INTC_BASE  0xfffee000
0052 #define DA8XX_CP_INTC_SIZE  SZ_8K
0053 #define DA8XX_CP_INTC_VIRT  (IO_VIRT - DA8XX_CP_INTC_SIZE - SZ_4K)
0054 
0055 #define DA8XX_SYSCFG0_BASE  (IO_PHYS + 0x14000)
0056 #define DA8XX_SYSCFG0_VIRT(x)   (da8xx_syscfg0_base + (x))
0057 #define DA8XX_JTAG_ID_REG   0x18
0058 #define DA8XX_HOST1CFG_REG  0x44
0059 #define DA8XX_CHIPSIG_REG   0x174
0060 #define DA8XX_CFGCHIP0_REG  0x17c
0061 #define DA8XX_CFGCHIP1_REG  0x180
0062 #define DA8XX_CFGCHIP2_REG  0x184
0063 #define DA8XX_CFGCHIP3_REG  0x188
0064 #define DA8XX_CFGCHIP4_REG  0x18c
0065 
0066 #define DA8XX_SYSCFG1_BASE  (IO_PHYS + 0x22C000)
0067 #define DA8XX_SYSCFG1_VIRT(x)   (da8xx_syscfg1_base + (x))
0068 #define DA8XX_DEEPSLEEP_REG 0x8
0069 #define DA8XX_PWRDN_REG     0x18
0070 
0071 #define DA8XX_PSC0_BASE     0x01c10000
0072 #define DA8XX_PLL0_BASE     0x01c11000
0073 #define DA8XX_TIMER64P0_BASE    0x01c20000
0074 #define DA8XX_TIMER64P1_BASE    0x01c21000
0075 #define DA8XX_VPIF_BASE     0x01e17000
0076 #define DA8XX_GPIO_BASE     0x01e26000
0077 #define DA8XX_PSC1_BASE     0x01e27000
0078 
0079 #define DA8XX_DSP_L2_RAM_BASE   0x11800000
0080 #define DA8XX_DSP_L1P_RAM_BASE  (DA8XX_DSP_L2_RAM_BASE + 0x600000)
0081 #define DA8XX_DSP_L1D_RAM_BASE  (DA8XX_DSP_L2_RAM_BASE + 0x700000)
0082 
0083 #define DA8XX_AEMIF_CS2_BASE    0x60000000
0084 #define DA8XX_AEMIF_CS3_BASE    0x62000000
0085 #define DA8XX_AEMIF_CTL_BASE    0x68000000
0086 #define DA8XX_SHARED_RAM_BASE   0x80000000
0087 #define DA8XX_ARM_RAM_BASE  0xffff0000
0088 
0089 void da830_init(void);
0090 void da830_init_irq(void);
0091 void da830_init_time(void);
0092 void da830_register_clocks(void);
0093 
0094 void da850_init(void);
0095 void da850_init_irq(void);
0096 void da850_init_time(void);
0097 void da850_register_clocks(void);
0098 
0099 int da830_register_edma(struct edma_rsv_info *rsv);
0100 int da850_register_edma(struct edma_rsv_info *rsv[2]);
0101 int da8xx_register_i2c(int instance, struct davinci_i2c_platform_data *pdata);
0102 int da8xx_register_spi_bus(int instance, unsigned num_chipselect);
0103 int da8xx_register_watchdog(void);
0104 int da8xx_register_usb_phy(void);
0105 int da8xx_register_usb20(unsigned mA, unsigned potpgt);
0106 int da8xx_register_usb11(struct da8xx_ohci_root_hub *pdata);
0107 int da8xx_register_usb_phy_clocks(void);
0108 int da850_register_sata_refclk(int rate);
0109 int da8xx_register_emac(void);
0110 int da8xx_register_uio_pruss(void);
0111 int da8xx_register_lcdc(struct da8xx_lcdc_platform_data *pdata);
0112 int da8xx_register_mmcsd0(struct davinci_mmc_config *config);
0113 int da850_register_mmcsd1(struct davinci_mmc_config *config);
0114 void da8xx_register_mcasp(int id, struct snd_platform_data *pdata);
0115 int da8xx_register_rtc(void);
0116 int da8xx_register_gpio(void *pdata);
0117 int da850_register_cpufreq(char *async_clk);
0118 int da8xx_register_cpuidle(void);
0119 void __iomem *da8xx_get_mem_ctlr(void);
0120 int da850_register_sata(unsigned long refclkpn);
0121 int da850_register_vpif(void);
0122 int da850_register_vpif_display
0123             (struct vpif_display_config *display_config);
0124 int da850_register_vpif_capture
0125             (struct vpif_capture_config *capture_config);
0126 void da8xx_rproc_reserve_cma(void);
0127 int da8xx_register_rproc(void);
0128 int da850_register_gpio(void);
0129 int da830_register_gpio(void);
0130 struct regmap *da8xx_get_cfgchip(void);
0131 
0132 extern struct platform_device da8xx_serial_device[];
0133 extern struct emac_platform_data da8xx_emac_pdata;
0134 extern struct da8xx_lcdc_platform_data sharp_lcd035q3dg01_pdata;
0135 extern struct da8xx_lcdc_platform_data sharp_lk043t1dg01_pdata;
0136 
0137 
0138 extern const short da830_emif25_pins[];
0139 extern const short da830_spi0_pins[];
0140 extern const short da830_spi1_pins[];
0141 extern const short da830_mmc_sd_pins[];
0142 extern const short da830_uart0_pins[];
0143 extern const short da830_uart1_pins[];
0144 extern const short da830_uart2_pins[];
0145 extern const short da830_usb20_pins[];
0146 extern const short da830_usb11_pins[];
0147 extern const short da830_uhpi_pins[];
0148 extern const short da830_cpgmac_pins[];
0149 extern const short da830_emif3c_pins[];
0150 extern const short da830_mcasp0_pins[];
0151 extern const short da830_mcasp1_pins[];
0152 extern const short da830_mcasp2_pins[];
0153 extern const short da830_i2c0_pins[];
0154 extern const short da830_i2c1_pins[];
0155 extern const short da830_lcdcntl_pins[];
0156 extern const short da830_pwm_pins[];
0157 extern const short da830_ecap0_pins[];
0158 extern const short da830_ecap1_pins[];
0159 extern const short da830_ecap2_pins[];
0160 extern const short da830_eqep0_pins[];
0161 extern const short da830_eqep1_pins[];
0162 extern const short da850_vpif_capture_pins[];
0163 extern const short da850_vpif_display_pins[];
0164 
0165 extern const short da850_i2c0_pins[];
0166 extern const short da850_i2c1_pins[];
0167 extern const short da850_lcdcntl_pins[];
0168 
0169 #endif /* __ASM_ARCH_DAVINCI_DA8XX_H */