+++ Chris Jones [2009-08-17 09:18 +0100]: > It's a busy time at the moment - I'm frantically trying to finish this > thing: > http://www.pod-point.com/ > > Major demo to investors is on Thursday. I'm still writing kernel drivers > and designing hardware... How did that go, BTW? > Top news, though: as a side-effect of all this, Jim and I have achieved > a useful thing. Interrupts working over Samosa, in this case driving a > quad UART for extra serial ports. All using a patch to the existing 8250 > driver, which we think is quite cool. OK. I've started to look at all your cpld-register-remap branch stuff. You have been busy :-) I think it's time to merge the non-pod-specific stuff into trunk as it seems to be working. So far I'm not having much luck building so stuff works. Can you clarify what the i2s patch is. Is sl90dsp specific to the sl90 mainboard or does it make sense in other balloon kernels? (It doesn't apply for me right now). lmr5428 and samosa-uart and tsl2560 are cleary podspecific but samosa-podpoint looks like it might have some stuff of generic interest (proc interface), but has some strange stuff about being packported dfrom 2.6.29.1 even though it is on 2.6.29.1 - I guess that's 'historic' info. Quite a lot of that looks like it wouldn't pass lkml muster. I notice some simplification of the samosa bus access functions which look much better than the originals. Can we use those generally now? Does that change depend on the cpld remapping? I'll try and get things building at least as they are and once you've answered the above I can do a bit of merging. Once I know what's what most of the podpoint stuff can go in trunk too as it's in its own series. The only catch is that it's all 2.6.29.1 whilst trunk has moved on to 2.6.31 by default. Still. we have a nice mechansism for running these patches in prallel so it should cause any problems. This is the bus access stuff from samosa-podpoint I was referring to (and associated fns) +static ssize_t proc_write_samosa(unsigned char reg, struct file *file, const $ size_t count, loff_t *ppos) { - unsigned long samosa_addr; unsigned long samosa_data; char buf[40]; char *p = buf; @@ -432,28 +467,202 @@ buf[count] = 0; while (isspace(*p)) p++; - samosa_addr = simple_strtoul(p,&pp,0); - if (pp && (pp > p)) { - p = pp; - while (isspace(*p)) - p++; - samosa_data = simple_strtoul(p,&pp,0); - if (pp && (pp > p)) - samosa_write8(samosa_addr, samosa_data); - else - pr_info("cannot parse data from <%s> address = 0x%lx\n$ - } + + samosa_data = simple_strtoul(p,&pp,0); + if (pp && (pp > p)) + samosa_write8(reg, samosa_data); else - pr_info("cannot parse address from start of <%s>\n",buf); + pr_info("cannot parse data from <%s> reg 0x%02x\n",p,reg); return count; } Wookey -- Principal hats: iEndian - Balloonboard - Toby Churchill - Emdebian http://wookware.org/