diff options
Diffstat (limited to 'include/linux/ssb')
| -rw-r--r-- | include/linux/ssb/ssb.h | 7 | ||||
| -rw-r--r-- | include/linux/ssb/ssb_driver_chipcommon.h | 11 | ||||
| -rw-r--r-- | include/linux/ssb/ssb_regs.h | 2 | 
3 files changed, 15 insertions, 5 deletions
| diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h index 9659eff52ca2..252e44821787 100644 --- a/include/linux/ssb/ssb.h +++ b/include/linux/ssb/ssb.h @@ -308,7 +308,7 @@ struct ssb_bus {  	/* ID information about the Chip. */  	u16 chip_id; -	u16 chip_rev; +	u8 chip_rev;  	u16 sprom_offset;  	u16 sprom_size;		/* number of words in sprom */  	u8 chip_package; @@ -404,7 +404,9 @@ extern bool ssb_is_sprom_available(struct ssb_bus *bus);  /* Set a fallback SPROM.   * See kdoc at the function definition for complete documentation. */ -extern int ssb_arch_set_fallback_sprom(const struct ssb_sprom *sprom); +extern int ssb_arch_register_fallback_sprom( +		int (*sprom_callback)(struct ssb_bus *bus, +		struct ssb_sprom *out));  /* Suspend a SSB bus.   * Call this from the parent bus suspend routine. */ @@ -518,6 +520,7 @@ extern int ssb_bus_may_powerdown(struct ssb_bus *bus);   * Otherwise static always-on powercontrol will be used. */  extern int ssb_bus_powerup(struct ssb_bus *bus, bool dynamic_pctl); +extern void ssb_commit_settings(struct ssb_bus *bus);  /* Various helper functions */  extern u32 ssb_admatch_base(u32 adm); diff --git a/include/linux/ssb/ssb_driver_chipcommon.h b/include/linux/ssb/ssb_driver_chipcommon.h index 2cdf249b4e5f..a08d693d8324 100644 --- a/include/linux/ssb/ssb_driver_chipcommon.h +++ b/include/linux/ssb/ssb_driver_chipcommon.h @@ -123,6 +123,8 @@  #define SSB_CHIPCO_FLASHDATA		0x0048  #define SSB_CHIPCO_BCAST_ADDR		0x0050  #define SSB_CHIPCO_BCAST_DATA		0x0054 +#define SSB_CHIPCO_GPIOPULLUP		0x0058		/* Rev >= 20 only */ +#define SSB_CHIPCO_GPIOPULLDOWN		0x005C		/* Rev >= 20 only */  #define SSB_CHIPCO_GPIOIN		0x0060  #define SSB_CHIPCO_GPIOOUT		0x0064  #define SSB_CHIPCO_GPIOOUTEN		0x0068 @@ -131,6 +133,9 @@  #define SSB_CHIPCO_GPIOIRQ		0x0074  #define SSB_CHIPCO_WATCHDOG		0x0080  #define SSB_CHIPCO_GPIOTIMER		0x0088		/* LED powersave (corerev >= 16) */ +#define  SSB_CHIPCO_GPIOTIMER_OFFTIME	0x0000FFFF +#define  SSB_CHIPCO_GPIOTIMER_OFFTIME_SHIFT	0 +#define  SSB_CHIPCO_GPIOTIMER_ONTIME	0xFFFF0000  #define  SSB_CHIPCO_GPIOTIMER_ONTIME_SHIFT	16  #define SSB_CHIPCO_GPIOTOUTM		0x008C		/* LED powersave (corerev >= 16) */  #define SSB_CHIPCO_CLOCK_N		0x0090 @@ -189,8 +194,10 @@  #define  SSB_CHIPCO_CLKCTLST_HAVEALPREQ	0x00000008 /* ALP available request */  #define  SSB_CHIPCO_CLKCTLST_HAVEHTREQ	0x00000010 /* HT available request */  #define  SSB_CHIPCO_CLKCTLST_HWCROFF	0x00000020 /* Force HW clock request off */ -#define  SSB_CHIPCO_CLKCTLST_HAVEHT	0x00010000 /* HT available */ -#define  SSB_CHIPCO_CLKCTLST_HAVEALP	0x00020000 /* APL available */ +#define  SSB_CHIPCO_CLKCTLST_HAVEALP	0x00010000 /* ALP available */ +#define  SSB_CHIPCO_CLKCTLST_HAVEHT	0x00020000 /* HT available */ +#define  SSB_CHIPCO_CLKCTLST_4328A0_HAVEHT	0x00010000 /* 4328a0 has reversed bits */ +#define  SSB_CHIPCO_CLKCTLST_4328A0_HAVEALP	0x00020000 /* 4328a0 has reversed bits */  #define SSB_CHIPCO_HW_WORKAROUND	0x01E4 /* Hardware workaround (rev >= 20) */  #define SSB_CHIPCO_UART0_DATA		0x0300  #define SSB_CHIPCO_UART0_IMR		0x0304 diff --git a/include/linux/ssb/ssb_regs.h b/include/linux/ssb/ssb_regs.h index 402955ae48ce..efbf459d571c 100644 --- a/include/linux/ssb/ssb_regs.h +++ b/include/linux/ssb/ssb_regs.h @@ -97,7 +97,7 @@  #define  SSB_INTVEC_ENET1	0x00000040 /* Enable interrupts for enet 1 */  #define SSB_TMSLOW		0x0F98     /* SB Target State Low */  #define  SSB_TMSLOW_RESET	0x00000001 /* Reset */ -#define  SSB_TMSLOW_REJECT_22	0x00000002 /* Reject (Backplane rev 2.2) */ +#define  SSB_TMSLOW_REJECT	0x00000002 /* Reject (Standard Backplane) */  #define  SSB_TMSLOW_REJECT_23	0x00000004 /* Reject (Backplane rev 2.3) */  #define  SSB_TMSLOW_CLOCK	0x00010000 /* Clock Enable */  #define  SSB_TMSLOW_FGC		0x00020000 /* Force Gated Clocks On */ |