On Fri, Apr 1, 2016 at 10:34 PM, Thor Thayer <tthayer@xxxxxxxxxxxxxxxxxxxxx> wrote: > On 04/01/2016 07:17 AM, Linus Walleij wrote: >>> +struct altr_a10sr_gpio { >>> + struct altr_a10sr *a10sc; >>> + struct gpio_chip gp; >>> +}; >> >> Add some kerneldoc. > > OK. To clarify, is this comment referring to the bindings document or > something different? Document the data structure. Documentation/kernel-doc-nano-HOWTO.txt >> Please check: >> - If there is really no direction setting anywhere >> - For example if some lines are hardwired as input and >> some lines are hardwired as output >> - If that is not the case, verify that all lines are really >> open drain, they should be if all are both input and >> output at the same time. >> > > I see your point. I'll investigate how to do this properly for your 2nd > check above. Registers are hard-wired as input or output so I'll need to > handle this properly and is why I didn't implement the .set_direction > callback. Thanks for the explanation. > > In my case, there are 12 valid GPIOs out of the 16 bits (the first 4 bits > are unused). Bits 4-7 are output and bits 8-15 are inputs. I was using the > IN_VALID range for the inputs and the OUT_VALID range for the outputs. It sounds like should implement direction_[input|output]() callbacks and just return 0 if the user is asking for the hardwired direction and return error if it tries to set an input-only to output and vice versa. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html