Re: [PATCH v2] ARM: bcm2835: add device tree for Raspberry Pi model B+

From: Noralf Tronnes
Date: Thu Nov 06 2014 - 14:43:52 EST


Den 06.11.2014 00:45, skrev Matthias Klein:
The model B and B+ differ in the GPIO lines for ACT and PWR leds, and the
I2S interface.

Signed-off-by: Matthias Klein <matthias.klein@xxxxxxxxx>
---
Changes in v2:
- move the common parts between the B and B+ model into the new bcm2835-rpi.dtsi file

- add the I2S signals to the B+ file which fix the problem that USB is not working
with the current bcm2835-rpi-b.dts file on the B+.
---
<snip>
+&gpio {
+ pinctrl-names = "default";
+
+ gpioout: gpioout {
+ brcm,pins = <6>;
+ brcm,function = <1>; /* GPIO out */
+ };
+
+ alt0: alt0 {
+ brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15 40 45>;
+ brcm,function = <4>; /* alt0 */
+ };
+
+ alt3: alt3 {
+ brcm,pins = <48 49 50 51 52 53>;
+ brcm,function = <7>; /* alt3 */
+ };
+};
AFAIK these pins will always be configured regardless of whether they are used by a driver or not.

Could we do something like this for SPI and I2C, configuring only when needed?

&gpio {
spi_pins: spi_pins {
brcm,pins = <7 8 9 10 11>;
brcm,function = <4>; /* alt0 */
};

i2c0_pins: i2c0_pins {
brcm,pins = <0 1>;
brcm,function = <4>;
};

i2c1_pins: i2c1_pins {
brcm,pins = <2 3>;
brcm,function = <4>;
};
};

&spi {
pinctrl-names = "default";
pinctrl-0 = <&spi_pins>;
};

&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
clock-frequency = <100000>;
};

&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins>;
clock-frequency = <100000>;
};

+
+&i2c0 {
+ status = "okay";
+ clock-frequency = <100000>;
+};
+
+&i2c1 {
+ status = "okay";
+ clock-frequency = <100000>;
+};
+
Should the I2C busses be enabled by default? On Raspian, i2c is disabled by blacklisting the module (/etc/modprobe.d/raspi-blacklist.conf).
At least i2c0 should be left disabled due to the HAT EEPROM and camera.
The bus number has also changed with revisions: http://www.raspberrypi.org/forums/viewtopic.php?p=603950#p603950

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/