diff options
| author | Ingo Molnar <mingo@kernel.org> | 2013-01-24 06:47:48 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2013-01-24 06:47:48 -0500 |
| commit | befddb21c845f8fb49e637997891ef97c6a869dc (patch) | |
| tree | 0e7629123184f2dd50291ad6d477b894175f0f26 /include/linux/bcma | |
| parent | e716efde75267eab919cdb2bef5b2cb77f305326 (diff) | |
| parent | 7d1f9aeff1ee4a20b1aeb377dd0f579fe9647619 (diff) | |
Merge tag 'v3.8-rc4' into irq/core
Merge Linux 3.8-rc4 before pulling in new commits - we were on an old v3.7 base.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/bcma')
| -rw-r--r-- | include/linux/bcma/bcma.h | 8 | ||||
| -rw-r--r-- | include/linux/bcma/bcma_driver_chipcommon.h | 21 | ||||
| -rw-r--r-- | include/linux/bcma/bcma_driver_gmac_cmn.h | 2 | ||||
| -rw-r--r-- | include/linux/bcma/bcma_driver_mips.h | 3 | ||||
| -rw-r--r-- | include/linux/bcma/bcma_driver_pci.h | 2 | ||||
| -rw-r--r-- | include/linux/bcma/bcma_regs.h | 5 |
6 files changed, 35 insertions, 6 deletions
diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h index 4180eb78d575..e0ce311011c0 100644 --- a/include/linux/bcma/bcma.h +++ b/include/linux/bcma/bcma.h | |||
| @@ -157,6 +157,7 @@ struct bcma_host_ops { | |||
| 157 | 157 | ||
| 158 | /* Chip IDs of SoCs */ | 158 | /* Chip IDs of SoCs */ |
| 159 | #define BCMA_CHIP_ID_BCM4706 0x5300 | 159 | #define BCMA_CHIP_ID_BCM4706 0x5300 |
| 160 | #define BCMA_PKG_ID_BCM4706L 1 | ||
| 160 | #define BCMA_CHIP_ID_BCM4716 0x4716 | 161 | #define BCMA_CHIP_ID_BCM4716 0x4716 |
| 161 | #define BCMA_PKG_ID_BCM4716 8 | 162 | #define BCMA_PKG_ID_BCM4716 8 |
| 162 | #define BCMA_PKG_ID_BCM4717 9 | 163 | #define BCMA_PKG_ID_BCM4717 9 |
| @@ -166,7 +167,11 @@ struct bcma_host_ops { | |||
| 166 | #define BCMA_CHIP_ID_BCM4749 0x4749 | 167 | #define BCMA_CHIP_ID_BCM4749 0x4749 |
| 167 | #define BCMA_CHIP_ID_BCM5356 0x5356 | 168 | #define BCMA_CHIP_ID_BCM5356 0x5356 |
| 168 | #define BCMA_CHIP_ID_BCM5357 0x5357 | 169 | #define BCMA_CHIP_ID_BCM5357 0x5357 |
| 170 | #define BCMA_PKG_ID_BCM5358 9 | ||
| 171 | #define BCMA_PKG_ID_BCM47186 10 | ||
| 172 | #define BCMA_PKG_ID_BCM5357 11 | ||
| 169 | #define BCMA_CHIP_ID_BCM53572 53572 | 173 | #define BCMA_CHIP_ID_BCM53572 53572 |
| 174 | #define BCMA_PKG_ID_BCM47188 9 | ||
| 170 | 175 | ||
| 171 | struct bcma_device { | 176 | struct bcma_device { |
| 172 | struct bcma_bus *bus; | 177 | struct bcma_bus *bus; |
| @@ -251,7 +256,7 @@ struct bcma_bus { | |||
| 251 | u8 num; | 256 | u8 num; |
| 252 | 257 | ||
| 253 | struct bcma_drv_cc drv_cc; | 258 | struct bcma_drv_cc drv_cc; |
| 254 | struct bcma_drv_pci drv_pci; | 259 | struct bcma_drv_pci drv_pci[2]; |
| 255 | struct bcma_drv_mips drv_mips; | 260 | struct bcma_drv_mips drv_mips; |
| 256 | struct bcma_drv_gmac_cmn drv_gmac_cmn; | 261 | struct bcma_drv_gmac_cmn drv_gmac_cmn; |
| 257 | 262 | ||
| @@ -345,6 +350,7 @@ extern void bcma_core_set_clockmode(struct bcma_device *core, | |||
| 345 | enum bcma_clkmode clkmode); | 350 | enum bcma_clkmode clkmode); |
| 346 | extern void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status, | 351 | extern void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status, |
| 347 | bool on); | 352 | bool on); |
| 353 | extern u32 bcma_chipco_pll_read(struct bcma_drv_cc *cc, u32 offset); | ||
| 348 | #define BCMA_DMA_TRANSLATION_MASK 0xC0000000 | 354 | #define BCMA_DMA_TRANSLATION_MASK 0xC0000000 |
| 349 | #define BCMA_DMA_TRANSLATION_NONE 0x00000000 | 355 | #define BCMA_DMA_TRANSLATION_NONE 0x00000000 |
| 350 | #define BCMA_DMA_TRANSLATION_DMA32_CMT 0x40000000 /* Client Mode Translation for 32-bit DMA */ | 356 | #define BCMA_DMA_TRANSLATION_DMA32_CMT 0x40000000 /* Client Mode Translation for 32-bit DMA */ |
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 @@ | |||
| 1 | #ifndef LINUX_BCMA_DRIVER_CC_H_ | 1 | #ifndef LINUX_BCMA_DRIVER_CC_H_ |
| 2 | #define LINUX_BCMA_DRIVER_CC_H_ | 2 | #define LINUX_BCMA_DRIVER_CC_H_ |
| 3 | 3 | ||
| 4 | #include <linux/platform_device.h> | ||
| 5 | #include <linux/gpio.h> | ||
| 6 | |||
| 4 | /** ChipCommon core registers. **/ | 7 | /** ChipCommon core registers. **/ |
| 5 | #define BCMA_CC_ID 0x0000 | 8 | #define BCMA_CC_ID 0x0000 |
| 6 | #define BCMA_CC_ID_ID 0x0000FFFF | 9 | #define BCMA_CC_ID_ID 0x0000FFFF |
| @@ -510,6 +513,7 @@ struct bcma_chipcommon_pmu { | |||
| 510 | 513 | ||
| 511 | #ifdef CONFIG_BCMA_DRIVER_MIPS | 514 | #ifdef CONFIG_BCMA_DRIVER_MIPS |
| 512 | struct bcma_pflash { | 515 | struct bcma_pflash { |
| 516 | bool present; | ||
| 513 | u8 buswidth; | 517 | u8 buswidth; |
| 514 | u32 window; | 518 | u32 window; |
| 515 | u32 window_size; | 519 | u32 window_size; |
| @@ -532,6 +536,7 @@ struct mtd_info; | |||
| 532 | 536 | ||
| 533 | struct bcma_nflash { | 537 | struct bcma_nflash { |
| 534 | bool present; | 538 | bool present; |
| 539 | bool boot; /* This is the flash the SoC boots from */ | ||
| 535 | 540 | ||
| 536 | struct mtd_info *mtd; | 541 | struct mtd_info *mtd; |
| 537 | }; | 542 | }; |
| @@ -552,6 +557,7 @@ struct bcma_drv_cc { | |||
| 552 | u32 capabilities; | 557 | u32 capabilities; |
| 553 | u32 capabilities_ext; | 558 | u32 capabilities_ext; |
| 554 | u8 setup_done:1; | 559 | u8 setup_done:1; |
| 560 | u8 early_setup_done:1; | ||
| 555 | /* Fast Powerup Delay constant */ | 561 | /* Fast Powerup Delay constant */ |
| 556 | u16 fast_pwrup_delay; | 562 | u16 fast_pwrup_delay; |
| 557 | struct bcma_chipcommon_pmu pmu; | 563 | struct bcma_chipcommon_pmu pmu; |
| @@ -567,6 +573,14 @@ struct bcma_drv_cc { | |||
| 567 | int nr_serial_ports; | 573 | int nr_serial_ports; |
| 568 | struct bcma_serial_port serial_ports[4]; | 574 | struct bcma_serial_port serial_ports[4]; |
| 569 | #endif /* CONFIG_BCMA_DRIVER_MIPS */ | 575 | #endif /* CONFIG_BCMA_DRIVER_MIPS */ |
| 576 | u32 ticks_per_ms; | ||
| 577 | struct platform_device *watchdog; | ||
| 578 | |||
| 579 | /* Lock for GPIO register access. */ | ||
| 580 | spinlock_t gpio_lock; | ||
| 581 | #ifdef CONFIG_BCMA_DRIVER_GPIO | ||
| 582 | struct gpio_chip gpio; | ||
| 583 | #endif | ||
| 570 | }; | 584 | }; |
| 571 | 585 | ||
| 572 | /* Register access */ | 586 | /* Register access */ |
| @@ -583,14 +597,14 @@ struct bcma_drv_cc { | |||
| 583 | bcma_cc_write32(cc, offset, (bcma_cc_read32(cc, offset) & (mask)) | (set)) | 597 | bcma_cc_write32(cc, offset, (bcma_cc_read32(cc, offset) & (mask)) | (set)) |
| 584 | 598 | ||
| 585 | extern void bcma_core_chipcommon_init(struct bcma_drv_cc *cc); | 599 | extern void bcma_core_chipcommon_init(struct bcma_drv_cc *cc); |
| 600 | extern void bcma_core_chipcommon_early_init(struct bcma_drv_cc *cc); | ||
| 586 | 601 | ||
| 587 | extern void bcma_chipco_suspend(struct bcma_drv_cc *cc); | 602 | extern void bcma_chipco_suspend(struct bcma_drv_cc *cc); |
| 588 | extern void bcma_chipco_resume(struct bcma_drv_cc *cc); | 603 | extern void bcma_chipco_resume(struct bcma_drv_cc *cc); |
| 589 | 604 | ||
| 590 | void bcma_chipco_bcm4331_ext_pa_lines_ctl(struct bcma_drv_cc *cc, bool enable); | 605 | void bcma_chipco_bcm4331_ext_pa_lines_ctl(struct bcma_drv_cc *cc, bool enable); |
| 591 | 606 | ||
| 592 | extern void bcma_chipco_watchdog_timer_set(struct bcma_drv_cc *cc, | 607 | extern u32 bcma_chipco_watchdog_timer_set(struct bcma_drv_cc *cc, u32 ticks); |
| 593 | u32 ticks); | ||
| 594 | 608 | ||
| 595 | void bcma_chipco_irq_mask(struct bcma_drv_cc *cc, u32 mask, u32 value); | 609 | void bcma_chipco_irq_mask(struct bcma_drv_cc *cc, u32 mask, u32 value); |
| 596 | 610 | ||
| @@ -603,9 +617,12 @@ u32 bcma_chipco_gpio_outen(struct bcma_drv_cc *cc, u32 mask, u32 value); | |||
| 603 | u32 bcma_chipco_gpio_control(struct bcma_drv_cc *cc, u32 mask, u32 value); | 617 | u32 bcma_chipco_gpio_control(struct bcma_drv_cc *cc, u32 mask, u32 value); |
| 604 | u32 bcma_chipco_gpio_intmask(struct bcma_drv_cc *cc, u32 mask, u32 value); | 618 | u32 bcma_chipco_gpio_intmask(struct bcma_drv_cc *cc, u32 mask, u32 value); |
| 605 | u32 bcma_chipco_gpio_polarity(struct bcma_drv_cc *cc, u32 mask, u32 value); | 619 | u32 bcma_chipco_gpio_polarity(struct bcma_drv_cc *cc, u32 mask, u32 value); |
| 620 | u32 bcma_chipco_gpio_pullup(struct bcma_drv_cc *cc, u32 mask, u32 value); | ||
| 621 | u32 bcma_chipco_gpio_pulldown(struct bcma_drv_cc *cc, u32 mask, u32 value); | ||
| 606 | 622 | ||
| 607 | /* PMU support */ | 623 | /* PMU support */ |
| 608 | extern void bcma_pmu_init(struct bcma_drv_cc *cc); | 624 | extern void bcma_pmu_init(struct bcma_drv_cc *cc); |
| 625 | extern void bcma_pmu_early_init(struct bcma_drv_cc *cc); | ||
| 609 | 626 | ||
| 610 | extern void bcma_chipco_pll_write(struct bcma_drv_cc *cc, u32 offset, | 627 | extern void bcma_chipco_pll_write(struct bcma_drv_cc *cc, u32 offset, |
| 611 | u32 value); | 628 | u32 value); |
diff --git a/include/linux/bcma/bcma_driver_gmac_cmn.h b/include/linux/bcma/bcma_driver_gmac_cmn.h index def894b83b0d..4dd1f33e36a2 100644 --- a/include/linux/bcma/bcma_driver_gmac_cmn.h +++ b/include/linux/bcma/bcma_driver_gmac_cmn.h | |||
| @@ -92,7 +92,7 @@ struct bcma_drv_gmac_cmn { | |||
| 92 | #define gmac_cmn_write32(gc, offset, val) bcma_write32((gc)->core, offset, val) | 92 | #define gmac_cmn_write32(gc, offset, val) bcma_write32((gc)->core, offset, val) |
| 93 | 93 | ||
| 94 | #ifdef CONFIG_BCMA_DRIVER_GMAC_CMN | 94 | #ifdef CONFIG_BCMA_DRIVER_GMAC_CMN |
| 95 | extern void __devinit bcma_core_gmac_cmn_init(struct bcma_drv_gmac_cmn *gc); | 95 | extern void bcma_core_gmac_cmn_init(struct bcma_drv_gmac_cmn *gc); |
| 96 | #else | 96 | #else |
| 97 | static inline void bcma_core_gmac_cmn_init(struct bcma_drv_gmac_cmn *gc) { } | 97 | static inline void bcma_core_gmac_cmn_init(struct bcma_drv_gmac_cmn *gc) { } |
| 98 | #endif | 98 | #endif |
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; | |||
| 35 | struct bcma_drv_mips { | 35 | struct bcma_drv_mips { |
| 36 | struct bcma_device *core; | 36 | struct bcma_device *core; |
| 37 | u8 setup_done:1; | 37 | u8 setup_done:1; |
| 38 | u8 early_setup_done:1; | ||
| 38 | unsigned int assigned_irqs; | 39 | unsigned int assigned_irqs; |
| 39 | }; | 40 | }; |
| 40 | 41 | ||
| 41 | #ifdef CONFIG_BCMA_DRIVER_MIPS | 42 | #ifdef CONFIG_BCMA_DRIVER_MIPS |
| 42 | extern void bcma_core_mips_init(struct bcma_drv_mips *mcore); | 43 | extern void bcma_core_mips_init(struct bcma_drv_mips *mcore); |
| 44 | extern void bcma_core_mips_early_init(struct bcma_drv_mips *mcore); | ||
| 43 | #else | 45 | #else |
| 44 | static inline void bcma_core_mips_init(struct bcma_drv_mips *mcore) { } | 46 | static inline void bcma_core_mips_init(struct bcma_drv_mips *mcore) { } |
| 47 | static inline void bcma_core_mips_early_init(struct bcma_drv_mips *mcore) { } | ||
| 45 | #endif | 48 | #endif |
| 46 | 49 | ||
| 47 | extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore); | 50 | extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore); |
diff --git a/include/linux/bcma/bcma_driver_pci.h b/include/linux/bcma/bcma_driver_pci.h index 41da581e1612..c48d98d27b77 100644 --- a/include/linux/bcma/bcma_driver_pci.h +++ b/include/linux/bcma/bcma_driver_pci.h | |||
| @@ -214,7 +214,7 @@ struct bcma_drv_pci { | |||
| 214 | #define pcicore_write16(pc, offset, val) bcma_write16((pc)->core, offset, val) | 214 | #define pcicore_write16(pc, offset, val) bcma_write16((pc)->core, offset, val) |
| 215 | #define pcicore_write32(pc, offset, val) bcma_write32((pc)->core, offset, val) | 215 | #define pcicore_write32(pc, offset, val) bcma_write32((pc)->core, offset, val) |
| 216 | 216 | ||
| 217 | extern void __devinit bcma_core_pci_init(struct bcma_drv_pci *pc); | 217 | extern void bcma_core_pci_init(struct bcma_drv_pci *pc); |
| 218 | extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, | 218 | extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, |
| 219 | struct bcma_device *core, bool enable); | 219 | struct bcma_device *core, bool enable); |
| 220 | extern void bcma_core_pci_extend_L1timer(struct bcma_drv_pci *pc, bool extend); | 220 | extern void bcma_core_pci_extend_L1timer(struct bcma_drv_pci *pc, bool extend); |
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 @@ | |||
| 85 | * (2 ZettaBytes), high 32 bits | 85 | * (2 ZettaBytes), high 32 bits |
| 86 | */ | 86 | */ |
| 87 | 87 | ||
| 88 | #define BCMA_SFLASH 0x1c000000 | 88 | #define BCMA_SOC_FLASH1 0x1fc00000 /* MIPS Flash Region 1 */ |
| 89 | #define BCMA_SOC_FLASH1_SZ 0x00400000 /* MIPS Size of Flash Region 1 */ | ||
| 90 | #define BCMA_SOC_FLASH2 0x1c000000 /* Flash Region 2 (region 1 shadowed here) */ | ||
| 91 | #define BCMA_SOC_FLASH2_SZ 0x02000000 /* Size of Flash Region 2 */ | ||
| 89 | 92 | ||
| 90 | #endif /* LINUX_BCMA_REGS_H_ */ | 93 | #endif /* LINUX_BCMA_REGS_H_ */ |
