Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
resources:tools-software:linux-drivers:multifunction-device:adp5520 [23 Sep 2010 14:36]
hennerich link in ADP5501 product page
resources:tools-software:linux-drivers:multifunction-device:adp5520 [16 Feb 2015 11:50] (current)
Lars-Peter Clausen [Status]
Line 1: Line 1:
-====== Driver ​Overview ​======+====== ​ADP5520/01 MFD Linux Driver ======
  
-More information on the:\\ +===== Supported Devices =====
-  * ADP5520 can be found here [[:​adp5520]] +
-  * ADP5501 can be found here [[:​adp5501]]+
  
-The ADP5520/01 utilizes several Linux device-driver subsystems and provides ​+  * [[adi>​ADP5520]] 
 +  * [[adi>​ADP5501]] 
 + 
 +===== Evaluation Boards ===== 
 + 
 +  * [[adi>​ADP5520-EVALZ]] ​  
 +===== Description ===== 
 + 
 +The ADP5520/​01 ​driver ​utilizes several Linux device-driver subsystems and provides ​
 various software interfaces. It is therefore implemented as a multifunction device (MFD). various software interfaces. It is therefore implemented as a multifunction device (MFD).
 In this particular case the ADP5520 backlight driver and I/O expander, concurrently In this particular case the ADP5520 backlight driver and I/O expander, concurrently
 leverages the Linux backlight, LED, GPIO, and input subsystems for its keypad functionality. leverages the Linux backlight, LED, GPIO, and input subsystems for its keypad functionality.
 +
 +<​graphviz dot 650x200>
 +digraph {
 + ​size="​8,​5"​
 + ​ADP5520_MFD_CORE [shape=box]
 + ​ADP5520_BACKLIGHT [shape=box]
 + ​ADP5520_GPIO[shape=box]
 + ​ADP5520_LED [shape=box]
 + ​ADP5520_KEYPAD [shape=box]
 + ​ADP5520_MFD_CORE -> ADP5520_BACKLIGHT [dir=none];
 + ​ADP5520_MFD_CORE -> ADP5520_LED [dir=none];
 + ​ADP5520_MFD_CORE -> ADP5520_GPIO [dir=none];
 + ​ADP5520_MFD_CORE -> ADP5520_KEYPAD [dir=none];
 +}
 +</​graphviz>​
  
 ===== Core ===== ===== Core =====
Line 58: Line 79:
   * Configurable number of dedicated GPIOs, up to 8 GPIOs   * Configurable number of dedicated GPIOs, up to 8 GPIOs
   * Configurable Pull-Ups  ​   * Configurable Pull-Ups  ​
 +
 +
 +
 +====== Source Code ======
 +
 +===== Status =====
 +
 +^ Source ^ Mainlined? ^
 +| [[git.linux.org>​drivers/​mfd/​adp5520.c|git]] | [[git.linux.org>​drivers/​mfd/​adp5520.c|Yes]] |
 +
 +
 +===== Files =====
 +
 +^ Function ^ File ^
 +| MFD-CORE ​ | [[git.linux.org>​drivers/​mfd/​adp5520.c]] |
 +| include ​  | [[git.linux.org>​include/​linux/​mfd/​adp5520.h]] |
 +| BACKLIGHT | [[git.linux.org>​drivers/​video/​backlight/​adp5520_bl.c]] | 
 +| LED       | [[git.linux.org>​drivers/​led/​leds-adp5520.c]] |
 +| GPIO      | [[git.linux.org>​drivers/​gpio/​adp5520-gpio.c]]((ADP5520 only)) |
 +| KEYPAD ​   | [[git.linux.org>​drivers/​input/​keyboard/​adp5520-keys.c]]((ADP5520 only)) |
  
 ====== Example platform device initialization ====== ====== Example platform device initialization ======
  
