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

Noralf Tronnes notro at tronnes.org
Thu Nov 6 11:36:30 PST 2014


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 at linux.com>
> ---
> 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




More information about the linux-rpi-kernel mailing list