Author: titmuss
Date: Fri Jan  2 09:22:33 2009
New Revision: 3660

URL: http://svn.slimdevices.com?rev=3660&root=Jive&view=rev
Log:
 r3...@harrypotter (orig r3657):  titmuss | 2009-01-02 17:13:47 +0000
  r3...@harrypotter (orig r3640):  titmuss | 2008-12-29 23:30:54 +0000
  Bug: N/A
  Description:
  Driver changes to suport vgg243271 lcd panel for jive refresh.
  
  
 
 r3...@harrypotter (orig r3658):  titmuss | 2009-01-02 17:18:00 +0000
  r3...@harrypotter (orig r3641):  titmuss | 2008-12-29 23:44:51 +0000
  Bug: N/A
  Description:
  Correct timing parameter.
  
  
  r3...@harrypotter (orig r3647):  titmuss | 2009-01-02 10:26:37 +0000
  Bug: N/A
  Description:
  bootloader update for jive refresh to pass board revision '1' to kernel.
  
  
  r3...@harrypotter (orig r3648):  titmuss | 2009-01-02 10:56:21 +0000
  Bug: N/A
  Description:
  Select correct lcd driver for jive, based on the system revision passed from 
the 
  bootloader.
  
  
  r3...@harrypotter (orig r3649):  titmuss | 2009-01-02 12:58:56 +0000
  Bug: N/A
  Description:
  Add /sys interface to modify the gamma settings of the lcd panel:
  
    # old lcd settings
    echo 
"0x0000,0x0505,0x0004,0x0006,0x0707,0x0105,0x0002,0x0707,0x0704,0x0807" > 
  /sys/class/lcd/ili9320/gamma
  
    # new lcd settings
    echo 
"0x0000,0x0506,0x0104,0x0207,0x000F,0x0306,0x0102,0x0707,0x0702,0x1604" > 
  /sys/class/lcd/ili9320/gamma
  
  
  r3...@harrypotter (orig r3650):  titmuss | 2009-01-02 14:52:09 +0000
  Bug: N/A
  Description:
  Remove support for (very early) P4 prototype jives in the firmware upgrade.
  
  
  r3...@harrypotter (orig r3652):  titmuss | 2009-01-02 17:05:10 +0000
  Bug: N/A
  Description:
  Add support for testing different board revisions during a firmware upgrade. 
This 
  prevents downgrading to an firmware version that won't run on the board.
  
  
  r3...@harrypotter (orig r3653):  titmuss | 2009-01-02 17:08:34 +0000
  Bug: N/A
  Description:
  Added board.version file in the firmware binary, that includes the board 
revisions the 
  firmware is compatible with.
  New kernel configuration for jive refresh.
  
  
 

Added:
    7.4/trunk/bootloaders/uboot/u-boot-jive-rev1.bin   (with props)
    
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/vgg243271.c
Modified:
    7.4/trunk/   (props changed)
    7.4/trunk/bootloaders/uboot/s3c24x0_uboot/board/smdk2413/smdk2413.c
    7.4/trunk/bootloaders/uboot/s3c24x0_uboot/common/cmd_bootm.c
    7.4/trunk/bootloaders/uboot/s3c24x0_uboot/include/asm-arm/u-boot.h
    
7.4/trunk/squeezeos/poky/meta-squeezeos/classes/squeezeos-upgrade-image.bbclass
    7.4/trunk/squeezeos/poky/meta-squeezeos/conf/machine/jive.conf
    7.4/trunk/squeezeos/poky/meta-squeezeos/packages/linux/files/defconfig-jive
    7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/.config
    
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/arch/arm/mach-s3c2412/mach-jive.c
    7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/Kconfig
    
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/Makefile
    
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/ili9320.c
    
7.4/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua

Propchange: 7.4/trunk/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Fri Jan  2 09:22:33 2009
@@ -2,7 +2,8 @@
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.1/branches/discovery-refactor:2596
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.1/trunk:2920
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.2/trunk:2921
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.3/trunk:3587
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.3/private-branches/jive-refresh:3653
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.3/trunk:3658
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/7.0:2013
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/SN:1083
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/scrolling:1378

