[oe-commits] org.oe.dev merge of '6bf4895c5f2152a0cafda3d402b7b1190cd8469a'

mickeyl commit openembedded-commits at lists.openembedded.org
Fri Jul 6 22:19:54 UTC 2007


merge of '6bf4895c5f2152a0cafda3d402b7b1190cd8469a'
     and 'd5b50f42c0a46a86e2e6458ba37bf575cad2f411'

Author: mickeyl at openembedded.org
Branch: org.openembedded.dev
Revision: 13a7fa8e89914a89d425e2b271160eb05bdd0a41
ViewMTN: http://monotone.openembedded.org/revision.psp?id=13a7fa8e89914a89d425e2b271160eb05bdd0a41
Files:
1
packages/efl1/etk_0.1.0.003.bb
packages/efl1/etk_0.1.0.004.bb
packages/linux/linux/simpad/linux-2.6.21-SIMpad-serial-and-gpio_keys.patch
packages/linux/linux/simpad/linux-2.6.21-pcmcia-device-to-platform-driver.patch
packages/qemu/qemu-0.9.0+cvs20070701
packages/gpe-scap/gpe-scap_1.3.bb
packages/linux/linux/simpad/linux-2.6.21-SIMpad-GPIO-MMC-mod.patch
packages/linux/linux/simpad/linux-2.6.21-SIMpad-battery-old-way-but-also-with-sysfs.patch
packages/linux/linux/simpad/linux-2.6.21-SIMpad-net-shared-irq.patch
packages/linux/linux/simpad/linux-2.6.21-SIMpad-pcmcia.patch
packages/linux/linux/simpad/linux-2.6.21-SIMpad-serial-gpio_keys-and-cs3-ro.patch
packages/linux/linux/simpad/linux-2.6.21-SIMpad-ucb1x00-ts-supend-and-accuracy.patch
packages/linux/linux/simpad/linux-2.6.21-SIMpad-usb-gadget.patch
packages/obexftp/files/iconv.patch
packages/qemu/qemu-0.9.0+cvs20070701/arm_nptl-0.9.0.patch
packages/qemu/qemu-0.9.0+cvs20070701/configure-0.9.0.patch
packages/qemu/qemu-0.9.0+cvs20070701/pl110_rgb-r0-0.9.0.patch
packages/qemu/qemu-0.9.0+cvs20070701/qemu-0.9.0-gcc4.patch
packages/qemu/qemu-0.9.0+cvs20070701/qemu-amd64-32b-mapping-0.9.0.patch
packages/qemu/qemu-0.9.0+cvs20070701/qemu-sdl-cursor-0.9.0.patch
packages/qemu/qemu-native_0.9.0+cvs.bb
packages/qemu/qemu_0.9.0+cvs.bb
packages/linux/linux/simpad/defconfig
packages/linux/linux/simpad/linux-2.6.21-SIMpad-cs3-simpad.patch
packages/linux/linux/simpad/linux-2.6.21-SIMpad-ucb1x00-switches.patch
packages/linux/linux_2.6.21.bb
packages/obexftp/obexftp_0.20.bb
packages/opie-icon-reload/opie-icon-reload.inc
packages/opie-icon-reload/opie-icon-reload_1.2.2.bb
Diffs:

#
# mt diff -r6bf4895c5f2152a0cafda3d402b7b1190cd8469a -r13a7fa8e89914a89d425e2b271160eb05bdd0a41
#
# 
# 
# rename "packages/efl1/etk_0.1.0.003.bb"
#     to "packages/efl1/etk_0.1.0.004.bb"
# 
# patch "packages/efl1/etk_0.1.0.004.bb"
#  from [874ac1e333ce9f41ebbe6ef5b46ae8e988187303]
#    to [f268a57f29e455ec9994f66eeb3c7394ed772463]
# 
============================================================
--- packages/efl1/etk_0.1.0.003.bb	874ac1e333ce9f41ebbe6ef5b46ae8e988187303
+++ packages/efl1/etk_0.1.0.004.bb	f268a57f29e455ec9994f66eeb3c7394ed772463
@@ -1,7 +1,7 @@ LICENSE = "MIT"
 DESCRIPTION = "Etk is an advanced widget toolkit based on the Enlightenment Foundation Libraries."
 DEPENDS = "evas ecore edje"
 LICENSE = "MIT"
-PR = "r1"
+PR = "r2"
 
 inherit efl1
 
