Пересборка dts


#1

Пересобрал dts по инструкции Пересборка Device Tree
В файле imx23-wirenboard28.dts раскоментировал строки
/* Uncomment to enable 1-wire network on GPIO3 (terminal block 10) */

    onewire@1 {
            compatible = "w1-gpio";
            gpios = <&gpio0 3 0>;
    };

Скопировал файлик в /boot/dtbs. После перезагрузки в dmesg выводится бесконечно,ждал с минуту точно, потом все вернул обратно:
[ 56.950000] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
[ 71.880000] _gpio_request: gpio-36 (sysfs) status -16
[ 71.880000] export_store: status -16
[ 71.880000] _gpio_request: gpio-37 (sysfs) status -16
[ 71.880000] export_store: status -16
[ 71.880000] _gpio_request: gpio-38 (sysfs) status -16

Оно так и должно быть?


#2

Вообще сообщения никак не связаны с вашими изменениями в DTS. При старом dtb эти сообщения тоже должны быть.

Сообщения про gpio 36-38, это GPIO для контроля АЦП. Сообщения говорят всего лишь о попытке повторно экспортровать GPIO, ничего плохого не происходит. У вас наверное где-нибудь в фоне запущен скриптик, который вызывает adc_set_channel.sh - сообщения из-за него.


#3

А как сделать, что было нормально ?
т.е. без таких сообщений.


#4

[ 2.460000] of_get_named_gpio_flags: can’t parse gpios property of node ‘/apb@80000000/apbh@80000000/ssp@80010000[0]’
[ 2.510000] imx23-pinctrl 80018000.pinctrl: pin SSP1_DETECT already requested by 80018000.pinctrl; cannot claim for leds.3
[ 2.520000] imx23-pinctrl 80018000.pinctrl: pin-65 (leds.3) status -22
[ 2.530000] imx23-pinctrl 80018000.pinctrl: could not request pin 65 (SSP1_DETECT) from group led_gpio2_1.0 on device 80018000.pinctrl
[ 2.540000] leds-gpio leds.3: Error applying setting, reverse things back
[ 10.350000] of_get_named_gpio_flags: can’t parse gpios property of node ‘/onewire@1[1]’


#5

А как сделать, что было нормально ?
т.е. без таких сообщений.

Никак, это ошибка в adc_set_channel.sh. Никаких побочных эффектов, кроме сообщений в dmesg, нет.

[ 2.460000] of_get_named_gpio_flags: can’t parse gpios property of node ‘/apb@80000000/apbh@80000000/ssp@80010000[0]‘
[ 2.510000] imx23-pinctrl 80018000.pinctrl: pin SSP1_DETECT already requested by 80018000.pinctrl; cannot claim for leds.3
[ 2.520000] imx23-pinctrl 80018000.pinctrl: pin-65 (leds.3) status -22
[ 2.530000] imx23-pinctrl 80018000.pinctrl: could not request pin 65 (SSP1_DETECT) from group led_gpio2_1.0 on device 80018000.pinctrl
[ 2.540000] leds-gpio leds.3: Error applying setting, reverse things back
[ 10.350000] of_get_named_gpio_flags: can’t parse gpios property of node ‘/onewire@1[1]‘

это уже странно. Выложите пожалуйста ваш новый DTS файл целиком.


#6

В общем из всего этого отношение к проблеме могут иметь строки
[ 2.460000] of_get_named_gpio_flags: can’t parse gpios property of node ‘/apb@80000000/apbh@80000000/ssp@80010000[0]‘

и собственно
[ 10.350000] of_get_named_gpio_flags: can’t parse gpios property of node ‘/onewire@1[1]‘


#7

