@@ -354,6 +354,30 @@ write_lowlight()
354354{
355355 local lowlight=0;
356356 local res=0;
357+ if [ $PARAM1 -eq 0 ] ; then
358+ printf " close lowlight mode\n" ;
359+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x10 0xDA ) ;
360+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x11 0x6D ) ;
361+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x12 0xA5) ;
362+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x13 0x00 ) ;
363+ sleep 0.01;
364+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x10 0xDA ) ;
365+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x11 0x66 ) ;
366+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x12 0x40) ;
367+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x13 0x00 ) ;
368+ else
369+ printf " open lowlight mode\n" ;
370+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x10 0xDA ) ;
371+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x11 0x6D ) ;
372+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x12 0xA4) ;
373+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x13 0x00 ) ;
374+ sleep 0.01;
375+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x10 0xDA ) ;
376+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x11 0x66 ) ;
377+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x12 0x41 ) ;
378+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x13 0x00 ) ;
379+ fi
380+ sleep 0.01;
357381 res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x10 0xDA ) ;
358382 res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x11 0x64 ) ;
359383 res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x12 $PARAM1 ) ;
@@ -1459,6 +1483,49 @@ read_exptime()
14591483
14601484}
14611485
1486+ read_osd ()
1487+ {
1488+ local regval_0=0;
1489+ local regval_1=0;
1490+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x10 0xDF ) ;
1491+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x11 0x58 ) ;
1492+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x13 0x01 ) ;
1493+ sleep 0.01;
1494+ res=$( ./i2c_read $I2C_DEV $I2C_ADDR 0x14 ) ;
1495+ regval_0=$? ;
1496+ sleep 0.01;
1497+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x10 0x47 ) ;
1498+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x11 0x5A ) ;
1499+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x13 0x01 ) ;
1500+ sleep 0.01;
1501+ res=$( ./i2c_read $I2C_DEV $I2C_ADDR 0x14 ) ;
1502+ regval_1=$? ;
1503+ printf " r close osd 0x%x, 0x%x\n" $regval_0 $regval_1 ;
1504+ }
1505+
1506+ write_osd ()
1507+ {
1508+ local regval_0=0;
1509+ local regval_1=0;
1510+ if [ $PARAM1 -eq 1 ] ; then
1511+ printf " w open osd\n" ;
1512+ regval_0=0xA9;
1513+ regval_1=0xB0;
1514+ else
1515+ printf " w close osd\n" ;
1516+ regval_0=0xA8;
1517+ regval_1=0x30;
1518+ fi
1519+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x10 0xDF ) ;
1520+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x11 0x58 ) ;
1521+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x12 $regval_0 ) ;
1522+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x13 0x00 ) ;
1523+ sleep 0.01;
1524+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x10 0x47 ) ;
1525+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x11 0x5A ) ;
1526+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x12 $regval_1 ) ;
1527+ res=$( ./i2c_write $I2C_DEV $I2C_ADDR 0x13 0x00 ) ;
1528+ }
14621529# ######################Action# BEGIN##############################
14631530
14641531pinmux;
@@ -1595,6 +1662,9 @@ if [ ${MODE} = "read" ] ; then
15951662 " exptime" )
15961663 read_exptime;
15971664 ;;
1665+ " osd" )
1666+ read_osd;
1667+ ;;
15981668 esac
15991669fi
16001670
@@ -1727,6 +1797,12 @@ if [ ${MODE} = "write" ] ; then
17271797 " auto_shutter_max" )
17281798 write_auto_shutter_max;
17291799 ;;
1800+ " osd" )
1801+ write_osd;
1802+ ;;
17301803 esac
17311804 sleep 0.1;
17321805fi
1806+
1807+ # disable i2c transfer
1808+ ./i2c_write $I2C_DEV $I2C_ADDR 0x07 0xFF> /dev/null 2>&1
0 commit comments