ReneHaren
Posts: 11
Joined: Sun Jul 19, 2015 12:43 pm

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Wed Jul 22, 2015 6:09 am

Thanks for the help.

I will reinstall the CMIO.And start from there.
my goal is to build a 360 streaming CMIO device.
Bassed on two F-theta lenses, like the Ricoh M15 one.
I'm computer engineer :oops: , but whos answers his one question by a /
:D

To be continued, this evening at a Hackerspaces event.

ReneHaren
Posts: 11
Joined: Sun Jul 19, 2015 12:43 pm

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Fri Jul 24, 2015 6:47 am

Jipy

It workt for my!

supported=2 detected=2

Thanks so good so far.

And space to move on

Code: Select all

Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/root        3630924 765720   2667480  23% /
devtmpfs          185824      0    185824   0% /dev
tmpfs              38020    236     37784   1% /run
tmpfs               5120      0      5120   0% /run/lock
tmpfs              76020      0     76020   0% /run/shm
/dev/mmcblk0p1     57288  20024     37264  35% /boot

ShiftPlusOne
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6291
Joined: Fri Jul 29, 2011 5:36 pm
Location: The unfashionable end of the western spiral arm of the Galaxy

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Fri Jul 24, 2015 6:53 am

Excellent! Was it just the rpi-update that was needed?

ReneHaren
Posts: 11
Joined: Sun Jul 19, 2015 12:43 pm

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Fri Jul 24, 2015 7:19 am

Yes the update of the image, and afterwards the dt-blob-dualcam.dts file of the document page.
So not altanative addjustment.

Now streaming vlc two dual cam's!

whizkid77
Posts: 8
Joined: Mon Sep 28, 2015 7:33 pm
Location: San Francisco

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Mon Sep 28, 2015 7:37 pm

Hi, first post here.

Just to confirm, the documentation on https://www.raspberrypi.org/documentati ... -camera.md is correct. Only rpi-update is needed.

Initially CAM1 did not work as other users had reported. GPIO 4 and 5 did work with a dim LED on the camera. But after I ran "sudo rpi-update", GPIO 2 and 3 work just fine now.

debjyoti0891
Posts: 3
Joined: Wed Oct 14, 2015 6:27 am

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Wed Oct 14, 2015 6:46 am

I am getting the following error when trying to use cam select 1.

Code: Select all

raspivid -cs 1 -d
mmal: Could not select camera : error 3
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates
Using cs 0 works with both raspistill and raspivid. I am using the dt-blob-dualcam.dts from the official documentation page. The connections that I am using :-
  • GPIO0: CD1_SDA
    GPIO1: CD1_SCL
    GPIO2: CAM1_IO1
    GPIO3: CAM1_IO0


    GPIO28: CD0_SDA
    GPIO29: CD0_SCL
    GPIO30: CAM0_IO1
    GPIO31: CAM0_IO0
sudo raspi-gpio get

Code: Select all

BANK0 (GPIO 0 to 27):
  GPIO 00: level=1 fsel=0 alt=  func=INPUT
  GPIO 01: level=1 fsel=0 alt=  func=INPUT
  GPIO 02: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 03: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 04: level=1 fsel=0 alt=  func=INPUT
  GPIO 05: level=1 fsel=0 alt=  func=INPUT
  GPIO 06: level=1 fsel=0 alt=  func=INPUT
  GPIO 07: level=1 fsel=0 alt=  func=INPUT
  GPIO 08: level=1 fsel=0 alt=  func=INPUT
  GPIO 09: level=0 fsel=0 alt=  func=INPUT
  GPIO 10: level=0 fsel=0 alt=  func=INPUT
  GPIO 11: level=0 fsel=0 alt=  func=INPUT
  GPIO 12: level=0 fsel=0 alt=  func=INPUT
  GPIO 13: level=0 fsel=0 alt=  func=INPUT
  GPIO 14: level=0 fsel=0 alt=  func=INPUT
  GPIO 15: level=0 fsel=0 alt=  func=INPUT
  GPIO 16: level=0 fsel=0 alt=  func=INPUT
  GPIO 17: level=0 fsel=0 alt=  func=INPUT
  GPIO 18: level=0 fsel=0 alt=  func=INPUT
  GPIO 19: level=0 fsel=0 alt=  func=INPUT
  GPIO 20: level=0 fsel=0 alt=  func=INPUT
  GPIO 21: level=0 fsel=0 alt=  func=INPUT
  GPIO 22: level=0 fsel=0 alt=  func=INPUT
  GPIO 23: level=0 fsel=0 alt=  func=INPUT
  GPIO 24: level=0 fsel=0 alt=  func=INPUT
  GPIO 25: level=0 fsel=0 alt=  func=INPUT
  GPIO 26: level=0 fsel=0 alt=  func=INPUT
  GPIO 27: level=0 fsel=0 alt=  func=INPUT
BANK1 (GPIO 28 to 45):
  GPIO 28: level=1 fsel=0 alt=  func=INPUT
  GPIO 29: level=1 fsel=0 alt=  func=INPUT
  GPIO 30: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 31: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 32: level=0 fsel=0 alt=  func=INPUT
  GPIO 33: level=0 fsel=0 alt=  func=INPUT
  GPIO 34: level=1 fsel=0 alt=  func=INPUT
  GPIO 35: level=1 fsel=0 alt=  func=INPUT
  GPIO 36: level=1 fsel=0 alt=  func=INPUT
  GPIO 37: level=0 fsel=0 alt=  func=INPUT
  GPIO 38: level=0 fsel=0 alt=  func=INPUT
  GPIO 39: level=0 fsel=0 alt=  func=INPUT
  GPIO 40: level=0 fsel=0 alt=  func=INPUT
  GPIO 41: level=0 fsel=0 alt=  func=INPUT
  GPIO 42: level=0 fsel=0 alt=  func=INPUT
  GPIO 43: level=0 fsel=0 alt=  func=INPUT
  GPIO 44: level=0 fsel=0 alt=  func=INPUT
  GPIO 45: level=0 fsel=0 alt=  func=INPUT
BANK2 (GPIO 46 to 53):
  GPIO 46: level=0 fsel=0 alt=  func=INPUT
  GPIO 47: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 48: level=1 fsel=7 alt=3 func=SD1_CLK
  GPIO 49: level=1 fsel=7 alt=3 func=SD1_CMD
  GPIO 50: level=1 fsel=7 alt=3 func=SD1_DAT0
  GPIO 51: level=1 fsel=7 alt=3 func=SD1_DAT1
  GPIO 52: level=1 fsel=7 alt=3 func=SD1_DAT2
  GPIO 53: level=1 fsel=7 alt=3 func=SD1_DAT3
uname -a

Code: Select all

Linux raspberrypi 4.1.10+ #821 PREEMPT Sat Oct 10 00:12:23 BST 2015 armv6l GNU/Linux

Code: Select all

vcgencmd version
Oct 11 2015 16:21:59 
Copyright (c) 2012 Broadcom
version cdea693c2a4280e4855643dc7840392d915f19b8 (clean) (release)

Code: Select all

vcgencmd get_camera
supported=2 detected=1
Attachments
dtc_proc_device_tree_and_blob.tar.gz
'dtc -I fs /proc/device-tree and dt-blob.bin
(3.51 KiB) Downloaded 109 times

whizkid77
Posts: 8
Joined: Mon Sep 28, 2015 7:33 pm
Location: San Francisco

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Wed Oct 14, 2015 4:31 pm

debjyoti0891 wrote:I am getting the following error when trying to use cam select 1.

Code: Select all

raspivid -cs 1 -d
mmal: Could not select camera : error 3
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

Code: Select all

vcgencmd get_camera
supported=2 detected=1
Can you post your /boot/config.txt and /etc/modprobe.d/raspi-blacklist.conf file? Make sure i2c is disabled.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 10586
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Wed Oct 14, 2015 7:09 pm

All looks OK on the config front.
I'd guess either you've got a duff camera module or cabling, or you've used the display adapter instead of a camera one for the second camera.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

debjyoti0891
Posts: 3
Joined: Wed Oct 14, 2015 6:27 am

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Fri Oct 16, 2015 3:07 am

I have removed the camera plugged in at CAM0(along with the ribbons) of the rpi cm and put it in the CAM1 port and it works flawlessly and hence camera and ribbons are working.

Whenever I plug in the camera to CAM0 port, the LED of the camera glows quite bright and it stays ON. However, for CAM1, the LED glows whenever the camera is being accessed, otherwise remains OFF, which is the right behaviour, I suppose. What can be the reason for this? Kindly help.


/boot/config.txt

Code: Select all

# For more options and information see 
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

start_x=1
gpu_mem=128
/etc/modprobe.d does not have a raspi-blacklist.conf file.

Code: Select all

ls /etc/modprobe.d/
alsa-base-blacklist.conf  alsa-base.conf  fbdev-blacklist.conf  ipv6.conf
lsmod

Code: Select all

Module                  Size  Used by
ctr                     4001  2 
ccm                     8278  2 
snd_bcm2835            22339  3 
snd_pcm                92573  1 snd_bcm2835
snd_seq                62040  0 
snd_seq_device          5130  1 snd_seq
snd_timer              23456  2 snd_pcm,snd_seq
snd                    68161  11 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
arc4                    1972  2 
rt2800usb              18922  0 
rt2800lib              82001  1 rt2800usb
rt2x00usb              11926  1 rt2800usb
rt2x00lib              47841  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              623128  3 rt2x00lib,rt2x00usb,rt2800lib
cfg80211              501663  2 mac80211,rt2x00lib
joydev                  9909  0 
evdev                  11354  6 
crc_ccitt               1620  1 rt2800lib
rfkill                 22491  2 cfg80211
bcm2835_gpiomem         3703  0 
uio_pdrv_genirq         3690  0 
uio                    10009  1 uio_pdrv_genirq