/*

/include/ “skeleton.dtsi”

/ {
interrupt-parent = <&icoll>;

aliases {
	gpio0 = &amp;gpio0;
	gpio1 = &amp;gpio1;
	gpio2 = &amp;gpio2;
	serial0 = &amp;auart0;
	serial1 = &amp;auart1;
	spi0 = &amp;ssp0;
	spi1 = &amp;ssp1;
};

cpus {
	#address-cells = &lt;0&gt;;
	#size-cells = &lt;0&gt;;

	cpu {
		compatible = "arm,arm926ej-s";
		device_type = "cpu";
	};
};

apb@80000000 {
	compatible = "simple-bus";
	#address-cells = &lt;1&gt;;
	#size-cells = &lt;1&gt;;
	reg = &lt;0x80000000 0x80000&gt;;
	ranges;

	apbh@80000000 {
		compatible = "simple-bus";
		#address-cells = &lt;1&gt;;
		#size-cells = &lt;1&gt;;
		reg = &lt;0x80000000 0x40000&gt;;
		ranges;

		icoll: interrupt-controller@80000000 {
			compatible = "fsl,imx23-icoll", "fsl,icoll";
			interrupt-controller;
			#interrupt-cells = &lt;1&gt;;
			reg = &lt;0x80000000 0x2000&gt;;
		};

		dma_apbh: dma-apbh@80004000 {
			compatible = "fsl,imx23-dma-apbh";
			reg = &lt;0x80004000 0x2000&gt;;
			interrupts = &lt;0 14 20 0
				      13 13 13 13&gt;;
			interrupt-names = "empty", "ssp0", "ssp1", "empty",
					  "gpmi0", "gpmi1", "gpmi2", "gpmi3";
			#dma-cells = &lt;1&gt;;
			dma-channels = &lt;8&gt;;
			clocks = &lt;&amp;clks 15&gt;;
		};

		ecc@80008000 {
			reg = &lt;0x80008000 0x2000&gt;;
			status = "disabled";
		};

		gpmi-nand@8000c000 {
			compatible = "fsl,imx23-gpmi-nand";
			#address-cells = &lt;1&gt;;
			#size-cells = &lt;1&gt;;
			reg = &lt;0x8000c000 0x2000&gt;, &lt;0x8000a000 0x2000&gt;;
			reg-names = "gpmi-nand", "bch";
			interrupts = &lt;56&gt;;
			interrupt-names = "bch";
			clocks = &lt;&amp;clks 34&gt;;
			clock-names = "gpmi_io";
			dmas = &lt;&amp;dma_apbh 4&gt;;
			dma-names = "rx-tx";
			status = "disabled";
		};

		ssp0: ssp@80010000 {
			reg = &lt;0x80010000 0x2000&gt;;
			interrupts = &lt;15&gt;;
			clocks = &lt;&amp;clks 33&gt;;
			dmas = &lt;&amp;dma_apbh 1&gt;;
			dma-names = "rx-tx";
			status = "disabled";
		};

		etm@80014000 {
			reg = &lt;0x80014000 0x2000&gt;;
			status = "disabled";
		};

		pinctrl@80018000 {
			#address-cells = &lt;1&gt;;
			#size-cells = &lt;0&gt;;
			compatible = "fsl,imx23-pinctrl", "simple-bus";
			reg = &lt;0x80018000 0x2000&gt;;

			gpio0: gpio@0 {
				compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
				interrupts = &lt;16&gt;;
				gpio-controller;
				#gpio-cells = &lt;2&gt;;
				interrupt-controller;
				#interrupt-cells = &lt;2&gt;;
			};

			gpio1: gpio@1 {
				compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
				interrupts = &lt;17&gt;;
				gpio-controller;
				#gpio-cells = &lt;2&gt;;
				interrupt-controller;
				#interrupt-cells = &lt;2&gt;;
			};

			gpio2: gpio@2 {
				compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
				interrupts = &lt;18&gt;;
				gpio-controller;
				#gpio-cells = &lt;2&gt;;
				interrupt-controller;
				#interrupt-cells = &lt;2&gt;;
			};

			duart_pins_a: duart@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x11a2 /* MX23_PAD_PWM0__DUART_RX */
					0x11b2 /* MX23_PAD_PWM1__DUART_TX */
				&gt;;
				fsl,drive-strength = &lt;0&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;0&gt;;
			};

			auart0_pins_a: auart0@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x01c0 /* MX23_PAD_AUART1_RX__AUART1_RX */
					0x01d0 /* MX23_PAD_AUART1_TX__AUART1_TX */
					0x01a0 /* MX23_PAD_AUART1_CTS__AUART1_CTS */
					0x01b0 /* MX23_PAD_AUART1_RTS__AUART1_RTS */
				&gt;;
				fsl,drive-strength = &lt;0&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;0&gt;;
			};

			auart0_2pins_a: auart0-2pins@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x01e2 /* MX23_PAD_I2C_SCL__AUART1_TX */
					0x01f2 /* MX23_PAD_I2C_SDA__AUART1_RX */
				&gt;;
				fsl,drive-strength = &lt;0&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;0&gt;;
			};

			gpmi_pins_a: gpmi-nand@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x0000 /* MX23_PAD_GPMI_D00__GPMI_D00 */
					0x0010 /* MX23_PAD_GPMI_D01__GPMI_D01 */
					0x0020 /* MX23_PAD_GPMI_D02__GPMI_D02 */
					0x0030 /* MX23_PAD_GPMI_D03__GPMI_D03 */
					0x0040 /* MX23_PAD_GPMI_D04__GPMI_D04 */
					0x0050 /* MX23_PAD_GPMI_D05__GPMI_D05 */
					0x0060 /* MX23_PAD_GPMI_D06__GPMI_D06 */
					0x0070 /* MX23_PAD_GPMI_D07__GPMI_D07 */
					0x0100 /* MX23_PAD_GPMI_CLE__GPMI_CLE */
					0x0110 /* MX23_PAD_GPMI_ALE__GPMI_ALE */
					0x0130 /* MX23_PAD_GPMI_RDY0__GPMI_RDY0 */
					0x0140 /* MX23_PAD_GPMI_RDY1__GPMI_RDY1 */
					0x0170 /* MX23_PAD_GPMI_WPN__GPMI_WPN */
					0x0180 /* MX23_PAD_GPMI_WRN__GPMI_WRN */
					0x0190 /* MX23_PAD_GPMI_RDN__GPMI_RDN */
					0x21b0 /* MX23_PAD_GPMI_CE1N__GPMI_CE1N */
					0x21c0 /* MX23_PAD_GPMI_CE0N__GPMI_CE0N	*/
				&gt;;
				fsl,drive-strength = &lt;0&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;0&gt;;
			};

			gpmi_pins_fixup: gpmi-pins-fixup {
				fsl,pinmux-ids = &lt;
					0x0170 /* MX23_PAD_GPMI_WPN__GPMI_WPN */
					0x0180 /* MX23_PAD_GPMI_WRN__GPMI_WRN */
					0x0190 /* MX23_PAD_GPMI_RDN__GPMI_RDN */
				&gt;;
				fsl,drive-strength = &lt;2&gt;;
			};

			mmc0_4bit_pins_a: mmc0-4bit@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x2020 /* MX23_PAD_SSP1_DATA0__SSP1_DATA0 */
					0x2030 /* MX23_PAD_SSP1_DATA1__SSP1_DATA1 */
					0x2040 /* MX23_PAD_SSP1_DATA2__SSP1_DATA2 */
					0x2050 /* MX23_PAD_SSP1_DATA3__SSP1_DATA3 */
					0x2000 /* MX23_PAD_SSP1_CMD__SSP1_CMD */
					0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */
				&gt;;
				fsl,drive-strength = &lt;1&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;1&gt;;
			};

			mmc0_8bit_pins_a: mmc0-8bit@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x2020 /* MX23_PAD_SSP1_DATA0__SSP1_DATA0 */
					0x2030 /* MX23_PAD_SSP1_DATA1__SSP1_DATA1 */
					0x2040 /* MX23_PAD_SSP1_DATA2__SSP1_DATA2 */
					0x2050 /* MX23_PAD_SSP1_DATA3__SSP1_DATA3 */
					0x0082 /* MX23_PAD_GPMI_D08__SSP1_DATA4 */
					0x0092 /* MX23_PAD_GPMI_D09__SSP1_DATA5 */
					0x00a2 /* MX23_PAD_GPMI_D10__SSP1_DATA6 */
					0x00b2 /* MX23_PAD_GPMI_D11__SSP1_DATA7 */
					0x2000 /* MX23_PAD_SSP1_CMD__SSP1_CMD */
					0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */
					0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */
				&gt;;
				fsl,drive-strength = &lt;1&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;1&gt;;
			};

			mmc0_pins_fixup: mmc0-pins-fixup {
				fsl,pinmux-ids = &lt;
					0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */
					0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */
				&gt;;
				fsl,pull-up = &lt;0&gt;;
			};

			pwm2_pins_a: pwm2@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x11c0 /* MX23_PAD_PWM2__PWM2 */
				&gt;;
				fsl,drive-strength = &lt;0&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;0&gt;;
			};

			lcdif_24bit_pins_a: lcdif-24bit@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x1000 /* MX23_PAD_LCD_D00__LCD_D0 */
					0x1010 /* MX23_PAD_LCD_D01__LCD_D1 */
					0x1020 /* MX23_PAD_LCD_D02__LCD_D2 */
					0x1030 /* MX23_PAD_LCD_D03__LCD_D3 */
					0x1040 /* MX23_PAD_LCD_D04__LCD_D4 */
					0x1050 /* MX23_PAD_LCD_D05__LCD_D5 */
					0x1060 /* MX23_PAD_LCD_D06__LCD_D6 */
					0x1070 /* MX23_PAD_LCD_D07__LCD_D7 */
					0x1080 /* MX23_PAD_LCD_D08__LCD_D8 */
					0x1090 /* MX23_PAD_LCD_D09__LCD_D9 */
					0x10a0 /* MX23_PAD_LCD_D10__LCD_D10 */
					0x10b0 /* MX23_PAD_LCD_D11__LCD_D11 */
					0x10c0 /* MX23_PAD_LCD_D12__LCD_D12 */
					0x10d0 /* MX23_PAD_LCD_D13__LCD_D13 */
					0x10e0 /* MX23_PAD_LCD_D14__LCD_D14 */
					0x10f0 /* MX23_PAD_LCD_D15__LCD_D15 */
					0x1100 /* MX23_PAD_LCD_D16__LCD_D16 */
					0x1110 /* MX23_PAD_LCD_D17__LCD_D17 */
					0x0081 /* MX23_PAD_GPMI_D08__LCD_D18 */
					0x0091 /* MX23_PAD_GPMI_D09__LCD_D19 */
					0x00a1 /* MX23_PAD_GPMI_D10__LCD_D20 */
					0x00b1 /* MX23_PAD_GPMI_D11__LCD_D21 */
					0x00c1 /* MX23_PAD_GPMI_D12__LCD_D22 */
					0x00d1 /* MX23_PAD_GPMI_D13__LCD_D23 */
					0x1160 /* MX23_PAD_LCD_DOTCK__LCD_DOTCK */
					0x1170 /* MX23_PAD_LCD_ENABLE__LCD_ENABLE */
					0x1180 /* MX23_PAD_LCD_HSYNC__LCD_HSYNC */
					0x1190 /* MX23_PAD_LCD_VSYNC__LCD_VSYNC */
				&gt;;
				fsl,drive-strength = &lt;0&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;0&gt;;
			};

			spi2_pins_a: spi2@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x0182 /* MX23_PAD_GPMI_WRN__SSP2_SCK */
					0x0142 /* MX23_PAD_GPMI_RDY1__SSP2_CMD */
					0x0002 /* MX23_PAD_GPMI_D00__SSP2_DATA0 */
					0x0032 /* MX23_PAD_GPMI_D03__SSP2_DATA3 */
				&gt;;
				fsl,drive-strength = &lt;1&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;1&gt;;
			};
		};

		digctl@8001c000 {
			compatible = "fsl,imx23-digctl";
			reg = &lt;0x8001c000 2000&gt;;
			status = "disabled";
		};

		emi@80020000 {
			reg = &lt;0x80020000 0x2000&gt;;
			status = "disabled";
		};

		dma_apbx: dma-apbx@80024000 {
			compatible = "fsl,imx23-dma-apbx";
			reg = &lt;0x80024000 0x2000&gt;;
			interrupts = &lt;7 5 9 26
				      19 0 25 23
				      60 58 9 0
				      0 0 0 0&gt;;
			interrupt-names = "audio-adc", "audio-dac", "spdif-tx", "i2c",
					  "saif0", "empty", "auart0-rx", "auart0-tx",
					  "auart1-rx", "auart1-tx", "saif1", "empty",
					  "empty", "empty", "empty", "empty";
			#dma-cells = &lt;1&gt;;
			dma-channels = &lt;16&gt;;
			clocks = &lt;&amp;clks 16&gt;;
		};

		dcp@80028000 {
			reg = &lt;0x80028000 0x2000&gt;;
			status = "disabled";
		};

		pxp@8002a000 {
			reg = &lt;0x8002a000 0x2000&gt;;
			status = "disabled";
		};

		ocotp@8002c000 {
			compatible = "fsl,ocotp";
			reg = &lt;0x8002c000 0x2000&gt;;
			status = "disabled";
		};

		axi-ahb@8002e000 {
			reg = &lt;0x8002e000 0x2000&gt;;
			status = "disabled";
		};

		lcdif@80030000 {
			compatible = "fsl,imx23-lcdif";
			reg = &lt;0x80030000 2000&gt;;
			interrupts = &lt;46 45&gt;;
			clocks = &lt;&amp;clks 38&gt;;
			status = "disabled";
		};

		ssp1: ssp@80034000 {
			reg = &lt;0x80034000 0x2000&gt;;
			interrupts = &lt;2&gt;;
			clocks = &lt;&amp;clks 33&gt;;
			dmas = &lt;&amp;dma_apbh 2&gt;;
			dma-names = "rx-tx";
			status = "disabled";
		};

		tvenc@80038000 {
			reg = &lt;0x80038000 0x2000&gt;;
			status = "disabled";
		};
            };

	apbx@80040000 {
		compatible = "simple-bus";
		#address-cells = &lt;1&gt;;
		#size-cells = &lt;1&gt;;
		reg = &lt;0x80040000 0x40000&gt;;
		ranges;

		clks: clkctrl@80040000 {
			compatible = "fsl,imx23-clkctrl", "fsl,clkctrl";
			reg = &lt;0x80040000 0x2000&gt;;
			#clock-cells = &lt;1&gt;;
		};

		saif0: saif@80042000 {
			reg = &lt;0x80042000 0x2000&gt;;
			dmas = &lt;&amp;dma_apbx 4&gt;;
			dma-names = "rx-tx";
			status = "disabled";
		};

		power@80044000 {
			reg = &lt;0x80044000 0x2000&gt;;
			status = "disabled";
		};

		saif1: saif@80046000 {
			reg = &lt;0x80046000 0x2000&gt;;
			dmas = &lt;&amp;dma_apbx 10&gt;;
			dma-names = "rx-tx";
			status = "disabled";
		};

		audio-out@80048000 {
			reg = &lt;0x80048000 0x2000&gt;;
			dmas = &lt;&amp;dma_apbx 1&gt;;
			dma-names = "tx";
			status = "disabled";
		};

		audio-in@8004c000 {
			reg = &lt;0x8004c000 0x2000&gt;;
			dmas = &lt;&amp;dma_apbx 0&gt;;
			dma-names = "rx";
			status = "disabled";
		};

		lradc@80050000 {
			compatible = "fsl,imx23-lradc";
			reg = &lt;0x80050000 0x2000&gt;;
			interrupts = &lt;36 37 38 39 40 41 42 43 44&gt;;
			status = "disabled";
		};

		spdif@80054000 {
			reg = &lt;0x80054000 2000&gt;;
			dmas = &lt;&amp;dma_apbx 2&gt;;
			dma-names = "tx";
			status = "disabled";
		};

		i2c@80058000 {
			reg = &lt;0x80058000 0x2000&gt;;
			dmas = &lt;&amp;dma_apbx 3&gt;;
			dma-names = "rx-tx";
			status = "disabled";
		};

		rtc@8005c000 {
			compatible = "fsl,imx23-rtc", "fsl,stmp3xxx-rtc";
			reg = &lt;0x8005c000 0x2000&gt;;
			interrupts = &lt;22&gt;;
		};

		pwm: pwm@80064000 {
			compatible = "fsl,imx23-pwm";
			reg = &lt;0x80064000 0x2000&gt;;
			clocks = &lt;&amp;clks 30&gt;;
			#pwm-cells = &lt;2&gt;;
			fsl,pwm-number = &lt;5&gt;;
			status = "disabled";
		};

		timrot@80068000 {
			compatible = "fsl,imx23-timrot", "fsl,timrot";
			reg = &lt;0x80068000 0x2000&gt;;
			interrupts = &lt;28 29 30 31&gt;;
			clocks = &lt;&amp;clks 28&gt;;
		};

		auart0: serial@8006c000 {
			compatible = "fsl,imx23-auart";
			reg = &lt;0x8006c000 0x2000&gt;;
			interrupts = &lt;24&gt;;
			clocks = &lt;&amp;clks 32&gt;;
			dmas = &lt;&amp;dma_apbx 6&gt;, &lt;&amp;dma_apbx 7&gt;;
			dma-names = "rx", "tx";
			status = "disabled";
		};

		auart1: serial@8006e000 {
			compatible = "fsl,imx23-auart";
			reg = &lt;0x8006e000 0x2000&gt;;
			interrupts = &lt;59&gt;;
			clocks = &lt;&amp;clks 32&gt;;
			dmas = &lt;&amp;dma_apbx 8&gt;, &lt;&amp;dma_apbx 9&gt;;
			dma-names = "rx", "tx";
			status = "disabled";
		};

		duart: serial@80070000 {
			compatible = "arm,pl011", "arm,primecell";
			reg = &lt;0x80070000 0x2000&gt;;
			interrupts = &lt;0&gt;;
			clocks = &lt;&amp;clks 32&gt;, &lt;&amp;clks 16&gt;;
			clock-names = "uart", "apb_pclk";
			status = "disabled";
		};

		usbphy0: usbphy@8007c000 {
			compatible = "fsl,imx23-usbphy";
			reg = &lt;0x8007c000 0x2000&gt;;
			clocks = &lt;&amp;clks 41&gt;;
			status = "disabled";
		};
	};
};

