5a177f2a505166aaf5886865e14ed2f0c24bad1b
1 #include <linux/init.h>
2 #include <linux/reboot.h>
4 #include <asm/reboot.h>
7 static void adm8668_restart(char *cmd
)
11 /* stop eth0 and eth1 */
12 ADM8668_LAN_REG(NETCSR6
) = (1 << 13) | (1 << 1);
13 ADM8668_LAN_REG(NETCSR7
) = 0;
14 ADM8668_WAN_REG(NETCSR6
) = (1 << 13) | (1 << 1);
15 ADM8668_WAN_REG(NETCSR7
) = 0;
18 ADM8668_WAN_REG(NETCSR37
) = 0x20;
19 for (i
= 0; i
< 10000; i
++)
21 ADM8668_WAN_REG(NETCSR37
) = 0;
22 for (i
= 0; i
< 10000; i
++)
26 for (i
= 0; i
< 1000; i
++)
28 ADM8668_CONFIG_REG(ADM8668_CR1
) = 1;
31 void __init
plat_mem_setup(void)
33 _machine_restart
= adm8668_restart
;
36 const char *get_system_type(void)
38 unsigned long chipid
= ADM8668_CONFIG_REG(ADM8668_CR0
);
39 int product
, revision
;
42 product
= chipid
>> 16;
43 revision
= chipid
& 0xffff;
45 /* i getting fancy :\ */
46 snprintf(ret
, sizeof(ret
), "ADM%xr%x", product
, revision
);