diff options
author | Sigrid Solveig Haflínudóttir <sigrid@ftrv.se> | 2022-08-18 04:43:35 +0000 |
---|---|---|
committer | Sigrid Solveig Haflínudóttir <sigrid@ftrv.se> | 2022-08-18 04:43:35 +0000 |
commit | 218d21f3b5743ddaddb7252b7088946a62b49244 (patch) | |
tree | c11deed7e7597128f7bb91824c5a0d2113ec5b2e /sys/src/cmd | |
parent | e54285994279ec9d144f5477db1db24a6acbea53 (diff) |
aux/wm8960: make jack detect work; enable thermal shutdown; fix fractional div part
Diffstat (limited to 'sys/src/cmd')
-rw-r--r-- | sys/src/cmd/aux/wm8960.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/src/cmd/aux/wm8960.c b/sys/src/cmd/aux/wm8960.c index 2ec96ab7b..ca0edb427 100644 --- a/sys/src/cmd/aux/wm8960.c +++ b/sys/src/cmd/aux/wm8960.c @@ -122,20 +122,23 @@ reset(void) 10<<0 | /* plln = int(f1/f2) */ 0 ); - k = 0x7654321; /* fractional part */ - wr(0x35, k>>18); - wr(0x36, k>>9); - wr(0x37, k); + k = 0xda0000; /* fractional part */ + wr(0x35, (k>>16) & 0xff); + wr(0x36, (k>>8) & 0xff); + wr(0x37, k & 0xff); wr(0x05, 0<<3); /* unmute DAC */ wr(0x06, 1<<3 | 1<<2); /* ramp up DAC volume slowly */ wr(0x07, 1<<6 | 2); /* master mode; i²s, 16-bit words, slave mode */ wr(0x08, 5<<6 | 9<<0); /* class D divider: sysclk/8; bclk = sysclk/12 */ + wr(0x17, 1<<8 | 1<<0); /* slow clock on; thermal shutdown on */ + wr(0x18, 1<<6); /* HP switch on; high = HP */ wr(0x19, 1<<7 | 1<<6); /* Vmid = playback, VREF on */ + wr(0x1b, 1<<3); /* HP_[LR] responsive to jack detect */ wr(0x22, 1<<8); /* L DAC to mixer */ wr(0x25, 1<<8); /* R DAC to mixer */ wr(0x2f, 3<<2); /* output mixer on */ - wr(0x30, 1<<1); /* Tsense on */ + wr(0x30, 2<<2 | 1<<1); /* JD2 jack detect; Tsense on */ wr(0x33, 5<<0); /* +5.1dB AC SPK boost - Reform's speakers can be too quiet */ /* sensible defaults */ |