diff options
| author | Michael Buesch <mb@bu3sch.de> | 2009-02-03 13:23:18 -0500 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2009-02-09 15:03:49 -0500 |
| commit | c9703146158c0415a60799570397e488bc982af5 (patch) | |
| tree | 3928988b53a4dc6dba56acbdb53ef6fadaeb4a07 /include/linux/ssb | |
| parent | baf62eecfa75a26682efdfed0d74256992a47e6b (diff) | |
ssb: Add PMU support
This adds support for the SSB PMU.
A PMU is found on Low-Power devices.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/linux/ssb')
| -rw-r--r-- | include/linux/ssb/ssb_driver_chipcommon.h | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/include/linux/ssb/ssb_driver_chipcommon.h b/include/linux/ssb/ssb_driver_chipcommon.h index 7d7e03dcf77c..d3b1d18922f2 100644 --- a/include/linux/ssb/ssb_driver_chipcommon.h +++ b/include/linux/ssb/ssb_driver_chipcommon.h | |||
| @@ -181,6 +181,16 @@ | |||
| 181 | #define SSB_CHIPCO_PROG_WAITCNT 0x0124 | 181 | #define SSB_CHIPCO_PROG_WAITCNT 0x0124 |
| 182 | #define SSB_CHIPCO_FLASH_CFG 0x0128 | 182 | #define SSB_CHIPCO_FLASH_CFG 0x0128 |
| 183 | #define SSB_CHIPCO_FLASH_WAITCNT 0x012C | 183 | #define SSB_CHIPCO_FLASH_WAITCNT 0x012C |
| 184 | #define SSB_CHIPCO_CLKCTLST 0x01E0 /* Clock control and status (rev >= 20) */ | ||
| 185 | #define SSB_CHIPCO_CLKCTLST_FORCEALP 0x00000001 /* Force ALP request */ | ||
| 186 | #define SSB_CHIPCO_CLKCTLST_FORCEHT 0x00000002 /* Force HT request */ | ||
| 187 | #define SSB_CHIPCO_CLKCTLST_FORCEILP 0x00000004 /* Force ILP request */ | ||
| 188 | #define SSB_CHIPCO_CLKCTLST_HAVEALPREQ 0x00000008 /* ALP available request */ | ||
| 189 | #define SSB_CHIPCO_CLKCTLST_HAVEHTREQ 0x00000010 /* HT available request */ | ||
| 190 | #define SSB_CHIPCO_CLKCTLST_HWCROFF 0x00000020 /* Force HW clock request off */ | ||
| 191 | #define SSB_CHIPCO_CLKCTLST_HAVEHT 0x00010000 /* HT available */ | ||
| 192 | #define SSB_CHIPCO_CLKCTLST_HAVEALP 0x00020000 /* APL available */ | ||
| 193 | #define SSB_CHIPCO_HW_WORKAROUND 0x01E4 /* Hardware workaround (rev >= 20) */ | ||
| 184 | #define SSB_CHIPCO_UART0_DATA 0x0300 | 194 | #define SSB_CHIPCO_UART0_DATA 0x0300 |
| 185 | #define SSB_CHIPCO_UART0_IMR 0x0304 | 195 | #define SSB_CHIPCO_UART0_IMR 0x0304 |
| 186 | #define SSB_CHIPCO_UART0_FCR 0x0308 | 196 | #define SSB_CHIPCO_UART0_FCR 0x0308 |
| @@ -197,6 +207,196 @@ | |||
| 197 | #define SSB_CHIPCO_UART1_LSR 0x0414 | 207 | #define SSB_CHIPCO_UART1_LSR 0x0414 |
| 198 | #define SSB_CHIPCO_UART1_MSR 0x0418 | 208 | #define SSB_CHIPCO_UART1_MSR 0x0418 |
| 199 | #define SSB_CHIPCO_UART1_SCRATCH 0x041C | 209 | #define SSB_CHIPCO_UART1_SCRATCH 0x041C |
| 210 | /* PMU registers (rev >= 20) */ | ||
| 211 | #define SSB_CHIPCO_PMU_CTL 0x0600 /* PMU control */ | ||
| 212 | #define SSB_CHIPCO_PMU_CTL_ILP_DIV 0xFFFF0000 /* ILP div mask */ | ||
| 213 | #define SSB_CHIPCO_PMU_CTL_ILP_DIV_SHIFT 16 | ||
| 214 | #define SSB_CHIPCO_PMU_CTL_NOILPONW 0x00000200 /* No ILP on wait */ | ||
| 215 | #define SSB_CHIPCO_PMU_CTL_HTREQEN 0x00000100 /* HT req enable */ | ||
| 216 | #define SSB_CHIPCO_PMU_CTL_ALPREQEN 0x00000080 /* ALP req enable */ | ||
| 217 | #define SSB_CHIPCO_PMU_CTL_XTALFREQ 0x0000007C /* Crystal freq */ | ||
| 218 | #define SSB_CHIPCO_PMU_CTL_XTALFREQ_SHIFT 2 | ||
| 219 | #define SSB_CHIPCO_PMU_CTL_ILPDIVEN 0x00000002 /* ILP div enable */ | ||
| 220 | #define SSB_CHIPCO_PMU_CTL_LPOSEL 0x00000001 /* LPO sel */ | ||
| 221 | #define SSB_CHIPCO_PMU_CAP 0x0604 /* PMU capabilities */ | ||
| 222 | #define SSB_CHIPCO_PMU_CAP_REVISION 0x000000FF /* Revision mask */ | ||
| 223 | #define SSB_CHIPCO_PMU_STAT 0x0608 /* PMU status */ | ||
| 224 | #define SSB_CHIPCO_PMU_STAT_INTPEND 0x00000040 /* Interrupt pending */ | ||
| 225 | #define SSB_CHIPCO_PMU_STAT_SBCLKST 0x00000030 /* Backplane clock status? */ | ||
| 226 | #define SSB_CHIPCO_PMU_STAT_HAVEALP 0x00000008 /* ALP available */ | ||
| 227 | #define SSB_CHIPCO_PMU_STAT_HAVEHT 0x00000004 /* HT available */ | ||
| 228 | #define SSB_CHIPCO_PMU_STAT_RESINIT 0x00000003 /* Res init */ | ||
| 229 | #define SSB_CHIPCO_PMU_RES_STAT 0x060C /* PMU res status */ | ||
| 230 | #define SSB_CHIPCO_PMU_RES_PEND 0x0610 /* PMU res pending */ | ||
| 231 | #define SSB_CHIPCO_PMU_TIMER 0x0614 /* PMU timer */ | ||
| 232 | #define SSB_CHIPCO_PMU_MINRES_MSK 0x0618 /* PMU min res mask */ | ||
| 233 | #define SSB_CHIPCO_PMU_MAXRES_MSK 0x061C /* PMU max res mask */ | ||
| 234 | #define SSB_CHIPCO_PMU_RES_TABSEL 0x0620 /* PMU res table sel */ | ||
| 235 | #define SSB_CHIPCO_PMU_RES_DEPMSK 0x0624 /* PMU res dep mask */ | ||
| 236 | #define SSB_CHIPCO_PMU_RES_UPDNTM 0x0628 /* PMU res updown timer */ | ||
| 237 | #define SSB_CHIPCO_PMU_RES_TIMER 0x062C /* PMU res timer */ | ||
| 238 | #define SSB_CHIPCO_PMU_CLKSTRETCH 0x0630 /* PMU clockstretch */ | ||
| 239 | #define SSB_CHIPCO_PMU_WATCHDOG 0x0634 /* PMU watchdog */ | ||
| 240 | #define SSB_CHIPCO_PMU_RES_REQTS 0x0640 /* PMU res req timer sel */ | ||
| 241 | #define SSB_CHIPCO_PMU_RES_REQT 0x0644 /* PMU res req timer */ | ||
| 242 | #define SSB_CHIPCO_PMU_RES_REQM 0x0648 /* PMU res req mask */ | ||
| 243 | #define SSB_CHIPCO_CHIPCTL_ADDR 0x0650 | ||
| 244 | #define SSB_CHIPCO_CHIPCTL_DATA 0x0654 | ||
| 245 | #define SSB_CHIPCO_REGCTL_ADDR 0x0658 | ||
| 246 | #define SSB_CHIPCO_REGCTL_DATA 0x065C | ||
| 247 | #define SSB_CHIPCO_PLLCTL_ADDR 0x0660 | ||
| 248 | #define SSB_CHIPCO_PLLCTL_DATA 0x0664 | ||
| 249 | |||
| 250 | |||
| 251 | |||
| 252 | /** PMU PLL registers */ | ||
| 253 | |||
| 254 | /* PMU rev 0 PLL registers */ | ||
| 255 | #define SSB_PMU0_PLLCTL0 0 | ||
| 256 | #define SSB_PMU0_PLLCTL0_PDIV_MSK 0x00000001 | ||
| 257 | #define SSB_PMU0_PLLCTL0_PDIV_FREQ 25000 /* kHz */ | ||
| 258 | #define SSB_PMU0_PLLCTL1 1 | ||
| 259 | #define SSB_PMU0_PLLCTL1_WILD_IMSK 0xF0000000 /* Wild int mask (low nibble) */ | ||
| 260 | #define SSB_PMU0_PLLCTL1_WILD_IMSK_SHIFT 28 | ||
| 261 | #define SSB_PMU0_PLLCTL1_WILD_FMSK 0x0FFFFF00 /* Wild frac mask */ | ||
| 262 | #define SSB_PMU0_PLLCTL1_WILD_FMSK_SHIFT 8 | ||
| 263 | #define SSB_PMU0_PLLCTL1_STOPMOD 0x00000040 /* Stop mod */ | ||
| 264 | #define SSB_PMU0_PLLCTL2 2 | ||
| 265 | #define SSB_PMU0_PLLCTL2_WILD_IMSKHI 0x0000000F /* Wild int mask (high nibble) */ | ||
| 266 | #define SSB_PMU0_PLLCTL2_WILD_IMSKHI_SHIFT 0 | ||
| 267 | |||
| 268 | /* PMU rev 1 PLL registers */ | ||
| 269 | #define SSB_PMU1_PLLCTL0 0 | ||
| 270 | #define SSB_PMU1_PLLCTL0_P1DIV 0x00F00000 /* P1 div */ | ||
| 271 | #define SSB_PMU1_PLLCTL0_P1DIV_SHIFT 20 | ||
| 272 | #define SSB_PMU1_PLLCTL0_P2DIV 0x0F000000 /* P2 div */ | ||
| 273 | #define SSB_PMU1_PLLCTL0_P2DIV_SHIFT 24 | ||
| 274 | #define SSB_PMU1_PLLCTL1 1 | ||
| 275 | #define SSB_PMU1_PLLCTL1_M1DIV 0x000000FF /* M1 div */ | ||
| 276 | #define SSB_PMU1_PLLCTL1_M1DIV_SHIFT 0 | ||
| 277 | #define SSB_PMU1_PLLCTL1_M2DIV 0x0000FF00 /* M2 div */ | ||
| 278 | #define SSB_PMU1_PLLCTL1_M2DIV_SHIFT 8 | ||
| 279 | #define SSB_PMU1_PLLCTL1_M3DIV 0x00FF0000 /* M3 div */ | ||
| 280 | #define SSB_PMU1_PLLCTL1_M3DIV_SHIFT 16 | ||
| 281 | #define SSB_PMU1_PLLCTL1_M4DIV 0xFF000000 /* M4 div */ | ||
| 282 | #define SSB_PMU1_PLLCTL1_M4DIV_SHIFT 24 | ||
| 283 | #define SSB_PMU1_PLLCTL2 2 | ||
| 284 | #define SSB_PMU1_PLLCTL2_M5DIV 0x000000FF /* M5 div */ | ||
| 285 | #define SSB_PMU1_PLLCTL2_M5DIV_SHIFT 0 | ||
| 286 | #define SSB_PMU1_PLLCTL2_M6DIV 0x0000FF00 /* M6 div */ | ||
| 287 | #define SSB_PMU1_PLLCTL2_M6DIV_SHIFT 8 | ||
| 288 | #define SSB_PMU1_PLLCTL2_NDIVMODE 0x000E0000 /* NDIV mode */ | ||
| 289 | #define SSB_PMU1_PLLCTL2_NDIVMODE_SHIFT 17 | ||
| 290 | #define SSB_PMU1_PLLCTL2_NDIVINT 0x1FF00000 /* NDIV int */ | ||
| 291 | #define SSB_PMU1_PLLCTL2_NDIVINT_SHIFT 20 | ||
| 292 | #define SSB_PMU1_PLLCTL3 3 | ||
| 293 | #define SSB_PMU1_PLLCTL3_NDIVFRAC 0x00FFFFFF /* NDIV frac */ | ||
| 294 | #define SSB_PMU1_PLLCTL3_NDIVFRAC_SHIFT 0 | ||
| 295 | #define SSB_PMU1_PLLCTL4 4 | ||
| 296 | #define SSB_PMU1_PLLCTL5 5 | ||
| 297 | #define SSB_PMU1_PLLCTL5_CLKDRV 0xFFFFFF00 /* clk drv */ | ||
| 298 | #define SSB_PMU1_PLLCTL5_CLKDRV_SHIFT 8 | ||
| 299 | |||
| 300 | /* BCM4312 PLL resource numbers. */ | ||
| 301 | #define SSB_PMURES_4312_SWITCHER_BURST 0 | ||
| 302 | #define SSB_PMURES_4312_SWITCHER_PWM 1 | ||
| 303 | #define SSB_PMURES_4312_PA_REF_LDO 2 | ||
| 304 | #define SSB_PMURES_4312_CORE_LDO_BURST 3 | ||
| 305 | #define SSB_PMURES_4312_CORE_LDO_PWM 4 | ||
| 306 | #define SSB_PMURES_4312_RADIO_LDO 5 | ||
| 307 | #define SSB_PMURES_4312_ILP_REQUEST 6 | ||
| 308 | #define SSB_PMURES_4312_BG_FILTBYP 7 | ||
| 309 | #define SSB_PMURES_4312_TX_FILTBYP 8 | ||
| 310 | #define SSB_PMURES_4312_RX_FILTBYP 9 | ||
| 311 | #define SSB_PMURES_4312_XTAL_PU 10 | ||
| 312 | #define SSB_PMURES_4312_ALP_AVAIL 11 | ||
| 313 | #define SSB_PMURES_4312_BB_PLL_FILTBYP 12 | ||
| 314 | #define SSB_PMURES_4312_RF_PLL_FILTBYP 13 | ||
| 315 | #define SSB_PMURES_4312_HT_AVAIL 14 | ||
| 316 | |||
| 317 | /* BCM4325 PLL resource numbers. */ | ||
| 318 | #define SSB_PMURES_4325_BUCK_BOOST_BURST 0 | ||
| 319 | #define SSB_PMURES_4325_CBUCK_BURST 1 | ||
| 320 | #define SSB_PMURES_4325_CBUCK_PWM 2 | ||
| 321 | #define SSB_PMURES_4325_CLDO_CBUCK_BURST 3 | ||
| 322 | #define SSB_PMURES_4325_CLDO_CBUCK_PWM 4 | ||
| 323 | #define SSB_PMURES_4325_BUCK_BOOST_PWM 5 | ||
| 324 | #define SSB_PMURES_4325_ILP_REQUEST 6 | ||
| 325 | #define SSB_PMURES_4325_ABUCK_BURST 7 | ||
| 326 | #define SSB_PMURES_4325_ABUCK_PWM 8 | ||
| 327 | #define SSB_PMURES_4325_LNLDO1_PU 9 | ||
| 328 | #define SSB_PMURES_4325_LNLDO2_PU 10 | ||
| 329 | #define SSB_PMURES_4325_LNLDO3_PU 11 | ||
| 330 | #define SSB_PMURES_4325_LNLDO4_PU 12 | ||
| 331 | #define SSB_PMURES_4325_XTAL_PU 13 | ||
| 332 | #define SSB_PMURES_4325_ALP_AVAIL 14 | ||
| 333 | #define SSB_PMURES_4325_RX_PWRSW_PU 15 | ||
| 334 | #define SSB_PMURES_4325_TX_PWRSW_PU 16 | ||
| 335 | #define SSB_PMURES_4325_RFPLL_PWRSW_PU 17 | ||
| 336 | #define SSB_PMURES_4325_LOGEN_PWRSW_PU 18 | ||
| 337 | #define SSB_PMURES_4325_AFE_PWRSW_PU 19 | ||
| 338 | #define SSB_PMURES_4325_BBPLL_PWRSW_PU 20 | ||
| 339 | #define SSB_PMURES_4325_HT_AVAIL 21 | ||
| 340 | |||
| 341 | /* BCM4328 PLL resource numbers. */ | ||
| 342 | #define SSB_PMURES_4328_EXT_SWITCHER_PWM 0 | ||
| 343 | #define SSB_PMURES_4328_BB_SWITCHER_PWM 1 | ||
| 344 | #define SSB_PMURES_4328_BB_SWITCHER_BURST 2 | ||
| 345 | #define SSB_PMURES_4328_BB_EXT_SWITCHER_BURST 3 | ||
| 346 | #define SSB_PMURES_4328_ILP_REQUEST 4 | ||
| 347 | #define SSB_PMURES_4328_RADIO_SWITCHER_PWM 5 | ||
| 348 | #define SSB_PMURES_4328_RADIO_SWITCHER_BURST 6 | ||
| 349 | #define SSB_PMURES_4328_ROM_SWITCH 7 | ||
| 350 | #define SSB_PMURES_4328_PA_REF_LDO 8 | ||
| 351 | #define SSB_PMURES_4328_RADIO_LDO 9 | ||
| 352 | #define SSB_PMURES_4328_AFE_LDO 10 | ||
| 353 | #define SSB_PMURES_4328_PLL_LDO 11 | ||
| 354 | #define SSB_PMURES_4328_BG_FILTBYP 12 | ||
| 355 | #define SSB_PMURES_4328_TX_FILTBYP 13 | ||
| 356 | #define SSB_PMURES_4328_RX_FILTBYP 14 | ||
| 357 | #define SSB_PMURES_4328_XTAL_PU 15 | ||
| 358 | #define SSB_PMURES_4328_XTAL_EN 16 | ||
| 359 | #define SSB_PMURES_4328_BB_PLL_FILTBYP 17 | ||
| 360 | #define SSB_PMURES_4328_RF_PLL_FILTBYP 18 | ||
| 361 | #define SSB_PMURES_4328_BB_PLL_PU 19 | ||
| 362 | |||
| 363 | /* BCM5354 PLL resource numbers. */ | ||
| 364 | #define SSB_PMURES_5354_EXT_SWITCHER_PWM 0 | ||
| 365 | #define SSB_PMURES_5354_BB_SWITCHER_PWM 1 | ||
| 366 | #define SSB_PMURES_5354_BB_SWITCHER_BURST 2 | ||
| 367 | #define SSB_PMURES_5354_BB_EXT_SWITCHER_BURST 3 | ||
| 368 | #define SSB_PMURES_5354_ILP_REQUEST 4 | ||
| 369 | #define SSB_PMURES_5354_RADIO_SWITCHER_PWM 5 | ||
| 370 | #define SSB_PMURES_5354_RADIO_SWITCHER_BURST 6 | ||
| 371 | #define SSB_PMURES_5354_ROM_SWITCH 7 | ||
| 372 | #define SSB_PMURES_5354_PA_REF_LDO 8 | ||
| 373 | #define SSB_PMURES_5354_RADIO_LDO 9 | ||
| 374 | #define SSB_PMURES_5354_AFE_LDO 10 | ||
| 375 | #define SSB_PMURES_5354_PLL_LDO 11 | ||
| 376 | #define SSB_PMURES_5354_BG_FILTBYP 12 | ||
| 377 | #define SSB_PMURES_5354_TX_FILTBYP 13 | ||
| 378 | #define SSB_PMURES_5354_RX_FILTBYP 14 | ||
| 379 | #define SSB_PMURES_5354_XTAL_PU 15 | ||
| 380 | #define SSB_PMURES_5354_XTAL_EN 16 | ||
| 381 | #define SSB_PMURES_5354_BB_PLL_FILTBYP 17 | ||
| 382 | #define SSB_PMURES_5354_RF_PLL_FILTBYP 18 | ||
| 383 | #define SSB_PMURES_5354_BB_PLL_PU 19 | ||
| 384 | |||
| 385 | |||
| 386 | |||
| 387 | /** Chip specific Chip-Status register contents. */ | ||
| 388 | #define SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL 0x00000003 | ||
| 389 | #define SSB_CHIPCO_CHST_4325_DEFCIS_SEL 0 /* OTP is powered up, use def. CIS, no SPROM */ | ||
| 390 | #define SSB_CHIPCO_CHST_4325_SPROM_SEL 1 /* OTP is powered up, SPROM is present */ | ||
| 391 | #define SSB_CHIPCO_CHST_4325_OTP_SEL 2 /* OTP is powered up, no SPROM */ | ||
| 392 | #define SSB_CHIPCO_CHST_4325_OTP_PWRDN 3 /* OTP is powered down, SPROM is present */ | ||
| 393 | #define SSB_CHIPCO_CHST_4325_SDIO_USB_MODE 0x00000004 | ||
| 394 | #define SSB_CHIPCO_CHST_4325_SDIO_USB_MODE_SHIFT 2 | ||
| 395 | #define SSB_CHIPCO_CHST_4325_RCAL_VALID 0x00000008 | ||
| 396 | #define SSB_CHIPCO_CHST_4325_RCAL_VALID_SHIFT 3 | ||
| 397 | #define SSB_CHIPCO_CHST_4325_RCAL_VALUE 0x000001F0 | ||
| 398 | #define SSB_CHIPCO_CHST_4325_RCAL_VALUE_SHIFT 4 | ||
| 399 | #define SSB_CHIPCO_CHST_4325_PMUTOP_2B 0x00000200 /* 1 for 2b, 0 for to 2a */ | ||
| 200 | 400 | ||
| 201 | 401 | ||
| 202 | 402 | ||
| @@ -353,11 +553,20 @@ | |||
| 353 | struct ssb_device; | 553 | struct ssb_device; |
| 354 | struct ssb_serial_port; | 554 | struct ssb_serial_port; |
| 355 | 555 | ||
| 556 | /* Data for the PMU, if available. | ||
| 557 | * Check availability with ((struct ssb_chipcommon)->capabilities & SSB_CHIPCO_CAP_PMU) | ||
| 558 | */ | ||
| 559 | struct ssb_chipcommon_pmu { | ||
| 560 | u8 rev; /* PMU revision */ | ||
| 561 | u32 crystalfreq; /* The active crystal frequency (in kHz) */ | ||
| 562 | }; | ||
| 563 | |||
| 356 | struct ssb_chipcommon { | 564 | struct ssb_chipcommon { |
| 357 | struct ssb_device *dev; | 565 | struct ssb_device *dev; |
| 358 | u32 capabilities; | 566 | u32 capabilities; |
| 359 | /* Fast Powerup Delay constant */ | 567 | /* Fast Powerup Delay constant */ |
| 360 | u16 fast_pwrup_delay; | 568 | u16 fast_pwrup_delay; |
| 569 | struct ssb_chipcommon_pmu pmu; | ||
| 361 | }; | 570 | }; |
| 362 | 571 | ||
| 363 | static inline bool ssb_chipco_available(struct ssb_chipcommon *cc) | 572 | static inline bool ssb_chipco_available(struct ssb_chipcommon *cc) |
| @@ -365,6 +574,17 @@ static inline bool ssb_chipco_available(struct ssb_chipcommon *cc) | |||
| 365 | return (cc->dev != NULL); | 574 | return (cc->dev != NULL); |
| 366 | } | 575 | } |
| 367 | 576 | ||
| 577 | /* Register access */ | ||
| 578 | #define chipco_read32(cc, offset) ssb_read32((cc)->dev, offset) | ||
| 579 | #define chipco_write32(cc, offset, val) ssb_write32((cc)->dev, offset, val) | ||
| 580 | |||
| 581 | #define chipco_mask32(cc, offset, mask) \ | ||
| 582 | chipco_write32(cc, offset, chipco_read32(cc, offset) & (mask)) | ||
| 583 | #define chipco_set32(cc, offset, set) \ | ||
| 584 | chipco_write32(cc, offset, chipco_read32(cc, offset) | (set)) | ||
| 585 | #define chipco_maskset32(cc, offset, mask, set) \ | ||
| 586 | chipco_write32(cc, offset, (chipco_read32(cc, offset) & (mask)) | (set)) | ||
| 587 | |||
| 368 | extern void ssb_chipcommon_init(struct ssb_chipcommon *cc); | 588 | extern void ssb_chipcommon_init(struct ssb_chipcommon *cc); |
| 369 | 589 | ||
| 370 | extern void ssb_chipco_suspend(struct ssb_chipcommon *cc); | 590 | extern void ssb_chipco_suspend(struct ssb_chipcommon *cc); |
| @@ -406,4 +626,8 @@ extern int ssb_chipco_serial_init(struct ssb_chipcommon *cc, | |||
| 406 | struct ssb_serial_port *ports); | 626 | struct ssb_serial_port *ports); |
| 407 | #endif /* CONFIG_SSB_SERIAL */ | 627 | #endif /* CONFIG_SSB_SERIAL */ |
| 408 | 628 | ||
| 629 | /* PMU support */ | ||
| 630 | extern void ssb_pmu_init(struct ssb_chipcommon *cc); | ||
| 631 | |||
| 632 | |||
| 409 | #endif /* LINUX_SSB_CHIPCO_H_ */ | 633 | #endif /* LINUX_SSB_CHIPCO_H_ */ |