ahb@80080000 {
	compatible = "simple-bus";
	#address-cells = &lt;1&gt;;
	#size-cells = &lt;1&gt;;
	reg = &lt;0x80080000 0x80000&gt;;
	ranges;

	usb0: usb@80080000 {
		compatible = "fsl,imx23-usb", "fsl,imx27-usb";
		reg = &lt;0x80080000 0x40000&gt;;
		interrupts = &lt;11&gt;;
		fsl,usbphy = &lt;&amp;usbphy0&gt;;
		clocks = &lt;&amp;clks 40&gt;;
		status = "disabled";
	};
};

};


#8

/*

/dts-v1/;
/include/ “imx23.dtsi”

/ {
model = “Wiren Board rev. 2.8 (i.MX23)”;
compatible = “contactless,imx23-wirenboard28”, “olimex,imx23-olinuxino”, “fsl,imx23”;

memory {
	reg = &lt;0x40000000 0x04000000&gt;;
};

apb@80000000 {
	apbh@80000000 {
		ssp0: ssp@80010000 {
			compatible = "fsl,imx23-mmc";
			pinctrl-names = "default";
			pinctrl-0 = &lt;&amp;mmc0_4bit_pins_a &amp;mmc0_pins_fixup&gt;;
			bus-width = &lt;4&gt;;
			broken-cd;
			status = "okay";
		};

		pinctrl@80018000 {
			pinctrl-names = "default";
			pinctrl-0 = &lt;&amp;hog_pins_a&gt;;

			hog_pins_a: hog@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */
					0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */
				&gt;;
				fsl,drive-strength = &lt;0&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;0&gt;;
			};

			led_pin_gpio2_1: led_gpio2_1@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */
				&gt;;
				fsl,drive-strength = &lt;0&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;0&gt;;
			};

			i2c_gpio: i2c_gpio {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x0173 // MX23_PAD_GPMI_WPN__GPIO_0_23
					0x0193 // MX23_PAD_GPMI_RDN__GPIO_0_25
				&gt;;
				fsl,pull-up = &lt;1&gt;;
			};

	        i2c0_pins_a: i2c0@0 {
	           reg = &lt;0&gt;;
	           fsl,pinmux-ids = &lt;
	           0x1170 /* MX23_PAD_LCD_ENABLE__LCD_ENABLE */
	           0x1180 /* MX23_PAD_LCD_HSYNC__LCD_HSYNC */
	           &gt;;
	           fsl,drive-strength = &lt;1&gt;;
	           fsl,voltage = &lt;1&gt;;
	           fsl,pull-up = &lt;1&gt;;
	        };

			spi2_pins_nocs: spi2@0 {
				reg = &lt;0&gt;;
				fsl,pinmux-ids = &lt;
					0x0182 /* MX23_PAD_GPMI_WRN__SSP2_SCK */
					0x0142 /* MX23_PAD_GPMI_RDY1__SSP2_CMD */
					0x0002 /* MX23_PAD_GPMI_D00__SSP2_DATA0 */
				&gt;;
				fsl,drive-strength = &lt;1&gt;;
				fsl,voltage = &lt;1&gt;;
				fsl,pull-up = &lt;1&gt;;
			};



		};

		ssp1: ssp@80034000 {
			#address-cells = &lt;1&gt;;
			#size-cells = &lt;0&gt;;
			compatible = "fsl,imx23-spi";
			pinctrl-names = "default";
			pinctrl-0 = &lt;&amp;spi2_pins_nocs&gt;;
			status = "okay";
			cs-gpios = &lt;&amp;gpio0 17 0
						&amp;gpio2 28 0
						&amp;gpio1 20 0
						&amp;gpio2 27 0 /* 91 	25 @ CON2 	UEXT2 CS/GPIO */
						&gt;;



			spidev0: spidev@0 {
				compatible = "spidev";
				spi-max-frequency = &lt;1000000&gt;;
				reg = &lt;0&gt;;
			};


			spidev1: spidev@1 {
				compatible = "spidev";
				spi-max-frequency = &lt;1000000&gt;;
				reg = &lt;1&gt;;
			};

			spidev2: spidev@2 {
				compatible = "spidev";
				spi-max-frequency = &lt;1000000&gt;;
				reg = &lt;2&gt;;
			};


			sc16is7x2@0 {
				compatible = "fsl,spi-sc16is7x2";
				spi-max-frequency = &lt;1000000&gt;;
				reg = &lt;3&gt;;
				gpio-base = &lt;120&gt;;
				uart-base = &lt;0&gt;;

				interrupt-parent = &lt;&amp;gpio0&gt;;
				interrupts = &lt;5 0&gt;;
				uartclk = &lt;14745600&gt;;
			};

/* spidev@3 {
compatible = “spidev”;
spi-max-frequency = <1000000>;
reg = <3>;
};
*/
spidev@4 {
compatible = “spidev”;
spi-max-frequency = <1000000>;
reg = <4>;
};

			spidev@5 {
				compatible = "spidev";
				spi-max-frequency = &lt;1000000&gt;;
				reg = &lt;5&gt;;
			};


			/* UEXT2 SPI */
		/*	spidev@6 {
				compatible = "spidev";
				spi-max-frequency = &lt;100000&gt;;
				reg = &lt;6&gt;;
			};*/

/*
6lowpan@0 {
compatible = “microchip,mrf24j40”;
spi-max-frequency = <100000>;
reg = <6>;
interrupt-parent = <&gpio1>;
interrupts = <21 0>;
};
*/

/* mcp23s08 crashes kernel for unknown reason /
/

gpiom2: gpio@5 {
compatible = “microchip,mcp23s08”;
gpio-controller;
#gpio-cells = <2>;
microchip,spi-present-mask = <0x01>;
reg = <5>;
spi-max-frequency = <100000>;
addr = <0>;
base = <120>;
};
*/

		};
	};

	apbx@80040000 {
		lradc@80050000 {
			status = "okay";
		};

		i2c0: i2c@80058000 {
			pinctrl-names = "default";
			pinctrl-0 = &lt;&amp;i2c0_pins_a&gt;;
			status = "okay";
		};

		duart: serial@80070000 {
			pinctrl-names = "default";
			pinctrl-0 = &lt;&amp;duart_pins_a&gt;;
			status = "okay";
		};

		auart0: serial@8006c000 {
			pinctrl-names = "default";
			pinctrl-0 = &lt;&amp;auart0_2pins_a&gt;;
			status = "okay";
		};

		usbphy0: usbphy@8007c000 {
			status = "okay";
		};

		codec: mxs-builtin-codec {
			compatible = "fsl,mxs-builtin-codec";
			reg = &lt;0x80048000 0x2000&gt;, &lt;0x8004c000 0x2000&gt;,
				&lt;0x8005c000 0x2000&gt;;
			reg-names = "audioout", "audioin", "rtc";
			clocks = &lt;&amp;clks 31&gt;;
			clock-names = "filt";
		};

		platform_dai: mxs-builtin-cpu-dai {
			compatible = "fsl,mxs-builtin-cpu-dai";
			reg = &lt;0x80048000 0x2000&gt;, &lt;0x8004c000 0x2000&gt;,
			&lt;0x8005c000 0x2000&gt;;
			reg-names = "audioout", "audioin", "rtc";
			interrupts = &lt;8 6 4&gt;;
			dmas = &lt;&amp;dma_apbx 0&gt;, &lt;&amp;dma_apbx 1&gt;;
			dma-names = "rx", "tx";
		};


		/* Uncomment to use PWM instead of gpio-60  */
		/*
		pwm: pwm@80064000 {
	            pinctrl-names = "default";
	            pinctrl-0 = &lt;&amp;pwm2_pins_a&gt;;
	            status = "okay";
	    };
	    */





	};
};

