Thread (43 messages) 43 messages, 8 authors, 2021-08-02

Re: [PATCH v2 2/4] leds: simatic-ipc-leds: add new driver for Siemens Industial PCs

From: Henning Schild <hidden>
Date: 2021-03-15 12:42:12
Also in: linux-leds, lkml, platform-driver-x86

Am Mon, 15 Mar 2021 12:19:15 +0100
schrieb Pavel Machek [off-list ref]:
quoted
quoted
+       struct led_classdev cdev;
+};
+
+static struct simatic_ipc_led simatic_ipc_leds_io[] = {
+       {1 << 15, "simatic-ipc:green:" LED_FUNCTION_STATUS "-1" },
+       {1 << 7,  "simatic-ipc:yellow:" LED_FUNCTION_STATUS "-1"
},
+       {1 << 14, "simatic-ipc:red:" LED_FUNCTION_STATUS "-2" },
+       {1 << 6,  "simatic-ipc:yellow:" LED_FUNCTION_STATUS "-2"
},
+       {1 << 13, "simatic-ipc:red:" LED_FUNCTION_STATUS "-3" },
+       {1 << 5,  "simatic-ipc:yellow:" LED_FUNCTION_STATUS "-3"
},  
Can you use BIT() macro here? And can it be sorted by the bit
order?  
There's nothing wrong with << and this order is fine.

But I still don't like the naming. simantic-ipc: prefix is
useless. Having 6 status leds is not good, either.
You asked about a picture before, so here is one example

https://support.industry.siemens.com/cs/document/67235073/simatic-ipc427d?dti=0&pnid=16756&lc=en-WW

page 19 shows how the box looks like
page 135 it what the implementation is based on

Externally human visible are 3 "lights", which can be off, red, green,
yellow. Internally every single "light" has two leds and yellow is a
mix when red and green are on.
Unfortunately hw does not allow all 4 states for all 3 lights. Some
boxes implement "yellow" mixing in hw.

That is why the same name is used with two colors.

maybe those LEDs qualify for multi-color? 

"status" was the best name i found in the dt-bindings header

i guess i can be creative with the names and take ie "status", "fault",
and "indicator"

i will also drop that prefix "simatic-ipc" that was inspired by
"tpacpi", or should it be "platform:<color>:<name>"?

regards,
Henning
quoted
quoted
+       struct simatic_ipc_led *led =
+               container_of(led_cd, struct simatic_ipc_led,
cdev);  
One line?  
80 columns. It is fine as it is.

Best regards,

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