Estoy trabajando con una mini computadora hecha a medida, basada en am335x . Viene con 2 puertos GPIO que utilizamos para proporcionar servicios a nuestros clientes.
Quiero cambiar uno de esos puertos específicos, que ya está conectado a un dispositivo específico, para usar un menú desplegable interno.
El puerto siempre tiene el valor 1 cuando no se proporciona voltaje, y necesito cambiarlo porque cuando ese dispositivo no proporciona voltaje, tiene el mismo estado interno que cuando proporciona 0V.
Esta es la información del pin específico:
root@be905g:~# cat /sys/kernel/debug/pinctrl/44e10800.pinmux/* | grep "pin 20"
pin 20 (44e10850.0)
pin 20 (44e10850.0): 48302180.eqep (GPIO UNCLAIMED) function pinmux_eqep1 group pinmux_eqep1
pin 20 (44e10850.0) 0000002e pinctrl-single
Vi que el valor "0x2e" asociado al pin debería ser "0x27".
Modifiqué el archivo DTS y lo volví a compilar, e incluso con 0x27 en la memoria, el puerto se comporta como un pull up.
He usado el comando:
mem_util 0x44e10850
y devolvió 0x27, pero aún así.
Así es como se ve la descripción del pin en el archivo ".dts" que descompilé del ".dtb" enviado:
pinmux_eqep1 {
pinctrl-single,pins = <0x50 0x2e 0x54 0x36>;
linux,phandle = <0x40>;
phandle = <0x40>;
};
fuente