ahb@80080000 {
	usb0: usb@80080000 {
	    /*vbus-supply = &lt;&amp;reg_33v_bus&gt;;*/
		status = "okay";
	};
};


leds {
	compatible = "gpio-leds";
	pinctrl-names = "default";
	pinctrl-0 = &lt;&amp;led_pin_gpio2_1&gt;;

	user {
		label = "green";
		gpios = &lt;&amp;gpio2 1 1&gt;;
		linux,default-trigger = "default-on";
	};
};

mxs-builtin-audio {
	compatible = "fsl,mxs-builtin-audio";
	audio-codec = &lt;&amp;codec&gt;;
	cpu-dai = &lt;&amp;platform_dai&gt;;
};




/* Uncomment to enable 1-wire network on GPIO2 (terminal block 9) */
/*
onewire@0 {
	compatible = "w1-gpio";
	gpios = &lt;&amp;gpio0 2 0&gt;;
};
*/

/* Uncomment to enable 1-wire network on GPIO3 (terminal block 10) */

onewire@1 {
	compatible = "w1-gpio";
	gpios = &lt;&amp;gpio0 3 0&gt;;
};


/* Uncomment to enable 1-wire network on GPIO4 (terminal block 11) */
/*
onewire@2 {
	compatible = "w1-gpio";
	gpios = &lt;&amp;gpio0 4 0&gt;;
};
*/

};


