How to change GPIO Driving Strength

Setup: with Radxa Zero, with Debian.

I will need the GPIO_PIN501 to control an OptiCoupler (think it as an LED if you are not familiar with hardware); When I set the pin level to “1” (by echo 1 to the /sys/class/gpio/gpio501), the voltage will exibiit 1.4v on the pin, which is much lower than the expected 3.3v.

If I remove the Opti-Coupler, the voltage goes to the 3.3V as expected.

As a comparison, on a RaspeberryPi-Zero, for the same case above, the pin voltage will always be 3.3V.

BTW, I also did another experiment – for any GPIO on Radxa-Zero when it’s set to “1”, if I connect an 10K resistor on it to GND, the pin voltage will be 1.65V; If I connect an 100K resistor to GND, the voltage will be 3.0V;
This somehow hints the GPIO on Radxa zero is being pulled up with a “10K resistor” to 3.3V.

This will severely impact the driving strength and not following normal IC’s pin design.
Is there any way to improve?

@Yuntian @Jack can anyone provide some viewpoint?

SoC has builtin pull-up/down resistor. You can check on page 28 of QRM, which specify a 60K resistor. I don’t recall we put any pull resistor on the board.

I was litterally referring to the SOC internal PU resisstors.

What is the default driving strength (DS) ? How to change the DS? Maybe I can start with that.

A gental hightlight

@Yuntian any feedback?