Thread (13 messages) 13 messages, 4 authors, 2025-01-13

Re: [PATCH 0/2] gpio: 74x164: use a compatible fallback and don't extend the driver

From: Bartosz Golaszewski <hidden>
Date: 2025-01-10 14:14:17
Also in: linux-gpio, lkml

On Fri, Jan 10, 2025 at 3:10 PM Geert Uytterhoeven [off-list ref] wrote:
Hi Bartosz,

On Fri, Jan 10, 2025 at 2:38 PM Bartosz Golaszewski [off-list ref] wrote:
quoted
On Fri, Jan 10, 2025 at 2:32 PM Csókás Bence [off-list ref] wrote:
quoted
On 2025. 01. 10. 14:00, Bartosz Golaszewski wrote:
quoted
From: Bartosz Golaszewski <redacted>

There were other suggested solutions (for instance: just use the
existing compatible for the On Semi variant) but I figured the most
common approach is to use a fallback value for 100% compatible models
and this is what Rob suggested as well.

This reverts the driver change and makes the "onnn,74hc595a" compatible
use "fairchild,74hc595" as fallback.
Is there any reason to introduce a new compatible name at all? Does some
pre-existing, widely-used DT blob use it in the wild already? If not,
then I don't think it's necessary; for any new boards, their DT's
authors should just use the pre-existing names.
I don't have a strong opinion on this and will defer to DT maintainers
but a similar case I'm familiar with is the at24 EEPROM driver where
we've got lots of 1:1 compatible chips and we tend to add new
compatibles to DT bindings (with fallbacks to associated atmel models)
just for the sake of correct HW description in DTS.
At24 EEPROMs differ from '595 shift registers in that they provide an
API with multiple commands, and some commands or parameter bits may
differ among different implementations (but usually these differences
are called quirks).

All '595 (I'm deliberately writing it like that) shift registers
should be 100% compatible, modulo some electrical specifications
(voltage levels, maximum speed, power consumption, ...).

Interestingly, the driver is called gpio-74x164.c, while no '164
compatible value is present. Most important difference is that the
'164 lacks the output latch, which is used as chip-select with SPI[1].
quoted
quoted
I'm especially against introducing a new, vendor-specific (On Semi, in
this case) name; if we really want to introduce a new compatible, at
least make it as generic as possible, i.e. `generic,74x595`, or even
`generic,spi-shift-register-output`.
If anything, that would have to be the fallback that the driver knows.
The first string in the compatible property has to have an actual
vendor (I think, I'll let DT maintainers correct me).
For the inverse operation (parallel in, serial out), there's just
"pisosr-gpio".
Ok, I admit I don't know the correct next step. I'll wait for
Krzysztof, Rob or Conor to chime in (on the subject of representing
reality - the actual manufacturer - in DTS) and then possibly just
remove patches 1-2 from my tree.

Bartosz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help