Modified: 7.4/trunk/bootloaders/uboot/s3c24x0_uboot/board/smdk2413/smdk2413.c
URL: 
http://svn.slimdevices.com/7.4/trunk/bootloaders/uboot/s3c24x0_uboot/board/smdk2413/smdk2413.c?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 7.4/trunk/bootloaders/uboot/s3c24x0_uboot/board/smdk2413/smdk2413.c 
(original)
+++ 7.4/trunk/bootloaders/uboot/s3c24x0_uboot/board/smdk2413/smdk2413.c Fri Jan 
 2 09:22:33 2009
@@ -118,6 +118,7 @@
 
        /* arch number of Jive Board */
        gd->bd->bi_arch_number = 1490;
+       gd->bd->bi_revision = 1;
 
        /* adress of boot parameters */
        gd->bd->bi_boot_params = 0x30000100;

Modified: 7.4/trunk/bootloaders/uboot/s3c24x0_uboot/common/cmd_bootm.c
URL: 
http://svn.slimdevices.com/7.4/trunk/bootloaders/uboot/s3c24x0_uboot/common/cmd_bootm.c?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 7.4/trunk/bootloaders/uboot/s3c24x0_uboot/common/cmd_bootm.c (original)
+++ 7.4/trunk/bootloaders/uboot/s3c24x0_uboot/common/cmd_bootm.c Fri Jan  2 
09:22:33 2009
@@ -522,6 +522,7 @@
        /* richard copied from armlinux for kernel cmdline */
        setup_start_tag(bd);
        setup_commandline_tag(bd, commandline);
+       setup_revision_tag(bd, bd->bi_revision);
        setup_end_tag(bd);
 
         /* Go Go Go */
@@ -564,6 +565,16 @@
     params->hdr.size = (sizeof(struct tag_header) + strlen(p) + 1 + 4) >> 2;
 
     strcpy(params->u.cmdline.cmdline, p);
+
+    params = tag_next(params);
+}
+
+static void setup_revision_tag(bd_t *bd, u32 revision)
+{
+    params->hdr.tag = ATAG_REVISION;
+    params->hdr.size = tag_size(tag_revision);
+
+    params->u.revision.rev = revision;
 
     params = tag_next(params);
 }

Modified: 7.4/trunk/bootloaders/uboot/s3c24x0_uboot/include/asm-arm/u-boot.h
URL: 
http://svn.slimdevices.com/7.4/trunk/bootloaders/uboot/s3c24x0_uboot/include/asm-arm/u-boot.h?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 7.4/trunk/bootloaders/uboot/s3c24x0_uboot/include/asm-arm/u-boot.h 
(original)
+++ 7.4/trunk/bootloaders/uboot/s3c24x0_uboot/include/asm-arm/u-boot.h Fri Jan  
2 09:22:33 2009
@@ -35,6 +35,7 @@
     unsigned char      bi_enetaddr[6]; /* Ethernet adress */
     struct environment_s              *bi_env;
     ulong              bi_arch_number; /* unique id for this board */
+    u32                        bi_revision;    /* revsion for this board */
     ulong              bi_boot_params; /* where this board expects params */
     struct                             /* RAM configuration */
     {

Added: 7.4/trunk/bootloaders/uboot/u-boot-jive-rev1.bin
URL: 
http://svn.slimdevices.com/7.4/trunk/bootloaders/uboot/u-boot-jive-rev1.bin?rev=3660&root=Jive&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 7.4/trunk/bootloaders/uboot/u-boot-jive-rev1.bin
------------------------------------------------------------------------------
    svn:executable = *

Propchange: 7.4/trunk/bootloaders/uboot/u-boot-jive-rev1.bin
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: 
7.4/trunk/squeezeos/poky/meta-squeezeos/classes/squeezeos-upgrade-image.bbclass
URL: 
http://svn.slimdevices.com/7.4/trunk/squeezeos/poky/meta-squeezeos/classes/squeezeos-upgrade-image.bbclass?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 
7.4/trunk/squeezeos/poky/meta-squeezeos/classes/squeezeos-upgrade-image.bbclass 
(original)
+++ 
7.4/trunk/squeezeos/poky/meta-squeezeos/classes/squeezeos-upgrade-image.bbclass 
Fri Jan  2 09:22:33 2009
@@ -15,18 +15,20 @@
        tmpdir=`mktemp -d /tmp/squeezeos-XXXXXX`
 
        # Copy image files
-       cp ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_NAME} ${tmpdir}/zImage-P7
+       cp ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_NAME} 
${tmpdir}/zImage${IMAGE_SQUEEZEOS_EXTRA_VERSION}
        cp ${DEPLOY_DIR_IMAGE}/${ROOTFS_IMAGE_NAME} ${tmpdir}/root.cramfs
        cp ${TMPDIR}/rootfs/etc/squeezeos.version ${tmpdir}/jive.version
