diff options
Diffstat (limited to 'include/linux/bcma')
| -rw-r--r-- | include/linux/bcma/bcma.h | 7 | ||||
| -rw-r--r-- | include/linux/bcma/bcma_driver_chipcommon.h | 21 | ||||
| -rw-r--r-- | include/linux/bcma/bcma_driver_mips.h | 3 | ||||
| -rw-r--r-- | include/linux/bcma/bcma_regs.h | 5 | 
4 files changed, 32 insertions, 4 deletions
| diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h index 4180eb78d575..93b1e091b1e9 100644 --- a/include/linux/bcma/bcma.h +++ b/include/linux/bcma/bcma.h @@ -157,6 +157,7 @@ struct bcma_host_ops {  /* Chip IDs of SoCs */  #define BCMA_CHIP_ID_BCM4706	0x5300 +#define  BCMA_PKG_ID_BCM4706L	1  #define BCMA_CHIP_ID_BCM4716	0x4716  #define  BCMA_PKG_ID_BCM4716	8  #define  BCMA_PKG_ID_BCM4717	9 @@ -166,7 +167,11 @@ struct bcma_host_ops {  #define BCMA_CHIP_ID_BCM4749	0x4749  #define BCMA_CHIP_ID_BCM5356	0x5356  #define BCMA_CHIP_ID_BCM5357	0x5357 +#define  BCMA_PKG_ID_BCM5358	9 +#define  BCMA_PKG_ID_BCM47186	10 +#define  BCMA_PKG_ID_BCM5357	11  #define BCMA_CHIP_ID_BCM53572	53572 +#define  BCMA_PKG_ID_BCM47188	9  struct bcma_device {  	struct bcma_bus *bus; @@ -251,7 +256,7 @@ struct bcma_bus {  	u8 num;  	struct bcma_drv_cc drv_cc; -	struct bcma_drv_pci drv_pci; +	struct bcma_drv_pci drv_pci[2];  	struct bcma_drv_mips drv_mips;  	struct bcma_drv_gmac_cmn drv_gmac_cmn; diff --git a/include/linux/bcma/bcma_driver_chipcommon.h b/include/linux/bcma/bcma_driver_chipcommon.h index 1cf1749440ac..9a0e3fa3ca95 100644 --- a/include/linux/bcma/bcma_driver_chipcommon.h +++ b/include/linux/bcma/bcma_driver_chipcommon.h @@ -1,6 +1,9 @@  #ifndef LINUX_BCMA_DRIVER_CC_H_  #define LINUX_BCMA_DRIVER_CC_H_ +#include <linux/platform_device.h> +#include <linux/gpio.h> +  /** ChipCommon core registers. **/  #define BCMA_CC_ID			0x0000  #define  BCMA_CC_ID_ID			0x0000FFFF @@ -510,6 +513,7 @@ struct bcma_chipcommon_pmu {  #ifdef CONFIG_BCMA_DRIVER_MIPS  struct bcma_pflash { +	bool present;  	u8 buswidth;  	u32 window;  	u32 window_size; @@ -532,6 +536,7 @@ struct mtd_info;  struct bcma_nflash {  	bool present; +	bool boot;		/* This is the flash the SoC boots from */  	struct mtd_info *mtd;  }; @@ -552,6 +557,7 @@ struct bcma_drv_cc {  	u32 capabilities;  	u32 capabilities_ext;  	u8 setup_done:1; +	u8 early_setup_done:1;  	/* Fast Powerup Delay constant */  	u16 fast_pwrup_delay;  	struct bcma_chipcommon_pmu pmu; @@ -567,6 +573,14 @@ struct bcma_drv_cc {  	int nr_serial_ports;  	struct bcma_serial_port serial_ports[4];  #endif /* CONFIG_BCMA_DRIVER_MIPS */ +	u32 ticks_per_ms; +	struct platform_device *watchdog; + +	/* Lock for GPIO register access. */ +	spinlock_t gpio_lock; +#ifdef CONFIG_BCMA_DRIVER_GPIO +	struct gpio_chip gpio; +#endif  };  /* Register access */ @@ -583,14 +597,14 @@ struct bcma_drv_cc {  	bcma_cc_write32(cc, offset, (bcma_cc_read32(cc, offset) & (mask)) | (set))  extern void bcma_core_chipcommon_init(struct bcma_drv_cc *cc); +extern void bcma_core_chipcommon_early_init(struct bcma_drv_cc *cc);  extern void bcma_chipco_suspend(struct bcma_drv_cc *cc);  extern void bcma_chipco_resume(struct bcma_drv_cc *cc);  void bcma_chipco_bcm4331_ext_pa_lines_ctl(struct bcma_drv_cc *cc, bool enable); -extern void bcma_chipco_watchdog_timer_set(struct bcma_drv_cc *cc, -					  u32 ticks); +extern u32 bcma_chipco_watchdog_timer_set(struct bcma_drv_cc *cc, u32 ticks);  void bcma_chipco_irq_mask(struct bcma_drv_cc *cc, u32 mask, u32 value); @@ -603,9 +617,12 @@ u32 bcma_chipco_gpio_outen(struct bcma_drv_cc *cc, u32 mask, u32 value);  u32 bcma_chipco_gpio_control(struct bcma_drv_cc *cc, u32 mask, u32 value);  u32 bcma_chipco_gpio_intmask(struct bcma_drv_cc *cc, u32 mask, u32 value);  u32 bcma_chipco_gpio_polarity(struct bcma_drv_cc *cc, u32 mask, u32 value); +u32 bcma_chipco_gpio_pullup(struct bcma_drv_cc *cc, u32 mask, u32 value); +u32 bcma_chipco_gpio_pulldown(struct bcma_drv_cc *cc, u32 mask, u32 value);  /* PMU support */  extern void bcma_pmu_init(struct bcma_drv_cc *cc); +extern void bcma_pmu_early_init(struct bcma_drv_cc *cc);  extern void bcma_chipco_pll_write(struct bcma_drv_cc *cc, u32 offset,  				  u32 value); diff --git a/include/linux/bcma/bcma_driver_mips.h b/include/linux/bcma/bcma_driver_mips.h index c0043645cdcb..0baf8a56b794 100644 --- a/include/linux/bcma/bcma_driver_mips.h +++ b/include/linux/bcma/bcma_driver_mips.h @@ -35,13 +35,16 @@ struct bcma_device;  struct bcma_drv_mips {  	struct bcma_device *core;  	u8 setup_done:1; +	u8 early_setup_done:1;  	unsigned int assigned_irqs;  };  #ifdef CONFIG_BCMA_DRIVER_MIPS  extern void bcma_core_mips_init(struct bcma_drv_mips *mcore); +extern void bcma_core_mips_early_init(struct bcma_drv_mips *mcore);  #else  static inline void bcma_core_mips_init(struct bcma_drv_mips *mcore) { } +static inline void bcma_core_mips_early_init(struct bcma_drv_mips *mcore) { }  #endif  extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore); diff --git a/include/linux/bcma/bcma_regs.h b/include/linux/bcma/bcma_regs.h index 6c9cb93ae3de..7e8104bb7a7e 100644 --- a/include/linux/bcma/bcma_regs.h +++ b/include/linux/bcma/bcma_regs.h @@ -85,6 +85,9 @@  							 * (2 ZettaBytes), high 32 bits  							 */ -#define BCMA_SFLASH			0x1c000000 +#define BCMA_SOC_FLASH1			0x1fc00000	/* MIPS Flash Region 1 */ +#define BCMA_SOC_FLASH1_SZ		0x00400000	/* MIPS Size of Flash Region 1 */ +#define BCMA_SOC_FLASH2			0x1c000000	/* Flash Region 2 (region 1 shadowed here) */ +#define BCMA_SOC_FLASH2_SZ		0x02000000	/* Size of Flash Region 2 */  #endif /* LINUX_BCMA_REGS_H_ */ |