Re: [PATCH v3] ARM: dts: bcm2711-rpi-cm4-io: Add rtc on a pinctrl-muxed i2c bus

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Uwe Kleine-König <uwe@xxxxxxxxxxxxxxxxx> (2021-12-31):
> The cm4-io board comes with an PCF85063. Add it to the device tree to make
> it usable. The i2c0 bus can use two different pinmux settings to use
> different pins. To keep the bus appearing on the usual pin pair (gpio0 +
> gpio1) use a pinctrl-muxed setting as the vendor dts does.
> 
> Note that if you modified the dts before to add devices to the i2c bus
> appearing on pins gpio0 + gpio1 (either directly in the dts or using an
> overlay), you have to put these into the i2c@0 node introduced here now.
> 
> Reviewed-by: Maxime Ripard <maxime@xxxxxxxxxx>
> Signed-off-by: Uwe Kleine-König <uwe@xxxxxxxxxxxxxxxxx>

Tested-by: Cyril Brulebois <cyril@xxxxxxxxxxx>


Test hardware:
 - 1 Compute Module 4 IO Board;
 - 1 GPIO Extension Board, plugged onto the 40-pin header (mainly used
   for its labels, to ensure I'm using the correct pins);
 - 1 Pimoroni 5x5 RGB LED matrix, plugged onto SDA0/SCL0 as exposed by
   the GPIO Extension Board (plus 3.3V/GND of course);
 - Debian 11 userspace.

With the updated DTB, and provided the right kernel modules have been
enabled (CONFIG_RTC_DRV_PCF85063, CONFIG_I2C_MUX_PINCTRL), the RTC comes
up automatically; I'm also able to use the relevant library to display a
rotating rainbow on the LED matrix while being able to read from / write
to the RTC:
  https://github.com/pimoroni/rgbmatrix5x5-python

In passing, I'm seeing the RTC exclusively on (userspace) i2c-2 while
I'm seeing the LED matrix on both (userspace) i2c-2 and i2c-3:

    # i2cdetect -y 2
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:                         -- -- -- -- 0c -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 2f 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- --                         
    
    # i2cdetect -y 3
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:                         -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- 74 -- -- --                         

Tweaking the library to use either of those makes the rotation rainbow
display successfully (via python3-smbus):

    self.i2c = smbus.SMBus(2)
    self.i2c = smbus.SMBus(3)


Cheers,
-- 
Cyril Brulebois -- Debian Consultant @ DEBAMAX -- https://debamax.com/

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux