mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 02:39:48 +00:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin: Blackfin: fix inverted anomaly 05000481 logic Blackfin: drop unused irq_panic()/DEBUG_ICACHE_CHECK Blackfin: ppi/spi/twi headers: add missing __BFP undef Blackfin: update defconfigs Blackfin: bfin_twi.h: start a common TWI header netdev: bfin_mac: push settings to platform resources
This commit is contained in:
commit
4833c16dea
49 changed files with 513 additions and 216 deletions
|
@ -102,17 +102,6 @@ config DEBUG_DOUBLEFAULT_RESET
|
|||
|
||||
endchoice
|
||||
|
||||
config DEBUG_ICACHE_CHECK
|
||||
bool "Check Instruction cache coherency"
|
||||
depends on DEBUG_KERNEL
|
||||
depends on DEBUG_HWERR
|
||||
help
|
||||
Say Y here if you are getting weird unexplained errors. This will
|
||||
ensure that icache is what SDRAM says it should be by doing a
|
||||
byte wise comparison between SDRAM and instruction cache. This
|
||||
also relocates the irq_panic() function to L1 memory, (which is
|
||||
un-cached).
|
||||
|
||||
config DEBUG_HUNT_FOR_ZERO
|
||||
bool "Catch NULL pointer reads/writes"
|
||||
default y
|
||||
|
|
|
@ -35,6 +35,7 @@ CONFIG_C_CDPRIO=y
|
|||
CONFIG_BANK_3=0x99B2
|
||||
CONFIG_BINFMT_FLAT=y
|
||||
CONFIG_BINFMT_ZFLAT=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
|
@ -114,7 +115,6 @@ CONFIG_DEBUG_DOUBLEFAULT=y
|
|||
CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRC_CCITT=m
|
||||
|
|
|
@ -40,6 +40,7 @@ CONFIG_C_CDPRIO=y
|
|||
CONFIG_BANK_3=0x99B2
|
||||
CONFIG_BINFMT_FLAT=y
|
||||
CONFIG_BINFMT_ZFLAT=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
|
@ -152,7 +153,6 @@ CONFIG_DEBUG_DOUBLEFAULT=y
|
|||
CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRC_CCITT=m
|
||||
|
|
|
@ -9,6 +9,7 @@ CONFIG_EMBEDDED=y
|
|||
# CONFIG_ELF_CORE is not set
|
||||
# CONFIG_AIO is not set
|
||||
CONFIG_SLAB=y
|
||||
CONFIG_MMAP_ALLOW_UNINITIALIZED=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
|
@ -101,5 +102,4 @@ CONFIG_DETECT_HUNG_TASK=y
|
|||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRC_CCITT=m
|
||||
|
|
|
@ -20,6 +20,7 @@ CONFIG_MODULE_UNLOAD=y
|
|||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
CONFIG_BF527=y
|
||||
CONFIG_BF_REV_0_2=y
|
||||
|
@ -38,6 +39,7 @@ CONFIG_C_CDPRIO=y
|
|||
CONFIG_BANK_3=0x99B2
|
||||
CONFIG_BINFMT_FLAT=y
|
||||
CONFIG_BINFMT_ZFLAT=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
|
@ -181,6 +183,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
|
|||
CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
|
|
|
@ -20,6 +20,7 @@ CONFIG_MODULE_UNLOAD=y
|
|||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
CONFIG_BF527=y
|
||||
CONFIG_BF_REV_0_1=y
|
||||
|
@ -37,6 +38,7 @@ CONFIG_C_CDPRIO=y
|
|||
CONFIG_BANK_3=0x99B2
|
||||
CONFIG_BINFMT_FLAT=y
|
||||
CONFIG_BINFMT_ZFLAT=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
|
@ -173,6 +175,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
|
|||
CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
|
|
|
@ -174,7 +174,6 @@ CONFIG_DEBUG_DOUBLEFAULT=y
|
|||
CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRC7=m
|
||||
|
|
|
@ -20,6 +20,7 @@ CONFIG_MODULE_UNLOAD=y
|
|||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
CONFIG_BFIN533_EZKIT=y
|
||||
CONFIG_TIMER0=11
|
||||
|
@ -107,6 +108,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
|
|||
CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
|
|
|
@ -20,6 +20,7 @@ CONFIG_MODULE_UNLOAD=y
|
|||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
CONFIG_TIMER0=11
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
|
@ -121,6 +122,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
|
|||
CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
|
|
|
@ -20,9 +20,9 @@ CONFIG_MODULE_UNLOAD=y
|
|||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
CONFIG_BF537=y
|
||||
CONFIG_IRQ_ERROR=11
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_NOMMU_INITIAL_TRIM_EXCESS=0
|
||||
CONFIG_BFIN_GPTIMERS=m
|
||||
|
@ -133,6 +133,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
|
|||
CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
|
|
|
@ -20,6 +20,7 @@ CONFIG_MODULE_UNLOAD=y
|
|||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
CONFIG_BF538=y
|
||||
CONFIG_IRQ_TIMER0=12
|
||||
|
@ -31,6 +32,7 @@ CONFIG_C_CDPRIO=y
|
|||
CONFIG_BANK_3=0x99B2
|
||||
CONFIG_BINFMT_FLAT=y
|
||||
CONFIG_BINFMT_ZFLAT=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
|
@ -129,6 +131,5 @@ CONFIG_DEBUG_DOUBLEFAULT=y
|
|||
CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
|
|
|
@ -40,6 +40,7 @@ CONFIG_EBIU_MODEVAL=0x1
|
|||
CONFIG_EBIU_FCTLVAL=0x6
|
||||
CONFIG_BINFMT_FLAT=y
|
||||
CONFIG_BINFMT_ZFLAT=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
|
@ -62,7 +63,7 @@ CONFIG_IRCOMM=m
|
|||
CONFIG_IRTTY_SIR=m
|
||||
CONFIG_BFIN_SIR=m
|
||||
CONFIG_BFIN_SIR3=y
|
||||
CONFIG_LIB80211=m
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_FW_LOADER=m
|
||||
CONFIG_MTD=y
|
||||
|
@ -92,6 +93,7 @@ CONFIG_NET_ETHERNET=y
|
|||
CONFIG_SMSC911X=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
CONFIG_INPUT_FF_MEMLESS=m
|
||||
# CONFIG_INPUT_MOUSEDEV is not set
|
||||
CONFIG_INPUT_EVDEV=m
|
||||
|
|
|
@ -14,6 +14,7 @@ CONFIG_EMBEDDED=y
|
|||
# CONFIG_EVENTFD is not set
|
||||
# CONFIG_AIO is not set
|
||||
CONFIG_SLAB=y
|
||||
CONFIG_MMAP_ALLOW_UNINITIALIZED=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_LBDAF is not set
|
||||
|
@ -44,6 +45,7 @@ CONFIG_IP_PNP=y
|
|||
CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_LRO is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_MTD=y
|
||||
|
@ -71,6 +73,7 @@ CONFIG_NET_ETHERNET=y
|
|||
CONFIG_SMSC911X=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
|
@ -147,5 +150,4 @@ CONFIG_DEBUG_INFO=y
|
|||
CONFIG_DEBUG_MMRS=y
|
||||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
|
|
|
@ -35,6 +35,7 @@ CONFIG_C_CDPRIO=y
|
|||
CONFIG_BANK_3=0xAAC2
|
||||
CONFIG_BINFMT_FLAT=y
|
||||
CONFIG_BINFMT_ZFLAT=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
|
|
|
@ -40,6 +40,7 @@ CONFIG_INET=y
|
|||
CONFIG_IP_PNP=y
|
||||
# CONFIG_INET_LRO is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_MTD=y
|
||||
|
@ -63,6 +64,7 @@ CONFIG_NET_ETHERNET=y
|
|||
CONFIG_SMC91X=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT_MOUSEDEV is not set
|
||||
CONFIG_INPUT_EVDEV=m
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
|
@ -104,5 +106,4 @@ CONFIG_DEBUG_MMRS=y
|
|||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRC_CCITT=m
|
||||
|
|
|
@ -50,6 +50,7 @@ CONFIG_IP_PNP=y
|
|||
# CONFIG_INET_LRO is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_MTD=y
|
||||
|
@ -70,9 +71,9 @@ CONFIG_BLK_DEV_SD=y
|
|||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_BFIN_MAC=y
|
||||
CONFIG_BFIN_MAC_RMII=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
|
@ -124,7 +125,6 @@ CONFIG_DEBUG_FS=y
|
|||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRC_CCITT=m
|
||||
|
|
|
@ -33,6 +33,7 @@ CONFIG_BINFMT_SHARED_FLAT=y
|
|||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
|
@ -47,6 +48,7 @@ CONFIG_MTD_PHYSMAP=y
|
|||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
|
@ -72,7 +74,6 @@ CONFIG_DEBUG_MMRS=y
|
|||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRC_CCITT=y
|
||||
CONFIG_CRC_ITU_T=y
|
||||
CONFIG_CRC7=y
|
||||
|
|
|
@ -48,6 +48,7 @@ CONFIG_IP_PNP=y
|
|||
# CONFIG_INET_LRO is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
|
@ -65,6 +66,7 @@ CONFIG_NET_ETHERNET=y
|
|||
CONFIG_BFIN_MAC=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
|
@ -99,7 +101,6 @@ CONFIG_DEBUG_MMRS=y
|
|||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRC_CCITT=m
|
||||
|
|
|
@ -44,6 +44,7 @@ CONFIG_INET=y
|
|||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
|
@ -59,6 +60,7 @@ CONFIG_BLK_DEV_RAM=y
|
|||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
|
@ -90,7 +92,6 @@ CONFIG_DEBUG_MMRS=y
|
|||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRC_CCITT=m
|
||||
CONFIG_CRC_ITU_T=y
|
||||
CONFIG_CRC7=y
|
||||
|
|
|
@ -49,6 +49,7 @@ CONFIG_INET_XFRM_MODE_BEET=m
|
|||
# CONFIG_INET_LRO is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_MTD=y
|
||||
|
@ -71,6 +72,7 @@ CONFIG_NET_ETHERNET=y
|
|||
CONFIG_SMSC911X=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT_MOUSEDEV is not set
|
||||
CONFIG_INPUT_EVDEV=m
|
||||
CONFIG_INPUT_EVBUG=m
|
||||
|
@ -167,7 +169,6 @@ CONFIG_DEBUG_FS=y
|
|||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_CRC_CCITT=m
|
||||
|
|
|
@ -48,6 +48,7 @@ CONFIG_INET=y
|
|||
# CONFIG_INET_LRO is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
|
@ -67,6 +68,7 @@ CONFIG_MII=y
|
|||
CONFIG_SMSC911X=m
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
|
@ -99,7 +101,6 @@ CONFIG_DEBUG_MMRS=y
|
|||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRC_CCITT=m
|
||||
CONFIG_CRC_ITU_T=y
|
||||
CONFIG_CRC7=y
|
||||
|
|
|
@ -33,6 +33,7 @@ CONFIG_IRLAN=m
|
|||
CONFIG_IRCOMM=m
|
||||
CONFIG_IRDA_CACHE_LAST_LSAP=y
|
||||
CONFIG_IRTTY_SIR=m
|
||||
# CONFIG_WIRELESS is not set
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
|
@ -50,6 +51,7 @@ CONFIG_NET_ETHERNET=y
|
|||
CONFIG_DM9000=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT_MOUSEDEV is not set
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
|
@ -84,4 +86,3 @@ CONFIG_NFS_V3=y
|
|||
CONFIG_NLS=m
|
||||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
|
|
|
@ -41,6 +41,7 @@ CONFIG_IP_NF_IPTABLES=y
|
|||
CONFIG_IP_NF_FILTER=y
|
||||
CONFIG_IP_NF_TARGET_REJECT=y
|
||||
CONFIG_IP_NF_MANGLE=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
|
@ -60,6 +61,7 @@ CONFIG_NET_ETHERNET=y
|
|||
CONFIG_DM9000=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
|
@ -89,5 +91,4 @@ CONFIG_NLS_CODEPAGE_437=y
|
|||
CONFIG_NLS_ISO8859_1=y
|
||||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRC_CCITT=y
|
||||
|
|
|
@ -14,6 +14,7 @@ CONFIG_MODULE_UNLOAD=y
|
|||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
CONFIG_BF537=y
|
||||
CONFIG_IRQ_TIMER0=12
|
||||
|
@ -107,7 +108,6 @@ CONFIG_SMB_FS=m
|
|||
# CONFIG_DEBUG_HUNT_FOR_ZERO is not set
|
||||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
# CONFIG_ACCESS_CHECK is not set
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRC_CCITT=m
|
||||
|
|
|
@ -35,6 +35,7 @@ CONFIG_IRLAN=m
|
|||
CONFIG_IRCOMM=m
|
||||
CONFIG_IRDA_CACHE_LAST_LSAP=y
|
||||
CONFIG_IRTTY_SIR=m
|
||||
# CONFIG_WIRELESS is not set
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
|
@ -51,6 +52,7 @@ CONFIG_EEPROM_AT25=m
|
|||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT_MOUSEDEV is not set
|
||||
CONFIG_INPUT_EVDEV=m
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
|
@ -85,4 +87,3 @@ CONFIG_DEBUG_KERNEL=y
|
|||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE is not set
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
|
|
|
@ -128,7 +128,6 @@ CONFIG_DEBUG_DOUBLEFAULT=y
|
|||
CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_CPLB_INFO=y
|
||||
CONFIG_SECURITY=y
|
||||
CONFIG_CRYPTO=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRC_CCITT=m
|
||||
|
|
|
@ -40,6 +40,7 @@ CONFIG_UNIX=y
|
|||
CONFIG_INET=y
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
|
@ -57,6 +58,7 @@ CONFIG_NET_ETHERNET=y
|
|||
CONFIG_BFIN_MAC=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
|
|
|
@ -60,6 +60,8 @@ struct bfin_spi_regs {
|
|||
__BFP(shadow);
|
||||
};
|
||||
|
||||
#undef __BFP
|
||||
|
||||
#define MAX_CTRL_CS 8 /* cs in spi controller */
|
||||
|
||||
/* device.platform_data for SSP controller devices */
|
||||
|
|
|
@ -48,4 +48,6 @@ struct bfin_eppi_regs {
|
|||
u32 clip;
|
||||
};
|
||||
|
||||
#undef __BFP
|
||||
|
||||
#endif
|
||||
|
|
45
arch/blackfin/include/asm/bfin_twi.h
Normal file
45
arch/blackfin/include/asm/bfin_twi.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* bfin_twi.h - interface to Blackfin TWIs
|
||||
*
|
||||
* Copyright 2005-2010 Analog Devices Inc.
|
||||
*
|
||||
* Licensed under the GPL-2 or later.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_BFIN_TWI_H__
|
||||
#define __ASM_BFIN_TWI_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* All Blackfin system MMRs are padded to 32bits even if the register
|
||||
* itself is only 16bits. So use a helper macro to streamline this.
|
||||
*/
|
||||
#define __BFP(m) u16 m; u16 __pad_##m
|
||||
|
||||
/*
|
||||
* bfin twi registers layout
|
||||
*/
|
||||
struct bfin_twi_regs {
|
||||
__BFP(clkdiv);
|
||||
__BFP(control);
|
||||
__BFP(slave_ctl);
|
||||
__BFP(slave_stat);
|
||||
__BFP(slave_addr);
|
||||
__BFP(master_ctl);
|
||||
__BFP(master_stat);
|
||||
__BFP(master_addr);
|
||||
__BFP(int_stat);
|
||||
__BFP(int_mask);
|
||||
__BFP(fifo_ctl);
|
||||
__BFP(fifo_stat);
|
||||
u32 __pad[20];
|
||||
__BFP(xmt_data8);
|
||||
__BFP(xmt_data16);
|
||||
__BFP(rcv_data8);
|
||||
__BFP(rcv_data16);
|
||||
};
|
||||
|
||||
#undef __BFP
|
||||
|
||||
#endif
|
|
@ -179,7 +179,7 @@
|
|||
#define bfin_write_ITEST_DATA0(val) bfin_write32(ITEST_DATA0,val)
|
||||
#define bfin_write_ITEST_DATA1(val) bfin_write32(ITEST_DATA1,val)
|
||||
|
||||
#if ANOMALY_05000481
|
||||
#if !ANOMALY_05000481
|
||||
#define bfin_read_ITEST_COMMAND() bfin_read32(ITEST_COMMAND)
|
||||
#define bfin_read_ITEST_DATA0() bfin_read32(ITEST_DATA0)
|
||||
#define bfin_read_ITEST_DATA1() bfin_read32(ITEST_DATA1)
|
||||
|
|
|
@ -87,13 +87,55 @@ static struct platform_device rtc_device = {
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = {
|
||||
P_MII0_ETxD0,
|
||||
P_MII0_ETxD1,
|
||||
P_MII0_ETxEN,
|
||||
P_MII0_ERxD0,
|
||||
P_MII0_ERxD1,
|
||||
P_MII0_TxCLK,
|
||||
P_MII0_PHYINT,
|
||||
P_MII0_CRS,
|
||||
P_MII0_MDC,
|
||||
P_MII0_MDIO,
|
||||
0
|
||||
};
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
{
|
||||
.addr = 2,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
{
|
||||
.addr = 3,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 3,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_MII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
|
||||
#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
|
||||
|
|
|
@ -81,13 +81,35 @@ static struct platform_device rtc_device = {
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = P_MII0;
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 1,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_MII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -273,13 +273,35 @@ static struct platform_device dm9000_device = {
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = P_RMII0;
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 1,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_RMII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -193,13 +193,35 @@ static struct platform_device rtc_device = {
|
|||
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = P_RMII0;
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 1,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_RMII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -366,13 +366,35 @@ static struct platform_device dm9000_device = {
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = P_RMII0;
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 1,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_RMII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -257,13 +257,35 @@ static struct platform_device rtc_device = {
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = P_RMII0;
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 1,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_RMII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -597,13 +597,35 @@ static struct platform_device bfin_sport1_uart_device = {
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = P_MII0;
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 1,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_MII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -562,13 +562,35 @@ static struct platform_device bfin_sport1_uart_device = {
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = P_MII0;
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 1,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_MII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -68,13 +68,35 @@ static struct platform_device rtc_device = {
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = P_MII0;
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 1,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_MII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -99,13 +99,35 @@ static struct platform_device smc91x_device = {
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = P_RMII0;
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 1,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_RMII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -327,13 +327,35 @@ static struct platform_device bfin_can_device = {
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = P_MII0;
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = PHY_POLL, /* IRQ_MAC_PHYINT */
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 1,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_MII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -564,13 +564,35 @@ static struct platform_device bfin_sport1_uart_device = {
|
|||
#endif
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
|
||||
#include <linux/bfin_mac.h>
|
||||
static const unsigned short bfin_mac_peripherals[] = P_MII0;
|
||||
|
||||
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
|
||||
{
|
||||
.addr = 1,
|
||||
.irq = IRQ_MAC_PHYINT,
|
||||
},
|
||||
};
|
||||
|
||||
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
|
||||
.phydev_number = 1,
|
||||
.phydev_data = bfin_phydev_data,
|
||||
.phy_mode = PHY_INTERFACE_MODE_MII,
|
||||
.mac_peripherals = bfin_mac_peripherals,
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mii_bus = {
|
||||
.name = "bfin_mii_bus",
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus_data,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device bfin_mac_device = {
|
||||
.name = "bfin_mac",
|
||||
.dev.platform_data = &bfin_mii_bus,
|
||||
.dev = {
|
||||
.platform_data = &bfin_mii_bus,
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -11,4 +11,3 @@ obj-$(CONFIG_CPU_FREQ) += cpufreq.o
|
|||
obj-$(CONFIG_CPU_VOLTAGE) += dpmc.o
|
||||
obj-$(CONFIG_SMP) += smp.o
|
||||
obj-$(CONFIG_BFIN_KERNEL_CLOCK) += clocks-init.o
|
||||
obj-$(CONFIG_DEBUG_ICACHE_CHECK) += irqpanic.o
|
||||
|
|
|
@ -1,106 +0,0 @@
|
|||
/*
|
||||
* panic kernel with dump information
|
||||
*
|
||||
* Copyright 2005-2009 Analog Devices Inc.
|
||||
*
|
||||
* Licensed under the GPL-2 or later.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel_stat.h>
|
||||
#include <linux/sched.h>
|
||||
#include <asm/blackfin.h>
|
||||
|
||||
#define L1_ICACHE_START 0xffa10000
|
||||
#define L1_ICACHE_END 0xffa13fff
|
||||
|
||||
/*
|
||||
* irq_panic - calls panic with string setup
|
||||
*/
|
||||
__attribute__ ((l1_text))
|
||||
asmlinkage void irq_panic(int reason, struct pt_regs *regs)
|
||||
{
|
||||
unsigned int cmd, tag, ca, cache_hi, cache_lo, *pa;
|
||||
unsigned short i, j, die;
|
||||
unsigned int bad[10][6];
|
||||
|
||||
/* check entire cache for coherency
|
||||
* Since printk is in cacheable memory,
|
||||
* don't call it until you have checked everything
|
||||
*/
|
||||
|
||||
die = 0;
|
||||
i = 0;
|
||||
|
||||
/* check icache */
|
||||
|
||||
for (ca = L1_ICACHE_START; ca <= L1_ICACHE_END && i < 10; ca += 32) {
|
||||
|
||||
/* Grab various address bits for the itest_cmd fields */
|
||||
cmd = (((ca & 0x3000) << 4) | /* ca[13:12] for SBNK[1:0] */
|
||||
((ca & 0x0c00) << 16) | /* ca[11:10] for WAYSEL[1:0] */
|
||||
((ca & 0x3f8)) | /* ca[09:03] for SET[4:0] and DW[1:0] */
|
||||
0); /* Access Tag, Read access */
|
||||
|
||||
SSYNC();
|
||||
bfin_write_ITEST_COMMAND(cmd);
|
||||
SSYNC();
|
||||
tag = bfin_read_ITEST_DATA0();
|
||||
SSYNC();
|
||||
|
||||
/* if tag is marked as valid, check it */
|
||||
if (tag & 1) {
|
||||
/* The icache is arranged in 4 groups of 64-bits */
|
||||
for (j = 0; j < 32; j += 8) {
|
||||
cmd = ((((ca + j) & 0x3000) << 4) | /* ca[13:12] for SBNK[1:0] */
|
||||
(((ca + j) & 0x0c00) << 16) | /* ca[11:10] for WAYSEL[1:0] */
|
||||
(((ca + j) & 0x3f8)) | /* ca[09:03] for SET[4:0] and DW[1:0] */
|
||||
4); /* Access Data, Read access */
|
||||
|
||||
SSYNC();
|
||||
bfin_write_ITEST_COMMAND(cmd);
|
||||
SSYNC();
|
||||
|
||||
cache_hi = bfin_read_ITEST_DATA1();
|
||||
cache_lo = bfin_read_ITEST_DATA0();
|
||||
|
||||
pa = ((unsigned int *)((tag & 0xffffcc00) |
|
||||
((ca + j) & ~(0xffffcc00))));
|
||||
|
||||
/*
|
||||
* Debugging this, enable
|
||||
*
|
||||
* printk("addr: %08x %08x%08x | %08x%08x\n",
|
||||
* ((unsigned int *)((tag & 0xffffcc00) | ((ca+j) & ~(0xffffcc00)))),
|
||||
* cache_hi, cache_lo, *(pa+1), *pa);
|
||||
*/
|
||||
|
||||
if (cache_hi != *(pa + 1) || cache_lo != *pa) {
|
||||
/* Since icache is not working, stay out of it, by not printing */
|
||||
die = 1;
|
||||
bad[i][0] = (ca + j);
|
||||
bad[i][1] = cache_hi;
|
||||
bad[i][2] = cache_lo;
|
||||
bad[i][3] = ((tag & 0xffffcc00) |
|
||||
((ca + j) & ~(0xffffcc00)));
|
||||
bad[i][4] = *(pa + 1);
|
||||
bad[i][5] = *(pa);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (die) {
|
||||
printk(KERN_EMERG "icache coherency error\n");
|
||||
for (j = 0; j <= i; j++) {
|
||||
printk(KERN_EMERG
|
||||
"cache address : %08x cache value : %08x%08x\n",
|
||||
bad[j][0], bad[j][1], bad[j][2]);
|
||||
printk(KERN_EMERG
|
||||
"physical address: %08x SDRAM value : %08x%08x\n",
|
||||
bad[j][3], bad[j][4], bad[j][5]);
|
||||
}
|
||||
panic("icache coherency error");
|
||||
} else
|
||||
printk(KERN_EMERG "icache checked, and OK\n");
|
||||
}
|
|
@ -883,14 +883,6 @@ config BFIN_RX_DESC_NUM
|
|||
help
|
||||
Set the number of buffer packets used in driver.
|
||||
|
||||
config BFIN_MAC_RMII
|
||||
bool "RMII PHY Interface"
|
||||
depends on BFIN_MAC
|
||||
default y if BFIN527_EZKIT
|
||||
default n if BFIN537_STAMP
|
||||
help
|
||||
Use Reduced PHY MII Interface
|
||||
|
||||
config BFIN_MAC_USE_HWSTAMP
|
||||
bool "Use IEEE 1588 hwstamp"
|
||||
depends on BFIN_MAC && BF518
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Blackfin On-Chip MAC Driver
|
||||
*
|
||||
* Copyright 2004-2007 Analog Devices Inc.
|
||||
* Copyright 2004-2010 Analog Devices Inc.
|
||||
*
|
||||
* Enter bugs at http://blackfin.uclinux.org/
|
||||
*
|
||||
|
@ -23,7 +23,6 @@
|
|||
#include <linux/device.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/mii.h>
|
||||
#include <linux/phy.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/ethtool.h>
|
||||
|
@ -76,12 +75,6 @@ static struct net_dma_desc_tx *current_tx_ptr;
|
|||
static struct net_dma_desc_tx *tx_desc;
|
||||
static struct net_dma_desc_rx *rx_desc;
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC_RMII)
|
||||
static u16 pin_req[] = P_RMII0;
|
||||
#else
|
||||
static u16 pin_req[] = P_MII0;
|
||||
#endif
|
||||
|
||||
static void desc_list_free(void)
|
||||
{
|
||||
struct net_dma_desc_rx *r;
|
||||
|
@ -347,23 +340,23 @@ static void bfin_mac_adjust_link(struct net_device *dev)
|
|||
}
|
||||
|
||||
if (phydev->speed != lp->old_speed) {
|
||||
#if defined(CONFIG_BFIN_MAC_RMII)
|
||||
u32 opmode = bfin_read_EMAC_OPMODE();
|
||||
switch (phydev->speed) {
|
||||
case 10:
|
||||
opmode |= RMII_10;
|
||||
break;
|
||||
case 100:
|
||||
opmode &= ~(RMII_10);
|
||||
break;
|
||||
default:
|
||||
printk(KERN_WARNING
|
||||
"%s: Ack! Speed (%d) is not 10/100!\n",
|
||||
DRV_NAME, phydev->speed);
|
||||
break;
|
||||
if (phydev->interface == PHY_INTERFACE_MODE_RMII) {
|
||||
u32 opmode = bfin_read_EMAC_OPMODE();
|
||||
switch (phydev->speed) {
|
||||
case 10:
|
||||
opmode |= RMII_10;
|
||||
break;
|
||||
case 100:
|
||||
opmode &= ~RMII_10;
|
||||
break;
|
||||
default:
|
||||
printk(KERN_WARNING
|
||||
"%s: Ack! Speed (%d) is not 10/100!\n",
|
||||
DRV_NAME, phydev->speed);
|
||||
break;
|
||||
}
|
||||
bfin_write_EMAC_OPMODE(opmode);
|
||||
}
|
||||
bfin_write_EMAC_OPMODE(opmode);
|
||||
#endif
|
||||
|
||||
new_state = 1;
|
||||
lp->old_speed = phydev->speed;
|
||||
|
@ -392,7 +385,7 @@ static void bfin_mac_adjust_link(struct net_device *dev)
|
|||
/* MDC = 2.5 MHz */
|
||||
#define MDC_CLK 2500000
|
||||
|
||||
static int mii_probe(struct net_device *dev)
|
||||
static int mii_probe(struct net_device *dev, int phy_mode)
|
||||
{
|
||||
struct bfin_mac_local *lp = netdev_priv(dev);
|
||||
struct phy_device *phydev = NULL;
|
||||
|
@ -411,8 +404,8 @@ static int mii_probe(struct net_device *dev)
|
|||
sysctl = (sysctl & ~MDCDIV) | SET_MDCDIV(mdc_div);
|
||||
bfin_write_EMAC_SYSCTL(sysctl);
|
||||
|
||||
/* search for connect PHY device */
|
||||
for (i = 0; i < PHY_MAX_ADDR; i++) {
|
||||
/* search for connected PHY device */
|
||||
for (i = 0; i < PHY_MAX_ADDR; ++i) {
|
||||
struct phy_device *const tmp_phydev = lp->mii_bus->phy_map[i];
|
||||
|
||||
if (!tmp_phydev)
|
||||
|
@ -429,13 +422,14 @@ static int mii_probe(struct net_device *dev)
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC_RMII)
|
||||
if (phy_mode != PHY_INTERFACE_MODE_RMII &&
|
||||
phy_mode != PHY_INTERFACE_MODE_MII) {
|
||||
printk(KERN_INFO "%s: Invalid phy interface mode\n", dev->name);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
phydev = phy_connect(dev, dev_name(&phydev->dev), &bfin_mac_adjust_link,
|
||||
0, PHY_INTERFACE_MODE_RMII);
|
||||
#else
|
||||
phydev = phy_connect(dev, dev_name(&phydev->dev), &bfin_mac_adjust_link,
|
||||
0, PHY_INTERFACE_MODE_MII);
|
||||
#endif
|
||||
0, phy_mode);
|
||||
|
||||
if (IS_ERR(phydev)) {
|
||||
printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name);
|
||||
|
@ -570,6 +564,8 @@ static const struct ethtool_ops bfin_mac_ethtool_ops = {
|
|||
/**************************************************************************/
|
||||
void setup_system_regs(struct net_device *dev)
|
||||
{
|
||||
struct bfin_mac_local *lp = netdev_priv(dev);
|
||||
int i;
|
||||
unsigned short sysctl;
|
||||
|
||||
/*
|
||||
|
@ -577,6 +573,15 @@ void setup_system_regs(struct net_device *dev)
|
|||
* Configure checksum support and rcve frame word alignment
|
||||
*/
|
||||
sysctl = bfin_read_EMAC_SYSCTL();
|
||||
/*
|
||||
* check if interrupt is requested for any PHY,
|
||||
* enable PHY interrupt only if needed
|
||||
*/
|
||||
for (i = 0; i < PHY_MAX_ADDR; ++i)
|
||||
if (lp->mii_bus->irq[i] != PHY_POLL)
|
||||
break;
|
||||
if (i < PHY_MAX_ADDR)
|
||||
sysctl |= PHYIE;
|
||||
sysctl |= RXDWA;
|
||||
#if defined(BFIN_MAC_CSUM_OFFLOAD)
|
||||
sysctl |= RXCKS;
|
||||
|
@ -1203,7 +1208,7 @@ static void bfin_mac_disable(void)
|
|||
/*
|
||||
* Enable Interrupts, Receive, and Transmit
|
||||
*/
|
||||
static int bfin_mac_enable(void)
|
||||
static int bfin_mac_enable(struct phy_device *phydev)
|
||||
{
|
||||
int ret;
|
||||
u32 opmode;
|
||||
|
@ -1233,12 +1238,13 @@ static int bfin_mac_enable(void)
|
|||
opmode |= DRO | DC | PSF;
|
||||
opmode |= RE;
|
||||
|
||||
#if defined(CONFIG_BFIN_MAC_RMII)
|
||||
opmode |= RMII; /* For Now only 100MBit are supported */
|
||||
if (phydev->interface == PHY_INTERFACE_MODE_RMII) {
|
||||
opmode |= RMII; /* For Now only 100MBit are supported */
|
||||
#if (defined(CONFIG_BF537) || defined(CONFIG_BF536)) && CONFIG_BF_REV_0_2
|
||||
opmode |= TE;
|
||||
#endif
|
||||
opmode |= TE;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Turn on the EMAC rx */
|
||||
bfin_write_EMAC_OPMODE(opmode);
|
||||
|
||||
|
@ -1270,7 +1276,7 @@ static void bfin_mac_timeout(struct net_device *dev)
|
|||
if (netif_queue_stopped(lp->ndev))
|
||||
netif_wake_queue(lp->ndev);
|
||||
|
||||
bfin_mac_enable();
|
||||
bfin_mac_enable(lp->phydev);
|
||||
|
||||
/* We can accept TX packets again */
|
||||
dev->trans_start = jiffies; /* prevent tx timeout */
|
||||
|
@ -1342,11 +1348,19 @@ static void bfin_mac_set_multicast_list(struct net_device *dev)
|
|||
|
||||
static int bfin_mac_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
|
||||
{
|
||||
struct bfin_mac_local *lp = netdev_priv(netdev);
|
||||
|
||||
if (!netif_running(netdev))
|
||||
return -EINVAL;
|
||||
|
||||
switch (cmd) {
|
||||
case SIOCSHWTSTAMP:
|
||||
return bfin_mac_hwtstamp_ioctl(netdev, ifr, cmd);
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
if (lp->phydev)
|
||||
return phy_mii_ioctl(lp->phydev, ifr, cmd);
|
||||
else
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1394,7 +1408,7 @@ static int bfin_mac_open(struct net_device *dev)
|
|||
setup_mac_addr(dev->dev_addr);
|
||||
|
||||
bfin_mac_disable();
|
||||
ret = bfin_mac_enable();
|
||||
ret = bfin_mac_enable(lp->phydev);
|
||||
if (ret)
|
||||
return ret;
|
||||
pr_debug("hardware init finished\n");
|
||||
|
@ -1450,6 +1464,7 @@ static int __devinit bfin_mac_probe(struct platform_device *pdev)
|
|||
struct net_device *ndev;
|
||||
struct bfin_mac_local *lp;
|
||||
struct platform_device *pd;
|
||||
struct bfin_mii_bus_platform_data *mii_bus_data;
|
||||
int rc;
|
||||
|
||||
ndev = alloc_etherdev(sizeof(struct bfin_mac_local));
|
||||
|
@ -1501,11 +1516,12 @@ static int __devinit bfin_mac_probe(struct platform_device *pdev)
|
|||
if (!lp->mii_bus) {
|
||||
dev_err(&pdev->dev, "Cannot get mii_bus!\n");
|
||||
rc = -ENODEV;
|
||||
goto out_err_mii_bus_probe;
|
||||
goto out_err_probe_mac;
|
||||
}
|
||||
lp->mii_bus->priv = ndev;
|
||||
mii_bus_data = pd->dev.platform_data;
|
||||
|
||||
rc = mii_probe(ndev);
|
||||
rc = mii_probe(ndev, mii_bus_data->phy_mode);
|
||||
if (rc) {
|
||||
dev_err(&pdev->dev, "MII Probe failed!\n");
|
||||
goto out_err_mii_probe;
|
||||
|
@ -1552,8 +1568,6 @@ static int __devinit bfin_mac_probe(struct platform_device *pdev)
|
|||
out_err_mii_probe:
|
||||
mdiobus_unregister(lp->mii_bus);
|
||||
mdiobus_free(lp->mii_bus);
|
||||
out_err_mii_bus_probe:
|
||||
peripheral_free_list(pin_req);
|
||||
out_err_probe_mac:
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
free_netdev(ndev);
|
||||
|
@ -1576,8 +1590,6 @@ static int __devexit bfin_mac_remove(struct platform_device *pdev)
|
|||
|
||||
free_netdev(ndev);
|
||||
|
||||
peripheral_free_list(pin_req);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1623,12 +1635,21 @@ static int bfin_mac_resume(struct platform_device *pdev)
|
|||
static int __devinit bfin_mii_bus_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct mii_bus *miibus;
|
||||
struct bfin_mii_bus_platform_data *mii_bus_pd;
|
||||
const unsigned short *pin_req;
|
||||
int rc, i;
|
||||
|
||||
mii_bus_pd = dev_get_platdata(&pdev->dev);
|
||||
if (!mii_bus_pd) {
|
||||
dev_err(&pdev->dev, "No peripherals in platform data!\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* We are setting up a network card,
|
||||
* so set the GPIO pins to Ethernet mode
|
||||
*/
|
||||
pin_req = mii_bus_pd->mac_peripherals;
|
||||
rc = peripheral_request_list(pin_req, DRV_NAME);
|
||||
if (rc) {
|
||||
dev_err(&pdev->dev, "Requesting peripherals failed!\n");
|
||||
|
@ -1645,13 +1666,30 @@ static int __devinit bfin_mii_bus_probe(struct platform_device *pdev)
|
|||
|
||||
miibus->parent = &pdev->dev;
|
||||
miibus->name = "bfin_mii_bus";
|
||||
miibus->phy_mask = mii_bus_pd->phy_mask;
|
||||
|
||||
snprintf(miibus->id, MII_BUS_ID_SIZE, "0");
|
||||
miibus->irq = kmalloc(sizeof(int)*PHY_MAX_ADDR, GFP_KERNEL);
|
||||
if (miibus->irq == NULL)
|
||||
goto out_err_alloc;
|
||||
for (i = 0; i < PHY_MAX_ADDR; ++i)
|
||||
if (!miibus->irq)
|
||||
goto out_err_irq_alloc;
|
||||
|
||||
for (i = rc; i < PHY_MAX_ADDR; ++i)
|
||||
miibus->irq[i] = PHY_POLL;
|
||||
|
||||
rc = clamp(mii_bus_pd->phydev_number, 0, PHY_MAX_ADDR);
|
||||
if (rc != mii_bus_pd->phydev_number)
|
||||
dev_err(&pdev->dev, "Invalid number (%i) of phydevs\n",
|
||||
mii_bus_pd->phydev_number);
|
||||
for (i = 0; i < rc; ++i) {
|
||||
unsigned short phyaddr = mii_bus_pd->phydev_data[i].addr;
|
||||
if (phyaddr < PHY_MAX_ADDR)
|
||||
miibus->irq[phyaddr] = mii_bus_pd->phydev_data[i].irq;
|
||||
else
|
||||
dev_err(&pdev->dev,
|
||||
"Invalid PHY address %i for phydev %i\n",
|
||||
phyaddr, i);
|
||||
}
|
||||
|
||||
rc = mdiobus_register(miibus);
|
||||
if (rc) {
|
||||
dev_err(&pdev->dev, "Cannot register MDIO bus!\n");
|
||||
|
@ -1663,6 +1701,7 @@ static int __devinit bfin_mii_bus_probe(struct platform_device *pdev)
|
|||
|
||||
out_err_mdiobus_register:
|
||||
kfree(miibus->irq);
|
||||
out_err_irq_alloc:
|
||||
mdiobus_free(miibus);
|
||||
out_err_alloc:
|
||||
peripheral_free_list(pin_req);
|
||||
|
@ -1673,11 +1712,15 @@ static int __devinit bfin_mii_bus_probe(struct platform_device *pdev)
|
|||
static int __devexit bfin_mii_bus_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct mii_bus *miibus = platform_get_drvdata(pdev);
|
||||
struct bfin_mii_bus_platform_data *mii_bus_pd =
|
||||
dev_get_platdata(&pdev->dev);
|
||||
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
mdiobus_unregister(miibus);
|
||||
kfree(miibus->irq);
|
||||
mdiobus_free(miibus);
|
||||
peripheral_free_list(pin_req);
|
||||
peripheral_free_list(mii_bus_pd->mac_peripherals);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
#include <linux/clocksource.h>
|
||||
#include <linux/timecompare.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/bfin_mac.h>
|
||||
|
||||
#define BFIN_MAC_CSUM_OFFLOAD
|
||||
|
||||
|
|
29
include/linux/bfin_mac.h
Normal file
29
include/linux/bfin_mac.h
Normal file
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Blackfin On-Chip MAC Driver
|
||||
*
|
||||
* Copyright 2004-2010 Analog Devices Inc.
|
||||
*
|
||||
* Enter bugs at http://blackfin.uclinux.org/
|
||||
*
|
||||
* Licensed under the GPL-2 or later.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_BFIN_MAC_H_
|
||||
#define _LINUX_BFIN_MAC_H_
|
||||
|
||||
#include <linux/phy.h>
|
||||
|
||||
struct bfin_phydev_platform_data {
|
||||
unsigned short addr;
|
||||
int irq;
|
||||
};
|
||||
|
||||
struct bfin_mii_bus_platform_data {
|
||||
int phydev_number;
|
||||
struct bfin_phydev_platform_data *phydev_data;
|
||||
const unsigned short *mac_peripherals;
|
||||
int phy_mode;
|
||||
unsigned int phy_mask;
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue