This is a cache of https://discuss.96boards.org/t/max14830-on-i2c-in-devicetree/10478. It is a snapshot of the page at 2024-10-31T01:49:25.636+0000.
MAX14830 on i2C in devicetree - Mezzanine Support - 96Boards Forum

MAX14830 on i2C in devicetree

Hello,

I’m trying to implement a component MAX14830 in the devicetree on i2C bus with the driver associated, but it does not work. I use i.MX6 processor. These are the hardware specs:

Converter reference: I2C / serial : MAX14830 (MAXIM IC)
Quad UART I2C, with 16 GPIO ;
Bus I2C : I2C3 ;
Interruption : IT_GPIO6, ->MX6QDL_PAD_GPIO_19__GPIO4_IO05
Adresses :
o UART0 and GPIO0 to GPIO3 @ 0x6C ;
o UART1 and GPIO4 to GPIO7 @ 0x5C ;
o UART2 and GPIO8 to GPIO11 @ 0x2C ;
o UART3 et GPIO12 to GPIO15 @ 0x1C.
Caractéristics :
Baudrate min : 600
Baudrate max : 460800
clock: 20Mhz

The componant creates four i2C adresses in i2c3 bus : (0x6c, 0x5c,0x2c,0x1c).
So, I have activated the driver in the kernel. And the following features in the devicetree:

clocks{
max14830_clock: clkmax14830{
compatible = “fixed-clock”;
#clock-cells = <0>;
clock-frequency = <20000000>;
};
};
&i2c3 {
max14830: max14830@0 {
compatible = “maxim,max14830”;
reg = <0x6c 0x5c 0x2c 0x1c>;// I don’t know if it’s correct
clocks = <&max14830_clock>;
clock-names = “osc”;// i don’t know if i have to use osc or mclk
interrupt-parent = <&gpio4>;// I think it’s gpio4
interrupts = <5 IRQ_TYPE_LEVEL_LOW>;//I think it’s IO 5
gpio-controller;
#gpio-cells = <2>;
};
};

kernel and devicetree compile, but in the operating system, driver and description seems to don’t work.
I based my devicetree on Documentation/devicetree/bindings/serial/maxim,max310x.txt - pub/scm/linux/kernel/git/stable/linux-stable - Git at Google

But in this doc, the componant max 14830 is only describe in spi bus. And nothing about how to declare it in i2c. If you have any idea, thanks ;-). Kind reguards.

It appears that the driver only implements SPI, so you’re either going to write the I2C support for the driver yourself, or use SPI, or give up.