Lines Matching +full:default +full:- +full:brightness
1 // SPDX-License-Identifier: GPL-2.0+
3 // silicom-platform.c - Silicom MEC170x platform driver
5 // Copyright (C) 2023 Henry Shi <henrys@silicom-usa.com>
15 #include <linux/led-class-multicolor.h>
52 #define CHANNEL_TO_OFFSET(chan) (((chan) >> 3) - 0x14)
201 enum led_brightness brightness = LED_OFF; in silicom_mec_led_mc_brightness_get() local
204 for (i = 0; i < mc_cdev->num_colors; i++) { in silicom_mec_led_mc_brightness_get()
205 mc_cdev->subled_info[i].brightness = in silicom_mec_led_mc_brightness_get()
206 silicom_mec_led_get(mc_cdev->subled_info[i].channel); in silicom_mec_led_mc_brightness_get()
207 /* Mark the overall brightness as LED_ON if any of the subleds are on */ in silicom_mec_led_mc_brightness_get()
208 if (mc_cdev->subled_info[i].brightness != LED_OFF) in silicom_mec_led_mc_brightness_get()
209 brightness = LED_ON; in silicom_mec_led_mc_brightness_get()
212 return brightness; in silicom_mec_led_mc_brightness_get()
216 enum led_brightness brightness) in silicom_mec_led_mc_brightness_set() argument
221 led_mc_calc_color_components(mc_cdev, brightness); in silicom_mec_led_mc_brightness_set()
222 for (i = 0; i < mc_cdev->num_colors; i++) { in silicom_mec_led_mc_brightness_set()
223 silicom_mec_port_set(mc_cdev->subled_info[i].channel, in silicom_mec_led_mc_brightness_set()
224 mc_cdev->subled_info[i].brightness); in silicom_mec_led_mc_brightness_set()
245 return direction == GPIO_LINE_DIRECTION_IN ? 0 : -EINVAL; in silicom_gpio_direction_input()
274 return -EINVAL; in silicom_gpio_direction_output()
292 .brightness = 1,
298 .brightness = 1,
304 .brightness = 1,
313 .brightness = 1,
319 .brightness = 1,
325 .brightness = 1,
334 .brightness = 1,
340 .brightness = 1,
346 .brightness = 1,
352 .brightness = 1,
361 .brightness = 1,
367 .brightness = 1,
373 .brightness = 1,
379 .brightness = 1,
388 .brightness = 1,
394 .brightness = 1,
400 .brightness = 1,
406 .brightness = 1,
416 .brightness = 0,
427 .brightness = 0,
438 .brightness = 0,
449 .brightness = 0,
460 .brightness = 0,
472 .label = "silicom-gpio",
478 .base = -1,
506 .brightness = 1,
512 .brightness = 1,
518 .brightness = 1,
524 .brightness = 1,
533 .brightness = 1,
539 .brightness = 1,
545 .brightness = 1,
551 .brightness = 1,
560 .brightness = 1,
566 .brightness = 1,
572 .brightness = 1,
578 .brightness = 1,
588 .brightness = 0,
599 .brightness = 0,
610 .brightness = 0,
669 return -EINVAL; in uc_version_show()
706 return -EINVAL; in power_cycle_store()
729 .name = "silicom-platform",
745 return -ENOMEM; in silicom_mc_leds_register()
748 led->subled_info = devm_kzalloc(dev, led->num_colors * size, GFP_KERNEL); in silicom_mc_leds_register()
749 if (!led->subled_info) in silicom_mc_leds_register()
750 return -ENOMEM; in silicom_mc_leds_register()
751 memcpy(led->subled_info, mc_leds[i].subled_info, led->num_colors * size); in silicom_mc_leds_register()
795 default: in silicom_fan_control_fan_is_visible()
806 default: in silicom_fan_control_temp_is_visible()
817 default: in silicom_fan_control_read_fan()
818 return -EOPNOTSUPP; in silicom_fan_control_read_fan()
828 default: in silicom_fan_control_read_temp()
829 return -EOPNOTSUPP; in silicom_fan_control_read_temp()
842 default: in silicom_fan_control_is_visible()
857 default: in silicom_fan_control_read()
858 return -EOPNOTSUPP; in silicom_fan_control_read()
874 default: in silicom_fan_control_read_labels()
875 return -EOPNOTSUPP; in silicom_fan_control_read_labels()
896 if (!devm_request_region(&device->dev, MEC_IO_BASE, MEC_IO_LEN, "mec")) { in silicom_platform_probe()
897 dev_err(&device->dev, "couldn't reserve MEC io ports\n"); in silicom_platform_probe()
898 return -EBUSY; in silicom_platform_probe()
905 dev_dbg(&device->dev, "EC magic 0x%02x, version 0x%02x\n", magic, ver); in silicom_platform_probe()
908 dev_err(&device->dev, "Bad EC magic 0x%02x!\n", magic); in silicom_platform_probe()
909 return -ENODEV; in silicom_platform_probe()
912 err = silicom_mc_leds_register(&device->dev, silicom_led_info); in silicom_platform_probe()
914 dev_err(&device->dev, "Failed to register LEDs\n"); in silicom_platform_probe()
918 err = devm_gpiochip_add_data(&device->dev, silicom_gpiochip, in silicom_platform_probe()
921 dev_err(&device->dev, "Failed to register gpiochip: %d\n", err); in silicom_platform_probe()
925 hwmon_dev = devm_hwmon_device_register_with_info(&device->dev, "silicom_fan", NULL, in silicom_platform_probe()
929 dev_err(&device->dev, "Failed to register hwmon_dev: %d\n", err); in silicom_platform_probe()
938 struct silicom_platform_info *info = id->driver_data; in silicom_platform_info_init()
940 silicom_led_info = info->led_info; in silicom_platform_info_init()
941 silicom_gpio_channels = info->gpio_channels; in silicom_platform_info_init()
942 silicom_gpiochip = info->gpiochip; in silicom_platform_info_init()
943 silicom_gpiochip->ngpio = info->ngpio; in silicom_platform_info_init()
954 DMI_MATCH(DMI_BOARD_NAME, "80300-0214-G"),
963 DMI_MATCH(DMI_BOARD_NAME, "80500-0214-G"),
972 DMI_MATCH(DMI_BOARD_NAME, "80300-0222-G"),
984 return -ENODEV; in silicom_platform_init()
1003 MODULE_AUTHOR("Henry Shi <henrys@silicom-usa.com>");