Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9aae3412 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt
Browse files

Merge remote-tracking branch 'agust/next' into next

mpc5xxx updates from Anatolij
parents caa1d631 9d9fd887
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
IFM camera sensor interface on mpc5200 LocalPlus bus

Required properties:
- compatible: "ifm,o2d-csi"
- reg: specifies sensor chip select number and associated address range
- interrupts: external interrupt line number and interrupt sense mode
  of the interrupt line signaling frame valid events
- gpios: three gpio-specifiers for "capture", "reset" and "master enable"
  GPIOs (strictly in this order).
- ifm,csi-clk-handle: the phandle to a node in the DT describing the sensor
  clock generator. This node is usually a general purpose timer controller.
- ifm,csi-addr-bus-width: address bus width (valid values are 16, 24, 25)
- ifm,csi-data-bus-width: data bus width (valid values are 8 and 16)
- ifm,csi-wait-cycles: sensor bus wait cycles

Optional properties:
- ifm,csi-byte-swap: if this property is present, the byte swapping on
  the bus will be enabled.

Example:

	csi@3,0 {
		compatible = "ifm,o2d-csi";
		reg = <3 0 0x00100000>;		/* CS 3, 1 MiB range */
		interrupts = <1 1 2>;		/* IRQ1, edge falling */

		ifm,csi-clk-handle = <&timer7>;
		gpios = <&gpio_simple 23 0	/* image_capture */
			 &gpio_simple 26 0	/* image_reset */
			 &gpio_simple 29 0>;	/* image_master_en */

		ifm,csi-addr-bus-width = <24>;
		ifm,csi-data-bus-width = <8>;
		ifm,csi-wait-cycles = <0>;
	};

The base address of the used chip select is specified in the
ranges property of the parent localbus node, for example:

	ranges = <0 0 0xff000000 0x01000000
		  3 0 0xe3000000 0x00100000>;
+47 −0
Original line number Diff line number Diff line
/*
 * O2D Device Tree Source
 *
 * Copyright (C) 2012 DENX Software Engineering
 * Anatolij Gustschin <agust@denx.de>
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 */

/include/ "o2d.dtsi"

/ {
	model = "ifm,o2d";
	compatible = "ifm,o2d";

	memory {
		reg = <0x00000000 0x08000000>;  // 128MB
	};

	localbus {
		ranges = <0 0 0xfc000000 0x02000000
			  3 0 0xe3000000 0x00100000>;

		flash@0,0 {
			compatible = "cfi-flash";
			reg = <0 0 0x02000000>;
			bank-width = <2>;
			device-width = <2>;
			#size-cells = <1>;
			#address-cells = <1>;

			partition@60000 {
				label = "kernel";
				reg = <0x00060000 0x00260000>;
				read-only;
			};
			/* o2d specific partitions */
			partition@2c0000 {
				label = "o2d user defined";
				reg = <0x002c0000 0x01d40000>;
			};
		};
	};
};
+139 −0
Original line number Diff line number Diff line
/*
 * O2D base Device Tree Source
 *
 * Copyright (C) 2012 DENX Software Engineering
 * Anatolij Gustschin <agust@denx.de>
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 */

/include/ "mpc5200b.dtsi"