+       echo -e ${IMAGE_SQUEEZEOS_BOARD_VERSION} > ${tmpdir}/board.version
 
        # Prepare files
        cd ${tmpdir}
-       md5sum zImage-P7 root.cramfs  > upgrade.md5
+       md5sum zImage${IMAGE_SQUEEZEOS_EXTRA_VERSION} root.cramfs  > upgrade.md5
 
        VERSION=${DISTRO_VERSION}_r${SQUEEZEOS_REVISION}
 
        # Create zip
-       zip ${DEPLOY_DIR_IMAGE}/${MACHINE}_${VERSION}.bin *
+       rm -f ${DEPLOY_DIR_IMAGE}/${MACHINE}_${VERSION}.bin
+       zip ${DEPLOY_DIR_IMAGE}/${MACHINE}_${VERSION}.bin jive.version 
board.version upgrade.md5 zImage${IMAGE_SQUEEZEOS_EXTRA_VERSION} root.cramfs
        cd ${DEPLOY_DIR_IMAGE}
 
        rm -f ${MACHINE}.bin

Modified: 7.4/trunk/squeezeos/poky/meta-squeezeos/conf/machine/jive.conf
URL: 
http://svn.slimdevices.com/7.4/trunk/squeezeos/poky/meta-squeezeos/conf/machine/jive.conf?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 7.4/trunk/squeezeos/poky/meta-squeezeos/conf/machine/jive.conf (original)
+++ 7.4/trunk/squeezeos/poky/meta-squeezeos/conf/machine/jive.conf Fri Jan  2 
09:22:33 2009
@@ -18,5 +18,9 @@
 IMAGE_INSTALL += "squeezeplay-squeezeos"
 
 IMAGE_SQUEEZEOS_UPGRADE = "1"
+IMAGE_SQUEEZEOS_EXTRA_VERSION = "-P7"
+IMAGE_SQUEEZEOS_BOARD_VERSION = "jive:0000\\n\
+jive:0001\\n\
+"
 
 require conf/machine/include/tune-arm926ejs.inc

Modified: 
7.4/trunk/squeezeos/poky/meta-squeezeos/packages/linux/files/defconfig-jive
URL: 
http://svn.slimdevices.com/7.4/trunk/squeezeos/poky/meta-squeezeos/packages/linux/files/defconfig-jive?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 7.4/trunk/squeezeos/poky/meta-squeezeos/packages/linux/files/defconfig-jive 
(original)
+++ 7.4/trunk/squeezeos/poky/meta-squeezeos/packages/linux/files/defconfig-jive 
Fri Jan  2 09:22:33 2009
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.22
-# Wed Nov 26 15:45:04 2008
+# Fri Jan  2 14:20:11 2009
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -768,6 +768,7 @@
 CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_LCD_ILI9320=y
 CONFIG_LCD_VGG2432A4=y
+CONFIG_LCD_VGG243271=y
 
 #
 # Display device support

Modified: 7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/.config
URL: 
http://svn.slimdevices.com/7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/.config?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/.config (original)
+++ 7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/.config Fri Jan  2 09:22:33 
2009
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.22
-# Mon Apr 14 11:50:24 2008
+# Mon Dec 29 12:43:28 2008
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -54,7 +54,7 @@
 # CONFIG_BLK_DEV_INITRD is not set
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_SYSCTL=y
-# CONFIG_EMBEDDED is not set
+CONFIG_EMBEDDED=y
 CONFIG_UID16=y
 CONFIG_SYSCTL_SYSCALL=y
 CONFIG_KALLSYMS=y
@@ -581,10 +581,7 @@
 #
 # Userland interfaces
 #
-CONFIG_INPUT_MOUSEDEV=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_MOUSEDEV is not set
 # CONFIG_INPUT_JOYDEV is not set
 # CONFIG_INPUT_TSDEV is not set
 CONFIG_INPUT_EVDEV=y
