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()
269 return -EINVAL; in silicom_gpio_direction_output()
287 .brightness = 1,
293 .brightness = 1,
299 .brightness = 1,
308 .brightness = 1,
314 .brightness = 1,
320 .brightness = 1,
329 .brightness = 1,
335 .brightness = 1,
341 .brightness = 1,
347 .brightness = 1,
356 .brightness = 1,
362 .brightness = 1,
368 .brightness = 1,
374 .brightness = 1,
383 .brightness = 1,
389 .brightness = 1,
395 .brightness = 1,
401 .brightness = 1,
411 .brightness = 0,
422 .brightness = 0,
433 .brightness = 0,
444 .brightness = 0,
455 .brightness = 0,
467 .label = "silicom-gpio",
473 .base = -1,
501 .brightness = 1,
507 .brightness = 1,
513 .brightness = 1,
519 .brightness = 1,
528 .brightness = 1,
534 .brightness = 1,
540 .brightness = 1,
546 .brightness = 1,
555 .brightness = 1,
561 .brightness = 1,
567 .brightness = 1,
573 .brightness = 1,
583 .brightness = 0,
594 .brightness = 0,
605 .brightness = 0,
664 return -EINVAL; in uc_version_show()
701 return -EINVAL; in power_cycle_store()
724 .name = "silicom-platform",
740 return -ENOMEM; in silicom_mc_leds_register()
743 led->subled_info = devm_kzalloc(dev, led->num_colors * size, GFP_KERNEL); in silicom_mc_leds_register()
744 if (!led->subled_info) in silicom_mc_leds_register()
745 return -ENOMEM; in silicom_mc_leds_register()
746 memcpy(led->subled_info, mc_leds[i].subled_info, led->num_colors * size); in silicom_mc_leds_register()
790 default: in silicom_fan_control_fan_is_visible()
801 default: in silicom_fan_control_temp_is_visible()
812 default: in silicom_fan_control_read_fan()
813 return -EOPNOTSUPP; in silicom_fan_control_read_fan()
823 default: in silicom_fan_control_read_temp()
824 return -EOPNOTSUPP; in silicom_fan_control_read_temp()
837 default: in silicom_fan_control_is_visible()
852 default: in silicom_fan_control_read()
853 return -EOPNOTSUPP; in silicom_fan_control_read()
869 default: in silicom_fan_control_read_labels()
870 return -EOPNOTSUPP; in silicom_fan_control_read_labels()
891 if (!devm_request_region(&device->dev, MEC_IO_BASE, MEC_IO_LEN, "mec")) { in silicom_platform_probe()
892 dev_err(&device->dev, "couldn't reserve MEC io ports\n"); in silicom_platform_probe()
893 return -EBUSY; in silicom_platform_probe()
900 dev_dbg(&device->dev, "EC magic 0x%02x, version 0x%02x\n", magic, ver); in silicom_platform_probe()
903 dev_err(&device->dev, "Bad EC magic 0x%02x!\n", magic); in silicom_platform_probe()
904 return -ENODEV; in silicom_platform_probe()
907 err = silicom_mc_leds_register(&device->dev, silicom_led_info); in silicom_platform_probe()
909 dev_err(&device->dev, "Failed to register LEDs\n"); in silicom_platform_probe()
913 err = devm_gpiochip_add_data(&device->dev, silicom_gpiochip, in silicom_platform_probe()
916 dev_err(&device->dev, "Failed to register gpiochip: %d\n", err); in silicom_platform_probe()
920 hwmon_dev = devm_hwmon_device_register_with_info(&device->dev, "silicom_fan", NULL, in silicom_platform_probe()
924 dev_err(&device->dev, "Failed to register hwmon_dev: %d\n", err); in silicom_platform_probe()
933 struct silicom_platform_info *info = id->driver_data; in silicom_platform_info_init()
935 silicom_led_info = info->led_info; in silicom_platform_info_init()
936 silicom_gpio_channels = info->gpio_channels; in silicom_platform_info_init()
937 silicom_gpiochip = info->gpiochip; in silicom_platform_info_init()
938 silicom_gpiochip->ngpio = info->ngpio; in silicom_platform_info_init()
949 DMI_MATCH(DMI_BOARD_NAME, "80300-0214-G"),
958 DMI_MATCH(DMI_BOARD_NAME, "80500-0214-G"),
967 DMI_MATCH(DMI_BOARD_NAME, "80300-0222-G"),
979 return -ENODEV; in silicom_platform_init()
998 MODULE_AUTHOR("Henry Shi <henrys@silicom-usa.com>");