|
@@ -686,6 +686,17 @@ static void mxs_lradc_prepare_pressure(struct mxs_lradc *lradc)
|
|
|
|
|
|
static void mxs_lradc_enable_touch_detection(struct mxs_lradc *lradc)
|
|
|
{
|
|
|
+ /* Configure the touchscreen type */
|
|
|
+ if (lradc->soc == IMX28_LRADC) {
|
|
|
+ mxs_lradc_reg_clear(lradc, LRADC_CTRL0_MX28_TOUCH_SCREEN_TYPE,
|
|
|
+ LRADC_CTRL0);
|
|
|
+
|
|
|
+ if (lradc->use_touchscreen == MXS_LRADC_TOUCHSCREEN_5WIRE)
|
|
|
+ mxs_lradc_reg_set(lradc,
|
|
|
+ LRADC_CTRL0_MX28_TOUCH_SCREEN_TYPE,
|
|
|
+ LRADC_CTRL0);
|
|
|
+ }
|
|
|
+
|
|
|
mxs_lradc_setup_touch_detection(lradc);
|
|
|
|
|
|
lradc->cur_plate = LRADC_TOUCH;
|
|
@@ -1496,17 +1507,6 @@ static int mxs_lradc_hw_init(struct mxs_lradc *lradc)
|
|
|
mxs_lradc_reg_wrt(lradc, 0, LRADC_DELAY(2));
|
|
|
mxs_lradc_reg_wrt(lradc, 0, LRADC_DELAY(3));
|
|
|
|
|
|
- /* Configure the touchscreen type */
|
|
|
- if (lradc->soc == IMX28_LRADC) {
|
|
|
- mxs_lradc_reg_clear(lradc, LRADC_CTRL0_MX28_TOUCH_SCREEN_TYPE,
|
|
|
- LRADC_CTRL0);
|
|
|
-
|
|
|
- if (lradc->use_touchscreen == MXS_LRADC_TOUCHSCREEN_5WIRE)
|
|
|
- mxs_lradc_reg_set(lradc,
|
|
|
- LRADC_CTRL0_MX28_TOUCH_SCREEN_TYPE,
|
|
|
- LRADC_CTRL0);
|
|
|
- }
|
|
|
-
|
|
|
/* Start internal temperature sensing. */
|
|
|
mxs_lradc_reg_wrt(lradc, 0, LRADC_CTRL2);
|
|
|
|