@@ -616,6 +613,7 @@
 #
 CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_LIBPS2 is not set
 # CONFIG_SERIO_RAW is not set
 # CONFIG_GAMEPORT is not set
 
@@ -774,6 +772,7 @@
 CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_LCD_ILI9320=y
 CONFIG_LCD_VGG2432A4=y
+CONFIG_LCD_VGG243271=y
 
 #
 # Display device support
@@ -993,7 +992,8 @@
 CONFIG_MINI_FO=y
 # CONFIG_MINIX_FS is not set
 # CONFIG_ROMFS_FS is not set
-# CONFIG_INOTIFY is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
 # CONFIG_QUOTA is not set
 CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
@@ -1151,7 +1151,7 @@
 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
 # CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_BUGVERBOSE is not set
 # CONFIG_DEBUG_INFO is not set
 # CONFIG_DEBUG_VM is not set
 # CONFIG_DEBUG_LIST is not set

Modified: 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/arch/arm/mach-s3c2412/mach-jive.c
URL: 
http://svn.slimdevices.com/7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/arch/arm/mach-s3c2412/mach-jive.c?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/arch/arm/mach-s3c2412/mach-jive.c 
(original)
+++ 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/arch/arm/mach-s3c2412/mach-jive.c 
Fri Jan  2 09:22:33 2009
@@ -391,7 +391,7 @@
 #undef LCD_UPPER_MARGIN
 #define LCD_UPPER_MARGIN 2
 