whizkid77
Posts: 8
Joined: Mon Sep 28, 2015 7:33 pm
Location: San Francisco

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Fri Oct 16, 2015 4:40 am

I've compared your configs to mine and I don't spot any relevant differences. You do have more recent firmware than me though, and I'm not sure why some GPIO levels (assuming they are pull up/down) are different if you used the official provided dualcam dts. Here's me:

Code: Select all


pi@raspberrypi /boot $ uname -a
Linux raspberrypi 4.1.10+ #820 PREEMPT Sun Oct 4 15:33:59 BST 2015 armv6l GNU/Linux
pi@raspberrypi /boot $ sudo raspi-gpio get
BANK0 (GPIO 0 to 27):
  GPIO 00: level=1 fsel=0 alt=  func=INPUT
  GPIO 01: level=1 fsel=0 alt=  func=INPUT
  GPIO 02: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 03: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 04: level=1 fsel=0 alt=  func=INPUT
  GPIO 05: level=1 fsel=0 alt=  func=INPUT
  GPIO 06: level=1 fsel=0 alt=  func=INPUT
  GPIO 07: level=1 fsel=0 alt=  func=INPUT
  GPIO 08: level=0 fsel=0 alt=  func=INPUT
  GPIO 09: level=0 fsel=0 alt=  func=INPUT
  GPIO 10: level=0 fsel=0 alt=  func=INPUT
  GPIO 11: level=0 fsel=0 alt=  func=INPUT
  GPIO 12: level=0 fsel=0 alt=  func=INPUT
  GPIO 13: level=0 fsel=0 alt=  func=INPUT
  GPIO 14: level=1 fsel=0 alt=  func=INPUT
  GPIO 15: level=1 fsel=0 alt=  func=INPUT
  GPIO 16: level=0 fsel=0 alt=  func=INPUT
  GPIO 17: level=0 fsel=0 alt=  func=INPUT
  GPIO 18: level=1 fsel=0 alt=  func=INPUT
  GPIO 19: level=0 fsel=0 alt=  func=INPUT
  GPIO 20: level=0 fsel=0 alt=  func=INPUT
  GPIO 21: level=0 fsel=0 alt=  func=INPUT
  GPIO 22: level=0 fsel=0 alt=  func=INPUT
  GPIO 23: level=0 fsel=0 alt=  func=INPUT
  GPIO 24: level=0 fsel=0 alt=  func=INPUT
  GPIO 25: level=1 fsel=0 alt=  func=INPUT
  GPIO 26: level=0 fsel=0 alt=  func=INPUT
  GPIO 27: level=0 fsel=0 alt=  func=INPUT
BANK1 (GPIO 28 to 45):
  GPIO 28: level=1 fsel=0 alt=  func=INPUT
  GPIO 29: level=1 fsel=0 alt=  func=INPUT
  GPIO 30: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 31: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 32: level=0 fsel=0 alt=  func=INPUT
  GPIO 33: level=0 fsel=0 alt=  func=INPUT
  GPIO 34: level=1 fsel=0 alt=  func=INPUT
  GPIO 35: level=1 fsel=0 alt=  func=INPUT
  GPIO 36: level=1 fsel=0 alt=  func=INPUT
  GPIO 37: level=0 fsel=0 alt=  func=INPUT
  GPIO 38: level=0 fsel=0 alt=  func=INPUT
  GPIO 39: level=0 fsel=0 alt=  func=INPUT
  GPIO 40: level=0 fsel=0 alt=  func=INPUT
  GPIO 41: level=0 fsel=0 alt=  func=INPUT
  GPIO 42: level=0 fsel=0 alt=  func=INPUT
  GPIO 43: level=0 fsel=0 alt=  func=INPUT
  GPIO 44: level=1 fsel=6 alt=2 func=SDA1
  GPIO 45: level=1 fsel=6 alt=2 func=SCL1
BANK2 (GPIO 46 to 53):
  GPIO 46: level=1 fsel=0 alt=  func=INPUT
  GPIO 47: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 48: level=0 fsel=7 alt=3 func=SD1_CLK
  GPIO 49: level=1 fsel=7 alt=3 func=SD1_CMD
  GPIO 50: level=1 fsel=7 alt=3 func=SD1_DAT0
  GPIO 51: level=1 fsel=7 alt=3 func=SD1_DAT1
  GPIO 52: level=1 fsel=7 alt=3 func=SD1_DAT2
  GPIO 53: level=1 fsel=7 alt=3 func=SD1_DAT3


Check your jumper wire connections again, and possibly replace the jumper wires...or buy another cm devkit to rule out hardware issues :( ?

debjyoti0891
Posts: 3
Joined: Wed Oct 14, 2015 6:27 am

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Fri Oct 16, 2015 5:37 am

The jumper wires are working fine. Tested it with the other connection and it went smoothly. Can anyone tell me how can I check whether the pins SDA/SCL are working correctly? And what can be the reason for the LED being ON all the time for CAM0?

The first RPi CM that I had got from Element14 was not even being detected by my laptop and had to be replaced. And now in this one, CAM0 is not showing up :cry:

Maykef
Posts: 40
Joined: Sun Mar 08, 2015 9:07 pm

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Tue Dec 08, 2015 5:46 pm

Guys!

I can detect both cameras, and also trigger them separately. But I cannot make them work at the same time!

Piper513
Posts: 5
Joined: Fri Dec 18, 2015 11:07 pm

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Fri Dec 18, 2015 11:13 pm

Hello!

I appreciate everyone capturing the work required to get CAM1 working w/ the CMIO board. After following the instruction here, I continue to get errors that the camera component cannot be found. I suspect that this is because I actually do need I2C enabled for another sensor.

If someone has gotten CAM1 + an I2C device to work on the CMIO board, could you post a list of steps you did to make this work? I am pretty much at my wits end trying to figure out what I'm doing wrong.

Thank you for the help!

Piper513
Posts: 5
Joined: Fri Dec 18, 2015 11:07 pm

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Tue Dec 22, 2015 3:07 pm

I got my issue resolved and have a camera board and an I2C device working with the CMIO board.

I moved from Wheezy to Jessie, and then apt-get upgrade to make sure I had latest Raspbian. I believe some of the issue I was having was related to using out of date OS. Also, It seems that CAM0 and CAM1 is not the same as camera port 0 and camera port 1. I changed pin_define@CAMERA_0_LED and pin_define@CAMERA_0_SHUTDOWN from 2 & 3 to 4 & 5 as others suggested and all works fine, even though I am plugged into CAM1 port on the CMIO.

Hope this is helpful to someone!

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 10586
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Tue Dec 22, 2015 3:39 pm

Piper513 wrote:Also, It seems that CAM0 and CAM1 is not the same as camera port 0 and camera port 1.
The lines:

Code: Select all

pin_define@CAMERA_0_UNICAM_PORT { type = "internal"; number = <1>; };
...
pin_define@CAMERA_1_UNICAM_PORT { type = "internal"; number = <0>; };
dictate which logical camera number go to which physical connector.
Piper513 wrote: I changed pin_define@CAMERA_0_LED and pin_define@CAMERA_0_SHUTDOWN from 2 & 3 to 4 & 5 as others suggested and all works fine, even though I am plugged into CAM1 port on the CMIO.
Shouldn't be necessary UNLESS you enable I2C for the Linux kernel (eg i2c_arm=on in boot/config.txt), as that will use GPIOs 2&3 by default and change the pin muxing accordingly. You needed it, and therefore MUST move it to alternate GPIOs (eg GPIOs 4&5) or get the kernel to mux i2c-1 to appear on one of the other sets of pins (IIRC 44&45 are the other possibility)
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

Grove Zheng
Posts: 4
Joined: Fri Jun 20, 2014 11:41 am

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Mon Apr 04, 2016 1:40 am

Had the same problem with CAM1 on the CM dev kit from Element14 (ordered October 2014). CAM0 worked fined following the official procedure.

Noticed that the received I/O board had a single jumper on J3 VG1 3V3 but no jumper placed on VG0 select (original shipment.)

Find a jumper, place it on VG0 3V3 and reboot, CAM1 comes alive. Move the jumper to VG0 1V8, CAM1 still works.

If both jumpers on VG0 and VG1 are in fact required for dual cam to work, should it be documented somewhere?

YousefMSAK
Posts: 15
Joined: Thu Mar 31, 2016 10:29 am

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Mon Apr 04, 2016 12:30 pm

Hello, so I've followed as much as I could in this thread to find a solution to my problem, but no such luck.
Right now I'm trying to get at least one camera running until a second camera adapter arrives, but it refuses to get detected.

I did vcgencmd get_camera it and it tells me:
[code]supported=2 detected=0[/code]

Doesn't matter if I put the camera into CAM0 or CAM1, it did not work, I still get this error:
[code]mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera' (1:ENOMEM)
mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1)
mmal: Failed to create camera component
mmal: main: Failed to create camera component[/code]

I followed the official documentation: (downloaded the blob, enabled camera, set pins)
https://www.raspberrypi.org/documentati ... -camera.md
After that didn't work I tried messing around with dt-blob pins, updated with rpi-update, tried PINs 4 and 5 instead of 2 and 3.
I thought the camera was busted, but when I put it on a RPi B+ it worked, I changed the camera regardless, but it still did not even detect it.

