utility for pin in BBB: PX.Y --> pin_mode, pin_name

Nicola Mingotti nmingotti at gmail.com
Wed Aug 29 20:26:40 UTC 2018



On 08/29/18 20:46, Ian Lepore wrote:
> On Wed, 2018-08-29 at 20:01 +0200, Nicola Mingotti wrote:
>> Thank you for suggestion Russel,
>>
>> but unfortunately, at best of my knowldege,
>> $> man 3 gpio_open
>> and its shell command brother
>> $> man 8 gpioctl
>>
>> are not appropriate, they are useful only if a pin
>> has been configured as GPIO pin.
>>
>> The program i look for would be useful instead to esablish
>> which physical pin has been configured as GPIO pin or
>> PWM, PRU, I2C etc.
>>
>> I asked also in the Forum, but the only one aswering
>> (@Phishry) has given me your same suggestion.
>>
>> If nobody knows of such a program i will start the implementation,
>> maybe
>> tomorrow.
>>
>> bye
>> Nicola
>>
> Please bottom-post when replying to freebsd mailing lists.
ok !
> There is no interface defined for getting an fdt_pinctrl driver to
> return info about the current configuration. Even if such an interface
> existed, there would also need to be a new driver providing a cdev so
> that userland can access the information.
ok, no interface.
> There is also nothing in freebsd equivelent to the linux devmem2
> program. A driver would have to be written to provide access to device-
> mapped memory before such a program could be written. You can't access
> arm hardware registers via /dev/mem or /dev/kmem.
>
> -- Ian
I just compiled devmem2 and it seems to work. I did silly modifications.
The code is here: http://euriscom.it/data/dm2.c
(forget the first comment lines, they are poor, I did not intend to 
share this, it is my working copy)

if i run it:
---------------------------------
#> ./dm2 0x44e10998 b
/dev/mem opened.
Memory mapped at address 0x20221000.
Value at address 0x44E10998 (0x20221998): 0x5
---------------------------------

Whic corresponds to what i wrote in the DTO.
-----
            pru_pru_pins: pinmux_pru_pru_pins {
                       pinctrl-single,pins = <
                           // 0x1a4 0x05   /* P9.27 pr1_pru0_pru_r30_5, 
Mode 5 output pull-down   */
                           0x19c 0x26   /* P9.28 pr1_pru0_pru_r31_3, 
Mode 6 input pull-down    */
                           0x198 0x05    /* PRU0-2 -- P9.30 -- 
pr1_pru0_pru_r30_2 ... se in MODE-5  */
                           >;
                   };
-----

This is the only test i made but it seems improbable I got the same 
value by chance;)

It goes without saying that I don't understand all what i wrote,
so, i could be boldly wrong ;)

If it turns out it works let me know, i can make the port.

bye
n.





-- 
--------------------------
Dr. Nicola Mingotti
R&D - Borghi Srl
CTO - BondInsider
--------------------------



More information about the freebsd-arm mailing list