Post Go back to editing

ADRV9009-ZU11EG EMIO mapping

Hi,

I'm trying to get low level GPIO on the ZU11EG configured to be able to use FHM GPIO mode. The XDC file shown below shows the physical pin mapped to a net name. 

How do I map the physical pin on ZU11EG to an EMIO GPIO # in Linux? 

Have the EMIO GPIO for netname adrv9009_gpio_00_a (package pin AW7) already been assigned?  

Do I also have to add to the DeviceTree to map the GPIO? 

https://github.com/analogdevicesinc/hdl/blob/master/projects/adrv9009zu11eg/common/adrv9009zu11eg_constr.xdc

https://www.xilinx.com/html_docs/registers/ug1087/ug1087-zynq-ultrascale-registers.html

https://github.com/analogdevicesinc/linux/blob/master/drivers/gpio/gpio-zynq.c

I understand that the PS MIO pins are mapped to 0 to 77 and are fixed locations on the package.  The EMIO GPIO pins are mapped to 78 to 174 (3*32 = 96 GPIO) and are programmable where they show up. This is consistent with the linux driver code above. 

Here is what the kernel shows, which GPIO is being used and I can't thus export it.  For the GPIO that does not show up in this list, I can't tell if an EMIO GPIO# has been assigned already.  

root@analog:/sys/class/gpio# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-173, parent: platform/ff0a0000.gpio, zynqmp_gpio:
gpio-12 ( |sysfs ) in lo
gpio-13 ( |ulpi-phy-reset ) out hi
gpio-78 ( |BT0 ) in lo IRQ
gpio-79 ( |BT1 ) in lo IRQ
gpio-80 ( |BT2 ) in lo IRQ
gpio-81 ( |BT3 ) in lo IRQ
gpio-82 ( |SW0 ) in hi IRQ
gpio-83 ( |SW1 ) in hi IRQ
gpio-84 ( |SW2 ) in hi IRQ
gpio-85 ( |SW3 ) in hi IRQ
gpio-86 ( |led0:green ) out lo
gpio-87 ( |led1:green ) out lo
gpio-88 ( |led2:green ) out lo
gpio-89 ( |led3:green ) out lo
gpio-130 ( |reset ) out hi
gpio-156 ( |reset ) out hi
gpio-167 ( |sysref-req ) out hi
gpio-168 ( |plddrbypass ) in lo

Thanks, 

Nathan

Parents Reply
  • Hi!

    I am currently encountering a similar issue. The GPIO_0_A to GPIO_18_A pins belong to the ADRV9009. However, I intend to use these pins as general-purpose I/O (GPIO) from the FMC connector to my system. While I have correctly assigned the pin numbers, I am unable to observe the expected signals from these pins. Could you advise if I might be overlooking something or making an error in the configuration?

Children
No Data