An Exploring the I/O Performance of the Arduino 101 webpage by Dan Watson has a number of relevant comments:
The board uses three Texas Instruments LSF0108 level translators to accommodate all of the I/O lines (including the analog inputs). This is an interesting part. It's not really a level "shifter", and it's not a buffer. The Curie is still sourcing and sinking current to the pins, but the voltage levels are clamped at 3.3V on the Curie's side of the chip. In this regard it's kind of like a fancy analog switch. The on resistance of each signal path is in the neighborhood of 10 ohms.
Somewhat later in the article:
Analog Input Linearity: Next I tested the analog inputs. I was curious if the level translators affect the accuracy of the readings. I applied a DC voltage on pin A5, starting at 0V and increasing to 3.3V in 100 mV steps. At each step, I recorded the 10-bit analog-to-digital (ADC) readings reported by the Arduino 101. I then created a graph of the data, which is shown [on the webpage]. As you can see, the results are pretty linear across the entire input range. Spot-checking a few values, I found that there might have been a +20mV bias on the readings at the top end of the scale.
To summarize: As a consequence of being like an analog switch, the LSF0108 allows the Curie's analog input pins to accept analog inputs, and apparently it works ok.
Regarding the second question, whether 3.3 V levels are ok at the I/O ports, I think they are. See the article mentioned above for more comments. Here is one that may be relevant:
Digital Input Logic Transitions:
I applied a DC voltage to pin D7 and varied it up and down while the Arduino 101 reported the logic state in the serial monitor. This was done in order to discover the logic transition levels. Going from high to low, it returned a low state after crossing 1.26V. Going from low to high, however, the transition occurred at 1.55V.
Edit 1: Regarding two questions in a comment...
- What is the function of the level translators.. do they actually map the 0 to 5V levels to 0 to 3.3V on the curie side. ?
See the LSF0108 datasheet. The LSF0108 has eight A, B pairs: (A1,B1); (A2,B2); ... (A8,B8). If you drive Ai low, Bi goes low too; and vice versa, if you drive Bi low, Ai goes low too. That translates low to low. If neither side is driven low, connected inputs can pull up to an individual-pullup level but not higher than a reference level (VREFA or VREFB). This translates high to high.
- If I give a 0 to 5V analog voltage at the headers will the 3.3V to 5V level part of the signal be lost, I mean does the board only take care of the 0 to 3.3V part of the signal and the adc will give max counts at 3.3V?
It should be 'lost', because as noted in the Curie datasheet's Table 2-5. ADC - DC I/O specifications, the AIN Full-scale input range is ≤ ADC_3P3_VCC and ≤ AON_IO_VCC. (The latter voltage is 1.8 or 3.3 V.) I'm not clear on why the LSF0108 doesn't interfere with ADC measurements. Maybe the switches operate in a linear mode when pullups are turned off?