[LEDE-DEV] extend support from Ubiquiti EdgeRouter X (UBNT-ERX) --> UBNT-ERX-SFP

Sven Roederer devel-sven at geroedel.de
Tue Sep 20 13:39:35 PDT 2016


Hi,

I had the chance to put my hands on a Ubiquiti EdgeRouter X-SFP.
I figured out that the I2C-Gpio-expander PCA9555a is controlling the PoE-output 
of the ports.

Based on the work for the ERx (https://git.lede-project.org/?
p=source.git;a=commit;h=4e31b2e8697c21f9bd6493bb3d78a4a41c6a9a52) I was able 
to access the PCA-chip with help of the "i2c-gpio" kerneldriver and 
enable the supply on the LAN-ports.
> [  231.690000] Custom GPIO-based I2C driver version 0.1.1
> [  231.700000] i2c-gpio i2c-gpio.0: using pins 3 (SDA) and 4 (SCL)

the i2c-tools can scan the bus and will find the PCA on the hardwired address
> root at lede:~# i2cdetect 0
> WARNING! This program can confuse your I2C bus, cause data loss and worse!
> I will probe file /dev/i2c-0.
> I will probe address range 0x03-0x77.
> Continue? [Y/n] y
>      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
> 00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
> 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> 20: -- -- -- -- -- 25 -- -- -- -- -- -- -- -- -- -- 
> 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> 70: -- -- -- -- -- -- -- --                         
> root at lede:~# 

Even the use of the I2C via GPIO is nice, I'd like to use the 
hardwarecontroller of the SoC via the "i2c-mt7621" module. But just insmoding  
it will not activate the controller.
After some research I found the I2C-controller disabled in the DTS. I did some 
changes to enable it by moding the DTS (https://github.com/SvenRoederer/lede-project_source/compare/add_UBNT-ERX...add_UBNT-ERX-SFP?expand=1).

The module loads and "activates" the hardware I2C-controller.
> i2c-mt7621 1e000900.i2c: clock 100KHz, re-start not support

but when scanning the bus with i2cdetect, I get total different results:
> root at lede:~# i2cdetect 0
> WARNING! This program can confuse your I2C bus, cause data loss and worse!
> I will probe file /dev/i2c-0.
> I will probe address range 0x03-0x77.
> Continue? [Y/n] y
>      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
> 00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
> 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> 30: 30 31 32 33 34 35 36 37 -- -- -- -- -- -- -- -- 
> 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> 50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 
> 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> 70: -- -- -- -- -- -- -- --                         

I assume the Controller-init is wrong or the i2c-mt7621 is using different 
pins.

Anyone has an idea, what's going on or how to debug this?

Thanks Sven



More information about the Lede-dev mailing list