12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- /* Copyright (c) 2008-2009, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
- #include "msm_fb.h"
- static int lcdc_panel_on(struct platform_device *pdev)
- {
- return 0;
- }
- static int lcdc_panel_off(struct platform_device *pdev)
- {
- return 0;
- }
- static int __devinit lcdc_panel_probe(struct platform_device *pdev)
- {
- msm_fb_add_device(pdev);
- return 0;
- }
- static struct platform_driver this_driver = {
- .probe = lcdc_panel_probe,
- .driver = {
- .name = "lcdc_panel",
- },
- };
- static struct msm_fb_panel_data lcdc_panel_data = {
- .on = lcdc_panel_on,
- .off = lcdc_panel_off,
- };
- static int lcdc_dev_id;
- int lcdc_device_register(struct msm_panel_info *pinfo)
- {
- struct platform_device *pdev = NULL;
- int ret;
- pdev = platform_device_alloc("lcdc_panel", ++lcdc_dev_id);
- if (!pdev)
- return -ENOMEM;
- lcdc_panel_data.panel_info = *pinfo;
- ret = platform_device_add_data(pdev, &lcdc_panel_data,
- sizeof(lcdc_panel_data));
- if (ret) {
- printk(KERN_ERR
- "%s: platform_device_add_data failed!\n", __func__);
- goto err_device_put;
- }
- ret = platform_device_add(pdev);
- if (ret) {
- printk(KERN_ERR
- "%s: platform_device_register failed!\n", __func__);
- goto err_device_put;
- }
- return 0;
- err_device_put:
- platform_device_put(pdev);
- return ret;
- }
- static int __init lcdc_panel_init(void)
- {
- return platform_driver_register(&this_driver);
- }
- module_init(lcdc_panel_init);
|