GPIO pins SD pins as GPIO pins
-
@Nagarjuna-Reddy I can't test this right now, but first I think you need to remove the sdcard module as it will likely be managing the registers:
rmmod mtk_sd
Then I expect you can use the GPIO like so:
gpioctl dirout-high 22
gpioctl get 22
gpioctl dirout-low 22
gpioctl get 22cat /sys/class/gpio/gpio22/value
-
@crispyoz
gpio 22 not createdcd /sys/class/gpio/
root@Omega-6834:/sys/class/gpio# ls
export gpiochip0 gpiochip32 gpiochip64 unexport
root@Omega-6834:/sys/class/gpio# ls
export gpiochip0 gpiochip32 gpiochip64 unexporti enabled high gpio22, but voltages not showing.
-
@crispyoz said in GPIO pins SD pins as GPIO pins:
rmmod mtk_sd
Then I expect you can use the GPIO like so:
gpioctl dirout-high 22
gpioctl get 22
gpioctl dirout-low 22
gpioctl get 22
cat /sys/class/gpio/gpio22/valuevoltage always showing HIGH. LOW method not happening.
SD_WP_21 always showing HIGH(3.45V)
SD_CD_23 always showing HIGH(3.45V)
-
@crispyoz
Hi Sir, I hope you & your family safe,
last time i spoken with you regarding SD_CD pin 23 & SD_WD pin 22 make it as a gpio.
I got a reply from you but that solution not working.I am not able to control that Pins like (HIGH & LOW). Could you plz help me out to solve this problem?
-
@Nagarjuna-Reddy Thank you, I live in Sydney Australia so we are pretty safe here these days.
Can you give us the details of what process you are following to perform your testing, I think this is pretty much the same question I always have to ask you. It is easier to help when we have all the information in the beginning, instead of having to ask for it.
-
@crispyoz
hi, we have designed our customized onion board. our board is supporting the RS-485 connector. Modbus will work only when you are sending data before need to make it DE Gpio Pin as HIGH and receiving time before the need to make it RE Gpio pin as LOW. so DE & RE gpio pins we are tracked to SD_CD 23 & SD_WD 22 pin.for that I followed below steps:
rmmod mtk_sd
Then I expect you can use the GPIO like so:
gpioctl dirout-high 22
gpioctl get 22
gpioctl dirout-low 22
gpioctl get 22
cat /sys/class/gpio/gpio22/value
same way I did it GPIO SD-23 Pin.i did check using multimeter i got the below result. even when I turned-ON the board without done any changes also it's showing the same result.
voltage always showing HIGH. LOW method not happening.
SD_WP_22 always showing HIGH(3.45V)
SD_CD_23 always showing HIGH(3.45V)
-
@Nagarjuna-Reddy Pin multiplexing is controlled by the GPIO1_MODE register (the
omega2-ctrl
utility is an easy-to-use interface for changing the pin multiplexing settings but it doesn't include the SD pins)My suggestion is to use the
devmem
command to change the SD pin multiplexing setting togpio
in the GPIO1_MODE register, and then test changing the gpios.See the MT7688 datasheet for more info on the registers, and run
devmem --help
on the command line to see how to read the registers.Good luck!
-
Do we need to install
devmem
? It doesn't appear to be included by default...
Is there any easier way to use SDIO as GPIO from the terminal?
-
@Lazar-Demin
sir,
still, I am not able to control SD pins. I followed what u said.root@Omega-67FB:~# devmem 10000060 32 01
.
-
@Nagarjuna-Reddy Doesn't look like you're writing the correct value to the GPIO1_MODE register.
Take a look at the GPIO1_MODE register definition, you're probably interested in theSD_MODE
bit fields.