mt8735 andorid7.0 lcm Icn6202驱动(kernel)

这是一个关于mt8735平台Android 7.0系统中针对Icn6202液晶显示控制器(LCM)的驱动程序实现。该驱动包括了I2C通信接口,定义了设备名称、地址,并包含了初始化、注册和卸载的函数。此外,还包含了与GPIO交互的部分,用于电源管理和调试日志。
摘要由CSDN通过智能技术生成
#include <linux/string.h>
#include <linux/wait.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/pinctrl/consumer.h>
#include <linux/of_gpio.h>
#include <linux/gpio.h>
#include <asm-generic/gpio.h>
#include "lcm_drv.h"
#include <linux/dma-mapping.h>

#include <asm/uaccess.h>
#ifdef CONFIG_MTK_BOOT
#include "mt_boot_common.h"
#endif

#include "upmu_common.h"
#include <linux/hrtimer.h>
#include <linux/vmalloc.h>
#include <linux/jiffies.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/slab.h>
#include <linux/bitops.h>
#include <linux/kernel.h>
#include <linux/time.h>


#include "lcm_drv.h"


#ifdef BUILD_LK
#include <platform/mt_gpio.h>
#include <platform/mt_i2c.h>

#include <string.h>
#elif defined(BUILD_UBOOT)
#include <asm/arch/mt_gpio.h>
#else

#endif

#ifdef BUILD_LK
#define LCD_DEBUG(fmt)  dprintf(CRITICAL, fmt)
#else
#define LCD_DEBUG(fmt)  pr_debug(fmt)
#endif


static size_t icn6202_iic_log_on = true;
#define icn6202_IIC_LOG(fmt, arg...) \
do { \
if (icn6202_iic_log_on) {printk("[icn6202]%s,#%d ", __func__, __LINE__); printk(fmt, ##arg);} \
}while (0)
        
#define icn6202_IIC_FUNC() \
    do { \
        if(icn6202_iic_log_on) printk("[icn6202] %s\n", __func__); \
    }while (0)


#define icn6202_DEVICE_NAME            "multibridge-icn6202"
#define icn6202_I2C_SLAVE_ADDR        0x58     
#define icn6202_I2C_DEVICE_ADDR_LEN   2
/*----------------------------------------------------------------------------*/
static int icn6202_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id);
static int icn6202_i2c_remove(struct i2c_client *client);
static struct i2c_client *icn6202_i2c_client = NULL;
static const struct i2c_device_id icn6202_i2c_id[] = { {icn6202_DEVICE_NAME,0},{}};
//static struct i2c_board_info __initdata i2c_icn6202 = { I2C_BOARD_INFO(icn6202_DEVICE_NAME, icn6202_I2C_SLAVE_ADDR>>1)};
/*----------------------------------------------------------------------------*/

#ifdef CONFIG_OF
static const struct of_device_id lcm_of_match[] = {
{ .compatible = "mediatek,ext_disp" },
{},            
};
#endif
struct i2c_driver icn6202_i2c_driver = {     
    .id_table = icn6202_i2c_id,                                 
    .probe = icn6202_i2c_probe,                                   
    .remove = icn6202_i2c_remove,    
.driver = {
.owner = THIS_MODULE,
.name = icn6202_DEVICE_NAME ,
#ifdef CONFIG_OF
.of_match_table = lcm_of_match,
        #
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值