diff options
| author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-05-31 22:53:35 +0000 | 
|---|---|---|
| committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-05-31 22:53:35 +0000 | 
| commit | 6f45adddfe4c060b7c6d77f26232d95edf17a1ff (patch) | |
| tree | 7737810b956b0c85e625fa09ba07daa5d87fe70f /target/linux/ar71xx/files/arch | |
| parent | c7eb38661b1c1256aeea697591a6dc723f999c69 (diff) | |
ar71xx: add AR933x specific glue for ar71xx_device{start,stop}
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27061 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ar71xx/files/arch')
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/ar71xx.c | 23 | ||||
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h | 1 | 
2 files changed, 24 insertions, 0 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/ar71xx.c b/target/linux/ar71xx/files/arch/mips/ar71xx/ar71xx.c index 31b4422a0..ef956fbf4 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/ar71xx.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/ar71xx.c @@ -71,6 +71,14 @@ void ar71xx_device_stop(u32 mask)  		spin_unlock_irqrestore(&ar71xx_device_lock, flags);  		break; +	case AR71XX_SOC_AR9330: +	case AR71XX_SOC_AR9331: +		spin_lock_irqsave(&ar71xx_device_lock, flags); +		t = ar71xx_reset_rr(AR933X_RESET_REG_RESET_MODULE); +		ar71xx_reset_wr(AR933X_RESET_REG_RESET_MODULE, t | mask); +		spin_unlock_irqrestore(&ar71xx_device_lock, flags); +		break; +  	case AR71XX_SOC_AR9341:  	case AR71XX_SOC_AR9342:  	case AR71XX_SOC_AR9344: @@ -122,6 +130,14 @@ void ar71xx_device_start(u32 mask)  		spin_unlock_irqrestore(&ar71xx_device_lock, flags);  		break; +	case AR71XX_SOC_AR9330: +	case AR71XX_SOC_AR9331: +		spin_lock_irqsave(&ar71xx_device_lock, flags); +		t = ar71xx_reset_rr(AR933X_RESET_REG_RESET_MODULE); +		ar71xx_reset_wr(AR933X_RESET_REG_RESET_MODULE, t & ~mask); +		spin_unlock_irqrestore(&ar71xx_device_lock, flags); +		break; +  	case AR71XX_SOC_AR9341:  	case AR71XX_SOC_AR9342:  	case AR71XX_SOC_AR9344: @@ -166,6 +182,13 @@ int ar71xx_device_stopped(u32 mask)  		spin_unlock_irqrestore(&ar71xx_device_lock, flags);  		break; +	case AR71XX_SOC_AR9330: +	case AR71XX_SOC_AR9331: +		spin_lock_irqsave(&ar71xx_device_lock, flags); +		t = ar71xx_reset_rr(AR933X_RESET_REG_RESET_MODULE); +		spin_unlock_irqrestore(&ar71xx_device_lock, flags); +		break; +  	case AR71XX_SOC_AR9341:  	case AR71XX_SOC_AR9342:  	case AR71XX_SOC_AR9344: diff --git a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h index 84f7c476b..3b02d64b9 100644 --- a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h +++ b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h @@ -604,6 +604,7 @@ void ar71xx_ddr_flush(u32 reg);  #define AR724X_RESET_REG_RESET_MODULE		0x1c +#define AR933X_RESET_REG_RESET_MODULE		0x1c  #define AR933X_RESET_REG_BOOTSTRAP		0xac  #define AR933X_BOOTSTRAP_REF_CLK_40		BIT(0)  | 
