ARM: bcm2835: Add names for the Raspberry Pi GPIO lines
authorLinus Walleij <linus.walleij@linaro.org>
Thu, 6 Oct 2016 11:15:02 +0000 (13:15 +0200)
committerEric Anholt <eric@anholt.net>
Fri, 11 Nov 2016 17:07:01 +0000 (09:07 -0800)
The idea is to give useful names to GPIO lines that an implementer
will be using from userspace, e.g. for maker type projects.  These are
user-visible using tools/gpio/lsgpio.c

v2: Major rewrite by anholt: Flatten each GPIO line to a line in the
    file for better diffing, prefix all expansion header pins with
    "P<number>" or "P5HEADER_P<number>" and drop the mostly-unused
    GPIO_GEN<smallnumber> names in favor of GPIO<socgpionumber>, fix
    extra '[]' on a couple of lines, fix locations of SD_CARD_DETECT,
    CAM_GPIO and STATUS_LED, fix HDMI_HPD polarities, rewrite A+ using
    unreleased schematics.

v3: More changes by anholt: Drop P<number> / P5HEADER<number>
    prefixes.  I had been skeptical about adding them, and was
    convinced to drop them by Gottfried (who probably has more
    experience with GPIOs in educational contexts than the rest of
    us).  Also drop [] brackets for "is pinmuxed", which didn't seem
    to clarify, and were ambiguous for things like the SPI_*-labeled
    pins which may or may not actually be pinmuxed to SPI.

v4: Rename B+'s SDA0/SCL0 to match the other boards, despite the
    naming on its schematic.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
arch/arm/boot/dts/bcm2835-rpi-a.dts
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
arch/arm/boot/dts/bcm2835-rpi-b.dts