@@ -10,4 +10,5 @@ FILES_${PN}-dev += "${libdir}/etk/engine
 FILES_${PN}-examples += "${bindir}"
 FILES_${PN}-engines = "${libdir}/etk/engines/*.so ${datadir}"
 FILES_${PN}-dev += "${libdir}/etk/engines/*.a ${libdir}/etk/engines/*.la"
+FILES_${PN}-dbg += "${libdir}/etk/engines/.debug/"
+
-FILES_${PN}-dbg += "${libdir}/etk/engines/*/.debug/"


#
# mt diff -rd5b50f42c0a46a86e2e6458ba37bf575cad2f411 -r13a7fa8e89914a89d425e2b271160eb05bdd0a41
#
# 
# 
# delete "packages/linux/linux/simpad/linux-2.6.21-SIMpad-serial-and-gpio_keys.patch"
# 
# delete "packages/linux/linux/simpad/linux-2.6.21-pcmcia-device-to-platform-driver.patch"
# 
# add_dir "packages/qemu/qemu-0.9.0+cvs20070701"
# 
# add_file "packages/gpe-scap/gpe-scap_1.3.bb"
#  content [ea05f8ee476d853b1883d58d4bc62e8d23ba9041]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.21-SIMpad-GPIO-MMC-mod.patch"
#  content [ca551aa3045d84582e156b7144204d62ce49b29a]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.21-SIMpad-battery-old-way-but-also-with-sysfs.patch"
#  content [144c9a1b84bf9300432389042de4ae1a9075f2ef]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.21-SIMpad-net-shared-irq.patch"
#  content [eaa3edf52f9c2a823faeb3c04479d0d50b4eb84e]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.21-SIMpad-pcmcia.patch"
#  content [f082128b03b307610664cffc2a16f567cda491aa]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.21-SIMpad-serial-gpio_keys-and-cs3-ro.patch"
#  content [686f95d155a2d43e0661cf0ebf7df8179119ab96]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.21-SIMpad-ucb1x00-ts-supend-and-accuracy.patch"
#  content [834a32ea1cf2ddd45bc5bd00fd08f3ed7b112de7]
# 
# add_file "packages/linux/linux/simpad/linux-2.6.21-SIMpad-usb-gadget.patch"
#  content [a780022ac59ad2d8c217b327e2093eea81e2d2d9]
# 
# add_file "packages/obexftp/files/iconv.patch"
#  content [25e8a86e111c7a9bf5dea96abfd1ab46176c8e4c]
# 
# add_file "packages/qemu/qemu-0.9.0+cvs20070701/arm_nptl-0.9.0.patch"
#  content [fa979163dbd470ffee9444b3f5168b0c35b9294f]
# 
# add_file "packages/qemu/qemu-0.9.0+cvs20070701/configure-0.9.0.patch"
#  content [fceffd7c18b851e71a433041cc397a2a56712fd7]
# 
# add_file "packages/qemu/qemu-0.9.0+cvs20070701/pl110_rgb-r0-0.9.0.patch"
#  content [a095d4fd1f4206b6371c8b0483110d0106f05eaf]
# 
# add_file "packages/qemu/qemu-0.9.0+cvs20070701/qemu-0.9.0-gcc4.patch"
#  content [5c21fb185db6d68100a02dd8782d5e8304329e16]
# 
# add_file "packages/qemu/qemu-0.9.0+cvs20070701/qemu-amd64-32b-mapping-0.9.0.patch"
#  content [bedb60fceca71600d2454f44c6130698c46cfc1c]
# 
# add_file "packages/qemu/qemu-0.9.0+cvs20070701/qemu-sdl-cursor-0.9.0.patch"
#  content [979836b87e2526bc947a9653186995de7097926a]
# 
# add_file "packages/qemu/qemu-native_0.9.0+cvs.bb"
#  content [be8008e321f835b85973928579193998a5bae720]
# 
# add_file "packages/qemu/qemu_0.9.0+cvs.bb"
#  content [0821d24a983c6cbf7674530ba38f58b01322368e]
# 
# patch "packages/linux/linux/simpad/defconfig"
#  from [db78ce10226f67738cc6a072a5190e9edf027ce3]
#    to [55bafb0626fd93fc3c8ffea822b033c9a6e67e97]
# 
# patch "packages/linux/linux/simpad/linux-2.6.21-SIMpad-cs3-simpad.patch"
#  from [4b58fb12608fa60445bee6da494d33330aa5fd90]
#    to [b8c20e7d67cfc6ab25b65f426b9516aa37a393bc]
# 
# patch "packages/linux/linux/simpad/linux-2.6.21-SIMpad-ucb1x00-switches.patch"
#  from [380567e4ad356d3df12b22af4f4cc6b3454cdc90]
#    to [a5811a05717af2fd1ba8add14fa4ee70f3856169]
# 
# patch "packages/linux/linux_2.6.21.bb"
#  from [b173c031d2b38c69861aac233b95eb1254d0c9ed]
#    to [d6e50b673f16999146443b578b809addead0109d]
# 
# patch "packages/obexftp/obexftp_0.20.bb"
#  from [c55f1af56071cfbe2fd0843c1abd7a675d5daae6]
#    to [88ca8420c7a7c5c71bdaefdd48cba8b53cfac57d]
# 
# patch "packages/opie-icon-reload/opie-icon-reload.inc"
#  from [a5b24579195caa423b671354921f67484f70f4dd]
#    to [3f5d81e3d57ca295eedaf901f2db0dddda8585bf]
# 
# patch "packages/opie-icon-reload/opie-icon-reload_1.2.2.bb"
#  from [a4dc069932cd82ceeda5ee8d13e64bc4171aec22]
#    to [b3c3f0eee0c1e20e63f1f40d650b617e4e8ab934]
# 
============================================================
--- packages/gpe-scap/gpe-scap_1.3.bb	ea05f8ee476d853b1883d58d4bc62e8d23ba9041
+++ packages/gpe-scap/gpe-scap_1.3.bb	ea05f8ee476d853b1883d58d4bc62e8d23ba9041
@@ -0,0 +1,13 @@
+DESCRIPTION = "GPE screenshot application"
+LICENSE = "GPL"
+PRIORITY = "optional"
+SECTION = "gpe"
+PR = "r0"
+
+RREPLACES = "gpe-screenshot"
+
+DEPENDS = "glib-2.0 gtk+ libgpewidget libglade libsoup"
+
+GPE_TARBALL_SUFFIX = "bz2"
+
+inherit gpe autotools
============================================================
--- packages/linux/linux/simpad/linux-2.6.21-SIMpad-GPIO-MMC-mod.patch	ca551aa3045d84582e156b7144204d62ce49b29a
+++ packages/linux/linux/simpad/linux-2.6.21-SIMpad-GPIO-MMC-mod.patch	ca551aa3045d84582e156b7144204d62ce49b29a
@@ -0,0 +1,1650 @@
+diff -uNr linux-2.6.21.vanilla/drivers/mmc/Kconfig linux-2.6.21/drivers/mmc/Kconfig
+--- linux-2.6.21.vanilla/drivers/mmc/Kconfig	2007-05-30 18:00:30.000000000 +0200
++++ linux-2.6.21/drivers/mmc/Kconfig	2007-05-30 18:26:18.000000000 +0200
+@@ -4,6 +4,12 @@
+ 
+ menu "MMC/SD Card support"
+ 
++config MMC_SPI_BLOCK
++	tristate "MMC support for SIMpad over GPIO"
++	help
++	  Say Y here to enable MMC block device over GPIO
++	  if you have done the MMC-Mod. For Module say M.
++
+ config MMC
+ 	tristate "MMC support"
+ 	help
+diff -uNr linux-2.6.21.vanilla/drivers/mmc/Makefile linux-2.6.21/drivers/mmc/Makefile
+--- linux-2.6.21.vanilla/drivers/mmc/Makefile	2007-05-30 18:00:30.000000000 +0200
++++ linux-2.6.21/drivers/mmc/Makefile	2007-05-30 18:26:18.000000000 +0200
+@@ -2,6 +2,8 @@
+ # Makefile for the kernel mmc device drivers.
+ #
+ 
++obj-$(CONFIG_MMC_SPI_BLOCK)	+= mmc_spi_block.o
++
+ #
+ # Core
+ #
+diff -uNr linux-2.6.21.vanilla/drivers/mmc/mmc_spi_block.c linux-2.6.21/drivers/mmc/mmc_spi_block.c
+--- linux-2.6.21.vanilla/drivers/mmc/mmc_spi_block.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.21/drivers/mmc/mmc_spi_block.c	2007-05-30 18:30:58.000000000 +0200
+@@ -0,0 +1,1618 @@
++/*
++ * Copyright (c) Cl�ent Ballabriga, 2005 - GPL
++ * Copyright (c) Guylhem Aznar, 2005 - GPL
++ *
++ * Please check http://externe.net/zaurus/simpad-bluetooth reference design first.
++ *
++ * Based on Madsuk/Rohde work on a MMC driver for the WRT54G.
++ *
++ * This is an ugly hack of a driver. I am surprised if it ever works!
++ * So please use a real driver or contribute one to the 2.4/2.6 mmc framework
++ *
++ * mrdata: ported to 2.6
++ */
++
++#include <linux/module.h>
++#include <linux/init.h>
++
++#include <linux/sched.h>
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/errno.h>
++#include <linux/hdreg.h>
++#include <linux/kdev_t.h>
++#include <linux/blkdev.h>
++#include <linux/spinlock.h>
++#include <linux/time.h>
++#include <linux/delay.h>
++#include <linux/timer.h>
++
++#include <linux/platform_device.h>
++
++#include <asm/hardware.h>
++#include <asm/arch/simpad.h>
++#include <asm/arch/gpio.h>
++
++static int major = 121;
++
++#define DEVICE_NAME "mmc_spi"
++
++static int hd_sizes[1<<6];
++static int hd_blocksizes[1<<6];
++static int hd_hardsectsizes[1<<6];
++static int hd_maxsect[1<<6];
++static struct hd_struct hd[1<<6];
++
++static struct gendisk *mmc_disk;
++
++static struct platform_device *mmc_dev; /* the one and only instance */
++
++static spinlock_t mmc_spi_lock;
++
++/*
++ * *******************************************************************
++ *
++ *                This is the only configurable part.
++ *
++ * *******************************************************************
++ *
++ */
++
++// #define DEBUG 1
++// #define DEBUG_HD 1
++// #define CHECK_MEDIA_CHANGE  // for developement ONLY, not working yet
++
++/* Let that include where it is or compilation fails on INIT_REQUEST/CURRENT */
++
++
++/*
++ * If you are using different GPIOs in your hardware hack, you must
++ * first make sure they are unused for other functions and then
++ * configure them here.
++ *
++ * On the simpad I use spare pins from the UART1 (internal serial port -> DECT 20-polig):
++ * 
++ *   Funktion  PIN  ##  Original direction  GPIO  ##  SPI function                New direction  SD/MMC   
++ * - DCD       PIN  08  (in)                GPIO  23  DO  - new name: DI -> MISO  (in)           PIN  7  Data Out
++ * - DTR       PIN  11  (out)               GPIO  07  CS                          (out)          PIN  1  Chip Select
++ * - RI        PIN  14  (in)                GPIO  19  CLK                         (out)          PIN  5  Clock
++ * - DSR       PIN  16  (in)                GPIO  06  DI  - new name: DO -> MOSI  (out)          PIN  2  Data In
++ * 
++ *
++ * SPI: MISO = Master In / Slave OUT   MOSI = Master Out / Slave In
++ *
++ * Don't worry about in/out original function - the GPIOs will be
++ * reprogrammed.
++ */
++
++#define GPIO_SD_DI   23
++#define GPIO_SD_CS   7
++#define GPIO_SD_CLK  19
++#define GPIO_SD_DO   6
++
++// #define FAST_GPIO_SD_DI		GPIO_GPIO23
++// #define FAST_GPIO_SD_CS		GPIO_GPIO7
++// #define FAST_GPIO_SD_CLK		GPIO_GPIO19
++// #define FAST_GPIO_SD_DO		GPIO_GPIO6
++
++#define FAST_GPIO_SD_DI   GPIO_UART1_DCD
++#define FAST_GPIO_SD_CS   GPIO_UART1_DTR
++#define FAST_GPIO_SD_CLK  GPIO_UART1_RI
++#define FAST_GPIO_SD_DO   GPIO_UART1_DSR
++
++/*
++ * *******************************************************************
++ *
++ *               Do not change anything below !
++ *
++ * *******************************************************************
++ *
++ */
++
++/* GPIO states */
++#define LOW 0
++#define HIGH 1
++
++#define INPUT 0
++#define OUTPUT 1
++
++#define PRESENT 1
++#define ABSENT 0
++
++typedef unsigned int   uint32;
++typedef unsigned long  u32_t;
++typedef unsigned short u16_t;
++typedef unsigned char  u8_t;
++
++static struct timer_list mmc_timer;
++
++// static struct timeval s_zeit, e_zeit;
++
++/* start with no card */
++static int mmc_media_detect = 0;
++static int mmc_media_changed = 1;
++
++
++/////////////////////
++// prototypes
++static int mmc_open(struct inode *inode, struct file *filp);
++static int mmc_release(struct inode *inode, struct file *filp);
++static int mmc_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg);
++static void mmc_request(request_queue_t *q);
++
++
++/*
++ * *******************************************************************
++ *
++ *             Begin GPIO hardware access functions.
++ *
++ * *******************************************************************
++ *
++ */
++
++#define gpio_read(a)		((GPLR & a) ? 1 : 0)
++#define gpio_write_high(a)	GPSR = a
++#define gpio_write_low(a)	GPCR = a
++
++/* set MMC_Chip_Select to HIGH (MMC/SD-Card inaktiv) */
++#define MMC_Disable() gpio_write_high( FAST_GPIO_SD_CS)
++
++/* set MMC_Chip_Select to LOW (MMC/SD-Card aktiv) */
++#define MMC_Enable() gpio_write_low( FAST_GPIO_SD_CS)
++
++/*
++ * *******************************************************************
++ *
++ *             Begin SPI hardware access functions.
++ *
++ * *******************************************************************
++ *
++ */
++static int mmc_spi_media_detect(void)
++{
++// FIXME: add card detection/test by SPI
++
++    return 1;
++}
++
++static int mmc_spi_hardware_init(void)
++{
++	printk("\nmmc: GPIO init\n");
++
++	/* cut existing functions */
++	gpio_set_alternative_function(GPIO_SD_CLK, 0);
++	gpio_set_alternative_function(GPIO_SD_DI, 0);
++	gpio_set_alternative_function(GPIO_SD_DO, 0);
++	gpio_set_alternative_function(GPIO_SD_CS, 0);
++
++	/* remap directions and set state of spi pins */
++	gpio_direction_output(GPIO_SD_CLK, 0);
++	gpio_direction_input(GPIO_SD_DI);	
++	gpio_direction_output(GPIO_SD_DO, 0);
++	gpio_direction_output(GPIO_SD_CS, 0);
++
++	printk("mmc: initialising MMC\n");
++
++	/* Start */
++	MMC_Disable();
++	gpio_write_low( FAST_GPIO_SD_CLK);
++	gpio_write_high( FAST_GPIO_SD_DO);
++	return 0;
++}
++
++/* return what has been read, write the parameter */
++/* Clockrate round about 1,2 MHz                  */
++
++static unsigned char mmc_spi_readwrite(unsigned char data_out)
++{
++    unsigned char i;
++    unsigned char result = 0;
++
++    for(i = 0x80 ; i != 0 ; i >>= 1)
++    {
++        if (data_out & i)
++        {
++            gpio_write_high( FAST_GPIO_SD_DO);
++        }
++	  else
++        {
++            gpio_write_low( FAST_GPIO_SD_DO);
++        }
++
++        gpio_write_high( FAST_GPIO_SD_CLK);
++	
++        if (gpio_read( FAST_GPIO_SD_DI) == 1)
++        {
++            result |= i;
++        }
++
++        gpio_write_low( FAST_GPIO_SD_CLK);
++	
++    }
++
++    gpio_write_high( FAST_GPIO_SD_DO);
++
++    return (result);
++}
++
++/* return what has been read, write the parameter */
++/* Clockrate round 200 kHz                        */
++ 
++static unsigned char mmc_spi_readwrite_slow(unsigned char data_out)
++{
++    unsigned char i;
++    unsigned char result = 0;
++
++    for(i = 0x80 ; i != 0 ; i >>= 1)
++    {	
++        if (data_out & i)
++        {
++            gpio_write_high( FAST_GPIO_SD_DO);
++        }
++        else
++        {
++            gpio_write_low( FAST_GPIO_SD_DO);
++        }
++
++        udelay(10);
++
++        gpio_write_high( FAST_GPIO_SD_CLK);
++
++        udelay(10);
++
++        if (gpio_read( FAST_GPIO_SD_DI) == 1)
++        {
++            result |= i;
++        }
++
++        udelay(10);
++	
++        gpio_write_low( FAST_GPIO_SD_CLK);
++
++        udelay(10);
++	
++    }
++
++    gpio_write_high( FAST_GPIO_SD_DO);
++
++    udelay(10);
++
++    // printk("Send Byte = 0x%2X   Receive Byte = 0x%2X \n", data_out, result);
++
++    return (result);
++}
++
++/* return what has been read */
++
++static unsigned char mmc_spi_read_only(void)
++{
++    unsigned char i;
++    unsigned char result = 0;
++
++    for(i = 0x80 ; i != 0 ; i >>= 1)
++    {
++
++        gpio_write_high( FAST_GPIO_SD_CLK);
++	
++        if (gpio_read( FAST_GPIO_SD_DI) == 1)
++        {
++            result |= i;
++        }
++
++        gpio_write_low( FAST_GPIO_SD_CLK);
++	
++    }
++
++    return (result);
++}
++
++/* write the parameter */
++/* Clockrate round about 3,6 MHz                  */
++
++static unsigned char mmc_spi_write_only(unsigned char data_out)
++{
++    unsigned char i;
++    unsigned char result = 0;
++
++    for(i = 0x80 ; i != 0 ; i >>= 1)
++    {
++    
++        if (data_out & i)
++        {
++            gpio_write_high( FAST_GPIO_SD_DO);
++        }
++	  else
++        {
++            gpio_write_low( FAST_GPIO_SD_DO);
++        }
++
++        gpio_write_high( FAST_GPIO_SD_CLK);
++	
++        gpio_write_low( FAST_GPIO_SD_CLK);
++	
++    }
++
++    gpio_write_high( FAST_GPIO_SD_DO);
++
++    return (result);
++}
++
++
++/**
++ * this function was contributed by: rcichielo from openwrt forums
++ *
++ * Comments added by Marc DENTY on 2007-03-20
++ *
++ * Sequence to read a card's "CID" bytes (name, serial number etc)
++ *
++ * Send: 4ah,00h,00h,00h,00h,00h  - CMD10, no args, null CRC
++ * Read: xx                       - NCR Time
++ * Read: xx                       - Command Response (Should be 00h)
++ * Read: until FEh is received    - Wait for Data token
++ * Read: yy  * 16                 - Get 16 bytes from CID
++ * Read: zz                       - Read CRC lo byte
++ * Read: zz                       - Read CRC hi byte
++ *
++ * Useful locations in the returned data packet:
++ *
++ * 03h-08h Manufacturers's name in ascii
++ * 0ah-0dh Card's 32 bit serial number 
++ */
++/**
++ * Comments added by Cyril CATTIAUX on 2007-03-21
++ *
++ * CID format specification (from Sandisk SD Product Manual v1.9)
++ *
++ * cid[00   ] Manufacturer ID (unsigned byte)
++ * cid[01-02] OEM/Application ID (ASCII)
++ * cid[03-07] Product Name (ASCII)
++ * cid[08   ] Product Revistion (BCD coded number)
++ * cid[09-12] Serial Number (32-bit unsigned int)
++ * cid[13-14] Reserved(bit 12->15) - Manufacture Date(bit 0->11)
++ * cid[15   ] CRC7(bit 1->7) - Not used, allways 1 (bit 0)
++*/
++static int mmc_read_cid(unsigned char *cid)
++{
++	unsigned char result = 0;
++        int i;
++
++        MMC_Enable();
++	
++	/* wait */
++	for (i = 0; i < 4; i++)
++	{
++ 		result=mmc_spi_readwrite(0xff);
++	}
++
++	/* issue CID (card identification data) read request */
++	mmc_spi_readwrite(0xff);
++	mmc_spi_readwrite(0x40 | 10);
++	mmc_spi_readwrite(0x00);
++	mmc_spi_readwrite(0x00);
++	mmc_spi_readwrite(0x00);
++	mmc_spi_readwrite(0x00);
++	mmc_spi_readwrite(0x95);
++	
++	for (i = 0; i < 8; i++)
++	{
++ 		result=mmc_spi_readwrite(0xff);
++
++		if(result == 0x00)
++			break;
++	}
++
++	if (result != 0x00) {
++		MMC_Disable();
++		mmc_spi_readwrite(0xff);
++		return(1);
++	}
++
++	for (i = 0; i < 8; i++) {
++		result = mmc_spi_readwrite(0xff);
++		if (result == 0xfe) break;
++	}
++
++	if %s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list