Right now, I re-flashed the Pi Compute with Jessie Lite,
did the update, and upgrade,
followed the documentation instructions to activate and install the camera,
I am using the dt-blob.bin that was downloaded from the same official instruction site, and did not modify it.

Here is the setup I'm using:
https://drive.google.com/open?id=0BwZ6_ ... GxNeDQ2dHM

Above image: There are too many duplicate colored wires that might seem confusing, but I assure you I've re-rechecked them, they are connected as was instructed on the site.

At the start of this thread you've asked to include some things so I'm posting them below:-
Output of sudo raspi-gpio get
[code]GPIO 00: level=1 fsel=0 alt= func=INPUT
GPIO 01: level=1 fsel=0 alt= func=INPUT
GPIO 02: level=0 fsel=1 alt= func=OUTPUT
GPIO 03: level=0 fsel=1 alt= func=OUTPUT
GPIO 04: level=1 fsel=0 alt= func=INPUT
GPIO 05: level=1 fsel=0 alt= func=INPUT
GPIO 06: level=1 fsel=0 alt= func=INPUT
GPIO 07: level=1 fsel=0 alt= func=INPUT
GPIO 08: level=1 fsel=0 alt= func=INPUT
GPIO 09: level=0 fsel=0 alt= func=INPUT
GPIO 10: level=0 fsel=0 alt= func=INPUT
GPIO 11: level=0 fsel=0 alt= func=INPUT
GPIO 12: level=0 fsel=0 alt= func=INPUT
GPIO 13: level=0 fsel=0 alt= func=INPUT
GPIO 14: level=1 fsel=4 alt=0 func=TXD0
GPIO 15: level=1 fsel=4 alt=0 func=RXD0
GPIO 16: level=0 fsel=0 alt= func=INPUT
GPIO 17: level=0 fsel=0 alt= func=INPUT
GPIO 18: level=0 fsel=0 alt= func=INPUT
GPIO 19: level=0 fsel=0 alt= func=INPUT
GPIO 20: level=0 fsel=0 alt= func=INPUT
GPIO 21: level=0 fsel=0 alt= func=INPUT
GPIO 22: level=0 fsel=0 alt= func=INPUT
GPIO 23: level=0 fsel=0 alt= func=INPUT
GPIO 24: level=0 fsel=0 alt= func=INPUT
GPIO 25: level=0 fsel=0 alt= func=INPUT
GPIO 26: level=0 fsel=0 alt= func=INPUT
GPIO 27: level=0 fsel=0 alt= func=INPUT
BANK1 (GPIO 28 to 45):
GPIO 28: level=1 fsel=0 alt= func=INPUT
GPIO 29: level=1 fsel=0 alt= func=INPUT
GPIO 30: level=0 fsel=1 alt= func=OUTPUT
GPIO 31: level=0 fsel=1 alt= func=OUTPUT
GPIO 32: level=0 fsel=0 alt= func=INPUT
GPIO 33: level=0 fsel=0 alt= func=INPUT
GPIO 34: level=1 fsel=0 alt= func=INPUT
GPIO 35: level=1 fsel=0 alt= func=INPUT
GPIO 36: level=1 fsel=0 alt= func=INPUT
GPIO 37: level=0 fsel=0 alt= func=INPUT
GPIO 38: level=0 fsel=0 alt= func=INPUT
GPIO 39: level=0 fsel=0 alt= func=INPUT
GPIO 40: level=0 fsel=0 alt= func=INPUT
GPIO 41: level=0 fsel=0 alt= func=INPUT
GPIO 42: level=0 fsel=0 alt= func=INPUT
GPIO 43: level=0 fsel=0 alt= func=INPUT
GPIO 44: level=0 fsel=0 alt= func=INPUT
GPIO 45: level=0 fsel=0 alt= func=INPUT
BANK2 (GPIO 46 to 53):
GPIO 46: level=0 fsel=0 alt= func=INPUT
GPIO 47: level=0 fsel=1 alt= func=OUTPUT
GPIO 48: level=0 fsel=4 alt=0 func=SD0_CLK
GPIO 49: level=1 fsel=4 alt=0 func=SD0_CMD
GPIO 50: level=1 fsel=4 alt=0 func=SD0_DAT0
GPIO 51: level=1 fsel=4 alt=0 func=SD0_DAT1
GPIO 52: level=1 fsel=4 alt=0 func=SD0_DAT2
GPIO 53: level=1 fsel=4 alt=0 func=SD0_DAT3
[/code]

Output of dtc -I fs /proc/device-tree
[code]Warning (avoid_default_addr_size): Relying on default #address-cells value for /axi/vc_mem
Warning (avoid_default_addr_size): Relying on default #size-cells value for /axi/vc_mem
/dts-v1/;

