linuxµÄ´¥ÃþÆÁÖ®ËÄ£ºandroidµÄtslib¶ÔϲãLinuxµÄ¿ØÖÆ
£¨1£©ÈýÐǵĴ¥ÃþÆÁÇý¶¯s3c-ts.c£º
s3c_ts_init-¡·platform_driver_register(&s3c_ts_driver)£»
static struct platform_driver s3c_ts_driver = {
.probe = s3c_ts_probe,
.driver = {
.owner = THIS_MODULE,
.name = "s3c-ts",},
};
ͨ¹ý"s3c-ts"×Ö·û´®Óëdev-ts.cµÄs3c_device_tsÖеÄname×Ö´®Æ¥Å䣬ʵÏÖ×¢²á¡£
static int __init s3c_ts_probe(struct platform_device *pdev)
{
platform_get_resource(pdev, IORESOURCE_MEM, 0); //»ñµÃMEM×ÊÔ´
request_mem_region(res->start, size, pdev->name); //»ñµÃMEM×ÊÔ´´óС
ioremap(res->start, size); //¶ÔMEM×ÊÔ´ÖØÐÂIO
clk_enable(ts_clock); //TSµÄCLKʹÄÜ
struct s3c_ts_mach_info *s3c_ts_cfg = s3c_ts_get_platdata(&pdev->dev); //»ñµÃĬÈϵÄtsÅäÖÃÊý¾Ý£¬Èç²ÉÑùÂÊ£¬Í¨µÀ
struct input_dev *input_dev = input_allocate_device();
ts->dev->name = s3c_ts_name;
ts->dev->phys = ts->phys;
ts->dev->id.bustype = BUS_RS232;
ts->dev->id.vendor = 0xDEAD;
ts->dev->id.product = 0xBEEF;
ts->dev->id.version = S3C_TSVERSION; //ÍêÉÆtsµÄinput_dev²ÎÊý
ts_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
request_irq(ts_irq->start, stylus_updown, IRQF_SAMPLE_RANDOM, "s3c_updown", ts);
Ïà¹ØÎĵµ£º
ÐèÒªÏȰ²×°libxml2-devel libxslt-develÕâÁ½¸örpm°ü£¬Èç¹ûʹÓ÷ÇrootÓû§°²×°£¬¿ÉÒÔÏÂÔØlibxml2ºÍlibxsltµÄÔ´´úÂë½øÐа²×°¡£ libxml2-devel¡¢libxslt-devel×°ºÃºó£¬½âѹlxmlµÄ°ü£¬Çл»µ½Õâ¸ö°üµÄ·¾¶¡£
¼ÓÈëCFLAGS½øÐбàÒëºÍ°²×°£¬ÔÚshellÏÂÒÀ´ÎÊäÈëÈçÏÂÃüÁ CFLAGS=-I/usr/include/libxml2:/usr/include/libxslt/ ......
usb_hcd_omap_probe (const struct hc_driver *driver) (dev/ohci/ohci-omap.c)
ÔÚÄ£¿é³õʼ»¯Ê±±»platform_driver_register()µ÷Óã¬ÓÃÀ´³õʼ»¯Óëohci_hcd_omap_driver
ÏàÆ¥ÅäµÄusbÖ÷¿ØÖÆÆ÷.
->usb_create_hcd(driver); ´´½¨Ò»¸ö´ú±íhost-controllerµÄÊý¾Ý½á¹¹(struct usb_hcd)²¢³õʼ»¯ core/hcd.h
->hcd = kz ......
LINUXÏÂUSB1.1É豸ѧϰС¼Ç(2)_ÐÒé
USBÐÒé:
ÏÈ¿´USB½Ó¿Ú
¿ÉÒÔ¿´³ö,ÔÚUSBʹÓÃÁË4¸ùÏß,·Ö±ðΪµçÔ´Ïß,µØÏß,ÐźÅÏߺͲî·ÖÐźÅÏß
²î·ÖÐźÅÏßÓÃÓÚ¼ì²âÐźÅÏߵĴ«ÊäÊÇ·ñÕýÈ·
ÏÂÃæÎÒÃÇÖ»¹Ø×¢ÐźÅÏß
È»ºóÊÇUSBµÄ´®¿Ú´«Êä
ÔÚ´®¿Ú´«ÊäÖÐ,ÓÉÓÚËùÓеÄÐźŹ²ÓÃÒ»¸ùÊý¾ÝÏß,ËùÒÔ²»½öÓÐÏÈÀ´ºóµ½µÄÎÊÌâ,¶øÇÒÔÚÒ»¸ ......