[Lcdproc] support for the ft245B in hd44780-ftdi

Ismail Ibrahim whirleyes@gmail.com
Tue Feb 19 03:47:01 2008


------=_Part_6191_23549435.1203392796073
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi all

I've cleanup the code.. please have a look on the attachment
to use the 4 bit wiring just add ftdi_mode=4 in the LCd.conf

wiring example:
FTDI chip : D0 D1 D2 D3 D4  D5  D6  D7
 HD44780 : D4 D5 D6 D7 EN RS RW NC

and of course we need to define
ftdi_line_RS=0x40
ftdi_line_RW=0x20
ftdi_line_EN=0x10

too

I don't write the backlight driver for the 4 bit mode because I'm not
able to test it.

------=_Part_6191_23549435.1203392796073
Content-Type: application/octet-stream; name=hd44780-ftdi.patch
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fctvff271
Content-Disposition: attachment; filename=hd44780-ftdi.patch

T25seSBpbiBsY2Rwcm9jLWZ0ZGktZGV2L3NlcnZlci9kcml2ZXJzLzogLmRlcHMKZGlmZiAtdSBs
Y2Rwcm9jLUNWUy1jdXJyZW50LTIwMDgwMjE4L3NlcnZlci9kcml2ZXJzL2hkNDQ3ODAtZnRkaS5j
IGxjZHByb2MtZnRkaS1kZXYvc2VydmVyL2RyaXZlcnMvaGQ0NDc4MC1mdGRpLmMKLS0tIGxjZHBy
b2MtQ1ZTLWN1cnJlbnQtMjAwODAyMTgvc2VydmVyL2RyaXZlcnMvaGQ0NDc4MC1mdGRpLmMJMjAw
Ny0xMS0wNSAxNzowMDozNy4wMDAwMDAwMDAgKzA5MDAKKysrIGxjZHByb2MtZnRkaS1kZXYvc2Vy
dmVyL2RyaXZlcnMvaGQ0NDc4MC1mdGRpLmMJMjAwOC0wMi0xOSAxMTo1ODo0NC4wMDAwMDAwMDAg
KzA5MDAKQEAgLTcsNiArNyw5IEBACiAgKiBjb25uZWN0ZWQgdG8gYSBGVDIyMzJDL0QgY2hpcCBp
biA4IGJpdCBtb2RlLgogICoKICAqIENvcHlyaWdodCAoYykgMjAwNywgSW50cmEybmV0IEFHIDxv
cGVuc291cmNlQGludHJhMm5ldC5jb20+CisgKiAKKyAqIE1vZGlmaWVkIEZlYnJ1YXJ5IDIwMDgg
YnkgSXNtYWlsIElicmFoaW0gPHdoaXJsZXllc0BnbWFpbC5jb20+IHRvCisgKiBhZGQgc3VwcG9y
dCBmb3Igc2luZ2xlIGNoYW5uZWwgRlRESSBjaGlwIHdpdGggNCBiaXQgd2lyaW5nIG1vZGUuCiAg
KgogICogVGhpcyBmaWxlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZS4gUmVmZXIgdG8gdGhlCiAgKiBDT1BZSU5HIGZpbGUgZGlzdHJpYnV0ZWQgd2l0aCB0
aGlzIHBhY2thZ2UuCkBAIC02MiwxMSArNjUsMTggQEAKICAgICBwcm9kdWN0X2lkID0gZHJ2dGhp
cy0+Y29uZmlnX2dldF9pbnQoZHJ2dGhpcy0+bmFtZSwgIlByb2R1Y3RJRCIsIDAsIDB4NjAwMSk7
CiAKICAgICAvLyB0aGVzZSBjb25maWcgc2V0dGluZ3MgYXJlIG5vdCBkb2N1bWVudGVkIGludGVu
dGlvbmFsbHkKKyAgICBwLT5mdGRpX21vZGUgPSBkcnZ0aGlzLT5jb25maWdfZ2V0X2ludChkcnZ0
aGlzLT5uYW1lLCAiZnRkaV9tb2RlIiwgMCwgOCk7CiAgICAgcC0+ZnRkaV9saW5lX1JTID0gZHJ2
dGhpcy0+Y29uZmlnX2dldF9pbnQoZHJ2dGhpcy0+bmFtZSwgImZ0ZGlfbGluZV9SUyIsIDAsIDB4
MDEpOwogICAgIHAtPmZ0ZGlfbGluZV9SVyA9IGRydnRoaXMtPmNvbmZpZ19nZXRfaW50KGRydnRo
aXMtPm5hbWUsICJmdGRpX2xpbmVfUlciLCAwLCAweDAyKTsKICAgICBwLT5mdGRpX2xpbmVfRU4g
PSBkcnZ0aGlzLT5jb25maWdfZ2V0X2ludChkcnZ0aGlzLT5uYW1lLCAiZnRkaV9saW5lX0VOIiwg
MCwgMHgwNCk7CiAgICAgcC0+ZnRkaV9saW5lX2JhY2tsaWdodCA9IGRydnRoaXMtPmNvbmZpZ19n
ZXRfaW50KGRydnRoaXMtPm5hbWUsICJmdGRpX2xpbmVfYmFja2xpZ2h0IiwgMCwgMHgwOCk7CiAK
Ky8vc29tZSBmb29scHJvb2YgY2hlY2sKK2lmIChwLT5mdGRpX21vZGUgIT0gNCAmJiBwLT5mdGRp
X21vZGUgIT0gOCkgeworcmVwb3J0KFJQVF9FUlIsICJpbnZhbGlkIGZ0ZGlfbW9kZTogJWQiLCBw
LT5mdGRpX21vZGUpOworICAgICAgICByZXR1cm4gLTE7Cit9CisKICAgICAvLyBJbml0IDEuIGNo
YW5uZWw6IGRhdGEKICAgICBmdGRpX2luaXQoJnAtPmZ0ZGljKTsKICAgICBmdGRpX3NldF9pbnRl
cmZhY2UoJnAtPmZ0ZGljLCBJTlRFUkZBQ0VfQSk7CkBAIC03OCw4ICs4OCwxOSBAQAogICAgIGRl
YnVnKFJQVF9ERUJVRywgImZ0ZGkgb3BlbiBzdWNjZWVkZWQoY2hhbm5lbCAxKTogJWQiLCBmKTsK
IAogICAgIGRlYnVnKFJQVF9ERUJVRywgImVuYWJsaW5nIGJpdGJhbmcgbW9kZShjaGFubmVsIDEp
XG4iKTsKKworaWYgKHAtPmZ0ZGlfbW9kZSA9PSA0KSB7CisgICAgLy9zZXQgZmFzdCBiYXVkcmF0
ZSBmb3IgNCBiaXQgd2lyaW5nIHRvIGVsaW1pbmF0ZSBnYXJiYWdlIG9uIGxjZAorICAgIGYgPSBm
dGRpX3NldF9iYXVkcmF0ZSgmcC0+ZnRkaWMsIDkyMTYwMCk7CisgICAgaWYgKGYgPCAwKSB7Cisg
ICAgICAgIHJlcG9ydChSUFRfRVJSLCAidW5hYmxlIHRvIG9wZW4gZnRkaSBkZXZpY2U6ICVkICgl
cykiLCBmLCBmdGRpX2dldF9lcnJvcl9zdHJpbmcoJnAtPmZ0ZGljKSk7CisgICAgICAgIHJldHVy
biAtMTsKKyAgICB9Cit9CisKICAgICBmdGRpX2VuYWJsZV9iaXRiYW5nKCZwLT5mdGRpYywgMHhG
Rik7CiAKK2lmIChwLT5mdGRpX21vZGUgPT0gOCkgewogICAgIC8vIEluaXQgMi4gY2hhbm5lbDog
Y29udHJvbAogICAgIGZ0ZGlfaW5pdCgmcC0+ZnRkaWMyKTsKICAgICBmdGRpX3NldF9pbnRlcmZh
Y2UoJnAtPmZ0ZGljMiwgSU5URVJGQUNFX0IpOwpAQCAtOTksNiArMTIwLDE3IEBACiAKICAgICBj
b21tb25faW5pdChwLCBJRl84QklUKTsKIAorfSBlbHNlIGlmIChwLT5mdGRpX21vZGUgPT0gNCkg
eworCisgICAgZnRkaV9IRDQ0NzgwX3NlbmRkYXRhIChwLCAwLCBSU19JTlNUUiwgRlVOQ1NFVCB8
IElGXzRCSVQgKTsKKyAgICBmdGRpX0hENDQ3ODBfc2VuZGRhdGEgKHAsIDAsIFJTX0lOU1RSLCBG
VU5DU0VUIHwgSUZfNEJJVCApOworICAgIGZ0ZGlfSEQ0NDc4MF9zZW5kZGF0YSAocCwgMCwgUlNf
SU5TVFIsIEZVTkNTRVQgfCBJRl80QklUICk7CisKKyAgICBjb21tb25faW5pdChwLCBJRl80QklU
KTsKKworfQorCisKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTA3LDYgKzEzOSw3IEBACiB2b2lk
CiBmdGRpX0hENDQ3ODBfc2VuZGRhdGEoUHJpdmF0ZURhdGEgKnAsIHVuc2lnbmVkIGNoYXIgZGlz
cGxheUlELCB1bnNpZ25lZCBjaGFyIGZsYWdzLCB1bnNpZ25lZCBjaGFyIGNoKQogeworaWYgKHAt
PmZ0ZGlfbW9kZSA9PSA4KSB7CiAgICAgLy8gT3V0cHV0IGRhdGEgb24gZmlyc3QgY2hhbm5lbAog
ICAgIGludCBmID0gZnRkaV93cml0ZV9kYXRhKCZwLT5mdGRpYywgJmNoLCAxKTsKICAgICBpZiAo
ZiA8IDApIHsKQEAgLTEzOCwxMiArMTcxLDQwIEBACiAJCQkJCWYsIGZ0ZGlfZ2V0X2Vycm9yX3N0
cmluZygmcC0+ZnRkaWMyKSk7CiAgICAgICAgIGV4aXQoLTEpOwogICAgIH0KKworfSAgZWxzZSBp
ZiAocC0+ZnRkaV9tb2RlID09IDQpIHsKKworICAgdW5zaWduZWQgY2hhciBidWZbNF07CisgICB1
bnNpZ25lZCBjaGFyIHBvcnRDb250cm9sID0gMDsKKworICAgaWYgKGZsYWdzID09IFJTX0RBVEEp
IHsKKyAgIHBvcnRDb250cm9sID0gcC0+ZnRkaV9saW5lX1JTOworICAgfQorCisgICBidWZbMF0g
PSAoY2g+PjQpICYgMHgwRiB8IHBvcnRDb250cm9sIHwgcC0+ZnRkaV9saW5lX0VOOworICAgYnVm
WzFdID0gKGNoPj40KSAmIDB4MEYgfCBwb3J0Q29udHJvbDsKKyAgIGJ1ZlsyXSA9IChjaCAmIDB4
MEYpIHwgcG9ydENvbnRyb2wgfCBwLT5mdGRpX2xpbmVfRU47CisgICBidWZbM10gPSAoY2ggJiAw
eDBGKSB8IHBvcnRDb250cm9sOworICAgaW50IGYgPSBmdGRpX3dyaXRlX2RhdGEoJnAtPmZ0ZGlj
LCAmYnVmLCA0KTsKKworICAgaWYgKGYgPCAwKSB7CisgICAgICAgIHAtPmhkNDQ3ODBfZnVuY3Rp
b25zLT5kcnZfcmVwb3J0KFJQVF9FUlIsICJmYWlsZWQgdG8gd3JpdGU6ICVkICglcykuIEV4aXRp
bmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYsIGZ0ZGlfZ2V0
X2Vycm9yX3N0cmluZygmcC0+ZnRkaWMpKTsKKyAgICAgICAgZXhpdCgtMSk7CisgICB9CisKKyAg
IGlmIChmbGFncyA9PSBSU19JTlNUUikgeworICAgdXNsZWVwICg0MTAwKTsKKyAgIH0KK30KKwog
fQogCiAKIHZvaWQKIGZ0ZGlfSEQ0NDc4MF9iYWNrbGlnaHQoUHJpdmF0ZURhdGEgKnAsIHVuc2ln
bmVkIGNoYXIgc3RhdGUpCiB7CitpZiAocC0+ZnRkaV9tb2RlID09IDgpIHsKICAgICBpbnQgZjsK
IAogICAgIHAtPmJhY2tsaWdodF9iaXQgPSBzdGF0ZSA/IHAtPmZ0ZGlfbGluZV9iYWNrbGlnaHQg
OiAwOwpAQCAtMTU1LDYgKzIxNiw3IEBACiAgICAgICAgIGV4aXQoLTEpOwogICAgIH0KIH0KK30K
IAogCiB2b2lkCkBAIC0xNjQsOSArMjI2LDEwIEBACiAgICAgZnRkaV91c2JfY2xvc2UoJnAtPmZ0
ZGljKTsKICAgICBmdGRpX2RlaW5pdCgmcC0+ZnRkaWMpOwogCitpZiAocC0+ZnRkaV9tb2RlID09
IDgpIHsKICAgICBmdGRpX2Rpc2FibGVfYml0YmFuZygmcC0+ZnRkaWMyKTsKICAgICBmdGRpX3Vz
Yl9jbG9zZSgmcC0+ZnRkaWMyKTsKICAgICBmdGRpX2RlaW5pdCgmcC0+ZnRkaWMyKTsKIH0KLQor
fQogLyogRU9GICovCmRpZmYgLXUgbGNkcHJvYy1DVlMtY3VycmVudC0yMDA4MDIxOC9zZXJ2ZXIv
ZHJpdmVycy9oZDQ0NzgwLWxvdy5oIGxjZHByb2MtZnRkaS1kZXYvc2VydmVyL2RyaXZlcnMvaGQ0
NDc4MC1sb3cuaAotLS0gbGNkcHJvYy1DVlMtY3VycmVudC0yMDA4MDIxOC9zZXJ2ZXIvZHJpdmVy
cy9oZDQ0NzgwLWxvdy5oCTIwMDctMTEtMDUgMTc6MDA6MzguMDAwMDAwMDAwICswOTAwCisrKyBs
Y2Rwcm9jLWZ0ZGktZGV2L3NlcnZlci9kcml2ZXJzL2hkNDQ3ODAtbG93LmgJMjAwOC0wMi0xOCAy
MDowODoxMS4wMDAwMDAwMDAgKzA5MDAKQEAgLTExMSw2ICsxMTEsNyBAQAogCS8vIEZUREkgY29u
bmVjdGlvbiB0eXBlCiAJc3RydWN0IGZ0ZGlfY29udGV4dCBmdGRpYywgZnRkaWMyOwogCisJaW50
IGZ0ZGlfbW9kZTsKIAlpbnQgZnRkaV9saW5lX1JTOwogCWludCBmdGRpX2xpbmVfUlc7CiAJaW50
IGZ0ZGlfbGluZV9FTjsKT25seSBpbiBsY2Rwcm9jLWZ0ZGktZGV2L3NlcnZlci9kcml2ZXJzLzog
TWFrZWZpbGUK
------=_Part_6191_23549435.1203392796073--