static void lradc_keypad_hwinit () { /* Clear the Clock Gate and SFTRST for normal operation */ HW_LRADC_CTRL0_CLR(BM_LRADC_CTRL0_SFTRST); HW_LRADC_CTRL0_CLR(BM_LRADC_CTRL0_CLKGATE); /* Disable on-chip ground reference */ HW_LRADC_CTRL0_CLR(BM_LRADC_CTRL0_ONCHIP_GROUNDREF); /* Configure 6Mhz frequency */ HW_LRADC_CTRL3_CLR(BM_LRADC_CTRL3_CYCLE_TIME); HW_LRADC_CTRL3_SET(BF_LRADC_CTRL3_CYCLE_TIME(LRADC_CLOCK_6MHZ)); /* Select VddIO input on channel 6 */ HW_LRADC_CTRL4_CLR(BM_LRADC_CTRL4_LRADC6SELECT); HW_LRADC_CTRL4_SET(BF_LRADC_CTRL4_LRADC6SELECT(lradc_vddio_ch)); /* * Clear the divide by two for channel 6 since it has a HW * divide-by-two built in, and enable this feature for the * button channel */ HW_LRADC_CTRL2_CLR(BF_LRADC_CTRL2_DIVIDE_BY_TWO(1<<VDDIO_VOLTAGE_CH)); HW_LRADC_CTRL2_SET(BF_LRADC_CTRL2_DIVIDE_BY_TWO(1<<lradc_keypad_ch)); /* Clear the accumulator & NUM_SAMPLES */ HW_LRADC_CHn_CLR(VDDIO_VOLTAGE_CH, 0xFFFFFFFF); HW_LRADC_CHn_CLR(lradc_keypad_ch, 0xFFFFFFFF); }
static void set_bl_intensity(struct stmp3xxx_platform_bl_data *data, struct backlight_device *bd, int suspended) { int intensity = bd->props.brightness; if (bd->props.power != FB_BLANK_UNBLANK) intensity = 0; if (bd->props.fb_blank != FB_BLANK_UNBLANK) intensity = 0; if (suspended) intensity = 0; stmp3xxx_clearl(BM_PWM_CTRL_PWM2_ENABLE, REGS_PWM_BASE + HW_PWM_CTRL); if (intensity) { HW_LRADC_CTRL2_CLR(BM_LRADC_CTRL2_BL_BRIGHTNESS); HW_LRADC_CTRL2_SET(BM_LRADC_CTRL2_BL_ENABLE | BM_LRADC_CTRL2_BL_MUX_SELECT | BF(intensity - 1, LRADC_CTRL2_BL_BRIGHTNESS)); stmp3xxx_setl(BM_PWM_CTRL_PWM2_ENABLE, REGS_PWM_BASE + HW_PWM_CTRL); } }