xref: /linux/sound/ppc/burgundy.h (revision 1a59d1b8e05ea6ab45f7e18897de1ef0e6bc3da6)
1*1a59d1b8SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
21da177e4SLinus Torvalds /*
31da177e4SLinus Torvalds  * Driver for PowerMac Burgundy onboard soundchips
41da177e4SLinus Torvalds  * Copyright (c) 2001 by Takashi Iwai <tiwai@suse.de>
51da177e4SLinus Torvalds  *   based on dmasound.c.
61da177e4SLinus Torvalds  */
71da177e4SLinus Torvalds 
81da177e4SLinus Torvalds 
91da177e4SLinus Torvalds #ifndef __BURGUNDY_H
101da177e4SLinus Torvalds #define __BURGUNDY_H
111da177e4SLinus Torvalds 
1244deee12SRisto Suominen #define MASK_ADDR_BURGUNDY_INPBOOST (0x10 << 12)
131da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_INPSEL21 (0x11 << 12)
141da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_INPSEL3 (0x12 << 12)
151da177e4SLinus Torvalds 
161da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_GAINCH1 (0x13 << 12)
171da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_GAINCH2 (0x14 << 12)
181da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_GAINCH3 (0x15 << 12)
191da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_GAINCH4 (0x16 << 12)
201da177e4SLinus Torvalds 
211da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_VOLCH1 (0x20 << 12)
221da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_VOLCH2 (0x21 << 12)
231da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_VOLCH3 (0x22 << 12)
241da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_VOLCH4 (0x23 << 12)
251da177e4SLinus Torvalds 
2644deee12SRisto Suominen #define MASK_ADDR_BURGUNDY_CAPTURESELECTS (0x2A << 12)
271da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_OUTPUTSELECTS (0x2B << 12)
2844deee12SRisto Suominen #define MASK_ADDR_BURGUNDY_VOLMIX01 (0x2D << 12)
2944deee12SRisto Suominen #define MASK_ADDR_BURGUNDY_VOLMIX23 (0x2E << 12)
301da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_OUTPUTENABLES (0x2F << 12)
311da177e4SLinus Torvalds 
321da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_MASTER_VOLUME (0x30 << 12)
331da177e4SLinus Torvalds 
341da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES (0x60 << 12)
351da177e4SLinus Torvalds 
361da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_ATTENSPEAKER (0x62 << 12)
371da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_ATTENLINEOUT (0x63 << 12)
381da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_ATTENHP (0x64 << 12)
3944deee12SRisto Suominen #define MASK_ADDR_BURGUNDY_ATTENMONO (0x65 << 12)
4044deee12SRisto Suominen 
4144deee12SRisto Suominen #define MASK_ADDR_BURGUNDY_HOSTIFAD (0x78 << 12)
4244deee12SRisto Suominen #define MASK_ADDR_BURGUNDY_HOSTIFEH (0x79 << 12)
431da177e4SLinus Torvalds 
441da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_VOLCD (MASK_ADDR_BURGUNDY_VOLCH1)
451da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_VOLLINE (MASK_ADDR_BURGUNDY_VOLCH2)
461da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_VOLMIC (MASK_ADDR_BURGUNDY_VOLCH3)
471da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_VOLMODEM (MASK_ADDR_BURGUNDY_VOLCH4)
481da177e4SLinus Torvalds 
491da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_GAINCD (MASK_ADDR_BURGUNDY_GAINCH1)
501da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_GAINLINE (MASK_ADDR_BURGUNDY_GAINCH2)
511da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_GAINMIC (MASK_ADDR_BURGUNDY_GAINCH3)
521da177e4SLinus Torvalds #define MASK_ADDR_BURGUNDY_GAINMODEM (MASK_ADDR_BURGUNDY_VOLCH4)
531da177e4SLinus Torvalds 
541da177e4SLinus Torvalds 
551da177e4SLinus Torvalds /* These are all default values for the burgundy */
561da177e4SLinus Torvalds #define DEF_BURGUNDY_INPSEL21 (0xAA)
5744deee12SRisto Suominen #define DEF_BURGUNDY_INPSEL3_IMAC (0x0A)
5844deee12SRisto Suominen #define DEF_BURGUNDY_INPSEL3_PMAC (0x05)
591da177e4SLinus Torvalds 
601da177e4SLinus Torvalds #define DEF_BURGUNDY_GAINCD (0x33)
611da177e4SLinus Torvalds #define DEF_BURGUNDY_GAINLINE (0x44)
621da177e4SLinus Torvalds #define DEF_BURGUNDY_GAINMIC (0x44)
631da177e4SLinus Torvalds #define DEF_BURGUNDY_GAINMODEM (0x06)
641da177e4SLinus Torvalds 
6544deee12SRisto Suominen /* Remember: lowest volume here is 0x9B (155) */
661da177e4SLinus Torvalds #define DEF_BURGUNDY_VOLCD (0xCCCCCCCC)
671da177e4SLinus Torvalds #define DEF_BURGUNDY_VOLLINE (0x00000000)
681da177e4SLinus Torvalds #define DEF_BURGUNDY_VOLMIC (0x00000000)
691da177e4SLinus Torvalds #define DEF_BURGUNDY_VOLMODEM (0xCCCCCCCC)
701da177e4SLinus Torvalds 
7144deee12SRisto Suominen #define DEF_BURGUNDY_OUTPUTSELECTS (0x010F010F)
7244deee12SRisto Suominen #define DEF_BURGUNDY_OUTPUTENABLES (0x0100000A)
731da177e4SLinus Torvalds 
741da177e4SLinus Torvalds /* #define DEF_BURGUNDY_MASTER_VOLUME (0xFFFFFFFF) */ /* too loud */
751da177e4SLinus Torvalds #define DEF_BURGUNDY_MASTER_VOLUME (0xDDDDDDDD)
761da177e4SLinus Torvalds 
771da177e4SLinus Torvalds #define DEF_BURGUNDY_MORE_OUTPUTENABLES (0x7E)
781da177e4SLinus Torvalds 
791da177e4SLinus Torvalds #define DEF_BURGUNDY_ATTENSPEAKER (0x44)
801da177e4SLinus Torvalds #define DEF_BURGUNDY_ATTENLINEOUT (0xCC)
811da177e4SLinus Torvalds #define DEF_BURGUNDY_ATTENHP (0xCC)
821da177e4SLinus Torvalds 
8344deee12SRisto Suominen /* MORE_OUTPUTENABLES bits */
841da177e4SLinus Torvalds #define BURGUNDY_OUTPUT_LEFT	0x02
851da177e4SLinus Torvalds #define BURGUNDY_OUTPUT_RIGHT	0x04
8644deee12SRisto Suominen #define BURGUNDY_LINEOUT_LEFT	0x08
8744deee12SRisto Suominen #define BURGUNDY_LINEOUT_RIGHT	0x10
8844deee12SRisto Suominen #define BURGUNDY_HP_LEFT	0x20
8944deee12SRisto Suominen #define BURGUNDY_HP_RIGHT	0x40
901da177e4SLinus Torvalds #define BURGUNDY_OUTPUT_INTERN	0x80
911da177e4SLinus Torvalds 
9244deee12SRisto Suominen /* Headphone detection bits */
9344deee12SRisto Suominen #define BURGUNDY_HPDETECT_PMAC_BACK	0x04
9444deee12SRisto Suominen #define BURGUNDY_HPDETECT_IMAC_SIDE	0x04
9544deee12SRisto Suominen #define BURGUNDY_HPDETECT_IMAC_UPPER	0x08
9644deee12SRisto Suominen #define BURGUNDY_HPDETECT_IMAC_LOWER	0x01
9744deee12SRisto Suominen 
9844deee12SRisto Suominen /* Volume offset */
991da177e4SLinus Torvalds #define BURGUNDY_VOLUME_OFFSET	155
1001da177e4SLinus Torvalds 
1011da177e4SLinus Torvalds #endif /* __BURGUNDY_H */
102