ssb_driver_chipcommon.h
来自「linux 内核源代码」· C头文件 代码 · 共 397 行 · 第 1/2 页
H
397 行
/** Clockcontrol masks and values **//* SSB_CHIPCO_CLOCK_N */#define SSB_CHIPCO_CLK_N1 0x0000003F /* n1 control */#define SSB_CHIPCO_CLK_N2 0x00003F00 /* n2 control */#define SSB_CHIPCO_CLK_N2_SHIFT 8#define SSB_CHIPCO_CLK_PLLC 0x000F0000 /* pll control */#define SSB_CHIPCO_CLK_PLLC_SHIFT 16/* SSB_CHIPCO_CLOCK_SB/PCI/UART */#define SSB_CHIPCO_CLK_M1 0x0000003F /* m1 control */#define SSB_CHIPCO_CLK_M2 0x00003F00 /* m2 control */#define SSB_CHIPCO_CLK_M2_SHIFT 8#define SSB_CHIPCO_CLK_M3 0x003F0000 /* m3 control */#define SSB_CHIPCO_CLK_M3_SHIFT 16#define SSB_CHIPCO_CLK_MC 0x1F000000 /* mux control */#define SSB_CHIPCO_CLK_MC_SHIFT 24/* N3M Clock control magic field values */#define SSB_CHIPCO_CLK_F6_2 0x02 /* A factor of 2 in */#define SSB_CHIPCO_CLK_F6_3 0x03 /* 6-bit fields like */#define SSB_CHIPCO_CLK_F6_4 0x05 /* N1, M1 or M3 */#define SSB_CHIPCO_CLK_F6_5 0x09#define SSB_CHIPCO_CLK_F6_6 0x11#define SSB_CHIPCO_CLK_F6_7 0x21#define SSB_CHIPCO_CLK_F5_BIAS 5 /* 5-bit fields get this added */#define SSB_CHIPCO_CLK_MC_BYPASS 0x08#define SSB_CHIPCO_CLK_MC_M1 0x04#define SSB_CHIPCO_CLK_MC_M1M2 0x02#define SSB_CHIPCO_CLK_MC_M1M2M3 0x01#define SSB_CHIPCO_CLK_MC_M1M3 0x11/* Type 2 Clock control magic field values */#define SSB_CHIPCO_CLK_T2_BIAS 2 /* n1, n2, m1 & m3 bias */#define SSB_CHIPCO_CLK_T2M2_BIAS 3 /* m2 bias */#define SSB_CHIPCO_CLK_T2MC_M1BYP 1#define SSB_CHIPCO_CLK_T2MC_M2BYP 2#define SSB_CHIPCO_CLK_T2MC_M3BYP 4/* Type 6 Clock control magic field values */#define SSB_CHIPCO_CLK_T6_MMASK 1 /* bits of interest in m */#define SSB_CHIPCO_CLK_T6_M0 120000000 /* sb clock for m = 0 */#define SSB_CHIPCO_CLK_T6_M1 100000000 /* sb clock for m = 1 */#define SSB_CHIPCO_CLK_SB2MIPS_T6(sb) (2 * (sb))/* Common clock base */#define SSB_CHIPCO_CLK_BASE1 24000000 /* Half the clock freq */#define SSB_CHIPCO_CLK_BASE2 12500000 /* Alternate crystal on some PLL's *//* Clock control values for 200Mhz in 5350 */#define SSB_CHIPCO_CLK_5350_N 0x0311#define SSB_CHIPCO_CLK_5350_M 0x04020009/** Bits in the config registers **/#define SSB_CHIPCO_CFG_EN 0x0001 /* Enable */#define SSB_CHIPCO_CFG_EXTM 0x000E /* Extif Mode */#define SSB_CHIPCO_CFG_EXTM_ASYNC 0x0002 /* Async/Parallel flash */#define SSB_CHIPCO_CFG_EXTM_SYNC 0x0004 /* Synchronous */#define SSB_CHIPCO_CFG_EXTM_PCMCIA 0x0008 /* PCMCIA */#define SSB_CHIPCO_CFG_EXTM_IDE 0x000A /* IDE */#define SSB_CHIPCO_CFG_DS16 0x0010 /* Data size, 0=8bit, 1=16bit */#define SSB_CHIPCO_CFG_CLKDIV 0x0060 /* Sync: Clock divisor */#define SSB_CHIPCO_CFG_CLKEN 0x0080 /* Sync: Clock enable */#define SSB_CHIPCO_CFG_BSTRO 0x0100 /* Sync: Size/Bytestrobe *//** Flash-specific control/status values *//* flashcontrol opcodes for ST flashes */#define SSB_CHIPCO_FLASHCTL_ST_WREN 0x0006 /* Write Enable */#define SSB_CHIPCO_FLASHCTL_ST_WRDIS 0x0004 /* Write Disable */#define SSB_CHIPCO_FLASHCTL_ST_RDSR 0x0105 /* Read Status Register */#define SSB_CHIPCO_FLASHCTL_ST_WRSR 0x0101 /* Write Status Register */#define SSB_CHIPCO_FLASHCTL_ST_READ 0x0303 /* Read Data Bytes */#define SSB_CHIPCO_FLASHCTL_ST_PP 0x0302 /* Page Program */#define SSB_CHIPCO_FLASHCTL_ST_SE 0x02D8 /* Sector Erase */#define SSB_CHIPCO_FLASHCTL_ST_BE 0x00C7 /* Bulk Erase */#define SSB_CHIPCO_FLASHCTL_ST_DP 0x00B9 /* Deep Power-down */#define SSB_CHIPCO_FLASHCTL_ST_RSIG 0x03AB /* Read Electronic Signature *//* Status register bits for ST flashes */#define SSB_CHIPCO_FLASHSTA_ST_WIP 0x01 /* Write In Progress */#define SSB_CHIPCO_FLASHSTA_ST_WEL 0x02 /* Write Enable Latch */#define SSB_CHIPCO_FLASHSTA_ST_BP 0x1C /* Block Protect */#define SSB_CHIPCO_FLASHSTA_ST_BP_SHIFT 2#define SSB_CHIPCO_FLASHSTA_ST_SRWD 0x80 /* Status Register Write Disable *//* flashcontrol opcodes for Atmel flashes */#define SSB_CHIPCO_FLASHCTL_AT_READ 0x07E8#define SSB_CHIPCO_FLASHCTL_AT_PAGE_READ 0x07D2#define SSB_CHIPCO_FLASHCTL_AT_BUF1_READ /* FIXME */#define SSB_CHIPCO_FLASHCTL_AT_BUF2_READ /* FIXME */#define SSB_CHIPCO_FLASHCTL_AT_STATUS 0x01D7#define SSB_CHIPCO_FLASHCTL_AT_BUF1_WRITE 0x0384#define SSB_CHIPCO_FLASHCTL_AT_BUF2_WRITE 0x0387#define SSB_CHIPCO_FLASHCTL_AT_BUF1_ERASE_PRGM 0x0283 /* Erase program */#define SSB_CHIPCO_FLASHCTL_AT_BUF2_ERASE_PRGM 0x0286 /* Erase program */#define SSB_CHIPCO_FLASHCTL_AT_BUF1_PROGRAM 0x0288#define SSB_CHIPCO_FLASHCTL_AT_BUF2_PROGRAM 0x0289#define SSB_CHIPCO_FLASHCTL_AT_PAGE_ERASE 0x0281#define SSB_CHIPCO_FLASHCTL_AT_BLOCK_ERASE 0x0250#define SSB_CHIPCO_FLASHCTL_AT_BUF1_WRER_PRGM 0x0382 /* Write erase program */#define SSB_CHIPCO_FLASHCTL_AT_BUF2_WRER_PRGM 0x0385 /* Write erase program */#define SSB_CHIPCO_FLASHCTL_AT_BUF1_LOAD 0x0253#define SSB_CHIPCO_FLASHCTL_AT_BUF2_LOAD 0x0255#define SSB_CHIPCO_FLASHCTL_AT_BUF1_COMPARE 0x0260#define SSB_CHIPCO_FLASHCTL_AT_BUF2_COMPARE 0x0261#define SSB_CHIPCO_FLASHCTL_AT_BUF1_REPROGRAM 0x0258#define SSB_CHIPCO_FLASHCTL_AT_BUF2_REPROGRAM 0x0259/* Status register bits for Atmel flashes */#define SSB_CHIPCO_FLASHSTA_AT_READY 0x80#define SSB_CHIPCO_FLASHSTA_AT_MISMATCH 0x40#define SSB_CHIPCO_FLASHSTA_AT_ID 0x38#define SSB_CHIPCO_FLASHSTA_AT_ID_SHIFT 3/** OTP **//* OTP regions */#define SSB_CHIPCO_OTP_HW_REGION SSB_CHIPCO_OTPS_HW_PROTECT#define SSB_CHIPCO_OTP_SW_REGION SSB_CHIPCO_OTPS_SW_PROTECT#define SSB_CHIPCO_OTP_CID_REGION SSB_CHIPCO_OTPS_CID_PROTECT/* OTP regions (Byte offsets from otp size) */#define SSB_CHIPCO_OTP_SWLIM_OFF (-8)#define SSB_CHIPCO_OTP_CIDBASE_OFF 0#define SSB_CHIPCO_OTP_CIDLIM_OFF 8/* Predefined OTP words (Word offset from otp size) */#define SSB_CHIPCO_OTP_BOUNDARY_OFF (-4)#define SSB_CHIPCO_OTP_HWSIGN_OFF (-3)#define SSB_CHIPCO_OTP_SWSIGN_OFF (-2)#define SSB_CHIPCO_OTP_CIDSIGN_OFF (-1)#define SSB_CHIPCO_OTP_CID_OFF 0#define SSB_CHIPCO_OTP_PKG_OFF 1#define SSB_CHIPCO_OTP_FID_OFF 2#define SSB_CHIPCO_OTP_RSV_OFF 3#define SSB_CHIPCO_OTP_LIM_OFF 4#define SSB_CHIPCO_OTP_SIGNATURE 0x578A#define SSB_CHIPCO_OTP_MAGIC 0x4E56struct ssb_device;struct ssb_serial_port;struct ssb_chipcommon { struct ssb_device *dev; u32 capabilities; /* Fast Powerup Delay constant */ u16 fast_pwrup_delay;};extern void ssb_chipcommon_init(struct ssb_chipcommon *cc);#include <linux/pm.h>extern void ssb_chipco_suspend(struct ssb_chipcommon *cc, pm_message_t state);extern void ssb_chipco_resume(struct ssb_chipcommon *cc);extern void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc, u32 *plltype, u32 *n, u32 *m);extern void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc, u32 *plltype, u32 *n, u32 *m);extern void ssb_chipco_timing_init(struct ssb_chipcommon *cc, unsigned long ns_per_cycle);enum ssb_clkmode { SSB_CLKMODE_SLOW, SSB_CLKMODE_FAST, SSB_CLKMODE_DYNAMIC,};extern void ssb_chipco_set_clockmode(struct ssb_chipcommon *cc, enum ssb_clkmode mode);extern void ssb_chipco_watchdog_timer_set(struct ssb_chipcommon *cc, u32 ticks);u32 ssb_chipco_gpio_in(struct ssb_chipcommon *cc, u32 mask);void ssb_chipco_gpio_out(struct ssb_chipcommon *cc, u32 mask, u32 value);void ssb_chipco_gpio_outen(struct ssb_chipcommon *cc, u32 mask, u32 value);#ifdef CONFIG_SSB_SERIALextern int ssb_chipco_serial_init(struct ssb_chipcommon *cc, struct ssb_serial_port *ports);#endif /* CONFIG_SSB_SERIAL */#endif /* LINUX_SSB_CHIPCO_H_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?