-static struct ili9320_platdata jive_lcm_config = {
+static struct ili9320_platdata jive_vgg2432a4_lcm_config = {
        .hsize          = LCD_XRES,
        .vsize          = LCD_YRES,
 
@@ -400,6 +400,7 @@
        .suspend        = ILI9320_SUSPEND_DEEP,
 
        .entry_mode     = ILI9320_ENTRYMODE_ID(3) | ILI9320_ENTRYMODE_BGR,
+
        .display2       = (ILI9320_DISPLAY2_FP(LCD_UPPER_MARGIN) |
                           ILI9320_DISPLAY2_BP(LCD_LOWER_MARGIN)),
        .display3       = 0x0,
@@ -415,30 +416,60 @@
        .interface6     = 0x0,
 };
 
+static struct ili9320_platdata jive_vgg243271_lcm_config = {
+       .hsize          = LCD_XRES,
+       .vsize          = LCD_YRES,
+
+       .reset          = jive_lcm_reset,
+       .set_power      = jive_backlight_powercb,
+       .suspend        = ILI9320_SUSPEND_DEEP,
+
+       .entry_mode     = ILI9320_ENTRYMODE_ID(3) | ILI9320_ENTRYMODE_BGR,
+
+       .display2       = (ILI9320_DISPLAY2_FP(LCD_UPPER_MARGIN) |
+                          ILI9320_DISPLAY2_BP(LCD_LOWER_MARGIN)),
+       .display3       = 0x0,
+       .display4       = 0x0,
+       .rgb_if1        = (ILI9320_RGBIF1_RIM_RGB16 |
+                          ILI9320_RGBIF1_RM | ILI9320_RGBIF1_CLK_RGBIF),
+       .rgb_if2        = ILI9320_RGBIF2_DPL,
+       .interface2     = 0x0600,
+};
+
 /* LCD SPI support */
 
-static struct spi_board_info jive_lcd_spi_board[] = {
+static void jive_lcd_spi_chipselect(struct s3c2410_spigpio_info *spi, int cs)
+{
+       s3c2410_gpio_setpin(S3C2410_GPB7, cs ? 0 : 1);
+}
+
+static struct spi_board_info jive_lcd_vgg2432a4_spi_board[] = {
        [0] = {
                .modalias       = "VGG2432A4",
                .chip_select    = 0,
                .mode           = SPI_MODE_3,   /* CPOL=1, CPHA=1 */
                .max_speed_hz   = 100000,       /* todo: confirm */
-               .platform_data  = &jive_lcm_config,
+               .platform_data  = &jive_vgg2432a4_lcm_config,
        },
 };
 
-static void jive_lcd_spi_chipselect(struct s3c2410_spigpio_info *spi, int cs)
-{
-       s3c2410_gpio_setpin(S3C2410_GPB7, cs ? 0 : 1);
-}
+static struct spi_board_info jive_lcd_vgg243271_spi_board[] = {
+       [0] = {
+               .modalias       = "VGG243271",
+               .chip_select    = 0,
+               .mode           = SPI_MODE_3,   /* CPOL=1, CPHA=1 */
+               .max_speed_hz   = 100000,       /* todo: confirm */
+               .platform_data  = &jive_vgg243271_lcm_config,
+       },
+};
 
 static struct s3c2410_spigpio_info jive_lcd_spi = {
        .bus_num        = 0,
        .pin_clk        = S3C2410_GPG8,
        .pin_mosi       = S3C2410_GPB8,
        .chip_select    = jive_lcd_spi_chipselect,
-       .board_info     = jive_lcd_spi_board,
-       .board_size     = ARRAY_SIZE(jive_lcd_spi_board),
+       .board_info     = NULL,
+       .board_size     = 0,
 };
 
 static struct platform_device jive_device_lcdspi = {
@@ -470,7 +501,7 @@
        .pin_mosi       = S3C2410_GPB9,
        .chip_select    = jive_wm8750_chipselect,
        .board_info     = jive_wm8750_board,
-       .board_size     = ARRAY_SIZE(jive_lcd_spi_board),
+       .board_size     = ARRAY_SIZE(jive_wm8750_board),
 };
 
 static struct platform_device jive_device_wm8750 = {
@@ -707,6 +738,18 @@
 
        s3c_device_nand.dev.platform_data = &jive_nand_info;
 
+       switch (system_rev) {
+       case 0:
+               jive_lcd_spi.board_info =  jive_lcd_vgg2432a4_spi_board;
+               jive_lcd_spi.board_size = 
ARRAY_SIZE(jive_lcd_vgg2432a4_spi_board);
+               break;
+
+       default:
+               jive_lcd_spi.board_info = jive_lcd_vgg243271_spi_board;
+               jive_lcd_spi.board_size = 
ARRAY_SIZE(jive_lcd_vgg243271_spi_board);
+               break;
+       }
+
        /* make sure CLKOUT0 is turn off for EMI emissions */
        s3c2410_gpio_cfgpin(S3C2410_GPH9, S3C2410_GPIO_INPUT);
 

Modified: 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/Kconfig
URL: 
http://svn.slimdevices.com/7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/Kconfig?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/Kconfig 
(original)
+++ 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/Kconfig 
Fri Jan  2 09:22:33 2009
@@ -88,3 +88,12 @@
        help
          If you have a VGG2432A4 panel based on the ILI9320 controller chip
          then say y to include a power driver for it.
+
+config LCD_VGG243271
+       tristate "VGG243271 LCM device support"
+       depends on BACKLIGHT_LCD_SUPPORT && LCD_CLASS_DEVICE && SPI_MASTER
+       select LCD_ILI9320
+       default n
+       help
+         If you have a VGG243271 panel based on the ILI9325 controller chip
+         then say y to include a power driver for it.

Modified: 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/Makefile
URL: 
http://svn.slimdevices.com/7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/Makefile?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/Makefile 
(original)
+++ 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/Makefile 
Fri Jan  2 09:22:33 2009
@@ -9,4 +9,5 @@
 obj-$(CONFIG_BACKLIGHT_CARILLO_RANCH) += cr_bllcd.o
 
 obj-$(CONFIG_LCD_ILI9320)      += ili9320.o
-obj-$(CONFIG_LCD_VGG2432A4)    += vgg2432a4.o
+obj-$(CONFIG_LCD_VGG2432A4)    += vgg2432a4.o
+obj-$(CONFIG_LCD_VGG243271)    += vgg243271.o

Modified: 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/ili9320.c
URL: 
http://svn.slimdevices.com/7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/ili9320.c?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/ili9320.c 
(original)
+++ 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/ili9320.c 
Fri Jan  2 09:22:33 2009
@@ -184,6 +184,31 @@
        .set_power      = ili9320_set_power,
 };
 
+#define class_to_lcd(_w) container_of(_w, struct lcd_device, class_dev)
+
+static ssize_t ili9320_gamma_store(struct class_device *dev,
+                                  const char *buf, size_t count)
+{
+       struct lcd_device *lcd = class_to_lcd(dev);
+       struct ili9320 *ili = class_get_devdata(&lcd->class_dev);
+       char *ptr, *end;
+       unsigned long val;
+       unsigned int reg = ILI9320_GAMMA1;
+
+       end = (char *)buf + count;
+       ptr = (char *)buf;
+       while (ptr < end && reg <= ILI9320_GAMMA10) {
+               val = simple_strtoul(ptr, &ptr, 0);
+               ptr++;
+
+               ili9320_write(ili, reg++, val);
+       }
+
+       return count;
+}
+
+static CLASS_DEVICE_ATTR(gamma, 0644, NULL, ili9320_gamma_store);
+
 static void __devinit ili9320_setup_spi(struct ili9320 *ili,
                                        struct spi_device *dev)
 {
@@ -216,7 +241,7 @@
        struct ili9320_platdata *cfg = spi->dev.platform_data;
        struct ili9320 *ili;
        struct lcd_device *lcd;
-       int ret = 0;
+       int err, ret = 0;
 
        /* verify we where given some information */
 
@@ -266,6 +291,10 @@
                goto err_unregister;
        }
 
+       if ((err = class_device_create_file(&lcd->class_dev, 
&class_device_attr_gamma))) {
+               dev_err(&spi->dev, "cannot attach gamma attribute\n");
+       }
+
        return 0;
 
  err_unregister:
@@ -281,6 +310,8 @@
 int __devexit ili9320_remove(struct ili9320 *lcd)
 {
        ili9320_power(lcd, FB_BLANK_POWERDOWN);
+
+       class_device_remove_file(&lcd->lcd->class_dev, 
&class_device_attr_gamma);
 
        lcd_device_unregister(lcd->lcd);
        kfree(lcd);

Added: 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/vgg243271.c
URL: 
http://svn.slimdevices.com/7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/vgg243271.c?rev=3660&root=Jive&view=auto
==============================================================================
--- 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/vgg243271.c
 (added)
+++ 
7.4/trunk/squeezeos/src/s3c2412/linux-2.6.22/drivers/video/backlight/vgg243271.c
 Fri Jan  2 09:22:33 2009
@@ -1,0 +1,291 @@
+/* drivers/video/backlight/vgg243271.c
+ *
+ * VGG243271 (ILI9320) LCD controller driver.
+ *
+ * Copyright 2008 Logitech
+ *     Richard Titmuss <[email protected]>
+ *
+ * Based on:
+ * VGG2432A4 (ILI9320) LCD controller driver
+ *
+ * Copyright 2007 Simtec Electronics
+ *     Ben Dooks <[email protected]>
+ *
+ * http://armlinux.simtec.co.uk/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/delay.h>
+#include <linux/err.h>
+#include <linux/fb.h>
+#include <linux/init.h>
+#include <linux/lcd.h>
+#include <linux/module.h>
+
+#include <linux/spi/spi.h>
+
+#include <video/ili9320.h>
+
+#include "ili9320.h"
+
+/* Device initialisation sequences */
+
+static struct ili9320_reg vgg_init1[] = {
+       {
+               .address = ILI9320_POWER1,
+               .value   = ILI9320_POWER1_AP(0) | ILI9320_POWER1_BT(0),
+       }, {
+               .address = ILI9320_POWER2,
+               .value   = ILI9320_POWER2_VC(7) | ILI9320_POWER2_DC0(0) | 
ILI9320_POWER2_DC1(0),
+       }, {
+               .address = ILI9320_POWER3,
+               .value   = ILI9320_POWER3_VRH(0),
+       }, {
+               .address = ILI9320_POWER4,
+               .value   = ILI9320_POWER4_VREOUT(0),
+       },
+};
+
+static struct ili9320_reg vgg_init2[] = {
+       {
+               .address = ILI9320_POWER1,
+               .value   = ILI9320_POWER1_AP(1) | ILI9320_POWER1_APE | 
ILI9320_POWER1_BT(4) | ILI9320_POWER1_SAP,
+       }, {
+               .address = ILI9320_POWER2,
+               .value   = ILI9320_POWER2_VC(7) | ILI9320_POWER2_DC0(2) | 
ILI9320_POWER2_DC1(2),
+       }
+};
+
+static struct ili9320_reg vgg_gamma[] = {
+       {
+               .address = ILI9320_GAMMA1,
+               .value   = 0x0000,
+       }, {
+               .address = ILI9320_GAMMA2,
+               .value   = 0x0506,
+       }, {
+               .address = ILI9320_GAMMA3,
+               .value   = 0x0104,
+       }, {
+               .address = ILI9320_GAMMA4,
+               .value   = 0x0207,
+       }, {
+               .address = ILI9320_GAMMA5,
+               .value   = 0x000F,
+       }, {
+               .address = ILI9320_GAMMA6,
+               .value   = 0x0306,
+       }, {
+               .address = ILI9320_GAMMA7,
+               .value   = 0x0102,
+       }, {
+               .address = ILI9320_GAMMA8,
+               .value   = 0x0707,
+       }, {
+               .address = ILI9320_GAMMA9,
+               .value   = 0x0702,
+       }, {
+               .address = ILI9320_GAMMA10,
+               .value   = 0x1604,
+       }
+
+};
+
+static struct ili9320_reg vgg_init0[] = {
+       [0]     = {
+               /* set direction and scan mode gate */
+               .address = ILI9320_DRIVER,
+               .value   = ILI9320_DRIVER_SS,
+       }, {
+               .address = ILI9320_DRIVEWAVE,
+               .value   = ILI9320_DRIVEWAVE_MUSTSET | ILI9320_DRIVEWAVE_EOR | 
ILI9320_DRIVEWAVE_BC,
+       }, {
+               .address = ILI9320_ENTRYMODE,
+               .value   = ILI9320_ENTRYMODE_ID(3) | ILI9320_ENTRYMODE_BGR,
+       }, {
+               .address = ILI9320_RESIZING,
+               .value   = 0x0,
+       },
+};
+
+
+static int vgg243271_lcd_init(struct ili9320 *lcd,
+                             struct ili9320_platdata *cfg)
+{
+       unsigned int addr;
+       int ret;
+
+       /* Set internal timing */
+       ret = ili9320_write(lcd, 0x00e3, 0x3008);
+       if (ret)
+               goto err_initial;
+
+       ret = ili9320_write(lcd, 0x00e7, 0x0012);
+       if (ret)
+               goto err_initial;
+
+       ret = ili9320_write(lcd, 0x00ef, 0x1231);
+       if (ret)
+               goto err_initial;
+
+       /* must wait at-lesat 10ms after starting */
+       mdelay(15);
+
+       ret = ili9320_write_regs(lcd, vgg_init0, ARRAY_SIZE(vgg_init0));
+       if (ret != 0)
+               goto err_initial;
+
+       ili9320_write(lcd, ILI9320_DISPLAY2, cfg->display2);
+       ili9320_write(lcd, ILI9320_DISPLAY3, cfg->display3);
+       ili9320_write(lcd, ILI9320_DISPLAY4, cfg->display4);
+
+       ili9320_write(lcd, ILI9320_RGB_IF1, cfg->rgb_if1);
+       ili9320_write(lcd, ILI9320_FRAMEMAKER, 0x0);
+       ili9320_write(lcd, ILI9320_RGB_IF2, cfg->rgb_if2);
+
+       ret = ili9320_write_regs(lcd, vgg_init1, ARRAY_SIZE(vgg_init1));
+       if (ret != 0)
+               goto err_vgg;
+
+       mdelay(300);
+
+       ret = ili9320_write_regs(lcd, vgg_init2, ARRAY_SIZE(vgg_init2));
+       if (ret != 0)
+               goto err_vgg2;
+
+       mdelay(100);
+
+       ili9320_write(lcd, ILI9320_POWER3, 0x001c);
+
+       mdelay(100);
+
+       ili9320_write(lcd, ILI9320_POWER4, 0x1a00);
+       ili9320_write(lcd, ILI9320_POWER7, 0x0025);
+
+       mdelay(100);
+
+       ili9320_write(lcd, ILI9320_FRAME_RATE_COLOUR, 0x0C);
+
+       mdelay(100);
+
+       ili9320_write(lcd, ILI9320_GRAM_HORIZ_ADDR, 0x00);
+       ili9320_write(lcd, ILI9320_GRAM_VERT_ADD, 0x00);
+
+       ret = ili9320_write_regs(lcd, vgg_gamma, ARRAY_SIZE(vgg_gamma));
+       if (ret != 0)
+               goto err_vgg3;
+
+       ili9320_write(lcd, ILI9320_HORIZ_START, 0x0);
+       ili9320_write(lcd, ILI9320_HORIZ_END, cfg->hsize - 1);
+       ili9320_write(lcd, ILI9320_VERT_START, 0x0);
+       ili9320_write(lcd, ILI9320_VERT_END, cfg->vsize - 1);
+
+       ili9320_write(lcd, ILI9320_DRIVER2,
+                     ILI9320_DRIVER2_GS |
+                     ILI9320_DRIVER2_NL(((cfg->vsize - 240) / 8) + 0x1D));
+
+       ili9320_write(lcd, ILI9320_BASE_IMAGE, 0x1);
+       ili9320_write(lcd, ILI9320_VERT_SCROLL, 0x00);
+
+       for (addr = ILI9320_PARTIAL1_POSITION; addr <= ILI9320_PARTIAL2_END;
+            addr++) {
+               ili9320_write(lcd, addr, 0x0);
+       }
+
+       ili9320_write(lcd, ILI9320_INTERFACE1, 0x10);
+       ili9320_write(lcd, ILI9320_INTERFACE2, cfg->interface2);
+
+       lcd->display1 = (ILI9320_DISPLAY1_D(3) | ILI9320_DISPLAY1_DTE |
+                        ILI9320_DISPLAY1_GON | ILI9320_DISPLAY1_BASEE);
+
+       ili9320_write(lcd, ILI9320_DISPLAY1, lcd->display1);
+
+       return 0;
+
+ err_vgg3:
+ err_vgg2:
+ err_vgg:
+ err_initial:
+       return ret;
+}
+
+#ifdef CONFIG_PM
+static int vgg243271_suspend(struct spi_device *spi, pm_message_t state)
+{
+       return ili9320_suspend(dev_get_drvdata(&spi->dev), state);
+}
+
+static int vgg243271_resume(struct spi_device *spi)
+{
+       return ili9320_resume(dev_get_drvdata(&spi->dev));
+}
+#else
+#define vgg243271_suspend      NULL
+#define vgg243271_resume       NULL
+#endif
+
+static struct ili9320_client vgg243271_client = {
+       .name   = "VGG243271",
+       .init   = vgg243271_lcd_init,
+};
+
+/* Device probe */
+
+static int __devinit vgg243271_probe(struct spi_device *spi)
+{
+       int ret;
+
+       ret = ili9320_probe_spi(spi, &vgg243271_client);
+       if (ret != 0) {
+               dev_err(&spi->dev, "failed to initialise ili9320\n");
+               return ret;
+       }
+
+       return 0;
+}
+
+static int __devexit vgg243271_remove(struct spi_device *spi)
+{
+       return ili9320_remove(dev_get_drvdata(&spi->dev));
+}
+
+static void vgg243271_shutdown(struct spi_device *spi)
+{
+       ili9320_shutdown(dev_get_drvdata(&spi->dev));
+}
+
+static struct spi_driver vgg243271_driver = {
+       .driver = {
+               .name           = "VGG243271",
+               .owner          = THIS_MODULE,
+       },
+       .probe          = vgg243271_probe,
+       .remove         = __devexit_p(vgg243271_remove),
+       .shutdown       = vgg243271_shutdown,
+       .suspend        = vgg243271_suspend,
+       .resume         = vgg243271_resume,
+};
+
+/* Device driver initialisation */
+
+static int __init vgg243271_init(void)
+{
+       return spi_register_driver(&vgg243271_driver);
+}
+
+static void __exit vgg243271_exit(void)
+{
+       spi_unregister_driver(&vgg243271_driver);
+}
+
+module_init(vgg243271_init);
+module_exit(vgg243271_exit);
+
+MODULE_AUTHOR("Richard Titmuss <[email protected]>");
+MODULE_DESCRIPTION("VGG243271 LCD Driver");
+MODULE_LICENSE("GPLv2");
+
+

Modified: 
7.4/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
URL: 
http://svn.slimdevices.com/7.4/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua?rev=3660&root=Jive&r1=3659&r2=3660&view=diff
==============================================================================
--- 
7.4/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
 (original)
+++ 
7.4/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
 Fri Jan  2 09:22:33 2009
@@ -99,7 +99,7 @@
                                text = self:string("INVALID_MAC_CONTINUE"),
                                sound = "WINDOWHIDE",
                                callback = function()
-                                                  window:hide()
+                                                  popup:hide()
                                           end
                        },
                })

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins

Reply via email to