/ {
	model = "ifm,o2d";
	compatible = "ifm,o2d";

	memory {
		reg = <0x00000000 0x04000000>;	// 64MB
	};

	soc5200@f0000000 {

		gpio_simple: gpio@b00 {
		};

		timer@600 {	// General Purpose Timer
			#gpio-cells = <2>;
			gpio-controller;
			fsl,has-wdt;
			fsl,wdt-on-boot = <0>;
		};

		timer@610 {
			#gpio-cells = <2>;
			gpio-controller;
		};

		timer7: timer@670 {
		};

		rtc@800 {
			status = "disabled";
		};

		psc@2000 {		// PSC1
			compatible = "fsl,mpc5200b-psc-spi","fsl,mpc5200-psc-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			cell-index = <0>;

			spidev@0 {
				compatible = "spidev";
				spi-max-frequency = <250000>;
				reg = <0>;
			};
		};

		psc@2200 {		// PSC2
			status = "disabled";
		};

		psc@2400 {		// PSC3
			status = "disabled";
		};

		psc@2600 {		// PSC4
			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
		};

		psc@2800 {		// PSC5
			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
		};

		psc@2c00 {		// PSC6
			status = "disabled";
		};

		ethernet@3000 {
			phy-handle = <&phy0>;
		};

		mdio@3000 {
			phy0: ethernet-phy@0 {
				reg = <0>;
			};
		};

		sclpc@3c00 {
			compatible = "fsl,mpc5200-lpbfifo";
			reg = <0x3c00 0x60>;
			interrupts = <3 23 0>;
		};
	};

	localbus {
		ranges = <0 0 0xff000000 0x01000000
			  3 0 0xe3000000 0x00100000>;

		// flash device at LocalPlus Bus CS0
		flash@0,0 {
			compatible = "cfi-flash";
			reg = <0 0 0x01000000>;
			bank-width = <1>;
			device-width = <2>;
			#size-cells = <1>;
			#address-cells = <1>;
			no-unaligned-direct-access;

			/* common layout for all machines */
			partition@0 {
				label = "u-boot";
				reg = <0x00000000 0x00040000>;
				read-only;
			};
			partition@40000 {
				label = "env";
				reg = <0x00040000 0x00020000>;
				read-only;
			};
		};

		csi@3,0 {
			compatible = "ifm,o2d-csi";
			reg = <3 0 0x00100000>;
			ifm,csi-clk-handle = <&timer7>;
			gpios = <&gpio_simple 23 0	/* imag_capture */
				 &gpio_simple 26 0	/* imag_reset */
				 &gpio_simple 29 0>;	/* imag_master_en */

			interrupts = <1 1 2>;		/* IRQ1, edge falling */

			ifm,csi-addr-bus-width = <24>;
			ifm,csi-data-bus-width = <8>;
			ifm,csi-wait-cycles = <0>;
		};
	};
};
+52 −0
Original line number Diff line number Diff line
/*
 * O2D300 Device Tree Source
 *
 * Copyright (C) 2012 DENX Software Engineering
 * Anatolij Gustschin <agust@denx.de>
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 */

/include/ "o2d.dtsi"

/ {
	model = "ifm,o2d300";
	compatible = "ifm,o2d";

	localbus {
		ranges = <0 0 0xfc000000 0x02000000
			  3 0 0xe3000000 0x00100000>;
		flash@0,0 {
			compatible = "cfi-flash";
			reg = <0 0 0x02000000>;
			bank-width = <2>;
			device-width = <2>;
			#size-cells = <1>;
			#address-cells = <1>;

			partition@40000 {
				label = "env_1";
				reg = <0x00040000 0x00020000>;
				read-only;
			};
			partition@60000 {
				label = "env_2";
				reg = <0x00060000 0x00020000>;
				read-only;
			};
			partition@80000 {
				label = "kernel";
				reg = <0x00080000 0x00260000>;
				read-only;
			};
			/* o2d300 specific partitions */
			partition@2e0000 {
				label = "o2d300 user defined";
				reg = <0x002e0000 0x01d20000>;
			};
		};
	};
};
+48 −0
Original line number Diff line number Diff line
/*
 * O2DNT2 Device Tree Source
 *
 * Copyright (C) 2012 DENX Software Engineering
 * Anatolij Gustschin <agust@denx.de>
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 */

/include/ "o2d.dtsi"

/ {
	model = "ifm,o2dnt2";
	compatible = "ifm,o2d";

	memory {
		reg = <0x00000000 0x08000000>;  // 128MB
	};

	localbus {
		ranges = <0 0 0xfc000000 0x02000000
			  3 0 0xe3000000 0x00100000>;

		flash@0,0 {
			compatible = "cfi-flash";
			reg = <0 0 0x02000000>;
			bank-width = <2>;
			device-width = <2>;
			#size-cells = <1>;
			#address-cells = <1>;

			partition@60000 {
				label = "kernel";
				reg = <0x00060000 0x00260000>;
				read-only;
			};

			/* o2dnt2 specific partitions */
			partition@2c0000 {
				label = "o2dnt2 user defined";
				reg = <0x002c0000 0x01d40000>;
			};
		};
	};
};
Loading