Skip to content

Commit 00f745e

Browse files
Infinoiddeadprogram
authored andcommitted
runtime/atsamd21: i2s initialization fixes
1 parent 5171618 commit 00f745e

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/machine/machine_atsamd21.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -877,29 +877,29 @@ func (i2s I2S) Configure(config I2SConfig) {
877877
// now set serializer data size.
878878
switch config.DataFormat {
879879
case I2SDataFormat8bit:
880-
i2s.Bus.SERCTRL1.SetBits(sam.I2S_SERCTRL_DATASIZE_8)
880+
i2s.Bus.SERCTRL1.SetBits(sam.I2S_SERCTRL_DATASIZE_8 << sam.I2S_SERCTRL_DATASIZE_Pos)
881881

882882
case I2SDataFormat16bit:
883-
i2s.Bus.SERCTRL1.SetBits(sam.I2S_SERCTRL_DATASIZE_16)
883+
i2s.Bus.SERCTRL1.SetBits(sam.I2S_SERCTRL_DATASIZE_16 << sam.I2S_SERCTRL_DATASIZE_Pos)
884884

885885
case I2SDataFormat24bit:
886-
i2s.Bus.SERCTRL1.SetBits(sam.I2S_SERCTRL_DATASIZE_24)
886+
i2s.Bus.SERCTRL1.SetBits(sam.I2S_SERCTRL_DATASIZE_24 << sam.I2S_SERCTRL_DATASIZE_Pos)
887887

888888
case I2SDataFormat32bit:
889889
case I2SDataFormatDefault:
890-
i2s.Bus.SERCTRL1.SetBits(sam.I2S_SERCTRL_DATASIZE_32)
890+
i2s.Bus.SERCTRL1.SetBits(sam.I2S_SERCTRL_DATASIZE_32 << sam.I2S_SERCTRL_DATASIZE_Pos)
891891
}
892892

893893
// set serializer slot adjustment
894894
if config.Standard == I2SStandardLSB {
895895
// adjust right
896896
i2s.Bus.SERCTRL1.ClearBits(sam.I2S_SERCTRL_SLOTADJ)
897+
898+
// transfer LSB first
899+
i2s.Bus.SERCTRL1.SetBits(sam.I2S_SERCTRL_BITREV)
897900
} else {
898901
// adjust left
899902
i2s.Bus.SERCTRL1.SetBits(sam.I2S_SERCTRL_SLOTADJ)
900-
901-
// reverse bit order?
902-
i2s.Bus.SERCTRL1.SetBits(sam.I2S_SERCTRL_BITREV)
903903
}
904904

905905
// set serializer mode.

0 commit comments

Comments
 (0)