blob: 6d94a8e2e67a0563a228b1d2ba66a73c97674dd5 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * linux/arch/sh/boards/hp6xx/hp680/setup.c
3 *
4 * Copyright (C) 2002 Andriy Skulysh
5 *
6 * May be copied or modified under the terms of the GNU General Public
7 * License. See linux/COPYING for more information.
8 *
9 * Setup code for an HP680 (internal peripherials only)
10 */
11
12#include <linux/config.h>
13#include <linux/init.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070014#include <asm/io.h>
Paul Mundt00258352006-01-16 22:14:08 -080015#include <asm/hd64461.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070016#include <asm/hp6xx/hp6xx.h>
17#include <asm/cpu/dac.h>
18
19const char *get_system_type(void)
20{
Paul Mundt00258352006-01-16 22:14:08 -080021 return "HP6xx";
Linus Torvalds1da177e2005-04-16 15:20:36 -070022}
23
24int __init platform_setup(void)
25{
Paul Mundt00258352006-01-16 22:14:08 -080026 u8 v8;
Linus Torvalds1da177e2005-04-16 15:20:36 -070027 u16 v;
28 v = inw(HD64461_STBCR);
29 v |= HD64461_STBCR_SURTST | HD64461_STBCR_SIRST |
30 HD64461_STBCR_STM1ST | HD64461_STBCR_STM0ST |
31 HD64461_STBCR_SAFEST | HD64461_STBCR_SPC0ST |
32 HD64461_STBCR_SMIAST | HD64461_STBCR_SAFECKE_OST |
33 HD64461_STBCR_SAFECKE_IST;
Paul Mundt00258352006-01-16 22:14:08 -080034#ifndef CONFIG_HD64461_ENABLER
35 v |= HD64461_STBCR_SPC1ST;
36#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070037 outw(v, HD64461_STBCR);
38 v = inw(HD64461_GPADR);
39 v |= HD64461_GPADR_SPEAKER | HD64461_GPADR_PCMCIA0;
40 outw(v, HD64461_GPADR);
41
Paul Mundt00258352006-01-16 22:14:08 -080042 outw(HD64461_PCCGCR_VCC0 | HD64461_PCCSCR_VCC1, HD64461_PCC0GCR);
43
44#ifndef CONFIG_HD64461_ENABLER
45 outw(HD64461_PCCGCR_VCC0 | HD64461_PCCSCR_VCC1, HD64461_PCC1GCR);
46#endif
47
48 sh_dac_output(0, DAC_SPEAKER_VOLUME);
Linus Torvalds1da177e2005-04-16 15:20:36 -070049 sh_dac_disable(DAC_SPEAKER_VOLUME);
Paul Mundt00258352006-01-16 22:14:08 -080050 v8 = ctrl_inb(DACR);
51 v8 &= ~DACR_DAE;
52 ctrl_outb(v8,DACR);
Linus Torvalds1da177e2005-04-16 15:20:36 -070053
54 return 0;
55}