summaryrefslogtreecommitdiff
path: root/sys/src/cmd
diff options
context:
space:
mode:
authorSigrid Solveig Haflínudóttir <sigrid@ftrv.se>2022-08-18 04:43:35 +0000
committerSigrid Solveig Haflínudóttir <sigrid@ftrv.se>2022-08-18 04:43:35 +0000
commit218d21f3b5743ddaddb7252b7088946a62b49244 (patch)
treec11deed7e7597128f7bb91824c5a0d2113ec5b2e /sys/src/cmd
parente54285994279ec9d144f5477db1db24a6acbea53 (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.c13
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 */