-<note important>​+{{page>​software/​linux/​docs/​platform_and_bus_model#​Platform Data&​noheader&​firstseconly&​noeditbtn}} 
 + 
 +<WRAP important>​
 Since Keypad, GPIO and optional LEDs (2, 3) are multiplexed,​ you need to avoid double configurations. Please refer to the table below. Since Keypad, GPIO and optional LEDs (2, 3) are multiplexed,​ you need to avoid double configurations. Please refer to the table below.
-</note>+</WRAP>
  
 ^ ADP5520 PIN ^ R3 ^ R2 ^ R1 ^ R0 ^ C0 ^ C1 ^ C2 ^ C3 ^ ^ ADP5520 PIN ^ R3 ^ R2 ^ R1 ^ R0 ^ C0 ^ C1 ^ C2 ^ C3 ^
Line 70: Line 113:
 | **LED** | LED3 |  |  |  |  |  |  | LED2 |  ​ | **LED** | LED3 |  |  |  |  |  |  | LED2 |  ​
  
-<note tip>  +<WRAP tip>  
-Please refer to include/​linux/​mfd/​adp5520.h for detailed configuration defines. +Please refer to [[git.linux.org>​include/​linux/​mfd/​adp5520.h]] for detailed configuration defines. 
-</note>+</WRAP>
  
 ==== Backlight ===== ==== Backlight =====
Line 95: Line 138:
  
 ==== ADP5520/​ADP5501 MFD Core Support ===== ==== ADP5520/​ADP5501 MFD Core Support =====
 +
 +{{page>​software/​linux/​docs/​platform_and_bus_model#​Declaring I2C devices&​firstseconly&​noeditbtn}}
  
 <source trunk/​arch/​blackfin/​mach-bf537/​boards/​stamp.c:​adp5520_pdev_data{} c linux-kernel>​ <source trunk/​arch/​blackfin/​mach-bf537/​boards/​stamp.c:​adp5520_pdev_data{} c linux-kernel>​
 <source trunk/​arch/​blackfin/​mach-bf537/​boards/​stamp.c:/​CONFIG_PMIC_ADP5520/​2-/#​if/​ c linux-kernel>​ <source trunk/​arch/​blackfin/​mach-bf537/​boards/​stamp.c:/​CONFIG_PMIC_ADP5520/​2-/#​if/​ c linux-kernel>​
  
-<note tip>+<WRAP tip>
 **ADP5520 IRQ Usage:**\\ **ADP5520 IRQ Usage:**\\
 If you aren’t planning to utilize the Keypad interface, you don’t need to specify an IRQ in bfin_i2c_board_info. If you aren’t planning to utilize the Keypad interface, you don’t need to specify an IRQ in bfin_i2c_board_info.
-</note>+</WRAP>
  
 ====== Adding Linux driver support ====== ====== Adding Linux driver support ======
Line 165: Line 210:
  
 ====== Hardware configuration ====== ====== Hardware configuration ======
 +
 +{{:​software:​driver:​linux:​adp5520_brd.jpg?​800|ADP5520 Demo Mother/​Daughter Board}}
  
 There is no dedicated Blackfin STAMP evaluation board for the ADP5520. There is no dedicated Blackfin STAMP evaluation board for the ADP5520.
 During test and driver development we used the ADP5520 Demo Mother/​Daughter Board. During test and driver development we used the ADP5520 Demo Mother/​Daughter Board.
 +Connect the ADP5520 Demo Mother to an USB port.
  
 It can be easily wired to the Blackfin STAMP TWI/I2C header. It can be easily wired to the Blackfin STAMP TWI/I2C header.
Line 173: Line 221:
 ^ BF537-STAMP (P10) TWI/I2C header ​ ^^ ADP5520 Daughter Board ^ ^ BF537-STAMP (P10) TWI/I2C header ​ ^^ ADP5520 Daughter Board ^
 ^ PIN ^ Function ^ PIN/​Function ^ ^ PIN ^ Function ^ PIN/​Function ^
-| 2 | (+3.3V) | VCC | 
 | 5 | SCL | SCL | | 5 | SCL | SCL |
 | 6 | SDA| SDA | | 6 | SDA| SDA |
Line 209: Line 256:
 root:/​sys/​devices/​platform/​i2c-bfin-twi.0/​i2c-adapter/​i2c-0/​0-0032/​backlight/​adp5520-backlight>​ **echo 0 > brightness** root:/​sys/​devices/​platform/​i2c-bfin-twi.0/​i2c-adapter/​i2c-0/​0-0032/​backlight/​adp5520-backlight>​ **echo 0 > brightness**
 </​xterm>​ </​xterm>​
 +
 +__**For more information on Backlight handling in Linux read:**__ [[git.linux.org>​Documentation/​ABI/​stable/​sysfs-class-backlight]] ​
  
 ==== LED ===== ==== LED =====
Line 236: Line 285:
 root:/> root:/>
 </​xterm>​ </​xterm>​
 +
 +__**For more information on LEDs handling in Linux read:**__ [[git.linux.org>​Documentation/​leds-class.txt]] ​
  
 ==== GPIO ===== ==== GPIO =====
Line 256: Line 307:
                    [*] Input event device test                    [*] Input event device test
 </​xterm>​ </​xterm>​
 +
 +__**For more information on GPIO handling in Linux read:**__ [[git.linux.org>​Documentation/​gpio.txt]] ​
 +
  
 ==== Keypad ===== ==== Keypad =====
Line 304: Line 358:
 root:/> root:/>
 </​xterm>​ </​xterm>​
 +
 +__**For more information on Input handling in Linux read:**__ [[git.linux.org>​Documentation/​input/​input.txt]]
 +
 +====== More Information ======
 +
 +{{page>​resources/​tools-software/​linux-drivers/​snippets#​input_pointers&​noheader&​firstseconly&​noeditbtn}} ​
 +
resources/tools-software/linux-drivers/multifunction-device/adp5520.1285245388.txt.gz · Last modified: 23 Sep 2010 14:36 by hennerich