P4080: attempting to use the uio_pdrv to attach FPGA on localbus ...

Robert Sciuk robert.sciuk at exfo.com
Thu Nov 17 08:19:51 EST 2011


I have succeeded in using the i2c bus with GPIO expander to access the programming pins of my FPGA devices, but the data port uses the localbus.  I had initially thought that the uio platform driver would be the ideal approach to creating a device which would allow configuration from userland via the /dev/uio[0|1] device interface, but apparently the device binding is not being accomplished as expected.  

	localbus at ffe124000 {
		compatible = "fsl,p4080-elbc", "fsl,elbc", "simple-bus";
		reg = <0xf 0xfe124000 0 0x1000>;
		interrupts = <25 2 0 0>;
		interrupt-parent = <&mpic>;
		#address-cells = <2>;
		#size-cells = <1>;

                /* Local bus region mappings */
                ranges = <0 0 0xf 0xe8000000 0x08000000 	/* CS0: Boot flash */
                          1 0 0xf 0xd0000000 0x8000 		/* CS1: FPGA0 */
                          2 0 0xf 0xd1000000 0x8000 >; 	/* CS2: FPGA1 */

		flash at 0,0 {
		  ........
            }; 

		lim: fpga at 1,0 {
			compatible = "uio_pdrv";
			pin-handle=<&lim_ctrl>;
		}; 

		nitro: fpga at 2,0 {
			compatible = "uio_pdrv";
			pin-handle=<&fpe0_ctrl &fpe1_ctrl>;
		}; 
	};

I have aliases pointing to the localbus nodes lim and nitro, but it appears that the uio_pdrv driver does not bind to the device based upon the compatible property of the tree.  I'm hoping to be able to mmap the localbus port memory (0xf_d000_0000 and 0xf_d100_0000) respectively when I open /dev/uio[0|1].  Is there additional driver registration needed in order to use the uio_pdrv driver?  What am I missing??

Any pointers would be appreciated.

Cheers,
Rob



More information about the devicetree-discuss mailing list