Acivate I2C on AML-S805X-AC (La Frite)

Hi,

I’m using a aml-s805x-ac running raspbian. I’m trying to activate the i2c bus on pin 27 and pin 28 of the 40 pin header to commucicate with an other device over i2c. So far I haven’t been sucessful. Does anyone know how to active an use the i2c bus on the aml-s805x-ac?

Thanx for the help!

Have you tried applying the I2C-b overlay ?

There is one in the Library for the 805 from what I can see !

yes i applied the i2c-b overlay with the libretech wiring tool. It also show the meson i2c adapter on i2c-1 afterwards. But when i what to check the device adress of my i2c device I don’t see anything. do you know why the device is not detected? Im sure i have wired anything to the right pins…

thx for the help

Looks like it should be there ! Just make sure you have the SDA & SCL connected to the right pins.

What device are you trying to connect ?

Have you tried another i2c device ?

Also you could try i2c-ao and pins 3&5 ?

I checked the wiring several times, so I’m pretty sure it should be wired the right way.

I try to connect temperature measuring shield (RTD Data Acquisition 8-Layer Stackable HAT for Raspberry Pi).

Yes I just tried to connect a raspberry to the bus. But the same problem occures that the libre computer doesn’t detect any device

I also tried the i2c-ao but I’m not sure if the AML-S805X-AC (La Frite) support i2c functions at the pins 3 and 5. If you look at the pin out i2c function are not listed at pin 3 and 5 (AML-S805X-AC-V1.0A/B Headers - Google Tabellen)

I agree drawing doesn’t show but as its an official overlay I assume its correct.

libretech-wiring-tool/libre-computer/aml-s805x-ac/dt at master · libre-computer-project/libretech-wiring-tool (github.com)

  • Overlay aimed to enable I2C_AO on Header 7J1 :
  • Pins 3 (SDA), 5 (SCL)
    / { compatible = “libretech,aml-s805x-ac”, “amlogic,s805x”, “amlogic,meson-gxl”;

I would try a I2C device with just 4 pins V,Gnd,SDA & SCL (Tiny .96"OLED or shift registers are always useful & cheap) first to validate the functionality and you can always try swapping around your SDA & SCL connections just to make sure if not successful at first. You should be able to make the device work on both I2C ports after enabling appropriate overlay.

The pull-up for I2C might not be enabled. Does i2c-detect show every address?

Not sure. I have never done anything about the pull ups. But when I look on the lines with an scope one of the lines gets pulled up to 3.3v. however how would i enable the pullups if they are not already enabled?

The only adress that the i2c-detect shows is on i2c-0 (DesignWare HDMI). I’m not sure thats the right one. On the i2c-1 and i2c-2 which I activated, it doesn’t show anything. Even if i connect varoius i2c devices.

Do you have any idea why?

If you are on AML-S805X-AC, you need to use i2c-gpio as pin 3 and 5 are not hardware I2C per the schematic: GPIO Pin Header Maps and Wiring Tool for Libre Computer Boards

I am able to get I2C to work on pin 27 and 28 (on La Frite) by using and modifying i2c-b.dts. According to the spreadsheet pins 27 and 28 are GPIODV 24 and 25. And these two are i2c_A instead of i2c_B.

Open i2c-b.dts for aml-s805 (path: libretech-wiring-tool/libre-computer/aml-s805x-ac/dt/i2c-b.dts).
Modify these:

  • replace &i2c_b_pins to &i2c_a_pins.
  • replace “GPIODV_26”,“GPIODV_27” with “GPIODV_24”,“GPIODV_25”
  • replace <&i2c_B> in target of fragment@2 with <&i2c_A>.
  • save changes
  • delete i2c-b.dtbo if it is already generated
  • compile the entire library by executing: sudo make. This should only generate a new i2c-b.dtbo since we delete this in earlier step.
  • merge it: sudo ./ldto merge i2c-b
  • reboot the computer
  • once rebooted, issue i2cdetect -y 2. You should see your I2C device/s there.
    Hope I am not forgetting anything.

/*

  • Copyright (c) 2017 BayLibre, SAS.
  • Author: Neil Armstrong narmstrong@baylibre.com
  • SPDX-License-Identifier: (GPL-2.0+ OR MIT)
    */

/*

  • Overlay aimed to enable I2C_B on Header 7J1 :
  • Pins 27 (SDA), 28 (SCL)
    */

/dts-v1/;
/plugin/;

/ {
compatible = “libretech,aml-s805x-ac”, “amlogic,s805x”, “amlogic,meson-gxl”;

fragment@0 {
	target-path = "/aliases";

	__overlay__ {
		i2c2 = "/soc/cbus@c1100000/i2c@87c0";
	};
};

fragment@1 {
	target = <&i2c_a_pins>;

	__overlay__ {
		cfg {
			pins = "GPIODV_24", "GPIODV_25";
			bias-pull-up;
		};
	};
};

fragment@2 {
	target = <&i2c_A>;
	
	__overlay__ {
		status = "okay";
		pinctrl-0 = <&i2c_a_pins>;
		pinctrl-names = "default";
	};
};

};

1 Like

We have updated the overlays for AML-S805X-AC. We will add the I2C pull up into the next firmware update.