----
 
----
   −
'''Raspberry Pi Firmware GPIO Expander Driver'''
+
'''Raspberry Pi Firmware GPIO Expander Driver unit'''
   −
As of February 2017 the Raspberry Pi firmware contains a mailbox interface to allow control of the GPIO expander on the Raspberry Pi 3 and Compute Module 3.
+
As of February 2017 the Raspberry Pi firmware contains a mailbox interface to allow control of the GPIO expander on the Raspberry Pi 3/4 and Compute Module 3/4.
    
Unlike the earlier virtual GPIO interface this mailbox service now supports most GPIO functionality including getting and setting a pin value, getting and changing the pin function and getting or changing the pull up/down options.
 
Unlike the earlier virtual GPIO interface this mailbox service now supports most GPIO functionality including getting and setting a pin value, getting and changing the pin function and getting or changing the pull up/down options.
 
This driver implements most of the functionality available in the new mailbox service as a standard Ultibo GPIO device and also provides direct mailbox calls to allow access to any additional options not covered by the GPIO device API.
 
This driver implements most of the functionality available in the new mailbox service as a standard Ultibo GPIO device and also provides direct mailbox calls to allow access to any additional options not covered by the GPIO device API.
 
   
 
   
When included in a project this driver replaces the Virtual GPIO functions provided by the PlatformRPi2 and PlatformRPi3 units.
+
When included in a project this driver replaces the Virtual GPIO functions provided by the PlatformRPi2, PlatformRPi3, PlatformRPi4 units.
 
    
 
    
 
According to /arch/arm/boot/dts/bcm2710-rpi-3-b.dts the following pin assignments are known:
 
According to /arch/arm/boot/dts/bcm2710-rpi-3-b.dts the following pin assignments are known:
 
* GPIO_PIN_7 = Power LED (Input / Active Low)
 
* GPIO_PIN_7 = Power LED (Input / Active Low)
   −
For the Raspberry Pi 3B+ the assignments show in /arch/arm/boot/dts/bcm2710-rpi-3-b.dts have changed as follows:
+
For the Raspberry Pi 3B+ the assignments shown in /arch/arm/boot/dts/bcm2710-rpi-3-b.dts have changed as follows:
    
*GPIO_PIN_2 = Power LED (Active Low)
 
*GPIO_PIN_2 = Power LED (Active Low)
 
*GPIO_PIN_4 = HDMI Detect (Input / Active Low)
 
*GPIO_PIN_4 = HDMI Detect (Input / Active Low)
   Exception encountered, of type "Error"