svn commit: r290373 - head/sys/dev/ofw
Warner Losh
imp at bsdimp.com
Thu Nov 5 20:26:31 UTC 2015
I'd suggested that this be driven off a global quirk like
u_int fdt_quirks;
#define FDT_QUIRK_8BIT_IIC_ADDR 1
...
if (fdt_quirks & FDT_QUIRK_8BIT_IIC_ADDR)
dinfo->opd_dinfo.addr = paddr;
else
dinfo->opd_dinfo.addr = paddr << 1;
And the platform code, whatever that means, would set it when it "knows"
this is the case.
Warner
On Thu, Nov 5, 2015 at 12:56 PM, Nathan Whitehorn <nwhitehorn at freebsd.org>
wrote:
> I'm not sure this is the best way to do this: we have AIM systems that use
> FDT, for example. Can we make it a quirk in the host-bus driver? Or do a
> run-time check to see if the root node has MacRISC in its compatible
> property?
> -Nathan
>
> On 11/04/15 14:46, Andreas Tobler wrote:
>
>> Author: andreast
>> Date: Wed Nov 4 22:46:30 2015
>> New Revision: 290373
>> URL: https://svnweb.freebsd.org/changeset/base/290373
>>
>> Log:
>> Add a compile time switch to distinguish between 7-bit and 8-bit I2C
>> address
>> usage. The comment in the code should explain the situation.
>> Discussed with: ian@
>>
>> Modified:
>> head/sys/dev/ofw/ofw_iicbus.c
>>
>> Modified: head/sys/dev/ofw/ofw_iicbus.c
>>
>> ==============================================================================
>> --- head/sys/dev/ofw/ofw_iicbus.c Wed Nov 4 19:09:42 2015
>> (r290372)
>> +++ head/sys/dev/ofw/ofw_iicbus.c Wed Nov 4 22:46:30 2015
>> (r290373)
>> @@ -148,10 +148,16 @@ ofw_iicbus_attach(device_t dev)
>> if (dinfo == NULL)
>> continue;
>> /*
>> - * OFW uses 7-bit I2C address format (see ePAPR),
>> - * but system expect 8-bit.
>> + * FreeBSD drivers expect I2C addresses to be expressed as
>> + * 8-bit values. Apple OFW data contains 8-bit values,
>> but
>> + * Linux FDT data contains 7-bit values, so shift them up
>> to
>> + * 8-bit format.
>> */
>> +#ifdef AIM
>> + dinfo->opd_dinfo.addr = paddr;
>> +#else
>> dinfo->opd_dinfo.addr = paddr << 1;
>> +#endif
>> if (ofw_bus_gen_setup_devinfo(&dinfo->opd_obdinfo, child)
>> !=
>> 0) {
>> free(dinfo, M_DEVBUF);
>>
>>
>
>
More information about the svn-src-all
mailing list