[PATCH 1/2] riscv: dts: spacemit: Add i2c buses on OrangePi RV2

Yao Zi me at ziyao.cc
Fri Dec 19 18:22:30 PST 2025


On Fri, Dec 19, 2025 at 07:29:24PM +0800, Yixun Lan wrote:
> Hi Iker,
> 
> thanks for pushing this, I have few comments
> 
> On 10:49 Thu 18 Dec     , Iker Pedrosa wrote:
> > Hi Michael, Yao, Javier, Johannes,
> > 
> > Thanks everyone for the great discussion and the guidance.

...

> > 2. Extend the pinctrl driver: support is needed for switching the SD
> > voltage pins from 3.3V to 1.8V.
> we probably could leave pinctrl for now or take a look at it later when
> really necessary,  the default pin settings should work for most cases,
> besides, vendor is also starting to drop two pinctrl state implementation
> (the normal vs fast ..)
> 
> for 3.3v to 1.8v switch, there is one MMC1_IO_REG to control it, and
> we do need to implement a _voltage_switch() function
> and it's in another aib io space..

Note the MMC1_IO_REG (0xd401_e81c) stays right in the Pad Configuration
region (0xd401_e000, length 0xc00) as stated in the address mapping of
TRM.

So it's not another io space, it's right the pin controller. This makes
me believe it's an undocumented pinctrl register, in which case it's
pretty natural to implement the switch logic through pinctrl interface.

Seems I forgot to mention one thing: there are mysterious "asfar" and
"assar" registers in APBC region which are written 0xbaba and 0xeb10
during voltage switch process.

I've looked through the TRM and found they aren't documented, either.
But handling of them should be easy, since the whole APBC region is
registered as a syscon, though it will still be helpful to know their
effects...

Regards,
Yao Zi



More information about the linux-riscv mailing list