S5PV210 -- HX8369 LCD 驱动

本文介绍了如何在S5PV210平台上通过u-boot配置HX8369 LCD驱动,涉及IO模拟SPI的操作,并在内核中添加相关配置信息。内容来源于网络转载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在u-boot中配置hx8369,IO模拟SPI.

#include<regs.h>
#include <common.h>
#include <asm/io.h>
#ifdef CONFIG_GZSD210_LCD
static void set_cs(int cs)
{
	int reg;
	reg = readl(GPF1DAT);
	reg &= ~(0x1 << 5);
	reg |= (cs << 5);
	writel(reg,GPF1DAT);
}

static void set_clk(int clk)
{
	int reg;
	reg = readl(GPF1DAT);
	reg &= ~(0x1 << 4);
	reg |= (clk << 4);
	writel(reg,GPF1DAT);
}

static void set_outdata(int outdata)
{
	int reg;
#if	0
	reg = readl(GPF0CON);
	reg &= ~(0xf << 20);
	reg |= (0x1<< 20);
	writel(reg,GPF0CON);
	reg = readl(GPF0DAT);
	reg &= ~(0x1 << 5);
	reg |= (outdata << 5);
	writel(reg,GPF0DAT);
#else
	reg = readl(GPF0DAT);
	reg &= ~(0x1 << 6);
	reg |= (outdata << 6);
	writel(reg,GPF0DAT);
#endif
}

static void send_data(unsigned int data)
{
	unsigned int i;
	int clk_num;
	int clk_mask;
	set_cs(0);
	udelay(10);
	set_clk(1);
	set_outdata(1);
	udelay(10);

	clk_num = 9;
	clk_mask = 0x100;
	udelay(50);

	for(i = 0; i < clk_num; ++i){
		set_clk(0);
		if(data & clk_mask){
			set_outdata(1);
		}
		else{
			set_outdata(0);
		}
		udelay(100);
		set_clk(1);
		udelay(100);
		data <<= 1;
	}
	set_outdata(1);
	set_cs(1);
}
static void hx8369_write_cmd(unsigned int cmd)
{
	unsigned int out;
	out = (cmd & 0xFF);
	send_data(out);
}

static void hx8369_write_data(unsigned int data)
{
	unsigned int out = (data & 0xFF) | 0x100;
	send_data(out);

}

static void set_hx8369(void)
{
        hx8369_write_cmd(0xB9);  // SET password 
        hx8369_write_data(0xFF);   
        hx8369_write_data(0x83);   
        hx8369_write_data(0x69);

        hx8369_write_cmd(0xB1);  //Set Power 
        hx8369_write_data(0x01);                           
        hx8369_write_data(0x00);                           
        hx8369_write_data(0x34);                           
        hx8369_write_data(0x06);                           
        hx8369_write_data(0x00);                           
        hx8369_write_data(0x11);                           
        hx8369_write_data(0x11);                           
        hx8369_write_data(0x2A);                           
        hx8369_write_data(0x32);                           
        hx8369_write_data(0x3F);                           
        hx8369_write_data(0x3F);                           
        hx8369_write_data(0x07);                           
        hx8369_write_data(0x23);                           
        hx8369_write_data(0x01);                           
        hx8369_write_data(0xE6);                           
        hx8369_write_data(0xE6);                           
        hx8369_write_data(0xE6);                           
        hx8369_write_data(0xE6);                           
        hx8369_write_data(0xE6);


        hx8369_write_cmd(0xB2);  // SET Display  480x800 
        hx8369_write_data(0x00);   
        hx8369_write_data(0x2B);   
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值