mini210開發板H43電阻屏驅動程式

2021-06-21 11:33:49 字數 3987 閱讀 9460

把**粘上來,肯定能用,照著裸機改的,我剛剛試過的

unsigned int green, unsigned int blue,

unsigned int transp, struct fb_info *info);

static struct fb_ops s3c_lcdfb_ops = ;

static struct fb_info *s3c_lcd;

struct clk *lcd_clk;

static u32 pseudo_palette[16];

/*mini210 lcd regs*/

static volatile unsigned long *gpf0con;

static volatile unsigned long *gpf1con;

static volatile unsigned long *gpf2con;

static volatile unsigned long *gpf3con;

static volatile unsigned long *gpd0con;

static volatile unsigned long *gpd0dat;

static volatile unsigned long *clk_src1;

static volatile unsigned long *clk_div1;

static volatile unsigned long *display_control;

static volatile unsigned long *vidcon0;

static volatile unsigned long *vidcon1;

static volatile unsigned long *vidtcon2;

static volatile unsigned long *wincon0;

static volatile unsigned long *wincon2;

static volatile unsigned long *shadowcon;

static volatile unsigned long *vidosd0a;

static volatile unsigned long *vidosd0b;

static volatile unsigned long *vidosd0c;

static volatile unsigned long *vidw00add0b0;

static volatile unsigned long *vidw00add1b0;

static volatile unsigned long *vidtcon0;

static volatile unsigned long *vidtcon1;

static volatile unsigned long *clk_gate_block;

#define hspw (0)

#define hbpd (40 - 1)

#define hfpd (5 - 1)

#define vspw (0)

#define vbpd (8 - 1)

#define vfpd (8 - 1)

// fb位址

//#define fb_addr (0x23000000)

#define row (272)

#define col (480)

#define hozval (col-1)

#define lineval (row-1)

#define lefttopx 0

#define lefttopy 0

#define rightbotx 479

#define rightboty 271

/* from pxafb.c */

static inline unsigned int chan_to_field(unsigned int chan, struct fb_bitfield *bf)

static void regs_remap(void)

static void regs_unremap(void)

static void lcd_hadinit(void)

static int s3c_lcdfb_setcolreg(unsigned int regno, unsigned int red,

unsigned int green, unsigned int blue,

unsigned int transp, struct fb_info *info)

static int lcd_init(void)

clk_enable(lcd_clk);

// bit[26~28]:使用rgb介面

// bit[18]:rgb 並行

// bit[2]:選擇時鐘源為hclk_dsys=166mhz

*vidcon0 &= ~( (3<<26)|(1<<18)|(1<<2) );

// bit[1]:使能lcd控制器

// bit[0]:當前幀結束後使能lcd控制器

*vidcon0 |= ( (1<<0)|(1<<1) );

// bit[6]:選擇需要分頻

// bit[6~13]:分頻係數為15,即vclk = 166m/(14+1) = 11m

*vidcon0 |= 14<<6 | 1<<4;

// h43-hsd043i9w1.pdf(p13) 時序圖:vsync和hsync都是低脈衝

// s5pv210晶元手冊(p1207) 時序圖:vsync和hsync都是高脈衝有效,所以需要反轉

*vidcon1 |= 1<<5 | 1<<6;

// 設定時序

*vidtcon0 = vbpd<<16 | vfpd<<8 | vspw<<0;

*vidtcon1 = hbpd<<16 | hfpd<<8 | hspw<<0;

// 設定長寬

*vidtcon2 = (lineval << 11) | (hozval << 0);

*wincon0 |= 1<<0;

*wincon0 &= ~(0xf << 2);

*wincon0 |= (0xb<<2) | (1<<15);

// 設定windows1的上下左右

*vidosd0a = (lefttopx<<11) | (lefttopy << 0);

*vidosd0b = (rightbotx<<11) | (rightboty << 0);

*vidosd0c = (lineval + 1) * (hozval + 1);

/* 3.3 分配視訊記憶體(framebuffer), 並把位址告訴lcd控制器 */

s3c_lcd->screen_base = dma_alloc_writecombine(null, s3c_lcd->fix.smem_len, (dma_addr_t *)&(s3c_lcd->fix.smem_start), gfp_kernel);

// 設定fb的位址

*vidw00add0b0 = s3c_lcd->fix.smem_start;

*vidw00add1b0 = s3c_lcd->fix.smem_start+s3c_lcd->fix.smem_len;

// 使能channel 0傳輸資料

*shadowcon = 0x1;

//s3c_lcd->fix.smem_start = ***; /* 視訊記憶體的實體地址 */

/* 啟動lcd */

/* 4. 註冊 */

register_framebuffer(s3c_lcd);

return 0;

}static void lcd_exit(void)

module_init(lcd_init);

module_exit(lcd_exit);

module_license("gpl");

mini2440開發板安裝ssh

首先確定已經 開發板已與路由器相連,並進行了必要的網路配置,可以 ping 通本機 1.google 最新的版本吧 mkdir work fs mkdir p work source zlib zlib 1.2.3.tar.gz ssl openssl 0.9.8d.tar.gz ssh opens...

TQ210開發板 led驅動

在天嵌的tq210開發板上按照天嵌提供的說明書把uboot,核心,檔案系統都做好後,今天嘗試寫乙個led的驅動,1 看電路圖,找到led連線哪個引腳。由圖可見,開發板上的兩個led分別連線在gpc0 3和gpc0 4的兩個引腳上。2 開啟s5pv210的晶元手冊,搜尋一下gpc0con 4 在2 4...

Tiny210開發板wm8960驅動

如果修改了external tinyalsa目錄下的內容,可以通過如下兩種方法去編譯tinyalsa相關的工具。1 m mm mmm external tinyalsa m mm mmm具體的實現在android 4.0.3 r1 build envsetup.sh,所以只要source一遍這個檔案...