Documentation/driver-api/memory-devices/ti-emif.rst GitHub 원문 ↗

Linux 6.18.37 · Driver API

TI EMIF SDRAM Controller Driver

TI EMIF LPDDR2 timing 재구성, platform data, notifier와 debugfs를 설명하는 전문 번역입니다.

Source pathDocumentation/driver-api/memory-devices/ti-emif.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

ti-emif.rst:1-64

EMIF driver는 OMAP LPDDR2의 frequency·voltage·temperature 변화에 맞춰 timing을 재구성하고 계산 상태를 debugfs에 노출합니다.

문서 구성
원문 줄내용
1-25Driver metadata와 Kconfig
26-47기능과 platform data
48-64Notifier와 debugfs

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ===============================
4 TI EMIF SDRAM Controller Driver
5 ===============================
6
7 Author
8 ======
9 Aneesh V <aneesh@ti.com>
10
11 Location
12 ========
13 driver/memory/emif.c
14
15 Supported SoCs:
16 ===============
17 TI OMAP44xx
18 TI OMAP54xx
19
20 Menuconfig option:
21 ==================
22 Device Drivers
23 Memory devices
24 Texas Instruments EMIF driver
25
26 Description
27 ===========
28 This driver is for the EMIF module available in Texas Instruments
29 SoCs. EMIF is an SDRAM controller that, based on its revision,
30 supports one or more of DDR2, DDR3, and LPDDR2 SDRAM protocols.
31 This driver takes care of only LPDDR2 memories presently. The
32 functions of the driver includes re-configuring AC timing
33 parameters and other settings during frequency, voltage and
34 temperature changes
35
36 Platform Data (see include/linux/platform_data/emif_plat.h)
37 ===========================================================
38 DDR device details and other board dependent and SoC dependent
39 information can be passed through platform data (struct emif_platform_data)
40
41 - DDR device details: 'struct ddr_device_info'
42 - Device AC timings: 'struct lpddr2_timings' and 'struct lpddr2_min_tck'
43 - Custom configurations: customizable policy options through
44 'struct emif_custom_configs'
45 - IP revision
46 - PHY type
47
48 Interface to the external world
49 ===============================
50 EMIF driver registers notifiers for voltage and frequency changes
51 affecting EMIF and takes appropriate actions when these are invoked.
52
53 - freq_pre_notify_handling()
54 - freq_post_notify_handling()
55 - volt_notify_handling()
56
57 Debugfs
58 =======
59 The driver creates two debugfs entries per device.
60
61 - regcache_dump : dump of register values calculated and saved for all
62 frequencies used so far.
63 - mr4 : last polled value of MR4 register in the LPDDR2 device. MR4
64 indicates the current temperature level of the device.
65

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

TI EMIF driver 정보와 설정

1-25

이 `GPL-2.0` 문서는 TI EMIF SDRAM Controller driver를 설명합니다. 작성자는 Aneesh V이고 문서에 적힌 source 위치는 `driver/memory/emif.c`입니다.

지원 SoC는 TI OMAP44xx와 OMAP54xx입니다.

Menuconfig에서는 Device Drivers, Memory devices, Texas Instruments EMIF driver 순서로 선택합니다.

TI EMIF driver metadata
항목
작성자Aneesh V `<aneesh@ti.com>`
Source`driver/memory/emif.c`
SoCTI OMAP44xx·OMAP54xx
Kconfig 경로Device Drivers > Memory devices > Texas Instruments EMIF driver

.. SPDX-License-Identifier: GPL-2.0

===============================
TI EMIF SDRAM Controller Driver
===============================

Author
======
Aneesh V <aneesh@ti.com>

Location
========
driver/memory/emif.c

Supported SoCs:
===============
TI OMAP44xx
TI OMAP54xx

Menuconfig option:
==================
Device Drivers
        Memory devices
                Texas Instruments EMIF driver

EMIF 기능과 platform data

26-47

EMIF는 Texas Instruments SoC의 SDRAM controller입니다. IP revision에 따라 DDR2, DDR3, LPDDR2 protocol 중 하나 이상을 지원합니다.

현재 driver는 LPDDR2 memory만 처리합니다. Frequency, voltage, temperature 변화 시 AC timing parameter와 기타 설정을 다시 구성합니다.

DDR 장치 상세와 board·SoC 종속 정보는 `include/linux/platform_data/emif_plat.h`의 `emif_platform_data`로 전달할 수 있습니다.

Platform data에는 `ddr_device_info`, `lpddr2_timings`, `lpddr2_min_tck`, 정책 option용 `emif_custom_configs`, IP revision과 PHY type이 포함됩니다.

EMIF platform data
자료내용
`ddr_device_info`DDR 장치 상세
`lpddr2_timings`·`lpddr2_min_tck`AC timing과 최소 clock
`emif_custom_configs`사용자 지정 정책
IP revision·PHY typeSoC·physical interface 정보

Description
===========
This driver is for the EMIF module available in Texas Instruments
SoCs. EMIF is an SDRAM controller that, based on its revision,
supports one or more of DDR2, DDR3, and LPDDR2 SDRAM protocols.
This driver takes care of only LPDDR2 memories presently. The
functions of the driver includes re-configuring AC timing
parameters and other settings during frequency, voltage and
temperature changes

Platform Data (see include/linux/platform_data/emif_plat.h)
===========================================================
DDR device details and other board dependent and SoC dependent
information can be passed through platform data (struct emif_platform_data)

- DDR device details: 'struct ddr_device_info'
- Device AC timings: 'struct lpddr2_timings' and 'struct lpddr2_min_tck'
- Custom configurations: customizable policy options through
  'struct emif_custom_configs'
- IP revision
- PHY type

Notifier와 debugfs

48-64

EMIF driver는 controller에 영향을 주는 voltage와 frequency 변경 notifier를 등록하고 callback에서 필요한 조치를 수행합니다.

Frequency 변경 전에는 `freq_pre_notify_handling()`, 변경 후에는 `freq_post_notify_handling()`, voltage 변경에는 `volt_notify_handling()`을 사용합니다.

각 장치에는 두 debugfs entry가 생깁니다. `regcache_dump`는 지금까지 사용한 모든 frequency에 대해 계산·저장한 register 값을 출력합니다.

`mr4`는 LPDDR2 장치에서 마지막으로 poll한 MR4 register 값이며 현재 장치 temperature level을 나타냅니다.

EMIF 외부 변화 처리
Frequency 변경 전`freq_pre_notify_handling()`
Frequency 변경 후`freq_post_notify_handling()`
Voltage 변경`volt_notify_handling()`
Debugfs`regcache_dump`·`mr4`

Clock·voltage notifier가 timing 재구성을 촉발하고 debugfs가 계산 상태를 노출합니다.

Interface to the external world
===============================
EMIF driver registers notifiers for voltage and frequency changes
affecting EMIF and takes appropriate actions when these are invoked.

- freq_pre_notify_handling()
- freq_post_notify_handling()
- volt_notify_handling()

Debugfs
=======
The driver creates two debugfs entries per device.

- regcache_dump : dump of register values calculated and saved for all
  frequencies used so far.
- mr4 : last polled value of MR4 register in the LPDDR2 device. MR4
  indicates the current temperature level of the device.