#9

[ 2.460000] of_get_named_gpio_flags: can’t parse gpios property of node ‘/apb@80000000/apbh@80000000/ssp@80010000[0]

такое сообщение появляется в вашем дистрибутиве


#10

Так что делать-то с данными ошибками, а то ведь в корку кернел замораживается???


#11

Никаких проблем не вижу.

Загрузите пожалуйста файлы на http://pastebin.com/ , тут всё форматирование уехало, их невозможно сравнить.


#12

Так что делать-то с данными ошибками, а то ведь в корку кернел замораживается???

Ещё раз, расскажите подробно.

  1. Работает ли всё правильно с родным DTB из дистрибутива

  2. Работает ли всё правильно с DTB, собранным по инструкции с wiki без изменений

  3. как именно проявляется проблема при раскоментировании линии с onewire?
    3a) это только сообщение об ошибке в dmesg?

  4. Появляется ли мастер 1wire в sysfs ( /sys/bus/w1/devices/w1_bus_master1 )

  5. Если да, то видит ли он подключенные 1-wire устройства?

  6. Покажите вывод

root@wirenboard:~# mount -t debugfs none /sys/kernel/debug/
root@wirenboard:~# cat /sys/kernel/debug/gpio 

  1. что точно значит
в корку кернел замораживается

?

Я собрал ваш DTS, у меня есть сообщения об ошибке onewire в dmesg, но никаких “корок” и “заморозок” я не наблюдаю.
1-wire при этом прекрасно работает, не смотря на сообщение об ошибке в dmesg.


#13
  1. да
  2. нет
      • неуспеваю
  3. пока ничего не подключено.
    1. в консоль kernel core dump с регистрами. Конфликтует с n_gsm

#14

с добавлением debugfs. Все стало хорошо.


#15

Насколько я понимаю, данное описание уже неактуально для WB6?
https://wirenboard.com/wiki/index.php/Device_Tree

Где тогда хранится Device Tree для версии 6.1?
Вроде как должно быть в этой папке https://github.com/contactless/u-boot/tree/master/arch/arm/dts,
но там его нет.