static int marimba_tsadc_shutdown(struct marimba_tsadc *tsadc) { u8 val; int rc; /* force reset */ val = TS_CTL0_XO_EN | TS_CTL0_EOC_EN | TS_CTL0_PENIRQ_EN | TS_CTL0_CLK_EN; rc = marimba_write_u8(tsadc, TS_CTL0, val); if (rc < 0) return rc; /* disable xo, clock */ val = TS_CTL0_PENIRQ_EN | TS_CTL0_EOC_EN; rc = marimba_write_u8(tsadc, TS_CTL0, val); if (rc < 0) return rc; /* de-vote S2 1.3v */ if (tsadc->pdata->level_vote) /* REVISIT: Ignore error for level_vote(0) for now*/ tsadc->pdata->level_vote(0); return 0; }
static int marimba_tsadc_shutdown(struct marimba_tsadc *tsadc) { u8 val; /* force reset */ val = TS_CTL0_XO_EN | TS_CTL0_EOC_EN | TS_CTL0_PENIRQ_EN | TS_CTL0_CLK_EN; marimba_write_u8(tsadc, TS_CTL0, val); /* disable xo, clock */ val = TS_CTL0_PENIRQ_EN | TS_CTL0_EOC_EN; marimba_write_u8(tsadc, TS_CTL0, val); return 0; }
static int marimba_tsadc_startup(struct marimba_tsadc *tsadc) { u8 val; int rc = 0; /* vote for S2 1.3v */ if (tsadc->pdata->level_vote) { rc = tsadc->pdata->level_vote(1); if (rc < 0) return rc; } /* disable XO, clock and output enables */ rc = marimba_write_u8(tsadc, TS_CTL0, 0x00); if (rc < 0) goto fail_marimba_write; /* Enable output enables */ val = TS_CTL0_XO_EN | TS_CTL0_EOC_EN | TS_CTL0_PENIRQ_EN; rc = marimba_write_u8(tsadc, TS_CTL0, val); if (rc < 0) goto fail_marimba_write; /* Enable clock */ val = val | TS_CTL0_CLK_EN; rc = marimba_write_u8(tsadc, TS_CTL0, val); if (rc < 0) goto fail_marimba_write; /* remove reset */ val = val | TS_CTL0_RESET; rc = marimba_write_u8(tsadc, TS_CTL0, val); if (rc < 0) goto fail_marimba_write; return 0; fail_marimba_write: if (tsadc->pdata->level_vote) /* REVISIT: Ignore error for level_vote(0) for now*/ tsadc->pdata->level_vote(0); return rc; }
static int marimba_tsadc_startup(struct marimba_tsadc *tsadc) { u8 val; /* disable XO, clock and output enables */ marimba_write_u8(tsadc, TS_CTL0, 0x00); /* Enable output enables */ val = TS_CTL0_XO_EN | TS_CTL0_EOC_EN | TS_CTL0_PENIRQ_EN; marimba_write_u8(tsadc, TS_CTL0, val); /* Enable clock */ val = val | TS_CTL0_CLK_EN; marimba_write_u8(tsadc, TS_CTL0, val); /* remove reset */ val = val | TS_CTL0_RESET; marimba_write_u8(tsadc, TS_CTL0, val); return 0; }