Skip to content

[D23] [DRIVERS] Add support for per-pinmux dependency on io-domain

This MR will fix the boot hang caused by this issue https://secogroup.atlassian.net/browse/EDGENG-140

Root problem: correct power supply configuration on the pins belonging to a certain io-domain. As was explained in commit, IO pins belonging to an IO domain need to have the IO domain correctly configured before they are being used otherwise they do not operate correctly. Each IO domain should be configured with voltage the IO pins will be operating on (1.8V or 3.3V).

Rockchip PX30 TRM: GRF_IO_VSEL offset (0x0180) bit [6:1]
root@seco-px30-d23:~# devmem2 0xFF140180
/dev/mem opened.
Memory mapped at address 0x7fa533c000.
Value at address 0xFF140180 (0x7fa533c180): 0x64
Rockchip PX30 TRM: PMUGRF_SOC_CON0 offset (0x0100): bit 14 (poc_pmuio1_sel18), bit 15 (poc_pmuio1_sel18),
root@seco-px30-d23:~# devmem2 0xff010100
/dev/mem opened.
Memory mapped at address 0x7f80a79000.
Value at address 0xFF010100 (0x7f80a79100): 0xA380

the bit voltage selection setting corresponds to the supply voltage according to the device tree configuration.

MR resolves the issue for I2C1(ff190000.i2c) only, as applying the same approach for I2C0(ff180000.i2c) will cause circular dependency: The PMIC resides on I2C0, and it also provides the regulator source for powering the io-domain, which owns the I2C0_SCL and I2C0_SDA pins.

Merge request reports