staticunsignedint mc13xxx_max_brightness(int id)
{ if (id >= MC13783_LED_MD && id <= MC13783_LED_KP) return 0x0f; elseif (id >= MC13783_LED_R1 && id <= MC13783_LED_B3) return 0x1f;
switch (led->id) { case MC13783_LED_MD: case MC13783_LED_AD: case MC13783_LED_KP:
reg = 2;
shift = 9 + (led->id - MC13783_LED_MD) * 4; break; case MC13783_LED_R1: case MC13783_LED_G1: case MC13783_LED_B1: case MC13783_LED_R2: case MC13783_LED_G2: case MC13783_LED_B2: case MC13783_LED_R3: case MC13783_LED_G3: case MC13783_LED_B3:
off = led->id - MC13783_LED_R1;
bank = off / 3;
reg = 3 + bank;
shift = (off - bank * 3) * 5 + 6; break; case MC13892_LED_MD: case MC13892_LED_AD: case MC13892_LED_KP:
off = led->id - MC13892_LED_MD;
reg = off / 2;
shift = 3 + (off - reg * 2) * 12; break; case MC13892_LED_R: case MC13892_LED_G: case MC13892_LED_B:
off = led->id - MC13892_LED_R;
bank = off / 2;
reg = 2 + bank;
shift = (off - bank * 2) * 12 + 3; break; case MC34708_LED_R: case MC34708_LED_G:
reg = 0;
shift = 3 + (led->id - MC34708_LED_R) * 12; break; default:
BUG();
}
leds->led = devm_kcalloc(dev, leds->num_leds, sizeof(*leds->led),
GFP_KERNEL); if (!leds->led) return -ENOMEM;
for (i = 0; i < devtype->num_regs; i++) {
ret = mc13xxx_reg_write(mcdev, leds->devtype->ledctrl_base + i,
pdata->led_control[i]); if (ret) return ret;
}
for (i = 0; i < leds->num_leds; i++) { constchar *name, *trig;
ret = -EINVAL;
id = pdata->led[i].id;
name = pdata->led[i].name;
trig = pdata->led[i].default_trigger;
if ((id > devtype->led_max) || (id < devtype->led_min)) {
dev_err(dev, "Invalid ID %i\n", id); break;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.