summaryrefslogtreecommitdiffstats
path: root/target/linux/aruba-2.6/files/arch/mips/aruba/flash_lock.c
blob: 48c762db5a9086077321b3d3ef5afea56769b3d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <linux/module.h>
#include <linux/types.h>
#include <asm/bootinfo.h>

#define AP70_PROT_ADDR 0xb8010008
#define AP70_PROT_DATA 0x8
#define AP60_PROT_ADDR 0xB8400000
#define AP60_PROT_DATA 0x04000000

void unlock_ap60_70_flash(void)
{
	volatile __u32 val;
	switch (mips_machtype) {
		case MACH_ARUBA_AP70:
			val = *(volatile __u32 *)AP70_PROT_ADDR;
			val &= ~(AP70_PROT_DATA);
			*(volatile __u32 *)AP70_PROT_ADDR = val;
			break;
		case MACH_ARUBA_AP65:
		case MACH_ARUBA_AP60:
		default:
			val = *(volatile __u32 *)AP60_PROT_ADDR;
			val &= ~(AP60_PROT_DATA);
			*(volatile __u32 *)AP60_PROT_ADDR = val;
			break;
	}
}