specifying two conflicting configs
David Gibson
david at gibson.dropbear.id.au
Wed Jul 25 13:48:01 EST 2012
On Tue, Jul 24, 2012 at 11:34:50AM +0200, Attila Kinali wrote:
> Hi,
>
> I have here an embedded system where i use a serial port as SD Card
> interface as well as SPI interface. I select what i want to use
> by setting a GPIO pin high or low.
>
> Currently i'm using two different dts files, one that specifies the
> serial port as SD Card interface and one that specifies the serial
> port as SPI interface.
>
> Now i would like to merge them into one file so that i can select
> which mode to use at runtime. The documentation gave me the impression
> that this should be possible, but i was not able to figure out how
> to do it.
>
> Would someone be so kind and point me to the documentation/example
> i've missed?
>
> The current configuration i use is either:
>
> ssp0: ssp at 80010000 {
> compatible = "fsl,imx23-mmc";
> pinctrl-names = "default";
> pinctrl-0 = <&mmc0_8bit_pins_a &mmc1_pins_fixup>;
> bus-width = <8>;
> status = "okay";
> };
>
> or:
>
> ssp0: ssp at 80010000 {
> #address-cells = <1>;
> #size-cells = <0>;
> compatible = "fsl,imx23-spi";
> fsl,ssp-dma-channel = <1>;
> pinctrl-names = "default";
> pinctrl-0 = <&spi_pins_a>;
> status = "okay";
>
> };
So, Mitch may have better insights here, but my inclination would be
to do something like this:
ssp-mux at 80010000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "yourvendor,ssp-mux";
control-line = <&gpio 17>;
ranges = <0x0 0x80010000>;
ssp-mmc at 0 {
compatible = "fsl,imx23-mmc";
/* ... */
status = "okay";
};
ssp-spi at 1 {
compatible = "fsl,imx23-spi";
/* ... */
status = "disabled";
};
};
ranges would need tweaking depending on #size-cells of the parent and
the existing node reg properties, which you don't show.
A hackier, but possibly simpler alternative would be to simply include
both nodes, but have the one that's active by default marked status =
"okay" and the other marked status = "disabled". Platform specific
knowledge would then me needed to know that with the right gpio magic
the original one can be disabled and the other enabled.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
More information about the devicetree-discuss
mailing list