요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
======================
Kernel driver isl29003
======================
Supported chips:
* Intersil ISL29003
Prefix: 'isl29003'
Addresses scanned: none
Datasheet:
http://www.intersil.com/data/fn/fn7464.pdf
Author: Daniel Mack <[email protected]>
Description
-----------
The ISL29003 is an integrated light sensor with a 16-bit integrating type
ADC, I2C user programmable lux range select for optimized counts/lux, and
I2C multi-function control and monitoring capabilities. The internal ADC
provides 16-bit resolution while rejecting 50Hz and 60Hz flicker caused by
artificial light sources.
The driver allows to set the lux range, the bit resolution, the operational
mode (see below) and the power state of device and can read the current lux
value, of course.
Detection
---------
The ISL29003 does not have an ID register which could be used to identify
it, so the detection routine will just try to read from the configured I2C
address and consider the device to be present as soon as it ACKs the
transfer.
Sysfs entries
-------------
range:
== ===========================
0: 0 lux to 1000 lux (default)
1: 0 lux to 4000 lux
2: 0 lux to 16,000 lux
3: 0 lux to 64,000 lux
== ===========================
resolution:
== =====================
0: 2^16 cycles (default)
1: 2^12 cycles
2: 2^8 cycles
3: 2^4 cycles
== =====================
mode:
== =================================================
0: diode1's current (unsigned 16bit) (default)
1: diode1's current (unsigned 16bit)
2: difference between diodes (l1 - l2, signed 15bit)
== =================================================
power_state:
== =================================================
0: device is disabled (default)
1: device is enabled
== =================================================
lux (read only):
returns the value from the last sensor reading
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
지원 chip과 식별 정보
1-17이 kernel driver는 Intersil ISL29003을 지원합니다. Prefix는 `isl29003`이고 자동 검색하는 주소는 없습니다. 원문 datasheet URL은 `http://www.intersil.com/data/fn/fn7464.pdf`이며 저자는 Daniel Mack <[email protected]>입니다.
======================
Kernel driver isl29003
======================
Supported chips:
* Intersil ISL29003
Prefix: 'isl29003'
Addresses scanned: none
Datasheet:
http://www.intersil.com/data/fn/fn7464.pdf
Author: Daniel Mack <[email protected]>
Sensor와 driver 기능
18-29ISL29003은 16-bit integrating ADC를 내장한 통합 light sensor입니다. I2C로 lux range를 선택해 counts/lux를 최적화할 수 있고, 여러 control·monitoring 기능도 I2C로 제공합니다. 내부 ADC는 16-bit resolution을 제공하면서 인공 광원의 50Hz와 60Hz flicker를 억제합니다.
Driver는 lux range, bit resolution, 아래에 설명한 operational mode, device power state를 설정할 수 있으며 현재 lux 값도 읽습니다.
Description
-----------
The ISL29003 is an integrated light sensor with a 16-bit integrating type
ADC, I2C user programmable lux range select for optimized counts/lux, and
I2C multi-function control and monitoring capabilities. The internal ADC
provides 16-bit resolution while rejecting 50Hz and 60Hz flicker caused by
artificial light sources.
The driver allows to set the lux range, the bit resolution, the operational
mode (see below) and the power state of device and can read the current lux
value, of course.
Device 감지
30-38ISL29003에는 자신을 식별할 ID register가 없습니다. 따라서 detection routine은 설정된 I2C 주소에서 read를 시도하고 device가 transfer에 ACK하면 존재하는 것으로 판단합니다.
Detection
---------
The ISL29003 does not have an ID register which could be used to identify
it, so the detection routine will just try to read from the configured I2C
address and consider the device to be present as soon as it ACKs the
transfer.
Sysfs attribute
39-75| Attribute | 값 | 의미 |
|---|---|---|
| range | 0 | 0~1,000 lux, 기본값 |
| range | 1 | 0~4,000 lux |
| range | 2 | 0~16,000 lux |
| range | 3 | 0~64,000 lux |
| resolution | 0 | 2^16 cycle, 기본값 |
| resolution | 1 | 2^12 cycle |
| resolution | 2 | 2^8 cycle |
| resolution | 3 | 2^4 cycle |
| mode | 0 | Diode 1 current, unsigned 16-bit, 기본값 |
| mode | 1 | Diode 1 current, unsigned 16-bit |
| mode | 2 | Diode 차이 l1-l2, signed 15-bit |
| power_state | 0 | Device disable, 기본값 |
| power_state | 1 | Device enable |
| lux | read only | 마지막 sensor reading 값 |
`range`는 full-scale lux 범위를, `resolution`은 integration cycle 수를 정합니다. `mode` 0과 1의 원문 설명은 모두 diode1 current이며, `mode` 2만 두 diode의 signed 차이를 반환합니다. `lux`는 read-only이고 마지막 sensor reading을 반환합니다.
Sysfs entries
-------------
range:
== ===========================
0: 0 lux to 1000 lux (default)
1: 0 lux to 4000 lux
2: 0 lux to 16,000 lux
3: 0 lux to 64,000 lux
== ===========================
resolution:
== =====================
0: 2^16 cycles (default)
1: 2^12 cycles
2: 2^8 cycles
3: 2^4 cycles
== =====================
mode:
== =================================================
0: diode1's current (unsigned 16bit) (default)
1: diode1's current (unsigned 16bit)
2: difference between diodes (l1 - l2, signed 15bit)
== =================================================
power_state:
== =================================================
0: device is disabled (default)
1: device is enabled
== =================================================
lux (read only):
returns the value from the last sensor reading
요약·해설
isl29003.rst:1-75ID register가 없어 configured I2C address의 ACK로 device 존재를 판정합니다. Lux full-scale, integration resolution, diode measurement mode, power를 sysfs로 정하고 마지막 lux reading을 읽습니다.
Range와 resolution을 함께 선택해 측정 범위와 integration cycle 수를 조정합니다.