Hi Brian
Thank you for the reply.
I'm still unsure about a couple of things:
For example in IMX8DQXPRM.pdf
i.MX 8DualX/8DualXPlus/8QuadXPlus Applications Processor Reference Manual, Rev. 0, 05/2020
9.2.5.1.104.2 Function
pad/mux control for SPI0_CS1
31 update_mux_mode update lock for mux control
write 1 to allow programming to mux control [29:19]
30 update_pad_ctl update lock for pad control
write 1 to allow programming to pad control [14-1:0]
29-27 mux_mode
100b - LSIO_GPIO1_IO07
With bits 31=0b, 30=0b and 29-27=100b that would be 0x20...
With bits 31=1b, 30=1b and 29-27=100b that would be 0xE0...
But the .dts that the Config Tools for i.MX generates is
- {pin_num: R35, peripheral: LSIO__GPIO1, signal: 'gpio_io, 07', pin_signal: SPI0_CS1, direction: OUTPUT, update_mux_mode: update_mux_mode_0}
SC_P_SPI0_CS1_LSIO_GPIO1_IO07 0x00000040
i.e. I've told the tool that for R35 I want
peripheral: LSIO__GPIO1, signal: 'gpio_io, 07'
but it gives me 0x00000040 rather than 0x20000040?
Do I need to do something else in the tool to make the tool give me 0x20... rather than 0x00... or do I always need to hand edit this?
Also, what does this mean:
31 update_mux_mode update lock for mux control
write 1 to allow programming to mux control
When do I need to use that?
Do I need to set that bit too in order for 29-27 mux_mode to actually work?
Or does that apply to a different situation?
I searched the doc for update_mux_mode but can't find anything that explains what "allow programming to mux control" actually means?
Thank you very much
-- Peter