blob: 98f1d15f0ab5e3a0a0b988bd634d3ab121ab4694 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef __ASM_CPU_SH3_DAC_H
2#define __ASM_CPU_SH3_DAC_H
3
4/*
5 * Copyright (C) 2003 Andriy Skulysh
6 */
7
8
9#define DADR0 0xa40000a0
10#define DADR1 0xa40000a2
11#define DACR 0xa40000a4
12#define DACR_DAOE1 0x80
13#define DACR_DAOE0 0x40
14#define DACR_DAE 0x20
15
16
17static __inline__ void sh_dac_enable(int channel)
18{
19 unsigned char v;
Paul Mundt9d56dd32010-01-26 12:58:40 +090020 v = __raw_readb(DACR);
Linus Torvalds1da177e2005-04-16 15:20:36 -070021 if(channel) v |= DACR_DAOE1;
22 else v |= DACR_DAOE0;
Paul Mundt9d56dd32010-01-26 12:58:40 +090023 __raw_writeb(v,DACR);
Linus Torvalds1da177e2005-04-16 15:20:36 -070024}
25
26static __inline__ void sh_dac_disable(int channel)
27{
28 unsigned char v;
Paul Mundt9d56dd32010-01-26 12:58:40 +090029 v = __raw_readb(DACR);
Linus Torvalds1da177e2005-04-16 15:20:36 -070030 if(channel) v &= ~DACR_DAOE1;
31 else v &= ~DACR_DAOE0;
Paul Mundt9d56dd32010-01-26 12:58:40 +090032 __raw_writeb(v,DACR);
Linus Torvalds1da177e2005-04-16 15:20:36 -070033}
34
35static __inline__ void sh_dac_output(u8 value, int channel)
36{
Paul Mundt9d56dd32010-01-26 12:58:40 +090037 if(channel) __raw_writeb(value,DADR1);
38 else __raw_writeb(value,DADR0);
Linus Torvalds1da177e2005-04-16 15:20:36 -070039}
40
41#endif /* __ASM_CPU_SH3_DAC_H */