index 21507c922783d57d86d0a2502df5877c873fc856..5a22c7965f349fe1e6dd1bf77c8330d016c473bb 100644 (file)
 };
 
 &gpio {
+       /*
+        * This is based on the unreleased schematic for the Model A+.
+        *
+        * Legend:
+        * "NC" = not connected (no rail from the SoC)
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "SDA0",
+                         "SCL0",
+                         "SDA1",
+                         "SCL1",
+                         "GPIO_GCLK",
+                         "GPIO5",
+                         "GPIO6",
+                         "SPI_CE1_N",
+                         "SPI_CE0_N",
+                         "SPI_MISO",
+                         "SPI_MOSI",
+                         "SPI_SCLK",
+                         "GPIO12",
+                         "GPIO13",
+                         /* Serial port */
+                         "TXD0",
+                         "RXD0",
+                         "GPIO16",
+                         "GPIO17",
+                         "GPIO18",
+                         "GPIO19",
+                         "GPIO20",
+                         "GPIO21",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "GPIO26",
+                         "GPIO27",
+                         "SDA0",
+                         "SCL0",
+                         "NC", /* GPIO30 */
+                         "NC", /* GPIO31 */
+                         "NC", /* GPIO32 */
+                         "NC", /* GPIO33 */
+                         "NC", /* GPIO34 */
+                         "PWR_LOW_N", /* GPIO35 */
+                         "NC", /* GPIO36 */
+                         "NC", /* GPIO37 */
+                         "NC", /* GPIO38 */
+                         "NC", /* GPIO39 */
+                         "PWM0_OUT", /* GPIO40 */
+                         "CAM_GPIO0", /* GPIO41 */
+                         "NC", /* GPIO42 */
+                         "NC", /* GPIO43 */
+                         "NC", /* GPIO44 */
+                         "PWM1_OUT", /* GPIO45 */
+                         "HDMI_HPD_N",
+                         "STATUS_LED",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
        pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
 
        /* I2S interface */
index 5afba0900449df82624031d4e67664384b548fb1..54f98c59a75d0077b318e6f32042546fcda508a6 100644 (file)
 };
 
 &gpio {
+       /*
+        * Taken from Raspberry-Pi-Rev-1.0-Model-AB-Schematics.pdf
+        * RPI00021 sheet 02
+        *
+        * Legend:
+        * "NC" = not connected (no rail from the SoC)
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "SDA0",
+                         "SCL0",
+                         "SDA1",
+                         "SCL1",
+                         "GPIO_GCLK",
+                         "CAM_CLK",
+                         "LAN_RUN",
+                         "SPI_CE1_N",
+                         "SPI_CE0_N",
+                         "SPI_MISO",
+                         "SPI_MOSI",
+                         "SPI_SCLK",
+                         "NC", /* GPIO12 */
+                         "NC", /* GPIO13 */
+                         /* Serial port */
+                         "TXD0",
+                         "RXD0",
+                         "STATUS_LED_N",
+                         "GPIO17",
+                         "GPIO18",
+                         "NC", /* GPIO19 */
+                         "NC", /* GPIO20 */
+                         "GPIO21",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "NC", /* GPIO26 */
+                         "CAM_GPIO",
+                         /* Binary number representing build/revision */
+                         "CONFIG0",
+                         "CONFIG1",
+                         "CONFIG2",
+                         "CONFIG3",
+                         "NC", /* GPIO32 */
+                         "NC", /* GPIO33 */
+                         "NC", /* GPIO34 */
+                         "NC", /* GPIO35 */
+                         "NC", /* GPIO36 */
+                         "NC", /* GPIO37 */
+                         "NC", /* GPIO38 */
+                         "NC", /* GPIO39 */
+                         "PWM0_OUT",
+                         "NC", /* GPIO41 */
+                         "NC", /* GPIO42 */
+                         "NC", /* GPIO43 */
+                         "NC", /* GPIO44 */
+                         "PWM1_OUT",
+                         "HDMI_HPD_P",
+                         "SD_CARD_DET",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
        pinctrl-0 = <&gpioout &alt0 &i2s_alt2>;
 
        /* I2S interface */
index 38f66aa244fef3f82862863a76d0aa3ffd71745a..b67587e6cbefddc8f5a79a79f7f36e4c903decfa 100644 (file)
 };
 
 &gpio {
+       /*
+        * Taken from Raspberry-Pi-B-Plus-V1.2-Schematics.pdf
+        * RPI-BPLUS sheet 1
+        *
+        * Legend:
+        * "NC" = not connected (no rail from the SoC)
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "SDA0",
+                         "SCL0",
+                         "SDA1",
+                         "SCL1",
+                         "GPIO_GCLK",
+                         "GPIO5",
+                         "GPIO6",
+                         "SPI_CE1_N",
+                         "SPI_CE0_N",
+                         "SPI_MISO",
+                         "SPI_MOSI",
+                         "SPI_SCLK",
+                         "GPIO12",
+                         "GPIO13",
+                         /* Serial port */
+                         "TXD0",
+                         "RXD0",
+                         "GPIO16",
+                         "GPIO17",
+                         "GPIO18",
+                         "GPIO19",
+                         "GPIO20",
+                         "GPIO21",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "GPIO26",
+                         "GPIO27",
+                         "SDA0",
+                         "SCL0",
+                         "NC", /* GPIO30 */
+                         "LAN_RUN", /* GPIO31 */
+                         "CAM_GPIO1", /* GPIO32 */
+                         "NC", /* GPIO33 */
+                         "NC", /* GPIO34 */
+                         "PWR_LOW_N", /* GPIO35 */
+                         "NC", /* GPIO36 */
+                         "NC", /* GPIO37 */
+                         "NC", /* GPIO38 */
+                         "NC", /* GPIO39 */
+                         "PWM0_OUT", /* GPIO40 */
+                         "CAM_GPIO0", /* GPIO41 */
+                         "NC", /* GPIO42 */
+                         "NC", /* GPIO43 */
+                         "ETHCLK", /* GPIO44 */
+                         "PWM1_OUT", /* GPIO45 */
+                         "HDMI_HPD_N",
+                         "STATUS_LED",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
        pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
 
        /* I2S interface */
index 75e045aba7cee7e1173f47c3b2f65a33a896988f..4133bc2cd9be309a3885e6d002b767fe2c4d0458 100644 (file)
 };
 
 &gpio {
+       /*
+        * Taken from Raspberry-Pi-Rev-2.0-Model-AB-Schematics.pdf
+        * RPI00022 sheet 02
+        *
+        * Legend:
+        * "NC" = not connected (no rail from the SoC)
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "SDA0",
+                         "SCL0",
+                         "SDA1",
+                         "SCL1",
+                         "GPIO_GCLK",
+                         "CAM_CLK",
+                         "LAN_RUN",
+                         "SPI_CE1_N",
+                         "SPI_CE0_N",
+                         "SPI_MISO",
+                         "SPI_MOSI",
+                         "SPI_SCLK",
+                         "NC", /* GPIO12 */
+                         "NC", /* GPIO13 */
+                         /* Serial port */
+                         "TXD0",
+                         "RXD0",
+                         "STATUS_LED_N",
+                         "GPIO17",
+                         "GPIO18",
+                         "NC", /* GPIO19 */
+                         "NC", /* GPIO20 */
+                         "CAM_GPIO",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "NC", /* GPIO26 */
+                         "GPIO27",
+                         "GPIO28",
+                         "GPIO29",
+                         "GPIO30",
+                         "GPIO31",
+                         "NC", /* GPIO32 */
+                         "NC", /* GPIO33 */
+                         "NC", /* GPIO34 */
+                         "NC", /* GPIO35 */
+                         "NC", /* GPIO36 */
+                         "NC", /* GPIO37 */
+                         "NC", /* GPIO38 */
+                         "NC", /* GPIO39 */
+                         "PWM0_OUT",
+                         "NC", /* GPIO41 */
+                         "NC", /* GPIO42 */
+                         "NC", /* GPIO43 */
+                         "NC", /* GPIO44 */
+                         "PWM1_OUT",
+                         "HDMI_HPD_P",
+                         "SD_CARD_DET",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
        pinctrl-0 = <&gpioout &alt0 &i2s_alt2>;
 
        /* I2S interface */
index 76a254b3219a9ffbaccb1a4a4e955175efae6981..71f50e16c646e0413de594391e870854761bb778 100644 (file)
 };
 
 &gpio {
+       /*
+        * Taken from Raspberry-Pi-Rev-1.0-Model-AB-Schematics.pdf
+        * RPI00021 sheet 02
+        *
+        * Legend:
+        * "NC" = not connected (no rail from the SoC)
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "SDA0",
+                         "SCL0",
+                         "SDA1",
+                         "SCL1",
+                         "GPIO_GCLK",
+                         "CAM_CLK",
+                         "LAN_RUN",
+                         "SPI_CE1_N",
+                         "SPI_CE0_N",
+                         "SPI_MISO",
+                         "SPI_MOSI",
+                         "SPI_SCLK",
+                         "NC", /* GPIO12 */
+                         "NC", /* GPIO13 */
+                         /* Serial port */
+                         "TXD0",
+                         "RXD0",
+                         "STATUS_LED_N",
+                         "GPIO17",
+                         "GPIO18",
+                         "NC", /* GPIO19 */
+                         "NC", /* GPIO20 */
+                         "GPIO21",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "NC", /* GPIO26 */
+                         "CAM_GPIO",
+                         /* Binary number representing build/revision */
+                         "CONFIG0",
+                         "CONFIG1",
+                         "CONFIG2",
+                         "CONFIG3",
+                         "NC", /* GPIO32 */
+                         "NC", /* GPIO33 */
+                         "NC", /* GPIO34 */
+                         "NC", /* GPIO35 */
+                         "NC", /* GPIO36 */
+                         "NC", /* GPIO37 */
+                         "NC", /* GPIO38 */
+                         "NC", /* GPIO39 */
+                         "PWM0_OUT",
+                         "NC", /* GPIO41 */
+                         "NC", /* GPIO42 */
+                         "NC", /* GPIO43 */
+                         "NC", /* GPIO44 */
+                         "PWM1_OUT",
+                         "HDMI_HPD_P",
+                         "SD_CARD_DET",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
        pinctrl-0 = <&gpioout &alt0>;
 };