diff options
Diffstat (limited to 'target/linux/adm8668/files-3.18/arch/mips/adm8668/setup.c')
-rw-r--r-- | target/linux/adm8668/files-3.18/arch/mips/adm8668/setup.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/target/linux/adm8668/files-3.18/arch/mips/adm8668/setup.c b/target/linux/adm8668/files-3.18/arch/mips/adm8668/setup.c new file mode 100644 index 0000000..b33c483 --- /dev/null +++ b/target/linux/adm8668/files-3.18/arch/mips/adm8668/setup.c @@ -0,0 +1,36 @@ +#include <linux/init.h> +#include <linux/reboot.h> + +#include <asm/reboot.h> +#include <adm8668.h> + +static void adm8668_restart(char *cmd) +{ + int i; + + /* the real deal */ + for (i = 0; i < 1000; i++) + ; + ADM8668_CONFIG_REG(ADM8668_CR1) = 1; +} + +void __init plat_mem_setup(void) +{ + _machine_restart = adm8668_restart; +} + +const char *get_system_type(void) +{ + unsigned long chipid = ADM8668_CONFIG_REG(ADM8668_CR0); + int product, revision; + static char ret[32]; + + product = chipid >> 16; + revision = chipid & 0xffff; + + /* i getting fancy :\ */ + snprintf(ret, sizeof(ret), "ADM%xr%x", product, revision); + + return ret; +} + |