Enable I2C, I2s, SPI in boot-config file?
#1
Hi, 

I wonder if someone can help me with this one: in the past I used a Raspberry Pi to run via the GPIOs a stepper motor. That required updating of the /boot/config.txt file (on the RPi) as follows:

Enable i2c, i2s and spi (only if not already enabled)

$ echo "dtparam=i2c_arm=on" >> /boot/config.txt

$ echo "dtparam=i2s=on" >> /boot/config.txt

$ echo "dtparam=spi=on" >> /boot/config.txt

$ echo "dtoverlay=pps-gpio,gpiopin=24" >> /boot/config.txt

I have not found in the boot directory of the Rock64 anything similar, and do not know whether required.

In this Forum I came across this thread on 

https://forum.pine64.org/showthread.php?tid=5331 which refers to a package RPi.GPIO-PineA64 package to configure the GPIOs. Is this something I should do to enable I2C, I2s and SPI?

Would really appreciate your help.

Thanks in advance, 

Helge
  Reply
#2
Helge, I have a similar problem. Have you figured out what you were hoping to achieve?
  Reply
#3
It seems that the way things are, the devices are not enablet right away. However, they can be enabled via "dts overlays", essentially additional changes to the internal "device tree" structure.

See https://github.com/ayufan-rock64/linux-b...al-devices

There is an example there of enabling a network interface. I found that I could enable the i2c-0 bus (the one on pins P3 and P5) by the following command, run as root:

enable_dtoverlay i2c0 [email protected] okay

where the names such as "[email protected]" are found in the device-tree-source file on the github repository:

https://github.com/ayufan-rock64/linux-k...k3328.dtsi

Now, note that a number of GPIOs are already in use for various other purposes (the SPI for exampe is used for an on-board memory chip) and might not be readily available.

To have this happen on startup, put it into /etc/rc.local
  Reply
#4
Hi,

starting with the info given in the post KnReLe, i write a little app in C++ that uses i2c0 bus. This works but requires the app to be executed as root. As i'm not a linux expert, i were looking for a solution and find the following so that this i2c bus could be used all the time outside root:

  1. create a user group (for instance i2cuser) and add rock64 (my user account) to the group 
       $sudo addgroup i2cuser   $sudo usermod -a -G i2cuser rock64
  2. create a script /usr/local/sbin/i2c0add.sh :
    Code:
    #!/bin/bash
    #script to add i2c-0 to the devices
    echo Create /dev/i2c-0
    enable_dtoverlay i2c0 [email protected] okay
    #change owner:group of /dev/i2c-0
    chown root:i2cuser /dev/i2c-0


  3. create a systemd service file /etc/systemd/system/i2c0add.service :
    Code:
    [Unit]
    Description=Service to create i2c0 device
    After=sockets.target

    [Service]
    Type=oneshot
    RemainAfterExit=no
    ExecStart=/usr/local/sbin/i2c0add.sh

    [Install]
    WantedBy=multi-user.target


  4. enable the execution of the service at startup:
      $sudo systemctl enable /etc/systemd/system/i2c0add.service
I hope that i did not forget something. I not sure that this is the best solution but this works.
In addition, linux version is 18.04 LTS (Bionic Beaver)
I am also looking for a solution for using the gpio lines as non root, but until now without success. 
If someone has a solution....



Regards
  Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
Bug u-boot (forks) status mcerveny 6 775 8 hours ago
Last Post: ayufan
  doesn't boot, no video cjyar 6 153 09-17-2019, 12:41 PM
Last Post: cjyar
  Hoe to Update Buildroot Package config from SDK build.sh file shivarj89 0 40 09-09-2019, 09:39 AM
Last Post: shivarj89
  Unable to boot from SPI stevefan1999 4 740 05-01-2019, 04:47 PM
Last Post: rhens1
  No Boot, Red Green and White flash at 1 sec intervals wesleykonrad 2 278 01-28-2019, 11:54 PM
Last Post: wesleykonrad
  boot priority - has precedence changed? jovval 1 650 09-22-2018, 02:02 AM
Last Post: mcerveny
  how to upgrade stock rom 8.1 on XZ file dhruan 4 484 07-05-2018, 11:15 PM
Last Post: dhruan
  suggested config for C++ programming pas059 6 605 07-05-2018, 02:22 AM
Last Post: pas059
  New User - No image file in LibreELEC download Frogmella 9 824 06-11-2018, 01:01 PM
Last Post: Frogmella
  New ROCK64 doesn't boot p3ntium 18 1,344 06-03-2018, 06:06 PM
Last Post: Rocklobster

Forum Jump:


Users browsing this thread: 1 Guest(s)