요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
debugfs line 조작
gpio-mockup.rst:47-59chip별 디렉터리와 line offset attribute에서 pull-up 또는 pull-down을 모의하는 방법을 설명합니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. SPDX-License-Identifier: GPL-2.0-only
GPIO Testing Driver
===================
.. note::
This module has been obsoleted by the more flexible gpio-sim.rst.
New developments should use that API and existing developments are
encouraged to migrate as soon as possible.
This module will continue to be maintained but no new features will be
added.
The GPIO Testing Driver (gpio-mockup) provides a way to create simulated GPIO
chips for testing purposes. The lines exposed by these chips can be accessed
using the standard GPIO character device interface as well as manipulated
using the dedicated debugfs directory structure.
Creating simulated chips using module params
--------------------------------------------
When loading the gpio-mockup driver a number of parameters can be passed to the
module.
gpio_mockup_ranges
This parameter takes an argument in the form of an array of integer
pairs. Each pair defines the base GPIO number (non-negative integer)
and the first number after the last of this chip. If the base GPIO
is -1, the gpiolib will assign it automatically. while the following
parameter is the number of lines exposed by the chip.
Example: gpio_mockup_ranges=-1,8,-1,16,405,409
The line above creates three chips. The first one will expose 8 lines,
the second 16 and the third 4. The base GPIO for the third chip is set
to 405 while for two first chips it will be assigned automatically.
gpio_mockup_named_lines
This parameter doesn't take any arguments. It lets the driver know that
GPIO lines exposed by it should be named.
The name format is: gpio-mockup-X-Y where X is mockup chip's ID
and Y is the line offset.
Manipulating simulated lines
----------------------------
Each mockup chip creates its own subdirectory in /sys/kernel/debug/gpio-mockup/.
The directory is named after the chip's label. A symlink is also created, named
after the chip's name, which points to the label directory.
Inside each subdirectory, there's a separate attribute for each GPIO line. The
name of the attribute represents the line's offset in the chip.
Reading from a line attribute returns the current value. Writing to it (0 or 1)
changes the configuration of the simulated pull-up/pull-down resistor
(1 - pull-up, 0 - pull-down).
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
GPIO Testing Driver와 폐기 상태
1-18이 모듈은 더 유연한 `gpio-sim.rst`에 의해 obsolete 상태가 되었습니다. 새 개발은 gpio-sim API를 사용해야 하며 기존 개발도 가능한 빨리 이전하는 것이 권장됩니다. 이 모듈은 계속 유지보수되지만 새 기능은 추가되지 않습니다.
GPIO Testing Driver인 `gpio-mockup`은 시험용 가상 GPIO chip을 만듭니다. 노출된 line은 표준 GPIO character device interface로 접근할 수 있고 전용 debugfs 디렉터리 구조로 조작할 수 있습니다.
module parameter로 가상 chip 만들기
19-46`gpio-mockup` 드라이버를 로드할 때 다음 module parameter를 전달할 수 있습니다.
| parameter | 설명 |
|---|---|
| gpio_mockup_ranges | 정수 쌍의 배열입니다. 각 쌍은 0 이상의 base GPIO 번호와 해당 chip의 마지막 번호 다음 값을 정의합니다. base가 -1이면 gpiolib이 자동 할당하고 뒤 값은 chip이 노출할 line 수입니다. |
| gpio_mockup_named_lines | 인자를 받지 않습니다. 드라이버가 노출하는 GPIO line에 이름을 붙이도록 합니다. 이름 형식은 `gpio-mockup-X-Y`이며 X는 mockup chip ID, Y는 line offset입니다. |
gpio_mockup_ranges=-1,8,-1,16,405,409
이 예는 chip 세 개를 만듭니다. 첫 번째는 8개, 두 번째는 16개, 세 번째는 4개 line을 노출합니다. 세 번째 chip의 base GPIO는 405이고 앞의 두 chip은 자동 할당됩니다.
가상 line 조작
47-59각 mockup chip은 `/sys/kernel/debug/gpio-mockup/` 아래에 chip label 이름의 하위 디렉터리를 만듭니다. chip name으로 된 symbolic link도 만들어 label 디렉터리를 가리킵니다.
각 하위 디렉터리에는 GPIO line마다 별도 attribute가 있고 이름은 chip 안의 line offset입니다. 읽으면 현재 값을 반환하고 0 또는 1을 쓰면 가상 pull resistor 구성을 바꿉니다. 1은 pull-up, 0은 pull-down입니다.
상태와 chip 생성
gpio-mockup.rst:1-46새 개발에는 gpio-sim을 권장하며, 기존 gpio-mockup의 range와 named-line parameter 형식을 기록합니다.