Hi! > +/* LP5009 and LP5012 registers */ > +#define LP5012_BNK_BRT 0x03 > +#define LP5012_BNKA_CLR 0x04 > +#define LP5012_BNKB_CLR 0x05 > +#define LP5012_BNKC_CLR 0x06 > +#define LP5012_LED0_BRT 0x07 > +#define LP5012_LED1_BRT 0x08 > +#define LP5012_LED2_BRT 0x09 > +#define LP5012_LED3_BRT 0x0a > +#define LP5012_OUT0_CLR 0x0b > +#define LP5012_OUT1_CLR 0x0c > +#define LP5012_OUT2_CLR 0x0d > +#define LP5012_OUT3_CLR 0x0e > +#define LP5012_OUT4_CLR 0x0f > +#define LP5012_OUT5_CLR 0x10 > +#define LP5012_OUT6_CLR 0x11 > +#define LP5012_OUT7_CLR 0x12 > +#define LP5012_OUT8_CLR 0x13 > +#define LP5012_OUT9_CLR 0x14 > +#define LP5012_OUT10_CLR 0x15 > +#define LP5012_OUT11_CLR 0x16 > +#define LP5012_RESET 0x17 > + > +/* LP5018 and LP5024 registers */ > +#define LP5024_BNK_BRT 0x03 > +#define LP5024_BNKA_CLR 0x04 > +#define LP5024_BNKB_CLR 0x05 > +#define LP5024_BNKC_CLR 0x06 > +#define LP5024_LED0_BRT 0x07 > +#define LP5024_LED1_BRT 0x08 > +#define LP5024_LED2_BRT 0x09 > +#define LP5024_LED3_BRT 0x0a > +#define LP5024_LED4_BRT 0x0b > +#define LP5024_LED5_BRT 0x0c > +#define LP5024_LED6_BRT 0x0d > +#define LP5024_LED7_BRT 0x0e > + > +#define LP5024_OUT0_CLR 0x0f > +#define LP5024_OUT1_CLR 0x10 > +#define LP5024_OUT2_CLR 0x11 > +#define LP5024_OUT3_CLR 0x12 > +#define LP5024_OUT4_CLR 0x13 > +#define LP5024_OUT5_CLR 0x14 > +#define LP5024_OUT6_CLR 0x15 > +#define LP5024_OUT7_CLR 0x16 > +#define LP5024_OUT8_CLR 0x17 > +#define LP5024_OUT9_CLR 0x18 > +#define LP5024_OUT10_CLR 0x19 > +#define LP5024_OUT11_CLR 0x1a > +#define LP5024_OUT12_CLR 0x1b > +#define LP5024_OUT13_CLR 0x1c > +#define LP5024_OUT14_CLR 0x1d > +#define LP5024_OUT15_CLR 0x1e > +#define LP5024_OUT16_CLR 0x1f > +#define LP5024_OUT17_CLR 0x20 > +#define LP5024_OUT18_CLR 0x21 > +#define LP5024_OUT19_CLR 0x22 > +#define LP5024_OUT20_CLR 0x23 > +#define LP5024_OUT21_CLR 0x24 > +#define LP5024_OUT22_CLR 0x25 > +#define LP5024_OUT23_CLR 0x26 > +#define LP5024_RESET 0x27 > + > +/* LP5030 and LP5036 registers */ > +#define LP5036_LED_CFG1 0x03 > +#define LP5036_BNK_BRT 0x04 > +#define LP5036_BNKA_CLR 0x05 > +#define LP5036_BNKB_CLR 0x06 > +#define LP5036_BNKC_CLR 0x07 > +#define LP5036_LED0_BRT 0x08 > +#define LP5036_LED1_BRT 0x09 > +#define LP5036_LED2_BRT 0x0a > +#define LP5036_LED3_BRT 0x0b > +#define LP5036_LED4_BRT 0x0c > +#define LP5036_LED5_BRT 0x0d > +#define LP5036_LED6_BRT 0x0e > +#define LP5036_LED7_BRT 0x0f > +#define LP5036_LED8_BRT 0x10 > +#define LP5036_LED9_BRT 0x11 > +#define LP5036_LED10_BRT 0x12 > +#define LP5036_LED11_BRT 0x13 > + > +#define LP5036_OUT0_CLR 0x14 > +#define LP5036_OUT1_CLR 0x15 > +#define LP5036_OUT2_CLR 0x16 > +#define LP5036_OUT3_CLR 0x17 > +#define LP5036_OUT4_CLR 0x18 > +#define LP5036_OUT5_CLR 0x19 > +#define LP5036_OUT6_CLR 0x1a > +#define LP5036_OUT7_CLR 0x1b > +#define LP5036_OUT8_CLR 0x1c > +#define LP5036_OUT9_CLR 0x1d > +#define LP5036_OUT10_CLR 0x1e > +#define LP5036_OUT11_CLR 0x1f > +#define LP5036_OUT12_CLR 0x20 > +#define LP5036_OUT13_CLR 0x21 > +#define LP5036_OUT14_CLR 0x22 > +#define LP5036_OUT15_CLR 0x23 > +#define LP5036_OUT16_CLR 0x24 > +#define LP5036_OUT17_CLR 0x25 > +#define LP5036_OUT18_CLR 0x26 > +#define LP5036_OUT19_CLR 0x27 > +#define LP5036_OUT20_CLR 0x28 > +#define LP5036_OUT21_CLR 0x29 > +#define LP5036_OUT22_CLR 0x2a > +#define LP5036_OUT23_CLR 0x2b > +#define LP5036_OUT24_CLR 0x2c > +#define LP5036_OUT25_CLR 0x2d > +#define LP5036_OUT26_CLR 0x2e > +#define LP5036_OUT27_CLR 0x2f > +#define LP5036_OUT28_CLR 0x30 > +#define LP5036_OUT29_CLR 0x31 > +#define LP5036_OUT30_CLR 0x32 > +#define LP5036_OUT31_CLR 0x33 > +#define LP5036_OUT32_CLR 0x34 > +#define LP5036_OUT33_CLR 0x35 > +#define LP5036_OUT34_CLR 0x36 > +#define LP5036_OUT35_CLR 0x37 > +#define LP5036_RESET 0x38 > +static const struct reg_default lp5012_reg_defs[] = { ... > + {LP5012_OUT1_CLR, 0x00}, > + {LP5012_OUT2_CLR, 0x00}, > + {LP5012_OUT3_CLR, 0x00}, > + {LP5012_OUT4_CLR, 0x00}, > + {LP5012_OUT5_CLR, 0x00}, > + {LP5012_OUT6_CLR, 0x00}, > + {LP5012_OUT7_CLR, 0x00}, > + {LP5012_OUT8_CLR, 0x00}, > + {LP5012_OUT9_CLR, 0x00}, > + {LP5012_OUT10_CLR, 0x00}, > + {LP5012_OUT11_CLR, 0x00}, > + {LP5012_RESET, 0x00} > +}; > + > +static const struct reg_default lp5024_reg_defs[] = { ... > + {LP5024_OUT1_CLR, 0x00}, > + {LP5024_OUT2_CLR, 0x00}, > + {LP5024_OUT3_CLR, 0x00}, > + {LP5024_OUT4_CLR, 0x00}, > + {LP5024_OUT5_CLR, 0x00}, > + {LP5024_OUT6_CLR, 0x00}, > + {LP5024_OUT7_CLR, 0x00}, > + {LP5024_OUT8_CLR, 0x00}, > + {LP5024_OUT9_CLR, 0x00}, > + {LP5024_OUT10_CLR, 0x00}, > + {LP5024_OUT11_CLR, 0x00}, > + {LP5024_OUT12_CLR, 0x00}, > + {LP5024_OUT13_CLR, 0x00}, > + {LP5024_OUT14_CLR, 0x00}, > + {LP5024_OUT15_CLR, 0x00}, > + {LP5024_OUT16_CLR, 0x00}, > + {LP5024_OUT17_CLR, 0x00}, > + {LP5024_OUT18_CLR, 0x00}, > + {LP5024_OUT19_CLR, 0x00}, > + {LP5024_OUT20_CLR, 0x00}, > + {LP5024_OUT21_CLR, 0x00}, > + {LP5024_OUT22_CLR, 0x00}, > + {LP5024_OUT23_CLR, 0x00}, > + {LP5024_RESET, 0x00} > +}; > + > +static const struct reg_default lp5036_reg_defs[] = { > + {LP5036_OUT1_CLR, 0x00}, > + {LP5036_OUT2_CLR, 0x00}, > + {LP5036_OUT3_CLR, 0x00}, > + {LP5036_OUT4_CLR, 0x00}, > + {LP5036_OUT5_CLR, 0x00}, > + {LP5036_OUT6_CLR, 0x00}, > + {LP5036_OUT7_CLR, 0x00}, > + {LP5036_OUT8_CLR, 0x00}, > + {LP5036_OUT9_CLR, 0x00}, > + {LP5036_OUT10_CLR, 0x00}, > + {LP5036_OUT11_CLR, 0x00}, > + {LP5036_OUT12_CLR, 0x00}, > + {LP5036_OUT13_CLR, 0x00}, > + {LP5036_OUT14_CLR, 0x00}, > + {LP5036_OUT15_CLR, 0x00}, > + {LP5036_OUT16_CLR, 0x00}, > + {LP5036_OUT17_CLR, 0x00}, > + {LP5036_OUT18_CLR, 0x00}, > + {LP5036_OUT19_CLR, 0x00}, > + {LP5036_OUT20_CLR, 0x00}, > + {LP5036_OUT21_CLR, 0x00}, > + {LP5036_OUT22_CLR, 0x00}, > + {LP5036_OUT23_CLR, 0x00}, > + {LP5036_OUT24_CLR, 0x00}, > + {LP5036_OUT25_CLR, 0x00}, > + {LP5036_OUT26_CLR, 0x00}, > + {LP5036_OUT27_CLR, 0x00}, > + {LP5036_OUT28_CLR, 0x00}, > + {LP5036_OUT29_CLR, 0x00}, > + {LP5036_OUT30_CLR, 0x00}, > + {LP5036_OUT31_CLR, 0x00}, > + {LP5036_OUT32_CLR, 0x00}, > + {LP5036_OUT33_CLR, 0x00}, > + {LP5036_OUT34_CLR, 0x00}, > + {LP5036_OUT35_CLR, 0x00}, > + {LP5036_RESET, 0x00} > +}; Actually... This is quite impressive ammount of code to zero-initialize few registers. Could the regmap be told to set the range to zero, or use loops to reduce ammount of code? Thanks, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: PGP signature