ARM: dts: add Raspberry Pi Compute Module and IO board
Subsystems (4)
RFC PATCH 1/1 ARM: dts: add Raspberry Pi Compute Module and IO board
The Raspberry Pi Compute Module (CM1) is a SoM which contains a BCM2835 processor, 512 MB RAM and a 4 GB eMMC. There is also a carrier board which is called Compute Module IO Board.
--- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts | 92 +++++++++++++++++++++++++++++++ arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi | 34 ++++++++++++ 3 files changed, 127 insertions(+) create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi
arch/arm/boot/dts/Makefile +1 -0
@@ -73,6 +73,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ bcm2835-rpi-b-rev2.dtb \ bcm2835-rpi-b-plus.dtb \ bcm2835-rpi-a-plus.dtb \ + bcm2835-rpi-cm1-io1.dtb \ bcm2836-rpi-2-b.dtb \ bcm2837-rpi-3-b.dtb \ bcm2837-rpi-3-b-plus.dtb \
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts new file +92 -0
92 lines not on this page · raw message
arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi new file +34 -0
@@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "bcm2835.dtsi" +#include "bcm2835-rpi.dtsi" + +/ { + leds { + act { + gpios = <&gpio 47 GPIO_ACTIVE_LOW>; + }; + }; + + reg_3v3: fixed-regulator { + compatible = "regulator-fixed"; + regulator-name = "3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + reg_1v8: fixed-regulator { + compatible = "regulator-fixed"; + regulator-name = "1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + }; +}; + +&sdhost { + non-removable; + vmmc-supply = <®_3v3>; + vqmmc-supply = <®_1v8>; +};
Signature · 1 line
2.7.4
RFC PATCH 1/1 ARM: dts: add Raspberry Pi Compute Module and IO board
Quoted 107 lines · Stefan Wahren
The Raspberry Pi Compute Module (CM1) is a SoM which contains a BCM2835 processor, 512 MB RAM and a 4 GB eMMC. There is also a carrier board which is called Compute Module IO Board.
Signed-off-by Stefan Wahren <[email protected]>--- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts | 92 +++++++++++++++++++++++++++++++ arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi | 34 ++++++++++++ 3 files changed, 127 insertions(+) create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm1.dtsiarch/arm/boot/dts/Makefile +1
-0@@ -73,6 +73,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ bcm2835-rpi-b-rev2.dtb \ bcm2835-rpi-b-plus.dtb \ bcm2835-rpi-a-plus.dtb \ + bcm2835-rpi-cm1-io1.dtb \ bcm2836-rpi-2-b.dtb \ bcm2837-rpi-3-b.dtb \ bcm2837-rpi-3-b-plus.dtb \arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts new file +76
-0@@ -0,0 +1,92 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "bcm2835-rpi-cm1.dtsi" +#include "bcm283x-rpi-usb-host.dtsi" + +/ { + compatible = "raspberrypi,compute-module", "brcm,bcm2835"; + model = "Raspberry Pi Compute Module IO board rev1"; +}; + +&dsi1 { + status = "okay"; +}; + +&gpio { + /* + * This is based on the official GPU firmware DT blob. + * + * 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 = "GPIO0", + "GPIO1", + "GPIO2", + "GPIO3", + "GPIO4", + "GPIO5", + "GPIO6", + "GPIO7", + "GPIO8", + "GPIO9", + "GPIO10", + "GPIO11", + "GPIO12", + "GPIO13", + "GPIO14", + "GPIO15", + "GPIO16", + "GPIO17", + "GPIO18", + "GPIO19", + "GPIO20", + "GPIO21", + "GPIO22", + "GPIO23", + "GPIO24", + "GPIO25", + "GPIO26", + "GPIO27", + "GPIO28", + "GPIO29", + "GPIO30", + "GPIO31", + "GPIO32", + "GPIO33", + "GPIO34", + "GPIO35", + "GPIO36", + "GPIO37", + "GPIO38", + "GPIO39", + "GPIO40", + "GPIO41", + "GPIO42", + "GPIO43", + "GPIO44", + "GPIO45", + "HDMI_HPD_N", + /* Also used as ACT LED */ + "EMMC_EN_N", + /* Used by eMMC */ + "SD_CLK_R", + "SD_CMD_R", + "SD_DATA0_R",
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts line 86
Quoted 10 lines
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts new file +10
-0+ "SD_DATA1_R", + "SD_DATA2_R", + "SD_DATA3_R"; + + pinctrl-0 = <&gpioout &alt0>; +}; + +&hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; +};
I think this should be ACTIVE_LOW, since it's "HDMI_HPD_N_1V8", right?
Quoted 36 lines
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts new file +6
-0+ +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; +};arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi new file +24
-0@@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "bcm2835.dtsi" +#include "bcm2835-rpi.dtsi" + +/ { + leds { + act { + gpios = <&gpio 47 GPIO_ACTIVE_LOW>; + }; + }; + + reg_3v3: fixed-regulator { + compatible = "regulator-fixed"; + regulator-name = "3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + reg_1v8: fixed-regulator { + compatible = "regulator-fixed"; + regulator-name = "1V8"; + regulator-min-microvolt = <1800000>;
arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi line 34
Quoted 10 lines
arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi new file +10
-0+ regulator-max-microvolt = <1800000>; + regulator-always-on; + }; +}; + +&sdhost { + non-removable; + vmmc-supply = <®_3v3>; + vqmmc-supply = <®_1v8>; +};
Also, looking at some datasheets I have laying around, it says "eMMC I/O Voltage fixed at 1V8" -- is this regulator setup right, in that case?
With answers for these two issues, it will be:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180521/aced93f8/attachment.sig>
RFC PATCH 1/1 ARM: dts: add Raspberry Pi Compute Module and IO board
Quoted 116 lines
Eric Anholt <[email protected]> hat am 21. Mai 2018 um 20:26 geschrieben:
Quoted 111 lines · Stefan Wahren
The Raspberry Pi Compute Module (CM1) is a SoM which contains a BCM2835 processor, 512 MB RAM and a 4 GB eMMC. There is also a carrier board which is called Compute Module IO Board.
Signed-off-by Stefan Wahren <[email protected]>--- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts | 92 +++++++++++++++++++++++++++++++ arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi | 34 ++++++++++++ 3 files changed, 127 insertions(+) create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm1.dtsiarch/arm/boot/dts/Makefile +1
-0@@ -73,6 +73,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ bcm2835-rpi-b-rev2.dtb \ bcm2835-rpi-b-plus.dtb \ bcm2835-rpi-a-plus.dtb \ + bcm2835-rpi-cm1-io1.dtb \ bcm2836-rpi-2-b.dtb \ bcm2837-rpi-3-b.dtb \ bcm2837-rpi-3-b-plus.dtb \arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts new file +80
-0@@ -0,0 +1,92 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "bcm2835-rpi-cm1.dtsi" +#include "bcm283x-rpi-usb-host.dtsi" + +/ { + compatible = "raspberrypi,compute-module", "brcm,bcm2835"; + model = "Raspberry Pi Compute Module IO board rev1"; +}; + +&dsi1 { + status = "okay"; +}; + +&gpio { + /* + * This is based on the official GPU firmware DT blob. + * + * 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 = "GPIO0", + "GPIO1", + "GPIO2", + "GPIO3", + "GPIO4", + "GPIO5", + "GPIO6", + "GPIO7", + "GPIO8", + "GPIO9", + "GPIO10", + "GPIO11", + "GPIO12", + "GPIO13", + "GPIO14", + "GPIO15", + "GPIO16", + "GPIO17", + "GPIO18", + "GPIO19", + "GPIO20", + "GPIO21", + "GPIO22", + "GPIO23", + "GPIO24", + "GPIO25", + "GPIO26", + "GPIO27", + "GPIO28", + "GPIO29", + "GPIO30", + "GPIO31", + "GPIO32", + "GPIO33", + "GPIO34", + "GPIO35", + "GPIO36", + "GPIO37", + "GPIO38", + "GPIO39", + "GPIO40", + "GPIO41", + "GPIO42", + "GPIO43", + "GPIO44", + "GPIO45", + "HDMI_HPD_N", + /* Also used as ACT LED */ + "EMMC_EN_N", + /* Used by eMMC */ + "SD_CLK_R", + "SD_CMD_R", + "SD_DATA0_R", + "SD_DATA1_R", + "SD_DATA2_R", + "SD_DATA3_R"; +
Quoted 8 lines
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts line 86
Quoted 6 lines
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts new file +6
-0+ pinctrl-0 = <&gpioout &alt0>; +}; + +&hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; +};I think this should be
ACTIVE_LOW, since it's "HDMI_HPD_N_1V8", right?
I just copy & paste from the rpi-4.14/bcm2708-rpi-cm.dts. I thought the HDMI interface on my IO board is broken, but maybe this is a downstream issue.
Quoted 42 lines
Quoted 42 lines
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts new file +6
-0+ +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; +};arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi new file +29
-0@@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "bcm2835.dtsi" +#include "bcm2835-rpi.dtsi" + +/ { + leds { + act { + gpios = <&gpio 47 GPIO_ACTIVE_LOW>; + }; + }; + + reg_3v3: fixed-regulator { + compatible = "regulator-fixed"; + regulator-name = "3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + reg_1v8: fixed-regulator { + compatible = "regulator-fixed"; + regulator-name = "1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + }; +}; +
Quoted 8 lines
arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi line 34
Quoted 5 lines
arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi new file +5
-0+&sdhost { + non-removable; + vmmc-supply = <®_3v3>; + vqmmc-supply = <®_1v8>; +};Also, looking at some datasheets I have laying around, it says "eMMC I/O Voltage fixed at 1V8" -- is this regulator setup right, in that case?
Usually an eMMC has 2 different voltage sources:
vqmmc-supply -> supply node for IO line power (usually switchable, but fixed on Compute Module) vmmc-supply -> supply node for card's power (usually fixed)
Do you have a specific concern (voltage, naming)?
Does this conversation help [1]?
Please also look at the CM schematics page 1 and 3.
[1] - https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=213772
Quoted 8 lines
With answers for these two issues, it will be:
Reviewed-by Eric Anholt <[email protected]>_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
RFC PATCH 1/1 ARM: dts: add Raspberry Pi Compute Module and IO board
Quoted 125 lines · Stefan Wahren
Quoted 116 lines
Eric Anholt <[email protected]> hat am 21. Mai 2018 um 20:26 geschrieben:
Quoted 111 lines · Stefan Wahren
The Raspberry Pi Compute Module (CM1) is a SoM which contains a BCM2835 processor, 512 MB RAM and a 4 GB eMMC. There is also a carrier board which is called Compute Module IO Board.
Signed-off-by Stefan Wahren <[email protected]>--- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts | 92 +++++++++++++++++++++++++++++++ arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi | 34 ++++++++++++ 3 files changed, 127 insertions(+) create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts create mode 100644 arch/arm/boot/dts/bcm2835-rpi-cm1.dtsiarch/arm/boot/dts/Makefile +1
-0@@ -73,6 +73,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ bcm2835-rpi-b-rev2.dtb \ bcm2835-rpi-b-plus.dtb \ bcm2835-rpi-a-plus.dtb \ + bcm2835-rpi-cm1-io1.dtb \ bcm2836-rpi-2-b.dtb \ bcm2837-rpi-3-b.dtb \ bcm2837-rpi-3-b-plus.dtb \arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts new file +80
-0@@ -0,0 +1,92 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "bcm2835-rpi-cm1.dtsi" +#include "bcm283x-rpi-usb-host.dtsi" + +/ { + compatible = "raspberrypi,compute-module", "brcm,bcm2835"; + model = "Raspberry Pi Compute Module IO board rev1"; +}; + +&dsi1 { + status = "okay"; +}; + +&gpio { + /* + * This is based on the official GPU firmware DT blob. + * + * 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 = "GPIO0", + "GPIO1", + "GPIO2", + "GPIO3", + "GPIO4", + "GPIO5", + "GPIO6", + "GPIO7", + "GPIO8", + "GPIO9", + "GPIO10", + "GPIO11", + "GPIO12", + "GPIO13", + "GPIO14", + "GPIO15", + "GPIO16", + "GPIO17", + "GPIO18", + "GPIO19", + "GPIO20", + "GPIO21", + "GPIO22", + "GPIO23", + "GPIO24", + "GPIO25", + "GPIO26", + "GPIO27", + "GPIO28", + "GPIO29", + "GPIO30", + "GPIO31", + "GPIO32", + "GPIO33", + "GPIO34", + "GPIO35", + "GPIO36", + "GPIO37", + "GPIO38", + "GPIO39", + "GPIO40", + "GPIO41", + "GPIO42", + "GPIO43", + "GPIO44", + "GPIO45", + "HDMI_HPD_N", + /* Also used as ACT LED */ + "EMMC_EN_N", + /* Used by eMMC */ + "SD_CLK_R", + "SD_CMD_R", + "SD_DATA0_R", + "SD_DATA1_R", + "SD_DATA2_R", + "SD_DATA3_R"; +Quoted 8 lines
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts line 86
Quoted 6 lines
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts new file +6
-0+ pinctrl-0 = <&gpioout &alt0>; +}; + +&hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; +};I think this should be
ACTIVE_LOW, since it's "HDMI_HPD_N_1V8", right?
Quoted 3 lines
I just copy & paste from the
rpi-4.14/bcm2708-rpi-cm.dts. I thought the HDMI interface on my IO board is broken, but maybe this is a downstream issue.
Downstream gets HDMI wrong pretty frequently, so it's not surprising. Watching xrandr -q with X11 running and plugging and unplugging HDMI can help figure out whether we got the polarity right. I think you can also do this with libdrm's modetest, if you don't have X11 up.
Quoted 50 lines
Quoted 41 lines
Quoted 41 lines
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts new file +6
-0+ +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; +};arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi new file +29
-0@@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "bcm2835.dtsi" +#include "bcm2835-rpi.dtsi" + +/ { + leds { + act { + gpios = <&gpio 47 GPIO_ACTIVE_LOW>; + }; + }; + + reg_3v3: fixed-regulator { + compatible = "regulator-fixed"; + regulator-name = "3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + reg_1v8: fixed-regulator { + compatible = "regulator-fixed"; + regulator-name = "1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + }; +}; +Quoted 8 lines
arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi line 34
Quoted 5 lines
arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi new file +5
-0+&sdhost { + non-removable; + vmmc-supply = <®_3v3>; + vqmmc-supply = <®_1v8>; +};Also, looking at some datasheets I have laying around, it says "eMMC I/O Voltage fixed at 1V8" -- is this regulator setup right, in that case?
Quoted 5 lines
Usually an eMMC has 2 different voltage sources:
vqmmc-supply -> supply node for IO line power (usually switchable, but fixed on Compute Module) vmmc-supply -> supply node for card's power (usually fixed)Do you have a specific concern (voltage, naming)?
It was just "I was reviewing, and this stood out." That explanation
there seems sufficient to me. Thanks!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180530/a42a5482/attachment.sig>