/ {
model = "Raspberry Pi Compute Module Rev 1.0";
compatible = "brcm,bcm2708";
memreserve = <0x18000000 0x8000000>;
#address-cells = <0x1>;
#size-cells = <0x1>;
interrupt-parent = <0x1>;

axi {

dma {
broadcom,channels = <0x7f35>;
};

usb {

hub {

ethernet {
mac-address = [b8 27 eb c5 ee 70];
};
};
};

vc_mem {
reg = <0x1ec00000 0x20000000 0x40000000>;
};
};

soc {
compatible = "simple-bus";
ranges = <0x7e000000 0x20000000 0x1000000>;
#address-cells = <0x1>;
phandle = <0x1f>;
#size-cells = <0x1>;
linux,phandle = <0x1f>;

fb {
compatible = "brcm,bcm2708-fb";
firmware = <0x11>;
status = "okay";
phandle = <0x27>;
linux,phandle = <0x27>;
};

mailbox@7e00b800 {
reg = <0x7e00b880 0x40>;
interrupts = <0x0 0x1>;
compatible = "brcm,bcm2835-mbox";
#mbox-cells = <0x0>;
phandle = <0xf>;
linux,phandle = <0xf>;
};

leds {
compatible = "gpio-leds";
phandle = <0x26>;
linux,phandle = <0x26>;

act {
gpios = <0x10 0x2f 0x0>;
label = "led0";
linux,default-trigger = "mmc0";
phandle = <0x13>;
linux,phandle = <0x13>;
};
};

mmc@7e300000 {
reg = <0x7e300000 0x100>;
dmas = <0x6 0xb>;
interrupts = <0x2 0x1e>;
compatible = "brcm,bcm2835-mmc";
clocks = <0xd>;
status = "disabled";
phandle = <0x23>;
brcm,overclock-50 = <0x0>;
dma-names = "rx-tx";
linux,phandle = <0x23>;
};

vchiq {
reg = <0x7e00b840 0xf>;
interrupts = <0x0 0x2>;
compatible = "brcm,bcm2835-vchiq";
cache-line-size = <0x20>;
firmware = <0x11>;
phandle = <0x12>;
linux,phandle = <0x12>;
};

thermal {
compatible = "brcm,bcm2835-thermal";
firmware = <0x11>;
phandle = <0x28>;
linux,phandle = <0x28>;
};

firmware {
compatible = "raspberrypi,bcm2835-firmware";
mboxes = <0xf>;
phandle = <0x11>;
linux,phandle = <0x11>;
};

interrupt-controller@7e00b200 {
reg = <0x7e00b200 0x200>;
compatible = "brcm,bcm2708-armctrl-ic";
#interrupt-cells = <0x2>;
phandle = <0x1>;
interrupt-controller;
linux,phandle = <0x1>;
};

i2c@7e205000 {
reg = <0x7e205000 0x1000>;
interrupts = <0x2 0x15>;
pinctrl-0 = <0xa>;
compatible = "brcm,bcm2708-i2c";
clock-frequency = <0x186a0>;
clocks = <0x5>;
status = "disabled";
#address-cells = <0x1>;
phandle = <0x1b>;
#size-cells = <0x0>;
pinctrl-names = "default";
linux,phandle = <0x1b>;
};

dma@7e007000 {
reg = <0x7e007000 0xf00>;
interrupts = <0x1 0x10 0x1 0x11 0x1 0x12 0x1 0x13 0x1 0x14 0x1 0x15 0x1 0x16 0x1 0x17 0x1 0x18 0x1 0x19 0x1 0x1a 0x1 0x1b>;
brcm,dma-channel-mask = <0xf35>;
compatible = "brcm,bcm2835-dma";
#dma-cells = <0x1>;
phandle = <0x6>;
linux,phandle = <0x6>;
};

usb@7e980000 {
reg = <0x7e980000 0x10000 0x7e006000 0x1000>;
interrupts = <0x2 0x0 0x1 0x9>;
compatible = "brcm,bcm2708-usb";
phandle = <0x25>;
linux,phandle = <0x25>;
};

i2s@7e203000 {
reg = <0x7e203000 0x24 0x7e101098 0x8>;
pinctrl-0 = <0x8>;
compatible = "brcm,bcm2708-i2s";
status = "disabled";
#sound-dai-cells = <0x0>;
phandle = <0x19>;
dma-names = "tx", "rx";
pinctrl-names = "default";
linux,phandle = <0x19>;
};

pwm@7e20c000 {
reg = <0x7e20c000 0x28>;
compatible = "brcm,bcm2835-pwm";
clocks = <0xb>;
#pwm-cells = <0x2>;
status = "disabled";
phandle = <0x21>;
linux,phandle = <0x21>;
};

i2c@7e804000 {
reg = <0x7e804000 0x1000>;
interrupts = <0x2 0x15>;
pinctrl-0 = <0xe>;
compatible = "brcm,bcm2708-i2c";
clock-frequency = <0x186a0>;
clocks = <0x5>;
status = "disabled";
#address-cells = <0x1>;
phandle = <0x1c>;
#size-cells = <0x0>;
pinctrl-names = "default";
linux,phandle = <0x1c>;
};

i2c@7e805000 {
reg = <0x7e805000 0x1000>;
interrupts = <0x2 0x15>;
compatible = "brcm,bcm2708-i2c";
clock-frequency = <0x186a0>;
clocks = <0x5>;
status = "disabled";
#address-cells = <0x1>;
phandle = <0x1d>;
#size-cells = <0x0>;
linux,phandle = <0x1d>;
};

cprman@7e101000 {
reg = <0x7e101000 0x2000>;
#clock-cells = <0x1>;
compatible = "brcm,bcm2835-cprman";
clocks = <0x2>;
status = "disabled";
phandle = <0x20>;
linux,phandle = <0x20>;
};

gpiomem {
reg = <0x7e200000 0x1000>;
compatible = "brcm,bcm2835-gpiomem";
status = "okay";
};

smi@7e600000 {
reg = <0x7e600000 0x44 0x7e1010b0 0x8>;
dmas = <0x6 0x4>;
interrupts = <0x2 0x10>;
brcm,smi-clock-source = <0x6>;
compatible = "brcm,bcm2835-smi";
brcm,smi-clock-divisor = <0x4>;
status = "disabled";
phandle = <0x24>;
dma-names = "rx-tx";
linux,phandle = <0x24>;
};

spi@7e204000 {
reg = <0x7e204000 0x1000>;
dmas = <0x6 0x6 0x6 0x7>;
interrupts = <0x2 0x16>;
pinctrl-0 = <0x9>;
compatible = "brcm,bcm2835-spi";
cs-gpios = <0x0 0x0>;
clocks = <0x5>;
status = "disabled";
#address-cells = <0x1>;
phandle = <0x1a>;
#size-cells = <0x0>;
dma-names = "tx", "rx";
pinctrl-names = "default";
linux,phandle = <0x1a>;

spidev@0 {
reg = <0x0>;
compatible = "spidev";
spi-max-frequency = <0x7a120>;
#address-cells = <0x1>;
#size-cells = <0x0>;
};

spidev@1 {
reg = <0x1>;
compatible = "spidev";
spi-max-frequency = <0x7a120>;
#address-cells = <0x1>;
#size-cells = <0x0>;
};
};

sdhost@7e202000 {
reg = <0x7e202000 0x100>;
dmas = <0x6 0xd>;
interrupts = <0x2 0x18>;
pinctrl-0 = <0x7>;
compatible = "brcm,bcm2835-sdhost";
brcm,pio-limit = <0x1>;
bus-width = <0x4>;
clocks = <0x5>;
non-removable;
status = "okay";
phandle = <0x17>;
brcm,overclock-50 = <0x0>;
dma-names = "rx-tx";
pinctrl-names = "default";
linux,phandle = <0x17>;
};

watchdog@7e100000 {
reg = <0x7e100000 0x28>;
compatible = "brcm,bcm2835-pm-wdt";
status = "disabled";
phandle = <0x15>;
linux,phandle = <0x15>;
};

rng@7e104000 {
reg = <0x7e104000 0x10>;
compatible = "brcm,bcm2835-rng";
status = "okay";
phandle = <0x16>;
linux,phandle = <0x16>;
};

arm-pmu {
compatible = "arm,arm1176-pmu";
};

gpio@7e200000 {
reg = <0x7e200000 0xb4>;
interrupts = <0x2 0x11 0x2 0x12>;
#gpio-cells = <0x2>;
compatible = "brcm,bcm2835-gpio";
#interrupt-cells = <0x2>;
phandle = <0x10>;
interrupt-controller;
gpio-controller;
linux,phandle = <0x10>;

i2s {
phandle = <0x8>;
brcm,function = <0x4>;
brcm,pins = <0x12 0x13 0x14 0x15>;
linux,phandle = <0x8>;
};

i2c0 {
phandle = <0xa>;
brcm,function = <0x4>;
brcm,pins = <0x0 0x1>;
linux,phandle = <0xa>;
};

i2c1 {
phandle = <0xe>;
brcm,function = <0x4>;
brcm,pins = <0x2 0x3>;
linux,phandle = <0xe>;
};

sdhost_pins {
phandle = <0x7>;
brcm,function = <0x4>;
brcm,pins = <0x30 0x31 0x32 0x33 0x34 0x35>;
linux,phandle = <0x7>;
};

spi0_pins {
phandle = <0x9>;
brcm,function = <0x4>;
brcm,pins = <0x7 0x8 0x9 0xa 0xb>;
linux,phandle = <0x9>;
};
};

uart@7e201000 {
reg = <0x7e201000 0x1000>;
interrupts = <0x2 0x19>;
compatible = "arm,pl011", "arm,primecell";
clock-names = "uartclk", "apb_pclk";
clocks = <0x3 0x4>;
status = "okay";
arm,primecell-periphid = <0x241011>;
phandle = <0x18>;
linux,phandle = <0x18>;
};

uart@7e215040 {
reg = <0x7e215040 0x40>;
interrupts = <0x1 0x1d>;
reg-shift = <0x2>;
no-loopback-test;
compatible = "brcm,bcm2835-aux-uart", "ns16550";
clocks = <0xc>;
status = "disabled";
phandle = <0x22>;
linux,phandle = <0x22>;
};
};

display {
broadcom,height = <0x0>;
broadcom,depth = <0x10>;
broadcom,width = <0x0>;
};

audio {
compatible = "brcm,bcm2835-audio";
status = "okay";
brcm,pwm-channels = <0x8>;
phandle = <0x14>;
linux,phandle = <0x14>;
};

sound {
phandle = <0x1e>;
linux,phandle = <0x1e>;
};

chosen {
bootargs = "dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1280 bcm2708_fb.fbheight=1024 bcm2708.boardrev=0x11 bcm2708.serial=0x6cc5ee70 smsc95xx.macaddr=B8:27:EB:C5:EE:70 bcm2708_fb.fbswap=1 bcm2708.uart_clock=3000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait";
};

clocks {
compatible = "simple-bus";
#address-cells = <0x1>;
phandle = <0x29>;
#size-cells = <0x0>;
linux,phandle = <0x29>;

clock@0 {
reg = <0x0>;
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0xee6b280>;
clock-output-names = "core";
phandle = <0x5>;
linux,phandle = <0x5>;
};

clock@1 {
reg = <0x1>;
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0xee6b280>;
clock-output-names = "mmc";
phandle = <0xd>;
linux,phandle = <0xd>;
};

clock@2 {
reg = <0x2>;
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x2dc6c0>;
clock-output-names = "uart0_pclk";
phandle = <0x3>;
linux,phandle = <0x3>;
};

clock@3 {
reg = <0x3>;
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x7829b80>;
clock-output-names = "apb_pclk";
phandle = <0x4>;
linux,phandle = <0x4>;
};

clock@4 {
reg = <0x4>;
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x5f5e100>;
clock-output-names = "pwm";
phandle = <0xb>;
linux,phandle = <0xb>;
};

clock@5 {
reg = <0x5>;
#clock-cells = <0x0>;
compatible = "fixed-factor-clock";
clocks = <0x5>;
clock-div = <0x1>;
phandle = <0xc>;
clock-mult = <0x2>;
linux,phandle = <0xc>;
};

clock@6 {
reg = <0x6>;
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x124f800>;
clock-output-names = "osc";
phandle = <0x2>;
linux,phandle = <0x2>;
};
};

memory {
reg = <0x0 0x18000000>;
device_type = "memory";
};

system {
linux,revision = <0x11>;
linux,serial = <0x0 0x6cc5ee70>;
};

__symbols__ {
fb = "/soc/fb";
i2c = "/soc/i2c@7e804000";
i2s = "/soc/i2s@7e203000";
dma = "/soc/dma@7e007000";
mmc = "/soc/mmc@7e300000";
pwm = "/soc/pwm@7e20c000";
smi = "/soc/smi@7e600000";
soc = "/soc";
usb = "/soc/usb@7e980000";
i2c0 = "/soc/i2c@7e205000";
i2c1 = "/soc/i2c@7e804000";
i2c2 = "/soc/i2c@7e805000";
gpio = "/soc/gpio@7e200000";
intc = "/soc/interrupt-controller@7e00b200";
leds = "/soc/leds";
spi0 = "/soc/spi@7e204000";
i2c_arm = "/soc/i2c@7e804000";
audio = "/audio";
sound = "/sound";
uart0 = "/soc/uart@7e201000";
uart1 = "/soc/uart@7e215040";
vchiq = "/soc/vchiq";
sdhost_pins = "/soc/gpio@7e200000/sdhost_pins";
i2s_pins = "/soc/gpio@7e200000/i2s";
mailbox = "/soc/mailbox@7e00b800";
thermal = "/soc/thermal";
clocks = "/clocks";
firmware = "/soc/firmware";
cprman = "/soc/cprman@7e101000";
i2c_vc = "/soc/i2c@7e205000";
watchdog = "/soc/watchdog@7e100000";
i2c0_pins = "/soc/gpio@7e200000/i2c0";
i2c1_pins = "/soc/gpio@7e200000/i2c1";
act_led = "/soc/leds/act";
random = "/soc/rng@7e104000";
spi0_pins = "/soc/gpio@7e200000/spi0_pins";
sdhost = "/soc/sdhost@7e202000";
clk_apb_p = "/clocks/clock@3";
clk_uart0 = "/clocks/clock@2";
clk_uart1 = "/clocks/clock@5";
clk_core = "/clocks/clock@0";
clk_mmc = "/clocks/clock@1";
clk_osc = "/clocks/clock@6";
clk_pwm = "/clocks/clock@4";
};

aliases {
fb = "/soc/fb";
i2c = "/soc/i2c@7e804000";
i2s = "/soc/i2s@7e203000";
dma = "/soc/dma@7e007000";
mmc = "/soc/mmc@7e300000";
soc = "/soc";
usb = "/soc/usb@7e980000";
i2c0 = "/soc/i2c@7e205000";
i2c1 = "/soc/i2c@7e804000";
i2c2 = "/soc/i2c@7e805000";
gpio = "/soc/gpio@7e200000";
intc = "/soc/interrupt-controller@7e00b200";
leds = "/soc/leds";
spi0 = "/soc/spi@7e204000";
i2c_arm = "/soc/i2c@7e804000";
audio = "/audio";
sound = "/sound";
uart0 = "/soc/uart@7e201000";
uart1 = "/soc/uart@7e215040";
vchiq = "/soc/vchiq";
serial0 = "/soc/uart@7e201000";
serial1 = "/soc/uart@7e215040";
mailbox = "/soc/mailbox@7e00b800";
thermal = "/soc/thermal";
clocks = "/clocks";
i2c_vc = "/soc/i2c@7e205000";
watchdog = "/soc/watchdog@7e100000";
random = "/soc/rng@7e104000";
sdhost = "/soc/sdhost@7e202000";
};

__overrides__ {
i2c = [00 00 00 1c 73 74 61 74 75 73 00];
i2s = [00 00 00 19 73 74 61 74 75 73 00];
spi = [00 00 00 1a 73 74 61 74 75 73 00];
act_led_trigger = [00 00 00 13 6c 69 6e 75 78 2c 64 65 66 61 75 6c 74 2d 74 72 69 67 67 65 72 00];
i2c0 = [00 00 00 1b 73 74 61 74 75 73 00];
i2c1 = [00 00 00 1c 73 74 61 74 75 73 00];
i2c_arm = [00 00 00 1c 73 74 61 74 75 73 00];
audio = [00 00 00 14 73 74 61 74 75 73 00];
uart0 = [00 00 00 18 73 74 61 74 75 73 00];
i2c2_iknowwhatimdoing = [00 00 00 1d 73 74 61 74 75 73 00];
act_led_activelow = <0x13 0x6770696f 0x733a3800>;
i2c0_baudrate = [00 00 00 1b 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
sd_overclock = <0x17 0x6272636d 0x2c6f7665 0x72636c6f 0x636b2d35 0x303a3000>;
sd_pio_limit = [00 00 00 17 62 72 63 6d 2c 70 69 6f 2d 6c 69 6d 69 74 3a 30 00];
sd_debug = [00 00 00 17 62 72 63 6d 2c 64 65 62 75 67 00];
i2c_vc_baudrate = [00 00 00 1b 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
uart0_clkrate = [00 00 00 03 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
i2c_vc = [00 00 00 1b 73 74 61 74 75 73 00];
i2c1_baudrate = [00 00 00 1c 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
i2c_baudrate = [00 00 00 1c 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
watchdog = [00 00 00 15 73 74 61 74 75 73 00];
sd_force_pio = <0x17 0x6272636d 0x2c666f72 0x63652d70 0x696f3f00>;
random = [00 00 00 16 73 74 61 74 75 73 00];
i2c2_baudrate = [00 00 00 1d 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
core_freq = [00 00 00 05 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
i2c_arm_baudrate = [00 00 00 1c 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
act_led_gpio = <0x13 0x6770696f 0x733a3400>;
cache_line_size = [00 00 00 12 63 61 63 68 65 2d 6c 69 6e 65 2d 73 69 7a 65 3a 30 00];
};
};
[/code]

Output of uname -a
[code]Linux raspberrypi 4.1.19+ #858 Tue Mar 15 15:52:03 GMT 2016 armv6l GNU/Linux
[/code]

Output of vcgencmd version
[quote]Mar 15 2016 14:51:23
Copyright (c) 2012 Broadcom
version 1bf9a9a77026af9128a339c82d72e331d3532ee4 (clean) (release)
[/quote]

I don't know how to attach dt-blob.bin, bcm2708-rpi-cm.dtb, their extensions are not allowed, But like I said, dt-blob.bin I downloaded it unchanged from the official instruction site, and .bcm2708-rpi-cm.dtb I got through sudo apt-get upgrade/update

Any help would be greatly appreciated, I have a project on the line. :(

YousefMSAK
Posts: 15
Joined: Thu Mar 31, 2016 10:29 am

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Thu Apr 07, 2016 8:48 pm

Turns out my adapters were the ones causing the problems. Coincidentally, the Compute Module Dev Kit that I've bought was from 2014 with the incorrect flat cable connectors.

Bought two new adapters and the CM cameras are working just fine.

I'd imagine there'll be a lot of shady stores that will try to sell these defective Dev kits, or it was honest to goodness ignorance. Either way, be careful where you buy the CM modules from, stick to Fernell if you can.

mdelbo
Posts: 2
Joined: Wed Sep 07, 2016 5:58 am

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Wed Sep 07, 2016 6:28 am

I just purchased a compute module dev kit with 2 cameras and CAM0 (rather than CAM1) is the problem for me. It's just not being detected.

dt-blob.bin and bcm2708-rpi-cm.dtb attached.

Output of 'sudo raspi-gpio get':

Code: Select all

BANK0 (GPIO 0 to 27):
  GPIO 00: level=1 fsel=0 alt=  func=INPUT
  GPIO 01: level=1 fsel=0 alt=  func=INPUT
  GPIO 02: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 03: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 04: level=1 fsel=0 alt=  func=INPUT
  GPIO 05: level=1 fsel=0 alt=  func=INPUT
  GPIO 06: level=1 fsel=0 alt=  func=INPUT
  GPIO 07: level=1 fsel=0 alt=  func=INPUT
  GPIO 08: level=1 fsel=0 alt=  func=INPUT
  GPIO 09: level=0 fsel=0 alt=  func=INPUT
  GPIO 10: level=0 fsel=0 alt=  func=INPUT
  GPIO 11: level=0 fsel=0 alt=  func=INPUT
  GPIO 12: level=0 fsel=0 alt=  func=INPUT
  GPIO 13: level=0 fsel=0 alt=  func=INPUT
  GPIO 14: level=1 fsel=4 alt=0 func=TXD0
  GPIO 15: level=1 fsel=4 alt=0 func=RXD0
  GPIO 16: level=0 fsel=0 alt=  func=INPUT
  GPIO 17: level=0 fsel=0 alt=  func=INPUT
  GPIO 18: level=0 fsel=0 alt=  func=INPUT
  GPIO 19: level=0 fsel=0 alt=  func=INPUT
  GPIO 20: level=0 fsel=0 alt=  func=INPUT
  GPIO 21: level=0 fsel=0 alt=  func=INPUT
  GPIO 22: level=0 fsel=0 alt=  func=INPUT
  GPIO 23: level=0 fsel=0 alt=  func=INPUT
  GPIO 24: level=0 fsel=0 alt=  func=INPUT
  GPIO 25: level=0 fsel=0 alt=  func=INPUT
  GPIO 26: level=0 fsel=0 alt=  func=INPUT
  GPIO 27: level=0 fsel=0 alt=  func=INPUT
BANK1 (GPIO 28 to 45):
  GPIO 28: level=1 fsel=0 alt=  func=INPUT
  GPIO 29: level=1 fsel=0 alt=  func=INPUT
  GPIO 30: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 31: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 32: level=0 fsel=0 alt=  func=INPUT
  GPIO 33: level=0 fsel=0 alt=  func=INPUT
  GPIO 34: level=1 fsel=0 alt=  func=INPUT
  GPIO 35: level=1 fsel=0 alt=  func=INPUT
  GPIO 36: level=1 fsel=0 alt=  func=INPUT
  GPIO 37: level=0 fsel=0 alt=  func=INPUT
  GPIO 38: level=0 fsel=0 alt=  func=INPUT
  GPIO 39: level=0 fsel=0 alt=  func=INPUT
  GPIO 40: level=0 fsel=0 alt=  func=INPUT
  GPIO 41: level=0 fsel=0 alt=  func=INPUT
  GPIO 42: level=0 fsel=0 alt=  func=INPUT
  GPIO 43: level=0 fsel=0 alt=  func=INPUT
  GPIO 44: level=0 fsel=0 alt=  func=INPUT
  GPIO 45: level=0 fsel=0 alt=  func=INPUT
BANK2 (GPIO 46 to 53):
  GPIO 46: level=1 fsel=0 alt=  func=INPUT
  GPIO 47: level=0 fsel=1 alt=  func=OUTPUT
  GPIO 48: level=1 fsel=7 alt=3 func=SD1_CLK
  GPIO 49: level=1 fsel=7 alt=3 func=SD1_CMD
  GPIO 50: level=1 fsel=7 alt=3 func=SD1_DAT0
  GPIO 51: level=1 fsel=7 alt=3 func=SD1_DAT1
  GPIO 52: level=1 fsel=7 alt=3 func=SD1_DAT2
  GPIO 53: level=1 fsel=7 alt=3 func=SD1_DAT3
Output of 'dtc -I fs /proc/device-tree':

Code: Select all

Warning (unit_address_vs_reg): Node /axi/vc_mem has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /soc has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /soc/vchiq has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /soc/gpiomem has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /memory has a reg or ranges property, but no unit name
Warning (avoid_default_addr_size): Relying on default #address-cells value for /axi/vc_mem
Warning (avoid_default_addr_size): Relying on default #size-cells value for /axi/vc_mem
/dts-v1/;

/ {
	model = "Raspberry Pi Compute Module Rev 1.0";
	compatible = "brcm,bcm2708";
	memreserve = <0x18000000 0x8000000>;
	#address-cells = <0x1>;
	#size-cells = <0x1>;
	interrupt-parent = <0x1>;

	axi {

		dma {
			broadcom,channels = <0x7f35>;
		};

		usb {

			hub {

				ethernet {
					mac-address = [b8 27 eb ac 35 e2];
				};
			};
		};

		vc_mem {
			reg = <0x1ec00000 0x20000000 0x40000000>;
		};
	};

	soc {
		compatible = "simple-bus";
		ranges = <0x7e000000 0x20000000 0x1000000>;
		#address-cells = <0x1>;
		phandle = <0x23>;
		#size-cells = <0x1>;

		fb {
			compatible = "brcm,bcm2708-fb";
			firmware = <0x16>;
			status = "okay";
			phandle = <0x35>;
		};

		gpu {
			compatible = "brcm,bcm2835-vc4";
			status = "disabled";
			phandle = <0x37>;
		};

		mailbox@7e00b800 {
			reg = <0x7e00b880 0x40>;
			interrupts = <0x0 0x1>;
			compatible = "brcm,bcm2835-mbox";
			#mbox-cells = <0x0>;
			phandle = <0x15>;
		};

		leds {
			compatible = "gpio-leds";
			phandle = <0x34>;

			act {
				gpios = <0x8 0x2f 0x0>;
				label = "led0";
				linux,default-trigger = "mmc0";
				phandle = <0x18>;
			};
		};

		v3d@7ec00000 {
			reg = <0x7ec00000 0x1000>;
			compatible = "brcm,vc4-v3d";
			status = "disabled";
			phandle = <0x33>;
		};

		mmc@7e300000 {
			reg = <0x7e300000 0x100>;
			dmas = <0x6 0xb>;
			interrupts = <0x2 0x1e>;
			pinctrl-0 = <0x11>;
			compatible = "brcm,bcm2835-mmc";
			bus-width = <0x4>;
			clocks = <0x10>;
			non-removable;
			status = "okay";
			phandle = <0x1c>;
			brcm,overclock-50 = <0x0>;
			dma-names = "rx-tx";
			pinctrl-names = "default";
		};

		hvs@7e400000 {
			reg = <0x7e400000 0x6000>;
			compatible = "brcm,bcm2835-hvs";
			status = "disabled";
			phandle = <0x2e>;
		};

		timer@7e003000 {
			reg = <0x7e003000 0x1000>;
			interrupts = <0x1 0x0 0x1 0x1 0x1 0x2 0x1 0x3>;
			compatible = "brcm,bcm2835-system-timer";
			clock-frequency = <0xf4240>;
		};

		aux@0x7e215004 {
			reg = <0x7e215000 0x8>;
			#clock-cells = <0x1>;
			compatible = "brcm,bcm2835-aux";
			clocks = <0x5>;
			status = "disabled";
			phandle = <0xf>;
		};

		audio {
			compatible = "brcm,bcm2835-audio";
			status = "okay";
			brcm,pwm-channels = <0x8>;
			phandle = <0x19>;
		};

		power {
			compatible = "raspberrypi,bcm2835-power";
			firmware = <0x16>;
			#power-domain-cells = <0x1>;
			phandle = <0x14>;
		};

		sound {
			status = "disabled";
			phandle = <0x38>;
		};

		vchiq {
			reg = <0x7e00b840 0xf>;
			interrupts = <0x0 0x2>;
			compatible = "brcm,bcm2835-vchiq";
			cache-line-size = <0x20>;
			firmware = <0x16>;
			phandle = <0x17>;
		};

		pixelvalve@7e206000 {
			reg = <0x7e206000 0x100>;
			compatible = "brcm,bcm2835-pixelvalve0";
			status = "disabled";
			phandle = <0x28>;
		};

		pixelvalve@7e207000 {
			reg = <0x7e207000 0x100>;
			compatible = "brcm,bcm2835-pixelvalve1";
			status = "disabled";
			phandle = <0x2a>;
		};

		pixelvalve@7e807000 {
			reg = <0x7e807000 0x100>;
			compatible = "brcm,bcm2835-pixelvalve2";
			status = "disabled";
			phandle = <0x30>;
		};

		thermal {
			compatible = "brcm,bcm2835-thermal";
			firmware = <0x16>;
			phandle = <0x36>;
		};

		firmware {
			compatible = "raspberrypi,bcm2835-firmware";
			mboxes = <0x15>;
			phandle = <0x16>;
		};

		interrupt-controller@7e00b200 {
			reg = <0x7e00b200 0x200>;
			compatible = "brcm,bcm2835-armctrl-ic";
			#interrupt-cells = <0x2>;
			phandle = <0x1>;
			interrupt-controller;
		};

		i2c@7e205000 {
			reg = <0x7e205000 0x1000>;
			interrupts = <0x2 0x15>;
			pinctrl-0 = <0xb>;
			compatible = "brcm,bcm2708-i2c";
			clock-frequency = <0x186a0>;
			clocks = <0x5>;
			status = "disabled";
			#address-cells = <0x1>;
			phandle = <0x21>;
			#size-cells = <0x0>;
			pinctrl-names = "default";
		};

		dma@7e007000 {
			reg = <0x7e007000 0xf00>;
			interrupts = <0x1 0x10 0x1 0x11 0x1 0x12 0x1 0x13 0x1 0x14 0x1 0x15 0x1 0x16 0x1 0x17 0x1 0x18 0x1 0x19 0x1 0x1a 0x1 0x1b 0x1 0x1b 0x1 0x1b 0x1 0x1b 0x1 0x1c>;
			brcm,dma-channel-mask = <0x7f34>;
			compatible = "brcm,bcm2835-dma";
			interrupt-names = "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7", "dma8", "dma9", "dma10", "dma11", "dma12", "dma13", "dma14", "dma-shared-all";
			#dma-cells = <0x1>;
			phandle = <0x6>;
		};

		usb@7e980000 {
			reg = <0x7e980000 0x10000 0x7e006000 0x1000>;
			interrupts = <0x2 0x0 0x1 0x9>;
			compatible = "brcm,bcm2708-usb";
			phandle = <0x32>;
		};

		i2s@7e203000 {
			reg = <0x7e203000 0x24 0x7e101098 0x8>;
			dmas = <0x6 0x2 0x6 0x3>;
			pinctrl-0 = <0x7>;
			compatible = "brcm,bcm2835-i2s";
			status = "disabled";
			#sound-dai-cells = <0x0>;
			phandle = <0x1f>;
			dma-names = "tx", "rx";
			pinctrl-names = "default";
		};

		pwm@7e20c000 {
			reg = <0x7e20c000 0x28>;
			compatible = "brcm,bcm2835-pwm";
			clocks = <0xd>;
			#pwm-cells = <0x2>;
			status = "disabled";
			phandle = <0x2b>;
		};

		i2c@7e804000 {
			reg = <0x7e804000 0x1000>;
			interrupts = <0x2 0x15>;
			pinctrl-0 = <0x12>;
			compatible = "brcm,bcm2708-i2c";
			clock-frequency = <0x186a0>;
			clocks = <0x5>;
			status = "disabled";
			#address-cells = <0x1>;
			phandle = <0x22>;
			#size-cells = <0x0>;
			pinctrl-names = "default";
		};

		i2c@7e805000 {
			reg = <0x7e805000 0x1000>;
			interrupts = <0x2 0x15>;
			compatible = "brcm,bcm2708-i2c";
			clock-frequency = <0x186a0>;
			clocks = <0x5>;
			status = "disabled";
			#address-cells = <0x1>;
			phandle = <0x13>;
			#size-cells = <0x0>;
		};

		cprman@7e101000 {
			reg = <0x7e101000 0x2000>;
			#clock-cells = <0x1>;
			compatible = "brcm,bcm2835-cprman";
			clocks = <0x2>;
			status = "disabled";
			phandle = <0xc>;
		};

		dpi@7e208000 {
			reg = <0x7e208000 0x8c>;
			compatible = "brcm,bcm2835-dpi";
			clock-names = "core", "pixel";
			clocks = <0xc 0x14 0xc 0x2c>;
			status = "disabled";
			#address-cells = <0x1>;
			phandle = <0x29>;
			#size-cells = <0x0>;
		};

		gpiomem {
			reg = <0x7e200000 0x1000>;
			compatible = "brcm,bcm2835-gpiomem";
			status = "okay";
		};

		smi@7e600000 {
			reg = <0x7e600000 0x44 0x7e1010b0 0x8>;
			dmas = <0x6 0x4>;
			interrupts = <0x2 0x10>;
			brcm,smi-clock-source = <0x6>;
			compatible = "brcm,bcm2835-smi";
			brcm,smi-clock-divisor = <0x4>;
			status = "disabled";
			phandle = <0x2f>;
			dma-names = "rx-tx";
		};

		spi@7e204000 {
			reg = <0x7e204000 0x1000>;
			dmas = <0x6 0x6 0x6 0x7>;
			interrupts = <0x2 0x16>;
			pinctrl-0 = <0x9 0xa>;
			compatible = "brcm,bcm2835-spi";
			cs-gpios = <0x8 0x8 0x1 0x8 0x7 0x1>;
			clocks = <0x5>;
			status = "disabled";
			#address-cells = <0x1>;
			phandle = <0x20>;
			#size-cells = <0x0>;
			dma-names = "tx", "rx";
			pinctrl-names = "default";

			spidev@0 {
				reg = <0x0>;
				compatible = "spidev";
				spi-max-frequency = <0x7a120>;
				#address-cells = <0x1>;
				phandle = <0x26>;
				#size-cells = <0x0>;
			};

			spidev@1 {
				reg = <0x1>;
				compatible = "spidev";
				spi-max-frequency = <0x7a120>;
				#address-cells = <0x1>;
				phandle = <0x27>;
				#size-cells = <0x0>;
			};
		};

		spi@7e215080 {
			reg = <0x7e215080 0x40 0x7e215000 0x8>;
			interrupts = <0x1 0x1d>;
			compatible = "brcm,bcm2835-aux-spi";
			clocks = <0xf 0x1>;
			status = "disabled";
			#address-cells = <0x1>;
			phandle = <0x2c>;
			#size-cells = <0x0>;
		};

		spi@7e2150C0 {
			reg = <0x7e2150c0 0x40 0x7e215000 0x8>;
			interrupts = <0x1 0x1d>;
			compatible = "brcm,bcm2835-aux-spi";
			clocks = <0xf 0x2>;
			status = "disabled";
			#address-cells = <0x1>;
			phandle = <0x2d>;
			#size-cells = <0x0>;
		};

		sdhost@7e202000 {
			reg = <0x7e202000 0x100>;
			dmas = <0x6 0xd>;
			interrupts = <0x2 0x18>;
			compatible = "brcm,bcm2835-sdhost";
			brcm,pio-limit = <0x1>;
			clocks = <0x5>;
			status = "disabled";
			phandle = <0x25>;
			brcm,overclock-50 = <0x0>;
			dma-names = "rx-tx";
		};

		watchdog@7e100000 {
			reg = <0x7e100000 0x28>;
			compatible = "brcm,bcm2835-pm-wdt";
			status = "okay";
			phandle = <0x1a>;
		};

		rng@7e104000 {
			reg = <0x7e104000 0x10>;
			compatible = "brcm,bcm2835-rng";
			status = "okay";
			phandle = <0x1b>;
		};

		arm-pmu {
			compatible = "arm,arm1176-pmu";
		};

		hdmi@7e902000 {
			ddc = <0x13>;
			reg = <0x7e902000 0x600 0x7e808000 0x100>;
			compatible = "brcm,bcm2835-hdmi";
			clock-names = "pixel", "hdmi";
			clocks = <0xc 0x10 0xc 0x19>;
			power-domains = <0x14 0x5>;
			hpd-gpios = <0x8 0x2e 0x0>;
			status = "disabled";
			phandle = <0x31>;
		};

		gpio@7e200000 {
			reg = <0x7e200000 0xb4>;
			interrupts = <0x2 0x11 0x2 0x12>;
			#gpio-cells = <0x2>;
			compatible = "brcm,bcm2835-gpio";
			#interrupt-cells = <0x2>;
			phandle = <0x8>;
			interrupt-controller;
			gpio-controller;

			i2s {
				phandle = <0x7>;
				brcm,function = <0x4>;
				brcm,pins = <0x12 0x13 0x14 0x15>;
			};

			mmc_pins {
				phandle = <0x11>;
				brcm,function = <0x7>;
				brcm,pins = <0x30 0x31 0x32 0x33 0x34 0x35>;
			};

			i2c0 {
				phandle = <0xb>;
				brcm,function = <0x4>;
				brcm,pins = <0x0 0x1>;
			};

			i2c1 {
				phandle = <0x12>;
				brcm,function = <0x4>;
				brcm,pins = <0x2 0x3>;
			};

			sdhost_pins {
				phandle = <0x24>;
				brcm,function = <0x4>;
				brcm,pins = <0x30 0x31 0x32 0x33 0x34 0x35>;
			};

			spi0_cs_pins {
				phandle = <0xa>;
				brcm,function = <0x1>;
				brcm,pins = <0x8 0x7>;
			};

			spi0_pins {
				phandle = <0x9>;
				brcm,function = <0x4>;
				brcm,pins = <0x9 0xa 0xb>;
			};
		};

		uart@7e201000 {
			reg = <0x7e201000 0x1000>;
			interrupts = <0x2 0x19>;
			compatible = "arm,pl011", "arm,primecell";
			clock-names = "uartclk", "apb_pclk";
			clocks = <0x3 0x4>;
			status = "okay";
			arm,primecell-periphid = <0x241011>;
			phandle = <0x1d>;
		};

		uart@7e215040 {
			reg = <0x7e215040 0x40>;
			interrupts = <0x1 0x1d>;
			reg-shift = <0x2>;
			no-loopback-test;
			compatible = "brcm,bcm2835-aux-uart", "ns16550";
			clocks = <0xe>;
			status = "disabled";
			phandle = <0x1e>;
		};
	};

	chosen {
		bootargs = "dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708.boardrev=0x14 bcm2708.serial=0x7eac35e2 smsc95xx.macaddr=B8:27:EB:AC:35:E2 bcm2708_fb.fbswap=1 bcm2708.uart_clock=3000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000  dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait";
	};

	clocks {
		compatible = "simple-bus";
		#address-cells = <0x1>;
		phandle = <0x39>;
		#size-cells = <0x0>;

		clock@0 {
			reg = <0x0>;
			#clock-cells = <0x0>;
			compatible = "fixed-clock";
			clock-frequency = <0xee6b280>;
			clock-output-names = "core";
			phandle = <0x5>;
		};

		clock@1 {
			reg = <0x1>;
			#clock-cells = <0x0>;
			compatible = "fixed-clock";
			clock-frequency = <0xee6b280>;
			clock-output-names = "mmc";
			phandle = <0x10>;
		};

		clock@2 {
			reg = <0x2>;
			#clock-cells = <0x0>;
			compatible = "fixed-clock";
			clock-frequency = <0x2dc6c0>;
			clock-output-names = "uart0_pclk";
			phandle = <0x3>;
		};

		clock@3 {
			reg = <0x3>;
			#clock-cells = <0x0>;
			compatible = "fixed-clock";
			clock-frequency = <0x7829b80>;
			clock-output-names = "apb_pclk";
			phandle = <0x4>;
		};

		clock@4 {
			reg = <0x4>;
			#clock-cells = <0x0>;
			compatible = "fixed-clock";
			clock-frequency = <0x5f5e100>;
			clock-output-names = "pwm";
			phandle = <0xd>;
		};

		clock@5 {
			reg = <0x5>;
			#clock-cells = <0x0>;
			compatible = "fixed-factor-clock";
			clocks = <0x5>;
			clock-div = <0x1>;
			phandle = <0xe>;
			clock-mult = <0x2>;
		};

		clock@6 {
			reg = <0x6>;
			#clock-cells = <0x0>;
			compatible = "fixed-clock";
			clock-frequency = <0x124f800>;
			clock-output-names = "osc";
			phandle = <0x2>;
		};
	};

	memory {
		reg = <0x0 0x18000000>;
		device_type = "memory";
	};

	system {
		linux,revision = <0x14>;
		linux,serial = <0x0 0x7eac35e2>;
	};

	__symbols__ {
		fb = "/soc/fb";
		aux = "/soc/aux@0x7e215004";
		i2c = "/soc/i2c@7e804000";
		i2s = "/soc/i2s@7e203000";
		dma = "/soc/dma@7e007000";
		dpi = "/soc/dpi@7e208000";
		gpu = "/soc/gpu";
		hvs = "/soc/hvs@7e400000";
		mmc = "/soc/mmc@7e300000";
		v3d = "/soc/v3d@7ec00000";
		pwm = "/soc/pwm@7e20c000";
		smi = "/soc/smi@7e600000";
		soc = "/soc";
		usb = "/soc/usb@7e980000";
		mmc_pins = "/soc/gpio@7e200000/mmc_pins";
		i2c0 = "/soc/i2c@7e205000";
		i2c1 = "/soc/i2c@7e804000";
		i2c2 = "/soc/i2c@7e805000";
		hdmi = "/soc/hdmi@7e902000";
		gpio = "/soc/gpio@7e200000";
		intc = "/soc/interrupt-controller@7e00b200";
		leds = "/soc/leds";
		spi0 = "/soc/spi@7e204000";
		spi1 = "/soc/spi@7e215080";
		spi2 = "/soc/spi@7e2150C0";
		i2c_arm = "/soc/i2c@7e804000";
		audio = "/soc/audio";
		power = "/soc/power";
		sound = "/soc/sound";
		uart0 = "/soc/uart@7e201000";
		uart1 = "/soc/uart@7e215040";
		vchiq = "/soc/vchiq";
		sdhost_pins = "/soc/gpio@7e200000/sdhost_pins";
		i2s_pins = "/soc/gpio@7e200000/i2s";
		spi0_cs_pins = "/soc/gpio@7e200000/spi0_cs_pins";
		mailbox = "/soc/mailbox@7e00b800";
		spidev0 = "/soc/spi@7e204000/spidev@0";
		spidev1 = "/soc/spi@7e204000/spidev@1";
		pixelvalve0 = "/soc/pixelvalve@7e206000";
		pixelvalve1 = "/soc/pixelvalve@7e207000";
		pixelvalve2 = "/soc/pixelvalve@7e807000";
		thermal = "/soc/thermal";
		clocks = "/clocks";
		firmware = "/soc/firmware";
		cprman = "/soc/cprman@7e101000";
		i2c_vc = "/soc/i2c@7e205000";
		watchdog = "/soc/watchdog@7e100000";
		i2c0_pins = "/soc/gpio@7e200000/i2c0";
		i2c1_pins = "/soc/gpio@7e200000/i2c1";
		act_led = "/soc/leds/act";
		random = "/soc/rng@7e104000";
		spi0_pins = "/soc/gpio@7e200000/spi0_pins";
		sdhost = "/soc/sdhost@7e202000";
		clk_apb_p = "/clocks/clock@3";
		clk_uart0 = "/clocks/clock@2";
		clk_uart1 = "/clocks/clock@5";
		clk_core = "/clocks/clock@0";
		clk_mmc = "/clocks/clock@1";
		clk_osc = "/clocks/clock@6";
		clk_pwm = "/clocks/clock@4";
	};

	aliases {
		fb = "/soc/fb";
		aux = "/soc/aux@0x7e215004";
		i2c = "/soc/i2c@7e804000";
		i2s = "/soc/i2s@7e203000";
		dma = "/soc/dma@7e007000";
		mmc = "/soc/mmc@7e300000";
		soc = "/soc";
		usb = "/soc/usb@7e980000";
		i2c0 = "/soc/i2c@7e205000";
		i2c1 = "/soc/i2c@7e804000";
		i2c2 = "/soc/i2c@7e805000";
		gpio = "/soc/gpio@7e200000";
		intc = "/soc/interrupt-controller@7e00b200";
		leds = "/soc/leds";
		spi0 = "/soc/spi@7e204000";
		spi1 = "/soc/spi@7e215080";
		spi2 = "/soc/spi@7e2150C0";
		i2c_arm = "/soc/i2c@7e804000";
		audio = "/soc/audio";
		sound = "/soc/sound";
		uart0 = "/soc/uart@7e201000";
		uart1 = "/soc/uart@7e215040";
		vchiq = "/soc/vchiq";
		serial0 = "/soc/uart@7e201000";
		serial1 = "/soc/uart@7e215040";
		mailbox = "/soc/mailbox@7e00b800";
		thermal = "/soc/thermal";
		clocks = "/clocks";
		i2c_vc = "/soc/i2c@7e205000";
		watchdog = "/soc/watchdog@7e100000";
		random = "/soc/rng@7e104000";
		sdhost = "/soc/sdhost@7e202000";
	};

	__overrides__ {
		i2c = "", "", "", "\"status";
		i2s = [00 00 00 1f 73 74 61 74 75 73 00];
		spi = "", "", "", " status";
		act_led_trigger = [00 00 00 18 6c 69 6e 75 78 2c 64 65 66 61 75 6c 74 2d 74 72 69 67 67 65 72 00];
		i2c0 = "", "", "", "!status";
		i2c1 = "", "", "", "\"status";
		i2c_arm = "", "", "", "\"status";
		audio = [00 00 00 19 73 74 61 74 75 73 00];
		uart0 = [00 00 00 1d 73 74 61 74 75 73 00];
		uart1 = [00 00 00 1e 73 74 61 74 75 73 00];
		i2c2_iknowwhatimdoing = [00 00 00 13 73 74 61 74 75 73 00];
		act_led_activelow = <0x18 0x6770696f 0x733a3800>;
		i2c0_baudrate = "", "", "", "!clock-frequency:0";
		sd_overclock = <0x1c 0x6272636d 0x2c6f7665 0x72636c6f 0x636b2d35 0x303a3000>;
		i2c_vc_baudrate = "", "", "", "!clock-frequency:0";
		uart0_clkrate = [00 00 00 03 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
		i2c_vc = "", "", "", "!status";
		i2c1_baudrate = "", "", "", "\"clock-frequency:0";
		i2c_baudrate = "", "", "", "\"clock-frequency:0";
		watchdog = [00 00 00 1a 73 74 61 74 75 73 00];
		random = [00 00 00 1b 73 74 61 74 75 73 00];
		i2c2_baudrate = [00 00 00 13 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
		core_freq = [00 00 00 05 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
		i2c_arm_baudrate = "", "", "", "\"clock-frequency:0";
		act_led_gpio = <0x18 0x6770696f 0x733a3400>;
		cache_line_size = [00 00 00 17 63 61 63 68 65 2d 6c 69 6e 65 2d 73 69 7a 65 3a 30 00];
	};
};
Output of 'uname -a':

Code: Select all

Linux raspberrypi 4.4.13+ #894 Mon Jun 13 12:43:26 BST 2016 armv6l GNU/Linux
Output of 'vcgencmd version':

Code: Select all

Jun 20 2016 18:18:51 
Copyright (c) 2012 Broadcom
version 460b39c674ef2ac89360e15331f97a2cb1388a44 (clean) (release)
Attachments
dt-blob.bin_and_bcm2708-rpi-cm.dtb.zip
(4.29 KiB) Downloaded 77 times

zackm12
Posts: 1
Joined: Wed Sep 14, 2016 5:03 pm

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Wed Sep 14, 2016 5:07 pm

I have the same problem and am willing to send in my hardware if someone could PLEASE just get both cameras functional.

@ShiftPlusOne you suggested this before, is it still possible?

ShiftPlusOne
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6291
Joined: Fri Jul 29, 2011 5:36 pm
Location: The unfashionable end of the western spiral arm of the Galaxy

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Fri Sep 16, 2016 12:02 am

zackm12 wrote:I have the same problem and am willing to send in my hardware if someone could PLEASE just get both cameras functional.

@ShiftPlusOne you suggested this before, is it still possible?
Unfortunately I am not able to help with this directly for the next few weeks.

Where are you located?
Make sure you haven't done something like use the display adapter board for a camera.
Have you tried your best to follow these steps on a clean image?
https://github.com/raspberrypi/document ... -camera.md

If so, I can see if I can find someone able to help. Send me a PM.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 10586
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: CAM1 not detected on CMIO board with default dt-blob.dts

Fri Sep 16, 2016 9:23 am

Some basic manual debug (I don't have a CM to hand to try this on, so please excuse typos). All of this should be with your dt-blob.bin file in place.

Edit /boot/config.txt to include "dtparam=i2c_vc". Reboot. Ensure kernel module i2c-dev is loaded (otherwise "modprobe i2c-dev") and you should now have /dev/i2c-0.
DO NOT ATTEMPT TO USE ANY GPU CAMERA COMMANDS IN THIS STATE - it will override the pin muxing. That includes "vcgencmd get_camera".

"sudo raspi-gpio set dh 2" should turn on the LED on one of the camera modules.
"sudo raspi-gpio set dh 30" should turn on the LED on the other camera module.
"sudo raspi-gpio set dl 2" and "sudo raspi-gpio set dl 30" to turn them off again.
I'm assuming you have V1.3 camera modules - the V2.1 doesn't have an LED. If the LED doesn't come on, then trace that through as it'll probably be a common cause to the camera failure.

"sudo raspi-gpio get" and check that pins 0&1 are set to ALT0, so SDA0 and SCL0. If not, "sudo raspi-gpio set a0 0" "sudo raspi-gpio set a0 1" .(Worth a double check that no other pins are set to SDA0 or SCL0 too. It's an option on pins 28/29, 44/45, and 46/47)
"sudo raspi-gpio set dh 3" should power up the camera, not that you'll see any difference unless you're measuring supply current.
"sudo i2c-detect -y 0" and you should see device 0x36 respond on V1.3 modules, or 0x10 on V2.1. That is the sensor.
"sudo raspi-gpio set dl 3" to power the sensor down.

"sudo raspi-gpio set in 0" "sudo raspi-gpio set in 1" "sudo raspi-gpio set a0 28" "sudo raspi-gpio set a0 29" to swap i2c-0 onto the other camera module. Check with "sudo raspi-gpio get".
"sudo raspi-gpio set dh 31" should power up the other camera.
"sudo i2c-detect -y 0" and you should see device 0x36 or 0x10 respond. That is the other sensor.
"sudo raspi-gpio set dl 31" to power the sensor down.

If any of those steps don't give the expected result, then please say which bit fails.
"sudo apt-get install i2c-tools" if you don't have i2c-detect.
i2c-detect being slow is indicative of SCL being shorted to 0V. i2c-detect showing all devices detected is SDA being shorted to 0V.
I am assuming that genuine Pi camera modules are being used. Some clones weren't very good clones and require the LED line to be high as well as the shutdown line. If using clones then you may need to set 2&3 in tandem, and 30&31 in tandem.

Edit /boot/config.txt to remove "dtparam=i2c_vc" to avoid future odd behaviour.

Detection is solely using the one GPIO and I2C. It does not involve the actual CSI2 bus at all. Any error should be detectable/fixable via the GPIO headers and jumper wires.

@ShiftPlusOne: I'll try to have a run through over the weekend - I need to update that page with new blobs for the CM3 anyway. It should just be a copy/paste job based on the new base dt-blob.dts file.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

Return to “Compute Module”