mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-10-29 23:28:52 +01:00
Fixed MTP to work with TWRP
This commit is contained in:
commit
f6dfaef42e
50820 changed files with 20846062 additions and 0 deletions
12
arch/mips/include/asm/mach-bcm63xx/bcm63xx_board.h
Normal file
12
arch/mips/include/asm/mach-bcm63xx/bcm63xx_board.h
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef BCM63XX_BOARD_H_
|
||||
#define BCM63XX_BOARD_H_
|
||||
|
||||
const char *board_get_name(void);
|
||||
|
||||
void board_prom_init(void);
|
||||
|
||||
void board_setup(void);
|
||||
|
||||
int board_register_devices(void);
|
||||
|
||||
#endif /* ! BCM63XX_BOARD_H_ */
|
||||
1067
arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
Normal file
1067
arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
Normal file
File diff suppressed because it is too large
Load diff
10
arch/mips/include/asm/mach-bcm63xx/bcm63xx_cs.h
Normal file
10
arch/mips/include/asm/mach-bcm63xx/bcm63xx_cs.h
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
#ifndef BCM63XX_CS_H
|
||||
#define BCM63XX_CS_H
|
||||
|
||||
int bcm63xx_set_cs_base(unsigned int cs, u32 base, unsigned int size);
|
||||
int bcm63xx_set_cs_timing(unsigned int cs, unsigned int wait,
|
||||
unsigned int setup, unsigned int hold);
|
||||
int bcm63xx_set_cs_param(unsigned int cs, u32 flags);
|
||||
int bcm63xx_set_cs_status(unsigned int cs, int enable);
|
||||
|
||||
#endif /* !BCM63XX_CS_H */
|
||||
13
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h
Normal file
13
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#ifndef __BCM63XX_DSP_H
|
||||
#define __BCM63XX_DSP_H
|
||||
|
||||
struct bcm63xx_dsp_platform_data {
|
||||
unsigned gpio_rst;
|
||||
unsigned gpio_int;
|
||||
unsigned cs;
|
||||
unsigned ext_irq;
|
||||
};
|
||||
|
||||
int __init bcm63xx_dsp_register(const struct bcm63xx_dsp_platform_data *pd);
|
||||
|
||||
#endif /* __BCM63XX_DSP_H */
|
||||
121
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
Normal file
121
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
#ifndef BCM63XX_DEV_ENET_H_
|
||||
#define BCM63XX_DEV_ENET_H_
|
||||
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
#include <bcm63xx_regs.h>
|
||||
|
||||
/*
|
||||
* on board ethernet platform data
|
||||
*/
|
||||
struct bcm63xx_enet_platform_data {
|
||||
char mac_addr[ETH_ALEN];
|
||||
|
||||
int has_phy;
|
||||
|
||||
/* if has_phy, then set use_internal_phy */
|
||||
int use_internal_phy;
|
||||
|
||||
/* or fill phy info to use an external one */
|
||||
int phy_id;
|
||||
int has_phy_interrupt;
|
||||
int phy_interrupt;
|
||||
|
||||
/* if has_phy, use autonegociated pause parameters or force
|
||||
* them */
|
||||
int pause_auto;
|
||||
int pause_rx;
|
||||
int pause_tx;
|
||||
|
||||
/* if !has_phy, set desired forced speed/duplex */
|
||||
int force_speed_100;
|
||||
int force_duplex_full;
|
||||
|
||||
/* if !has_phy, set callback to perform mii device
|
||||
* init/remove */
|
||||
int (*mii_config)(struct net_device *dev, int probe,
|
||||
int (*mii_read)(struct net_device *dev,
|
||||
int phy_id, int reg),
|
||||
void (*mii_write)(struct net_device *dev,
|
||||
int phy_id, int reg, int val));
|
||||
|
||||
/* DMA channel enable mask */
|
||||
u32 dma_chan_en_mask;
|
||||
|
||||
/* DMA channel interrupt mask */
|
||||
u32 dma_chan_int_mask;
|
||||
|
||||
/* DMA engine has internal SRAM */
|
||||
bool dma_has_sram;
|
||||
|
||||
/* DMA channel register width */
|
||||
unsigned int dma_chan_width;
|
||||
|
||||
/* DMA descriptor shift */
|
||||
unsigned int dma_desc_shift;
|
||||
};
|
||||
|
||||
/*
|
||||
* on board ethernet switch platform data
|
||||
*/
|
||||
#define ENETSW_MAX_PORT 8
|
||||
#define ENETSW_PORTS_6328 5 /* 4 FE PHY + 1 RGMII */
|
||||
#define ENETSW_PORTS_6368 6 /* 4 FE PHY + 2 RGMII */
|
||||
|
||||
#define ENETSW_RGMII_PORT0 4
|
||||
|
||||
struct bcm63xx_enetsw_port {
|
||||
int used;
|
||||
int phy_id;
|
||||
|
||||
int bypass_link;
|
||||
int force_speed;
|
||||
int force_duplex_full;
|
||||
|
||||
const char *name;
|
||||
};
|
||||
|
||||
struct bcm63xx_enetsw_platform_data {
|
||||
char mac_addr[ETH_ALEN];
|
||||
int num_ports;
|
||||
struct bcm63xx_enetsw_port used_ports[ENETSW_MAX_PORT];
|
||||
|
||||
/* DMA channel enable mask */
|
||||
u32 dma_chan_en_mask;
|
||||
|
||||
/* DMA channel interrupt mask */
|
||||
u32 dma_chan_int_mask;
|
||||
|
||||
/* DMA channel register width */
|
||||
unsigned int dma_chan_width;
|
||||
|
||||
/* DMA engine has internal SRAM */
|
||||
bool dma_has_sram;
|
||||
};
|
||||
|
||||
int __init bcm63xx_enet_register(int unit,
|
||||
const struct bcm63xx_enet_platform_data *pd);
|
||||
|
||||
int bcm63xx_enetsw_register(const struct bcm63xx_enetsw_platform_data *pd);
|
||||
|
||||
enum bcm63xx_regs_enetdmac {
|
||||
ENETDMAC_CHANCFG,
|
||||
ENETDMAC_IR,
|
||||
ENETDMAC_IRMASK,
|
||||
ENETDMAC_MAXBURST,
|
||||
ENETDMAC_BUFALLOC,
|
||||
ENETDMAC_RSTART,
|
||||
ENETDMAC_FC,
|
||||
ENETDMAC_LEN,
|
||||
};
|
||||
|
||||
static inline unsigned long bcm63xx_enetdmacreg(enum bcm63xx_regs_enetdmac reg)
|
||||
{
|
||||
extern const unsigned long *bcm63xx_regs_enetdmac;
|
||||
|
||||
return bcm63xx_regs_enetdmac[reg];
|
||||
}
|
||||
|
||||
|
||||
#endif /* ! BCM63XX_DEV_ENET_H_ */
|
||||
12
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
Normal file
12
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef __BCM63XX_FLASH_H
|
||||
#define __BCM63XX_FLASH_H
|
||||
|
||||
enum {
|
||||
BCM63XX_FLASH_TYPE_PARALLEL,
|
||||
BCM63XX_FLASH_TYPE_SERIAL,
|
||||
BCM63XX_FLASH_TYPE_NAND,
|
||||
};
|
||||
|
||||
int __init bcm63xx_flash_register(void);
|
||||
|
||||
#endif /* __BCM63XX_FLASH_H */
|
||||
8
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_hsspi.h
Normal file
8
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_hsspi.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef BCM63XX_DEV_HSSPI_H
|
||||
#define BCM63XX_DEV_HSSPI_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
int bcm63xx_hsspi_register(void);
|
||||
|
||||
#endif /* BCM63XX_DEV_HSSPI_H */
|
||||
6
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_pci.h
Normal file
6
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_pci.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef BCM63XX_DEV_PCI_H_
|
||||
#define BCM63XX_DEV_PCI_H_
|
||||
|
||||
extern int bcm63xx_pci_enabled;
|
||||
|
||||
#endif /* BCM63XX_DEV_PCI_H_ */
|
||||
13
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_pcmcia.h
Normal file
13
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_pcmcia.h
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#ifndef BCM63XX_DEV_PCMCIA_H_
|
||||
#define BCM63XX_DEV_PCMCIA_H_
|
||||
|
||||
/*
|
||||
* PCMCIA driver platform data
|
||||
*/
|
||||
struct bcm63xx_pcmcia_platform_data {
|
||||
unsigned int ready_gpio;
|
||||
};
|
||||
|
||||
int bcm63xx_pcmcia_register(void);
|
||||
|
||||
#endif /* BCM63XX_DEV_PCMCIA_H_ */
|
||||
54
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_spi.h
Normal file
54
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_spi.h
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
#ifndef BCM63XX_DEV_SPI_H
|
||||
#define BCM63XX_DEV_SPI_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <bcm63xx_io.h>
|
||||
#include <bcm63xx_regs.h>
|
||||
|
||||
int __init bcm63xx_spi_register(void);
|
||||
|
||||
struct bcm63xx_spi_pdata {
|
||||
unsigned int fifo_size;
|
||||
unsigned int msg_type_shift;
|
||||
unsigned int msg_ctl_width;
|
||||
int bus_num;
|
||||
int num_chipselect;
|
||||
};
|
||||
|
||||
enum bcm63xx_regs_spi {
|
||||
SPI_CMD,
|
||||
SPI_INT_STATUS,
|
||||
SPI_INT_MASK_ST,
|
||||
SPI_INT_MASK,
|
||||
SPI_ST,
|
||||
SPI_CLK_CFG,
|
||||
SPI_FILL_BYTE,
|
||||
SPI_MSG_TAIL,
|
||||
SPI_RX_TAIL,
|
||||
SPI_MSG_CTL,
|
||||
SPI_MSG_DATA,
|
||||
SPI_RX_DATA,
|
||||
};
|
||||
|
||||
#define __GEN_SPI_REGS_TABLE(__cpu) \
|
||||
[SPI_CMD] = SPI_## __cpu ##_CMD, \
|
||||
[SPI_INT_STATUS] = SPI_## __cpu ##_INT_STATUS, \
|
||||
[SPI_INT_MASK_ST] = SPI_## __cpu ##_INT_MASK_ST, \
|
||||
[SPI_INT_MASK] = SPI_## __cpu ##_INT_MASK, \
|
||||
[SPI_ST] = SPI_## __cpu ##_ST, \
|
||||
[SPI_CLK_CFG] = SPI_## __cpu ##_CLK_CFG, \
|
||||
[SPI_FILL_BYTE] = SPI_## __cpu ##_FILL_BYTE, \
|
||||
[SPI_MSG_TAIL] = SPI_## __cpu ##_MSG_TAIL, \
|
||||
[SPI_RX_TAIL] = SPI_## __cpu ##_RX_TAIL, \
|
||||
[SPI_MSG_CTL] = SPI_## __cpu ##_MSG_CTL, \
|
||||
[SPI_MSG_DATA] = SPI_## __cpu ##_MSG_DATA, \
|
||||
[SPI_RX_DATA] = SPI_## __cpu ##_RX_DATA,
|
||||
|
||||
static inline unsigned long bcm63xx_spireg(enum bcm63xx_regs_spi reg)
|
||||
{
|
||||
extern const unsigned long *bcm63xx_regs_spi;
|
||||
|
||||
return bcm63xx_regs_spi[reg];
|
||||
}
|
||||
|
||||
#endif /* BCM63XX_DEV_SPI_H */
|
||||
6
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h
Normal file
6
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef BCM63XX_DEV_UART_H_
|
||||
#define BCM63XX_DEV_UART_H_
|
||||
|
||||
int bcm63xx_uart_register(unsigned int id);
|
||||
|
||||
#endif /* BCM63XX_DEV_UART_H_ */
|
||||
17
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_usb_usbd.h
Normal file
17
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_usb_usbd.h
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#ifndef BCM63XX_DEV_USB_USBD_H_
|
||||
#define BCM63XX_DEV_USB_USBD_H_
|
||||
|
||||
/*
|
||||
* usb device platform data
|
||||
*/
|
||||
struct bcm63xx_usbd_platform_data {
|
||||
/* board can only support full speed (USB 1.1) */
|
||||
int use_fullspeed;
|
||||
|
||||
/* 0-based port index, for chips with >1 USB PHY */
|
||||
int port_no;
|
||||
};
|
||||
|
||||
int bcm63xx_usbd_register(const struct bcm63xx_usbd_platform_data *pd);
|
||||
|
||||
#endif /* BCM63XX_DEV_USB_USBD_H_ */
|
||||
34
arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
Normal file
34
arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
#ifndef BCM63XX_GPIO_H
|
||||
#define BCM63XX_GPIO_H
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <bcm63xx_cpu.h>
|
||||
|
||||
int __init bcm63xx_gpio_init(void);
|
||||
|
||||
static inline unsigned long bcm63xx_gpio_count(void)
|
||||
{
|
||||
switch (bcm63xx_get_cpu_id()) {
|
||||
case BCM6328_CPU_ID:
|
||||
return 32;
|
||||
case BCM3368_CPU_ID:
|
||||
case BCM6358_CPU_ID:
|
||||
return 40;
|
||||
case BCM6338_CPU_ID:
|
||||
return 8;
|
||||
case BCM6345_CPU_ID:
|
||||
return 16;
|
||||
case BCM6362_CPU_ID:
|
||||
return 48;
|
||||
case BCM6368_CPU_ID:
|
||||
return 38;
|
||||
case BCM6348_CPU_ID:
|
||||
default:
|
||||
return 37;
|
||||
}
|
||||
}
|
||||
|
||||
#define BCM63XX_GPIO_DIR_OUT 0x0
|
||||
#define BCM63XX_GPIO_DIR_IN 0x1
|
||||
|
||||
#endif /* !BCM63XX_GPIO_H */
|
||||
103
arch/mips/include/asm/mach-bcm63xx/bcm63xx_io.h
Normal file
103
arch/mips/include/asm/mach-bcm63xx/bcm63xx_io.h
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
#ifndef BCM63XX_IO_H_
|
||||
#define BCM63XX_IO_H_
|
||||
|
||||
#include <asm/mach-bcm63xx/bcm63xx_cpu.h>
|
||||
|
||||
/*
|
||||
* Physical memory map, RAM is mapped at 0x0.
|
||||
*
|
||||
* Note that size MUST be a power of two.
|
||||
*/
|
||||
#define BCM_PCMCIA_COMMON_BASE_PA (0x20000000)
|
||||
#define BCM_PCMCIA_COMMON_SIZE (16 * 1024 * 1024)
|
||||
#define BCM_PCMCIA_COMMON_END_PA (BCM_PCMCIA_COMMON_BASE_PA + \
|
||||
BCM_PCMCIA_COMMON_SIZE - 1)
|
||||
|
||||
#define BCM_PCMCIA_ATTR_BASE_PA (0x21000000)
|
||||
#define BCM_PCMCIA_ATTR_SIZE (16 * 1024 * 1024)
|
||||
#define BCM_PCMCIA_ATTR_END_PA (BCM_PCMCIA_ATTR_BASE_PA + \
|
||||
BCM_PCMCIA_ATTR_SIZE - 1)
|
||||
|
||||
#define BCM_PCMCIA_IO_BASE_PA (0x22000000)
|
||||
#define BCM_PCMCIA_IO_SIZE (64 * 1024)
|
||||
#define BCM_PCMCIA_IO_END_PA (BCM_PCMCIA_IO_BASE_PA + \
|
||||
BCM_PCMCIA_IO_SIZE - 1)
|
||||
|
||||
#define BCM_PCI_MEM_BASE_PA (0x30000000)
|
||||
#define BCM_PCI_MEM_SIZE (128 * 1024 * 1024)
|
||||
#define BCM_PCI_MEM_END_PA (BCM_PCI_MEM_BASE_PA + \
|
||||
BCM_PCI_MEM_SIZE - 1)
|
||||
|
||||
#define BCM_PCI_IO_BASE_PA (0x08000000)
|
||||
#define BCM_PCI_IO_SIZE (64 * 1024)
|
||||
#define BCM_PCI_IO_END_PA (BCM_PCI_IO_BASE_PA + \
|
||||
BCM_PCI_IO_SIZE - 1)
|
||||
#define BCM_PCI_IO_HALF_PA (BCM_PCI_IO_BASE_PA + \
|
||||
(BCM_PCI_IO_SIZE / 2) - 1)
|
||||
|
||||
#define BCM_CB_MEM_BASE_PA (0x38000000)
|
||||
#define BCM_CB_MEM_SIZE (128 * 1024 * 1024)
|
||||
#define BCM_CB_MEM_END_PA (BCM_CB_MEM_BASE_PA + \
|
||||
BCM_CB_MEM_SIZE - 1)
|
||||
|
||||
#define BCM_PCIE_MEM_BASE_PA 0x10f00000
|
||||
#define BCM_PCIE_MEM_SIZE (16 * 1024 * 1024)
|
||||
#define BCM_PCIE_MEM_END_PA (BCM_PCIE_MEM_BASE_PA + \
|
||||
BCM_PCIE_MEM_SIZE - 1)
|
||||
|
||||
/*
|
||||
* Internal registers are accessed through KSEG3
|
||||
*/
|
||||
#define BCM_REGS_VA(x) ((void __iomem *)(x))
|
||||
|
||||
#define bcm_readb(a) (*(volatile unsigned char *) BCM_REGS_VA(a))
|
||||
#define bcm_readw(a) (*(volatile unsigned short *) BCM_REGS_VA(a))
|
||||
#define bcm_readl(a) (*(volatile unsigned int *) BCM_REGS_VA(a))
|
||||
#define bcm_readq(a) (*(volatile u64 *) BCM_REGS_VA(a))
|
||||
#define bcm_writeb(v, a) (*(volatile unsigned char *) BCM_REGS_VA((a)) = (v))
|
||||
#define bcm_writew(v, a) (*(volatile unsigned short *) BCM_REGS_VA((a)) = (v))
|
||||
#define bcm_writel(v, a) (*(volatile unsigned int *) BCM_REGS_VA((a)) = (v))
|
||||
#define bcm_writeq(v, a) (*(volatile u64 *) BCM_REGS_VA((a)) = (v))
|
||||
|
||||
/*
|
||||
* IO helpers to access register set for current CPU
|
||||
*/
|
||||
#define bcm_rset_readb(s, o) bcm_readb(bcm63xx_regset_address(s) + (o))
|
||||
#define bcm_rset_readw(s, o) bcm_readw(bcm63xx_regset_address(s) + (o))
|
||||
#define bcm_rset_readl(s, o) bcm_readl(bcm63xx_regset_address(s) + (o))
|
||||
#define bcm_rset_writeb(s, v, o) bcm_writeb((v), \
|
||||
bcm63xx_regset_address(s) + (o))
|
||||
#define bcm_rset_writew(s, v, o) bcm_writew((v), \
|
||||
bcm63xx_regset_address(s) + (o))
|
||||
#define bcm_rset_writel(s, v, o) bcm_writel((v), \
|
||||
bcm63xx_regset_address(s) + (o))
|
||||
|
||||
/*
|
||||
* helpers for frequently used register sets
|
||||
*/
|
||||
#define bcm_perf_readl(o) bcm_rset_readl(RSET_PERF, (o))
|
||||
#define bcm_perf_writel(v, o) bcm_rset_writel(RSET_PERF, (v), (o))
|
||||
#define bcm_timer_readl(o) bcm_rset_readl(RSET_TIMER, (o))
|
||||
#define bcm_timer_writel(v, o) bcm_rset_writel(RSET_TIMER, (v), (o))
|
||||
#define bcm_wdt_readl(o) bcm_rset_readl(RSET_WDT, (o))
|
||||
#define bcm_wdt_writel(v, o) bcm_rset_writel(RSET_WDT, (v), (o))
|
||||
#define bcm_gpio_readl(o) bcm_rset_readl(RSET_GPIO, (o))
|
||||
#define bcm_gpio_writel(v, o) bcm_rset_writel(RSET_GPIO, (v), (o))
|
||||
#define bcm_uart0_readl(o) bcm_rset_readl(RSET_UART0, (o))
|
||||
#define bcm_uart0_writel(v, o) bcm_rset_writel(RSET_UART0, (v), (o))
|
||||
#define bcm_mpi_readl(o) bcm_rset_readl(RSET_MPI, (o))
|
||||
#define bcm_mpi_writel(v, o) bcm_rset_writel(RSET_MPI, (v), (o))
|
||||
#define bcm_pcmcia_readl(o) bcm_rset_readl(RSET_PCMCIA, (o))
|
||||
#define bcm_pcmcia_writel(v, o) bcm_rset_writel(RSET_PCMCIA, (v), (o))
|
||||
#define bcm_pcie_readl(o) bcm_rset_readl(RSET_PCIE, (o))
|
||||
#define bcm_pcie_writel(v, o) bcm_rset_writel(RSET_PCIE, (v), (o))
|
||||
#define bcm_sdram_readl(o) bcm_rset_readl(RSET_SDRAM, (o))
|
||||
#define bcm_sdram_writel(v, o) bcm_rset_writel(RSET_SDRAM, (v), (o))
|
||||
#define bcm_memc_readl(o) bcm_rset_readl(RSET_MEMC, (o))
|
||||
#define bcm_memc_writel(v, o) bcm_rset_writel(RSET_MEMC, (v), (o))
|
||||
#define bcm_ddr_readl(o) bcm_rset_readl(RSET_DDR, (o))
|
||||
#define bcm_ddr_writel(v, o) bcm_rset_writel(RSET_DDR, (v), (o))
|
||||
#define bcm_misc_readl(o) bcm_rset_readl(RSET_MISC, (o))
|
||||
#define bcm_misc_writel(v, o) bcm_rset_writel(RSET_MISC, (v), (o))
|
||||
|
||||
#endif /* ! BCM63XX_IO_H_ */
|
||||
13
arch/mips/include/asm/mach-bcm63xx/bcm63xx_irq.h
Normal file
13
arch/mips/include/asm/mach-bcm63xx/bcm63xx_irq.h
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#ifndef BCM63XX_IRQ_H_
|
||||
#define BCM63XX_IRQ_H_
|
||||
|
||||
#include <bcm63xx_cpu.h>
|
||||
|
||||
#define IRQ_INTERNAL_BASE 8
|
||||
#define IRQ_EXTERNAL_BASE 100
|
||||
#define IRQ_EXT_0 (IRQ_EXTERNAL_BASE + 0)
|
||||
#define IRQ_EXT_1 (IRQ_EXTERNAL_BASE + 1)
|
||||
#define IRQ_EXT_2 (IRQ_EXTERNAL_BASE + 2)
|
||||
#define IRQ_EXT_3 (IRQ_EXTERNAL_BASE + 3)
|
||||
|
||||
#endif /* ! BCM63XX_IRQ_H_ */
|
||||
38
arch/mips/include/asm/mach-bcm63xx/bcm63xx_iudma.h
Normal file
38
arch/mips/include/asm/mach-bcm63xx/bcm63xx_iudma.h
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
#ifndef BCM63XX_IUDMA_H_
|
||||
#define BCM63XX_IUDMA_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* rx/tx dma descriptor
|
||||
*/
|
||||
struct bcm_enet_desc {
|
||||
u32 len_stat;
|
||||
u32 address;
|
||||
};
|
||||
|
||||
/* control */
|
||||
#define DMADESC_LENGTH_SHIFT 16
|
||||
#define DMADESC_LENGTH_MASK (0xfff << DMADESC_LENGTH_SHIFT)
|
||||
#define DMADESC_OWNER_MASK (1 << 15)
|
||||
#define DMADESC_EOP_MASK (1 << 14)
|
||||
#define DMADESC_SOP_MASK (1 << 13)
|
||||
#define DMADESC_ESOP_MASK (DMADESC_EOP_MASK | DMADESC_SOP_MASK)
|
||||
#define DMADESC_WRAP_MASK (1 << 12)
|
||||
#define DMADESC_USB_NOZERO_MASK (1 << 1)
|
||||
#define DMADESC_USB_ZERO_MASK (1 << 0)
|
||||
|
||||
/* status */
|
||||
#define DMADESC_UNDER_MASK (1 << 9)
|
||||
#define DMADESC_APPEND_CRC (1 << 8)
|
||||
#define DMADESC_OVSIZE_MASK (1 << 4)
|
||||
#define DMADESC_RXER_MASK (1 << 2)
|
||||
#define DMADESC_CRC_MASK (1 << 1)
|
||||
#define DMADESC_OV_MASK (1 << 0)
|
||||
#define DMADESC_ERR_MASK (DMADESC_UNDER_MASK | \
|
||||
DMADESC_OVSIZE_MASK | \
|
||||
DMADESC_RXER_MASK | \
|
||||
DMADESC_CRC_MASK | \
|
||||
DMADESC_OV_MASK)
|
||||
|
||||
#endif /* ! BCM63XX_IUDMA_H_ */
|
||||
35
arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h
Normal file
35
arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#ifndef BCM63XX_NVRAM_H
|
||||
#define BCM63XX_NVRAM_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* bcm63xx_nvram_init() - initializes nvram
|
||||
* @nvram: address of the nvram data
|
||||
*
|
||||
* Initialized the local nvram copy from the target address and checks
|
||||
* its checksum.
|
||||
*/
|
||||
void bcm63xx_nvram_init(void *nvram);
|
||||
|
||||
/**
|
||||
* bcm63xx_nvram_get_name() - returns the board name according to nvram
|
||||
*
|
||||
* Returns the board name field from nvram. Note that it might not be
|
||||
* null terminated if it is exactly 16 bytes long.
|
||||
*/
|
||||
u8 *bcm63xx_nvram_get_name(void);
|
||||
|
||||
/**
|
||||
* bcm63xx_nvram_get_mac_address() - register & return a new mac address
|
||||
* @mac: pointer to array for allocated mac
|
||||
*
|
||||
* Registers and returns a mac address from the allocated macs from nvram.
|
||||
*
|
||||
* Returns 0 on success.
|
||||
*/
|
||||
int bcm63xx_nvram_get_mac_address(u8 *mac);
|
||||
|
||||
int bcm63xx_nvram_get_psi_size(void);
|
||||
|
||||
#endif /* BCM63XX_NVRAM_H */
|
||||
1444
arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
Normal file
1444
arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
Normal file
File diff suppressed because it is too large
Load diff
21
arch/mips/include/asm/mach-bcm63xx/bcm63xx_reset.h
Normal file
21
arch/mips/include/asm/mach-bcm63xx/bcm63xx_reset.h
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
#ifndef __BCM63XX_RESET_H
|
||||
#define __BCM63XX_RESET_H
|
||||
|
||||
enum bcm63xx_core_reset {
|
||||
BCM63XX_RESET_SPI,
|
||||
BCM63XX_RESET_ENET,
|
||||
BCM63XX_RESET_USBH,
|
||||
BCM63XX_RESET_USBD,
|
||||
BCM63XX_RESET_SAR,
|
||||
BCM63XX_RESET_DSL,
|
||||
BCM63XX_RESET_EPHY,
|
||||
BCM63XX_RESET_ENETSW,
|
||||
BCM63XX_RESET_PCM,
|
||||
BCM63XX_RESET_MPI,
|
||||
BCM63XX_RESET_PCIE,
|
||||
BCM63XX_RESET_PCIE_EXT,
|
||||
};
|
||||
|
||||
void bcm63xx_core_set_reset(enum bcm63xx_core_reset, int reset);
|
||||
|
||||
#endif
|
||||
11
arch/mips/include/asm/mach-bcm63xx/bcm63xx_timer.h
Normal file
11
arch/mips/include/asm/mach-bcm63xx/bcm63xx_timer.h
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef BCM63XX_TIMER_H_
|
||||
#define BCM63XX_TIMER_H_
|
||||
|
||||
int bcm63xx_timer_register(int id, void (*callback)(void *data), void *data);
|
||||
void bcm63xx_timer_unregister(int id);
|
||||
int bcm63xx_timer_set(int id, int monotonic, unsigned int countdown_us);
|
||||
int bcm63xx_timer_enable(int id);
|
||||
int bcm63xx_timer_disable(int id);
|
||||
unsigned int bcm63xx_timer_countdown(unsigned int countdown_us);
|
||||
|
||||
#endif /* !BCM63XX_TIMER_H_ */
|
||||
96
arch/mips/include/asm/mach-bcm63xx/bcm963xx_tag.h
Normal file
96
arch/mips/include/asm/mach-bcm63xx/bcm963xx_tag.h
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
#ifndef __BCM963XX_TAG_H
|
||||
#define __BCM963XX_TAG_H
|
||||
|
||||
#define TAGVER_LEN 4 /* Length of Tag Version */
|
||||
#define TAGLAYOUT_LEN 4 /* Length of FlashLayoutVer */
|
||||
#define SIG1_LEN 20 /* Company Signature 1 Length */
|
||||
#define SIG2_LEN 14 /* Company Signature 2 Length */
|
||||
#define BOARDID_LEN 16 /* Length of BoardId */
|
||||
#define ENDIANFLAG_LEN 2 /* Endian Flag Length */
|
||||
#define CHIPID_LEN 6 /* Chip Id Length */
|
||||
#define IMAGE_LEN 10 /* Length of Length Field */
|
||||
#define ADDRESS_LEN 12 /* Length of Address field */
|
||||
#define DUALFLAG_LEN 2 /* Dual Image flag Length */
|
||||
#define INACTIVEFLAG_LEN 2 /* Inactie Flag Length */
|
||||
#define RSASIG_LEN 20 /* Length of RSA Signature in tag */
|
||||
#define TAGINFO1_LEN 30 /* Length of vendor information field1 in tag */
|
||||
#define FLASHLAYOUTVER_LEN 4 /* Length of Flash Layout Version String tag */
|
||||
#define TAGINFO2_LEN 16 /* Length of vendor information field2 in tag */
|
||||
#define ALTTAGINFO_LEN 54 /* Alternate length for vendor information; Pirelli */
|
||||
|
||||
#define NUM_PIRELLI 2
|
||||
#define IMAGETAG_CRC_START 0xFFFFFFFF
|
||||
|
||||
#define PIRELLI_BOARDS { \
|
||||
"AGPF-S0", \
|
||||
"DWV-S0", \
|
||||
}
|
||||
|
||||
/*
|
||||
* The broadcom firmware assumes the rootfs starts the image,
|
||||
* therefore uses the rootfs start (flash_image_address)
|
||||
* to determine where to flash the image. Since we have the kernel first
|
||||
* we have to give it the kernel address, but the crc uses the length
|
||||
* associated with this address (root_length), which is added to the kernel
|
||||
* length (kernel_length) to determine the length of image to flash and thus
|
||||
* needs to be rootfs + deadcode (jffs2 EOF marker)
|
||||
*/
|
||||
|
||||
struct bcm_tag {
|
||||
/* 0-3: Version of the image tag */
|
||||
char tag_version[TAGVER_LEN];
|
||||
/* 4-23: Company Line 1 */
|
||||
char sig_1[SIG1_LEN];
|
||||
/* 24-37: Company Line 2 */
|
||||
char sig_2[SIG2_LEN];
|
||||
/* 38-43: Chip this image is for */
|
||||
char chip_id[CHIPID_LEN];
|
||||
/* 44-59: Board name */
|
||||
char board_id[BOARDID_LEN];
|
||||
/* 60-61: Map endianness -- 1 BE 0 LE */
|
||||
char big_endian[ENDIANFLAG_LEN];
|
||||
/* 62-71: Total length of image */
|
||||
char total_length[IMAGE_LEN];
|
||||
/* 72-83: Address in memory of CFE */
|
||||
char cfe__address[ADDRESS_LEN];
|
||||
/* 84-93: Size of CFE */
|
||||
char cfe_length[IMAGE_LEN];
|
||||
/* 94-105: Address in memory of image start
|
||||
* (kernel for OpenWRT, rootfs for stock firmware)
|
||||
*/
|
||||
char flash_image_start[ADDRESS_LEN];
|
||||
/* 106-115: Size of rootfs */
|
||||
char root_length[IMAGE_LEN];
|
||||
/* 116-127: Address in memory of kernel */
|
||||
char kernel_address[ADDRESS_LEN];
|
||||
/* 128-137: Size of kernel */
|
||||
char kernel_length[IMAGE_LEN];
|
||||
/* 138-139: Unused at the moment */
|
||||
char dual_image[DUALFLAG_LEN];
|
||||
/* 140-141: Unused at the moment */
|
||||
char inactive_flag[INACTIVEFLAG_LEN];
|
||||
/* 142-161: RSA Signature (not used; some vendors may use this) */
|
||||
char rsa_signature[RSASIG_LEN];
|
||||
/* 162-191: Compilation and related information (not used in OpenWrt) */
|
||||
char information1[TAGINFO1_LEN];
|
||||
/* 192-195: Version flash layout */
|
||||
char flash_layout_ver[FLASHLAYOUTVER_LEN];
|
||||
/* 196-199: kernel+rootfs CRC32 */
|
||||
__u32 fskernel_crc;
|
||||
/* 200-215: Unused except on Alice Gate where is is information */
|
||||
char information2[TAGINFO2_LEN];
|
||||
/* 216-219: CRC32 of image less imagetag (kernel for Alice Gate) */
|
||||
__u32 image_crc;
|
||||
/* 220-223: CRC32 of rootfs partition */
|
||||
__u32 rootfs_crc;
|
||||
/* 224-227: CRC32 of kernel partition */
|
||||
__u32 kernel_crc;
|
||||
/* 228-235: Unused at present */
|
||||
char reserved1[8];
|
||||
/* 236-239: CRC32 of header excluding last 20 bytes */
|
||||
__u32 header_crc;
|
||||
/* 240-255: Unused at present */
|
||||
char reserved2[16];
|
||||
};
|
||||
|
||||
#endif /* __BCM63XX_TAG_H */
|
||||
58
arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
Normal file
58
arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
#ifndef BOARD_BCM963XX_H_
|
||||
#define BOARD_BCM963XX_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/leds.h>
|
||||
#include <bcm63xx_dev_enet.h>
|
||||
#include <bcm63xx_dev_usb_usbd.h>
|
||||
#include <bcm63xx_dev_dsp.h>
|
||||
|
||||
/*
|
||||
* flash mapping
|
||||
*/
|
||||
#define BCM963XX_CFE_VERSION_OFFSET 0x570
|
||||
#define BCM963XX_NVRAM_OFFSET 0x580
|
||||
|
||||
/*
|
||||
* board definition
|
||||
*/
|
||||
struct board_info {
|
||||
u8 name[16];
|
||||
unsigned int expected_cpu_id;
|
||||
|
||||
/* enabled feature/device */
|
||||
unsigned int has_enet0:1;
|
||||
unsigned int has_enet1:1;
|
||||
unsigned int has_enetsw:1;
|
||||
unsigned int has_pci:1;
|
||||
unsigned int has_pccard:1;
|
||||
unsigned int has_ohci0:1;
|
||||
unsigned int has_ehci0:1;
|
||||
unsigned int has_usbd:1;
|
||||
unsigned int has_dsp:1;
|
||||
unsigned int has_uart0:1;
|
||||
unsigned int has_uart1:1;
|
||||
|
||||
/* ethernet config */
|
||||
struct bcm63xx_enet_platform_data enet0;
|
||||
struct bcm63xx_enet_platform_data enet1;
|
||||
struct bcm63xx_enetsw_platform_data enetsw;
|
||||
|
||||
/* USB config */
|
||||
struct bcm63xx_usbd_platform_data usbd;
|
||||
|
||||
/* DSP config */
|
||||
struct bcm63xx_dsp_platform_data dsp;
|
||||
|
||||
/* GPIO LEDs */
|
||||
struct gpio_led leds[5];
|
||||
|
||||
/* External PHY reset GPIO */
|
||||
unsigned int ephy_reset_gpio;
|
||||
|
||||
/* External PHY reset GPIO flags from gpio.h */
|
||||
unsigned long ephy_reset_gpio_flags;
|
||||
};
|
||||
|
||||
#endif /* ! BOARD_BCM963XX_H_ */
|
||||
52
arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h
Normal file
52
arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
#ifndef __ASM_MACH_BCM963XX_CPU_FEATURE_OVERRIDES_H
|
||||
#define __ASM_MACH_BCM963XX_CPU_FEATURE_OVERRIDES_H
|
||||
|
||||
#include <bcm63xx_cpu.h>
|
||||
|
||||
#define cpu_has_tlb 1
|
||||
#define cpu_has_4kex 1
|
||||
#define cpu_has_4k_cache 1
|
||||
#define cpu_has_fpu 0
|
||||
#define cpu_has_32fpr 0
|
||||
#define cpu_has_counter 1
|
||||
#define cpu_has_watch 0
|
||||
#define cpu_has_divec 1
|
||||
#define cpu_has_vce 0
|
||||
#define cpu_has_cache_cdex_p 0
|
||||
#define cpu_has_cache_cdex_s 0
|
||||
#define cpu_has_prefetch 1
|
||||
#define cpu_has_mcheck 1
|
||||
#define cpu_has_ejtag 1
|
||||
#define cpu_has_llsc 1
|
||||
#define cpu_has_mips16 0
|
||||
#define cpu_has_mdmx 0
|
||||
#define cpu_has_mips3d 0
|
||||
#define cpu_has_smartmips 0
|
||||
#define cpu_has_vtag_icache 0
|
||||
|
||||
#if !defined(CONFIG_SYS_HAS_CPU_BMIPS4350)
|
||||
#define cpu_has_dc_aliases 0
|
||||
#endif
|
||||
|
||||
#define cpu_has_ic_fills_f_dc 0
|
||||
#define cpu_has_pindexed_dcache 0
|
||||
|
||||
#define cpu_has_mips32r1 1
|
||||
#define cpu_has_mips32r2 0
|
||||
#define cpu_has_mips64r1 0
|
||||
#define cpu_has_mips64r2 0
|
||||
|
||||
#define cpu_has_dsp 0
|
||||
#define cpu_has_dsp2 0
|
||||
#define cpu_has_mipsmt 0
|
||||
#define cpu_has_userlocal 0
|
||||
|
||||
#define cpu_has_nofpuex 0
|
||||
#define cpu_has_64bits 0
|
||||
#define cpu_has_64bit_zero_reg 0
|
||||
|
||||
#define cpu_dcache_line_size() 16
|
||||
#define cpu_icache_line_size() 16
|
||||
#define cpu_scache_line_size() 0
|
||||
|
||||
#endif /* __ASM_MACH_BCM963XX_CPU_FEATURE_OVERRIDES_H */
|
||||
15
arch/mips/include/asm/mach-bcm63xx/gpio.h
Normal file
15
arch/mips/include/asm/mach-bcm63xx/gpio.h
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef __ASM_MIPS_MACH_BCM63XX_GPIO_H
|
||||
#define __ASM_MIPS_MACH_BCM63XX_GPIO_H
|
||||
|
||||
#include <bcm63xx_gpio.h>
|
||||
|
||||
#define gpio_to_irq(gpio) -1
|
||||
|
||||
#define gpio_get_value __gpio_get_value
|
||||
#define gpio_set_value __gpio_set_value
|
||||
|
||||
#define gpio_cansleep __gpio_cansleep
|
||||
|
||||
#include <asm-generic/gpio.h>
|
||||
|
||||
#endif /* __ASM_MIPS_MACH_BCM63XX_GPIO_H */
|
||||
48
arch/mips/include/asm/mach-bcm63xx/ioremap.h
Normal file
48
arch/mips/include/asm/mach-bcm63xx/ioremap.h
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#ifndef BCM63XX_IOREMAP_H_
|
||||
#define BCM63XX_IOREMAP_H_
|
||||
|
||||
#include <bcm63xx_cpu.h>
|
||||
|
||||
static inline phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size)
|
||||
{
|
||||
return phys_addr;
|
||||
}
|
||||
|
||||
static inline int is_bcm63xx_internal_registers(phys_t offset)
|
||||
{
|
||||
switch (bcm63xx_get_cpu_id()) {
|
||||
case BCM3368_CPU_ID:
|
||||
if (offset >= 0xfff80000)
|
||||
return 1;
|
||||
break;
|
||||
case BCM6338_CPU_ID:
|
||||
case BCM6345_CPU_ID:
|
||||
case BCM6348_CPU_ID:
|
||||
case BCM6358_CPU_ID:
|
||||
if (offset >= 0xfff00000)
|
||||
return 1;
|
||||
break;
|
||||
case BCM6328_CPU_ID:
|
||||
case BCM6362_CPU_ID:
|
||||
case BCM6368_CPU_ID:
|
||||
if (offset >= 0xb0000000 && offset < 0xb1000000)
|
||||
return 1;
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size,
|
||||
unsigned long flags)
|
||||
{
|
||||
if (is_bcm63xx_internal_registers(offset))
|
||||
return (void __iomem *)offset;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline int plat_iounmap(const volatile void __iomem *addr)
|
||||
{
|
||||
return is_bcm63xx_internal_registers((unsigned long)addr);
|
||||
}
|
||||
|
||||
#endif /* BCM63XX_IOREMAP_H_ */
|
||||
7
arch/mips/include/asm/mach-bcm63xx/irq.h
Normal file
7
arch/mips/include/asm/mach-bcm63xx/irq.h
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#ifndef __ASM_MACH_BCM63XX_IRQ_H
|
||||
#define __ASM_MACH_BCM63XX_IRQ_H
|
||||
|
||||
#define NR_IRQS 128
|
||||
#define MIPS_CPU_IRQ_BASE 0
|
||||
|
||||
#endif
|
||||
17
arch/mips/include/asm/mach-bcm63xx/spaces.h
Normal file
17
arch/mips/include/asm/mach-bcm63xx/spaces.h
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*
|
||||
* Copyright (C) 1994 - 1999, 2000, 03, 04 Ralf Baechle
|
||||
* Copyright (C) 2000, 2002 Maciej W. Rozycki
|
||||
* Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc.
|
||||
*/
|
||||
#ifndef _ASM_BCM63XX_SPACES_H
|
||||
#define _ASM_BCM63XX_SPACES_H
|
||||
|
||||
#define FIXADDR_TOP ((unsigned long)(long)(int)0xff000000)
|
||||
|
||||
#include <asm/mach-generic/spaces.h>
|
||||
|
||||
#endif /* __ASM_BCM63XX_SPACES_H */
|
||||
24
arch/mips/include/asm/mach-bcm63xx/war.h
Normal file
24
arch/mips/include/asm/mach-bcm63xx/war.h
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*
|
||||
* Copyright (C) 2002, 2004, 2007 by Ralf Baechle <ralf@linux-mips.org>
|
||||
*/
|
||||
#ifndef __ASM_MIPS_MACH_BCM63XX_WAR_H
|
||||
#define __ASM_MIPS_MACH_BCM63XX_WAR_H
|
||||
|
||||
#define R4600_V1_INDEX_ICACHEOP_WAR 0
|
||||
#define R4600_V1_HIT_CACHEOP_WAR 0
|
||||
#define R4600_V2_HIT_CACHEOP_WAR 0
|
||||
#define R5432_CP0_INTERRUPT_WAR 0
|
||||
#define BCM1250_M3_WAR 0
|
||||
#define SIBYTE_1956_WAR 0
|
||||
#define MIPS4K_ICACHE_REFILL_WAR 0
|
||||
#define MIPS_CACHE_SYNC_WAR 0
|
||||
#define TX49XX_ICACHE_INDEX_INV_WAR 0
|
||||
#define ICACHE_REFILLS_WORKAROUND_WAR 0
|
||||
#define R10000_LLSC_WAR 0
|
||||
#define MIPS34K_MISSED_ITLB_WAR 0
|
||||
|
||||
#endif /* __ASM_MIPS_MACH_BCM63XX_WAR_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue