#!/bin/sh
#
# udev	This is a minimal non-LSB version of a UDEV startup script.  It
#	was derived by stripping down the udev-058 LSB version for use
#	with buildroot on embedded hardware using Linux 2.6.34+ kernels.
#
#	You may need to customize this for your system's resource limits
#	(including startup time!) and administration.  For example, if
#	your early userspace has a custom initramfs or initrd you might
#	need /dev much earlier; or without hotpluggable busses (like USB,
#	PCMCIA, MMC/SD, and so on) your /dev might be static after boot.
#
#	This script assumes your system boots right into the eventual root
#	filesystem, and that init runs this udev script before any programs
#	needing more device nodes than the bare-bones set -- /dev/console,
#	/dev/zero, /dev/null -- that's needed to boot and run this script.
#

# Check for missing binaries

if [ -f /etc/ambarella.conf ]
then
  . /etc/ambarella.conf
fi

UDEV_BIN=/lib/udev/udevd
UDEV_ADM=/usr/sbin/udevadm
UDEV_MAX_CHILDREN=4
test -x $UDEV_BIN || exit 5

# Check for config file and read it
UDEV_CONFIG=/etc/udev/udev.conf
test -r $UDEV_CONFIG || exit 6
. $UDEV_CONFIG

case "$1" in
    start)
        echo -n "Populating $SYS_BOARD_BSP using udev: "
        echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
        $UDEV_BIN --daemon --children-max=$UDEV_MAX_CHILDREN
        if [ $? -eq 0 ]
        then
        	$UDEV_ADM trigger --subsystem-nomatch=i2c* --type=subsystems --action=add
        	$UDEV_ADM trigger --subsystem-nomatch=i2c* --type=devices --action=add
        	$UDEV_ADM trigger --subsystem-match=i2c-* --type=devices --action=add
        	if [ $? -eq 0 ]
        	then
        		echo "Done"
        	else
        		echo "Failed"
        	fi
        else
        	echo "Failed"
        fi
        ;;
    stop)
        # Stop execution of events
        $UDEV_ADM control --stop_exec_queue
        killall udevd
        ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
        ;;
esac

exit 0
