svn commit: r278108 - head/sys/dev/gpio
Nathan Whitehorn
nwhitehorn at freebsd.org
Mon Feb 2 20:20:50 UTC 2015
On 02/02/15 12:08, Ian Lepore wrote:
> On Mon, 2015-02-02 at 11:24 -0800, Nathan Whitehorn wrote:
>> Please don't condition things like this on FDT. They are useful on Open
>> Firmware systems too.
>> -Nathan
>>
>
> Is there something defined for OFW? The gpio code needs to work on
> hint-based (not-FDT and not-OFW) mips systems too.
There isn't right now, so far as I'm aware, but there should be.
-Nathan
> -- Ian
>
>
>> On 02/02/15 11:22, Luiz Otavio O Souza wrote:
>>> Author: loos
>>> Date: Mon Feb 2 19:22:34 2015
>>> New Revision: 278108
>>> URL: https://svnweb.freebsd.org/changeset/base/278108
>>>
>>> Log:
>>> Register the GPIO controller device reference on xref table for FDT systems.
>>>
>>> Modified:
>>> head/sys/dev/gpio/gpiobus.c
>>> head/sys/dev/gpio/gpiobusvar.h
>>> head/sys/dev/gpio/ofw_gpiobus.c
>>>
>>> Modified: head/sys/dev/gpio/gpiobus.c
>>> ==============================================================================
>>> --- head/sys/dev/gpio/gpiobus.c Mon Feb 2 19:00:18 2015 (r278107)
>>> +++ head/sys/dev/gpio/gpiobus.c Mon Feb 2 19:22:34 2015 (r278108)
>>> @@ -143,6 +143,9 @@ gpiobus_attach_bus(device_t dev)
>>> device_delete_child(dev, busdev);
>>> return (NULL);
>>> }
>>> +#ifdef FDT
>>> + ofw_gpiobus_register_provider(dev);
>>> +#endif
>>> bus_generic_attach(dev);
>>>
>>> return (busdev);
>>> @@ -152,6 +155,10 @@ int
>>> gpiobus_detach_bus(device_t dev)
>>> {
>>>
>>> +#ifdef FDT
>>> + ofw_gpiobus_unregister_provider(dev);
>>> +#endif
>>> +
>>> return (bus_generic_detach(dev));
>>> }
>>>
>>>
>>> Modified: head/sys/dev/gpio/gpiobusvar.h
>>> ==============================================================================
>>> --- head/sys/dev/gpio/gpiobusvar.h Mon Feb 2 19:00:18 2015 (r278107)
>>> +++ head/sys/dev/gpio/gpiobusvar.h Mon Feb 2 19:22:34 2015 (r278108)
>>> @@ -93,6 +93,8 @@ gpio_map_gpios(device_t bus, phandle_t d
>>> }
>>>
>>> device_t ofw_gpiobus_add_fdt_child(device_t, phandle_t);
>>> +void ofw_gpiobus_register_provider(device_t);
>>> +void ofw_gpiobus_unregister_provider(device_t);
>>> #endif
>>> int gpio_check_flags(uint32_t, uint32_t);
>>> device_t gpiobus_attach_bus(device_t);
>>>
>>> Modified: head/sys/dev/gpio/ofw_gpiobus.c
>>> ==============================================================================
>>> --- head/sys/dev/gpio/ofw_gpiobus.c Mon Feb 2 19:00:18 2015 (r278107)
>>> +++ head/sys/dev/gpio/ofw_gpiobus.c Mon Feb 2 19:22:34 2015 (r278108)
>>> @@ -217,6 +217,24 @@ ofw_gpiobus_parse_gpios(struct gpiobus_s
>>> return (0);
>>> }
>>>
>>> +void
>>> +ofw_gpiobus_register_provider(device_t provider)
>>> +{
>>> + phandle_t node;
>>> +
>>> + node = ofw_bus_get_node(provider);
>>> + OF_device_register_xref(OF_xref_from_node(node), provider);
>>> +}
>>> +
>>> +void
>>> +ofw_gpiobus_unregister_provider(device_t provider)
>>> +{
>>> + phandle_t node;
>>> +
>>> + node = ofw_bus_get_node(provider);
>>> + OF_device_register_xref(OF_xref_from_node(node), NULL);
>>> +}
>>> +
>>> static struct ofw_gpiobus_devinfo *
>>> ofw_gpiobus_setup_devinfo(device_t dev, phandle_t node)
>>> {
>>>
>>
>>
>
>
More information about the svn-src-head
mailing list