Hi Morimoto-san, On Thu, 10 Apr 2025 at 01:45, Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> wrote: > > > + /* SITMDRx */ > > > + if (is_play) { > > > + val = PCON | SYNCMD_LR | SYNCAC | TXSTP; > > > + if (msiof_flag_has(priv, MSIOF_FLAGS_NEED_DELAY)) > > > + val |= DTDL_1; > > > + > > > + msiof_write(priv, SITMDR1, val); > > > + > > > + val = BITLEN1(width); > > > + msiof_write(priv, SITMDR2, val | GRP); > > > + msiof_write(priv, SITMDR3, val); > > > + > > > > Don't you have to initialize SITMDR[123] unconditionally, as reception > > requires transmitting dummy data on R-Car (cfr. SPI_CONTROLLER_MUST_TX)? > > Good catch, but I added 1 restriction for MSIOF-I2S mode. > I have explained it on top of this driver. The restriction is > "MSIOF-I2S doesn't work as Clock/Frame Provider Mode". > So, dummy transmit for RX is not needed/assumed. > I think it is one of big-diff between MSIOF-SPI ? IC. Being just a mortal sound-noob, I didn't know what "Clock/Frame Provider Mode" means ;-) Oh, now I understand. I had missed completely that you are running MSIOF in slave mode. So everything should be fine. And /* SITSCR */ #define SITSCR_V(p, d) ((p << 8) + d) is unused, and can be removed. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds