Skip to content

Commit a89420e

Browse files
SPadmana95andrestraker
authored andcommitted
sdcard-images-utils: nvidia: patches: ubuntu_overlay: dynamically discover v4l-subdev using media-ctl command
Signed-off-by: Sivasubramanaiyan Padmanaban <sivasubramaniyan.padmanaban@analog.com>
1 parent 11b2644 commit a89420e

File tree

3 files changed

+47
-5
lines changed

3 files changed

+47
-5
lines changed

sdcard-images-utils/nvidia/patches/ubuntu_overlay/Tools/adi-adsd3500-enable-external-fsync.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
#!/bin/bash
22

3+
MEDIA_DEVICE="/dev/media0"
4+
DOT_OUTPUT=$(media-ctl -d "$MEDIA_DEVICE" --print-dot)
5+
DOT_OUTPUT=$(echo "$DOT_OUTPUT" | sed 's/\\n/\n/g')
6+
SUBDEV_PATH=$(echo "$DOT_OUTPUT" | awk '/adsd3500/ {getline; if ($0 ~ /\/dev\/v4l-subdev/) print $1}' | tr -d '",')
7+
VIDEO_PATH=$(echo "$DOT_OUTPUT" | awk '/vi-output, adsd3500/ {getline; if ($0 ~ /\/dev\/video/) print $1}' | tr -d '",')
8+
9+
if [[ -n "$SUBDEV_PATH" && -n "$VIDEO_PATH" ]]; then
10+
echo "adsd3500 subdev: $SUBDEV_PATH" > /dev/null
11+
echo "adsd3500 video : $VIDEO_PATH" > /dev/null
12+
else
13+
echo "adsd3500 device not found in $MEDIA_DEVICE"
14+
exit 1
15+
fi
16+
317
# export NET HOST_IO_SEL Pin
418
if [ ! -d /sys/class/gpio/gpio305 ]
519
then
@@ -21,4 +35,4 @@ echo 0 > /sys/class/gpio/gpio305/value
2135
echo 0 > /sys/class/gpio/gpio308/value
2236

2337
# Enable external fsync
24-
v4l2-ctl --set-ctrl=fsync_trigger=0 -d /dev/v4l-subdev1
38+
v4l2-ctl --set-ctrl=fsync_trigger=0 -d $SUBDEV_PATH

sdcard-images-utils/nvidia/patches/ubuntu_overlay/Tools/adi-adsd3500-enable-interrupt.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
#!/bin/bash
22

3+
MEDIA_DEVICE="/dev/media0"
4+
DOT_OUTPUT=$(media-ctl -d "$MEDIA_DEVICE" --print-dot)
5+
DOT_OUTPUT=$(echo "$DOT_OUTPUT" | sed 's/\\n/\n/g')
6+
SUBDEV_PATH=$(echo "$DOT_OUTPUT" | awk '/adsd3500/ {getline; if ($0 ~ /\/dev\/v4l-subdev/) print $1}' | tr -d '",')
7+
VIDEO_PATH=$(echo "$DOT_OUTPUT" | awk '/vi-output, adsd3500/ {getline; if ($0 ~ /\/dev\/video/) print $1}' | tr -d '",')
8+
9+
if [[ -n "$SUBDEV_PATH" && -n "$VIDEO_PATH" ]]; then
10+
echo "adsd3500 subdev: $SUBDEV_PATH" > /dev/null
11+
echo "adsd3500 video : $VIDEO_PATH" > /dev/null
12+
else
13+
echo "adsd3500 device not found in $MEDIA_DEVICE"
14+
exit 1
15+
fi
16+
317
# export NET HOST_IO_SEL Pin
418
if [ ! -d /sys/class/gpio/gpio305 ]
519
then
@@ -21,4 +35,4 @@ echo 1 > /sys/class/gpio/gpio305/value
2135
echo 1 > /sys/class/gpio/gpio308/value
2236

2337
# Enable interrupt support
24-
v4l2-ctl --set-ctrl=fsync_trigger=1 -d /dev/v4l-subdev1
38+
v4l2-ctl --set-ctrl=fsync_trigger=1 -d $SUBDEV_PATH

sdcard-images-utils/nvidia/patches/ubuntu_overlay/Tools/host_boot_tools/adi-adsd3500-host-boot.sh

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22

33
MODULE=$(strings /proc/device-tree/tegra-camera-platform/modules/module0/badge)
44

5+
MEDIA_DEVICE="/dev/media0"
6+
DOT_OUTPUT=$(media-ctl -d "$MEDIA_DEVICE" --print-dot)
7+
DOT_OUTPUT=$(echo "$DOT_OUTPUT" | sed 's/\\n/\n/g')
8+
SUBDEV_PATH=$(echo "$DOT_OUTPUT" | awk '/adsd3500/ {getline; if ($0 ~ /\/dev\/v4l-subdev/) print $1}' | tr -d '",')
9+
VIDEO_PATH=$(echo "$DOT_OUTPUT" | awk '/vi-output, adsd3500/ {getline; if ($0 ~ /\/dev\/video/) print $1}' | tr -d '",')
10+
11+
if [[ -n "$SUBDEV_PATH" && -n "$VIDEO_PATH" ]]; then
12+
echo "adsd3500 subdev: $SUBDEV_PATH" > /dev/null
13+
echo "adsd3500 video : $VIDEO_PATH" > /dev/null
14+
else
15+
echo "adsd3500 device not found in $MEDIA_DEVICE"
16+
exit 1
17+
fi
18+
519
adsd3500_power_sequence(){
620

721
#Pull ADSD3500 reset low
@@ -48,16 +62,16 @@ adsd3500_power_sequence(){
4862

4963
load_firmware() {
5064

51-
VALUE=$(v4l2-ctl -d /dev/v4l-subdev1 --get-ctrl load_firmware)
65+
VALUE=$(v4l2-ctl -d $SUBDEV_PATH --get-ctrl load_firmware)
5266
echo "The read value is $VALUE"
5367

5468
if [ "$VALUE" = "load_firmware: 0" ]; then
5569
echo "Send host boot firmware to ADSD3500"
56-
v4l2-ctl -d /dev/v4l-subdev1 --set-ctrl load_firmware=1
70+
v4l2-ctl -d $SUBDEV_PATH --set-ctrl load_firmware=1
5771
ret=$?
5872
elif [ "$VALUE" = "load_firmware: 1" ]; then
5973
echo "Send host boot firmware to ADSD3500"
60-
v4l2-ctl -d /dev/v4l-subdev1 --set-ctrl load_firmware=0
74+
v4l2-ctl -d $SUBDEV_PATH --set-ctrl load_firmware=0
6175
ret=$?
6276
else
6377
echo "Unexpected value: $VALUE"

0 commit comments

Comments
 (0)