Browse Source

sunxi A64 sopine baseboard

Reinhard Russinger 5 năm trước cách đây
mục cha
commit
e4e0376708
100 tập tin đã thay đổi với 8286 bổ sung51904 xóa
  1. 2 1
      Make-bb-kernel.sh
  2. 1 1
      board/GfA/Display001/BUILD
  3. 0 368
      board/GfA/Display001/DTS_4.4/Display001.dts
  4. 0 370
      board/GfA/Display001/DTS_4.4/Display001_10.dts
  5. 0 370
      board/GfA/Display001/DTS_4.4/Display001_10_30Hz.dts
  6. 0 367
      board/GfA/Display001/DTS_4.4/Display001_15.dts
  7. 0 370
      board/GfA/Display001/DTS_4.4/Display001_4.dts
  8. 0 369
      board/GfA/Display001/DTS_4.4/Display001_4_2020.dts
  9. 0 370
      board/GfA/Display001/DTS_4.4/Display001_4_nopruss.dts
  10. 0 529
      board/GfA/Display001/DTS_4.4/Display001_5.dts
  11. 0 368
      board/GfA/Display001/DTS_4.4/Display001_7.dts
  12. 0 368
      board/GfA/Display001/DTS_4.4/Display001_7_30Hz.dts
  13. 0 367
      board/GfA/Display001/DTS_4.4/Display001_7_bitbang.dts
  14. 0 367
      board/GfA/Display001/DTS_4.4/Display001_7_gain1.dts
  15. 0 366
      board/GfA/Display001/DTS_4.4/Display001_7_i2c2.dts
  16. 0 373
      board/GfA/Display001/DTS_4.4/Display001_green.dts
  17. 0 519
      board/GfA/Display001/DTS_4.4/Display001_rru.dts
  18. 0 442
      board/GfA/Display001/DTS_4.4/Display002_10.dts
  19. 0 438
      board/GfA/Display001/DTS_4.4/Display002_10_i2c.dts
  20. 0 456
      board/GfA/Display001/DTS_4.4/Display002_10_is2bitbang.dts
  21. 0 439
      board/GfA/Display001/DTS_4.4/Display002_4.dts
  22. 0 473
      board/GfA/Display001/DTS_4.4/Display002_7.dts
  23. 0 472
      board/GfA/Display001/DTS_4.4/Display002_7_rs485.dts
  24. 244 0
      board/GfA/Display001/DTS_5.0/SOPINEA64.dts
  25. 0 5841
      board/GfA/Display001/Display001_4.4.104_bone23_defconfig
  26. 0 5838
      board/GfA/Display001/Display001_4.4.104_rt_defconfig
  27. 0 5855
      board/GfA/Display001/Display001_4.4.94_rt_defconfig
  28. 7955 0
      board/GfA/Display001/SOPINEA64_defconfig
  29. 0 21
      board/GfA/Display001/linux/linux-001-am33xx-dtsi_no-otg.patch
  30. 0 916
      board/GfA/Display001/linux/linux-002-edt-touch.patch
  31. 0 24
      board/GfA/Display001/linux/linux-003-da8xx-videotiming.patch
  32. 0 61
      board/GfA/Display001/linux/linux-004-mmc-enum.patch
  33. 0 1104
      board/GfA/Display001/linux/linux-005-egalax-i2c.patch
  34. 0 48
      board/GfA/Display001/linux/linux-006-custom-bootlogo.patch
  35. 0 2887
      board/GfA/Display001/linux/linux-006-custom-bootlogo_ppm.patch
  36. 0 453
      board/GfA/Display001/linux/linux-007-gpio-helper.patch
  37. 0 271
      board/GfA/Display001/linux/linux-009-pru.patch
  38. 0 55
      board/GfA/Display001/linux/linux-010-pru_ena.patch
  39. 0 24
      board/GfA/Display001/linux/linux-011-bootlogo_move.patch
  40. 0 521
      board/GfA/Display001/linux/linux-012-omap-dmtimer.patch
  41. 0 114
      board/GfA/Display001/linux/linux-013-omap-dmtimer-quirks.patch
  42. 0 1
      board/GfA/Display001/linux_4.4.104_rt21
  43. 0 2967
      board/GfA/Display001/linux_4.4.145_bone23/linux-001-Bootlogo-GfA.patch
  44. 0 17
      board/GfA/Display001/linux_4.4.145_bone23/linux-002-disa_pru_no_cild_msg.patch
  45. 0 1015
      board/GfA/Display001/linux_4.4.145_bone23/linux-004-egalax_i2c_touchcontroller.patch
  46. 0 828
      board/GfA/Display001/linux_4.4.145_bone23/linux-005-edt-ft5x06.patch
  47. 0 62
      board/GfA/Display001/linux_4.4.145_bone23/linux-006-RS485_udelay_before_tx.patch
  48. 0 13
      board/GfA/Display001/linux_4.4.145_bone23/linux-007-am33xx.dtsi_add_operating_points.patch
  49. 0 134
      board/GfA/Display001/linux_4.4.145_bone23/linux-020-edt-touch-make-gain-offset-threshold-writeable.patch
  50. 0 18
      board/GfA/Display001/linux_4.4.145_bone23/linux-021-remove_endless_loop_in_rtc-ds1307_driver.patch
  51. 0 108
      board/GfA/Display001/linux_4.4.145_bone23/linux-022-add-dts-flags-to-atmel-mxt-touch.patch
  52. 0 47
      board/GfA/Display001/linux_4.4.145_bone23/linux-023-edt-ft5x06-shared-irq.disabled__patch
  53. 0 65
      board/GfA/Display001/linux_4.4.145_bone23/linux-024-edt-ft5x06-fix-report-rate-for-M09.patch
  54. 0 20
      board/GfA/Display001/linux_4.4.145_bone23/linux-025-edt-ft5x06-fix-M9-M12-registercount-on-write.patch
  55. 0 39
      board/GfA/Display001/linux_4.4.145_bone23/linux-026-gpio-pca953x-sitara-i2c-quirks.patch
  56. 0 28
      board/GfA/Display001/linux_4.4.145_bone23/linux-027-input_events_add_IN1-IN4.patch
  57. 0 3583
      board/GfA/Display001/linux_4.4.145_bone23/linux-030-atmel_mxt_ts_backport.patch
  58. 0 2967
      board/GfA/Display001/linux_4.4.94_rt19/linux-001-Bootlogo-GfA.patch
  59. 0 17
      board/GfA/Display001/linux_4.4.94_rt19/linux-002-disa_pru_no_cild_msg.patch
  60. 0 1015
      board/GfA/Display001/linux_4.4.94_rt19/linux-004-egalax_i2c_touchcontroller.patch
  61. 0 828
      board/GfA/Display001/linux_4.4.94_rt19/linux-005-edt-ft5x06.patch
  62. 0 62
      board/GfA/Display001/linux_4.4.94_rt19/linux-006-RS485_udelay_before_tx.patch
  63. 0 13
      board/GfA/Display001/linux_4.4.94_rt19/linux-007-am33xx.dtsi_add_operating_points.patch
  64. 0 134
      board/GfA/Display001/linux_4.4.94_rt19/linux-020-edt-touch-make-gain-offset-threshold-writeable.patch
  65. 0 18
      board/GfA/Display001/linux_4.4.94_rt19/linux-021-remove_endless_loop_in_rtc-ds1307_driver.patch
  66. 0 108
      board/GfA/Display001/linux_4.4.94_rt19/linux-022-add-dts-flags-to-atmel-mxt-touch.patch
  67. 0 47
      board/GfA/Display001/linux_4.4.94_rt19/linux-023-edt-ft5x06-shared-irq.disabled__patch
  68. 0 65
      board/GfA/Display001/linux_4.4.94_rt19/linux-024-edt-ft5x06-fix-report-rate-for-M09.patch
  69. 0 20
      board/GfA/Display001/linux_4.4.94_rt19/linux-025-edt-ft5x06-fix-M9-M12-registercount-on-write.patch
  70. 0 39
      board/GfA/Display001/linux_4.4.94_rt19/linux-026-gpio-pca953x-sitara-i2c-quirks.patch
  71. 0 28
      board/GfA/Display001/linux_4.4.94_rt19/linux-027-input_events_add_IN1-IN4.patch
  72. 0 313
      board/GfA/Display001/linux_4.4.94_rt19/linux-028-qmi_wwan-add-simcom-changes.patch
  73. 0 300
      board/GfA/Display001/linux_4.4.94_rt19/linux-029-simcom_7600_7500.patch
  74. 0 3583
      board/GfA/Display001/linux_4.4.94_rt19/linux-030-atmel_mxt_ts_backport.patch
  75. 0 26
      board/GfA/Display001/linux_4.4.94_rt19/linux-031-setdf1307-output-and-correction-register.patch
  76. 0 13
      board/GfA/Display001/linux_4.4.94_rt19/linux-032-fix-gcc-8.patch
  77. 0 38
      board/GfA/Display001/linux_4.4.94_rt19/linux-033-fix-syscall-return-binutils-2.29.patch
  78. 0 218
      board/GfA/Display001/linux_4.4.94_rt19/linux-034-edt-ft5x06-add-mg1-device.patch
  79. 1 1
      board/GfA/Display001/post-build_4.4.sh
  80. 0 0
      board/GfA/Display001/rootfs/etc/init.d/M99pruuart
  81. 0 0
      board/GfA/Display001/rootfs/etc/init.d/M99rtc_GfA
  82. 0 34
      board/GfA/Display001/rootfs/root/Display2To_10inch.sh
  83. 0 34
      board/GfA/Display001/rootfs/root/Display2To_4_3inch.sh
  84. 0 34
      board/GfA/Display001/rootfs/root/Display2To_7inch.sh
  85. 0 34
      board/GfA/Display001/rootfs/root/Display2To_7inch_rs485.sh
  86. 0 34
      board/GfA/Display001/rootfs/root/DisplayTo_10inch.sh
  87. 0 34
      board/GfA/Display001/rootfs/root/DisplayTo_10inch_30Hz.sh
  88. 0 34
      board/GfA/Display001/rootfs/root/DisplayTo_15inch.sh
  89. 0 34
      board/GfA/Display001/rootfs/root/DisplayTo_4_3inch.sh
  90. 0 34
      board/GfA/Display001/rootfs/root/DisplayTo_4_3inch_2020.sh
  91. 0 34
      board/GfA/Display001/rootfs/root/DisplayTo_4_3inch_nopruss.sh
  92. 0 34
      board/GfA/Display001/rootfs/root/DisplayTo_5_7inch.sh
  93. 0 34
      board/GfA/Display001/rootfs/root/DisplayTo_7inch.sh
  94. 0 34
      board/GfA/Display001/rootfs/root/DisplayTo_7inch_30Hz.sh
  95. 0 34
      board/GfA/Display001/rootfs/root/DisplayTo_7inch_gain1.sh
  96. 0 34
      board/GfA/Display001/rootfs/root/DisplayTo_7inch_rru.sh
  97. BIN
      board/GfA/Display001/rootfs/root/touchinteraction
  98. 6 0
      board/GfA/Display001/sopine/boot.cmd
  99. 39 0
      board/GfA/Display001/sopine/genimage.cfg
  100. 38 0
      board/GfA/Display001/sopine/readme.txt

+ 2 - 1
Make-bb-kernel.sh

@@ -4,6 +4,7 @@ cd ..
 rm -rf buildroot
 git clone https://gogs.reru.org/PUBLIC_REPOS/buildroot.git ./buildroot
 cd buildroot
+##git checkout fa3267bd460095eb9e1478b27d9cb8fa80f96163
 ## checkout buildroot sha
 for i in ../GfA/patches/*.patch
 do
@@ -15,6 +16,6 @@ chmod a+x *.sh
 cp ../GfA/configs/* ./configs
 git add .
 git commit -m "GfA wrk changes and setup"
-make BR2_EXTERNAL=../GfA Display001_4.4.104_rt21_Qt5.15_defconfig
+make BR2_EXTERNAL=../GfA SOPINEA64_L50_Qt5.15_defconfig
 cd $GFAWRKDIR
 #------

+ 1 - 1
board/GfA/Display001/BUILD

@@ -1 +1 @@
-706
+717

+ 0 - 368
board/GfA/Display001/DTS_4.4/Display001.dts

@@ -1,368 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-                i2c_gpio_pins: pinmux_i2c_gpio_pins {
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT | MUX_MODE7)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT | MUX_MODE7)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-/ {
-i2c@3 {
-        compatible = "i2c-gpio";
-        pinctrl-names = "default";
-        pinctrl-0 = <&i2c_gpio_pins>;
-        status = "okay";
-
-        gpios = <&gpio0 2 0 /* sda */
-                 &gpio0 3 0 /* scl */
-                >;
-        /*i2c-gpio,sda-open-drain;
-        i2c-gpio,scl-open-drain;*/ 
-        i2c-gpio,delay-us = <1>;        /* ~200 kHz */
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-        polytouch: edt-ft5x06@38 {
-                        compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                        reg = <0x38>;
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&edt_ft5x06_pins>;
-                        interrupt-parent = <&gpio2>;
-                        interrupts = <1 0>;
-                        reset-gpios = <&gpio3 21 1>;
-                };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-        };
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-               };
-
-        display-timings {
-			800x480 {
-				hactive         = <800>;
-				vactive         = <480>;
-				hback-porch     = <88>;
-				hfront-porch    = <40>;
-				hsync-len       = <128>;
-				vback-porch     = <33>;
-				vfront-porch    = <10>;
-				vsync-len       = <2>;
-				clock-frequency = <33000000>;
-				hsync-active    = <0>;
-				vsync-active    = <0>;
-				de-active	= <1>;
-				pixelclk-active = <0>;
-			};
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-
-/ {
-	vendorinfo {
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_7.dtb";
-		display_physical_width = "153"; /* in mm */
-		display_physical_height = "92"; /* in mm */
-	};
-};

+ 0 - 370
board/GfA/Display001/DTS_4.4/Display001_10.dts

@@ -1,370 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-             /* 	i2c1_pins: pinmux_i2c1_pins { 
-                        pinctrl-single,pins = <
-                                0x158 (PIN_INPUT | MUX_MODE2) */   /* spi0_d1.i2c1_sda */
-                              /*  0x15c (PIN_INPUT | MUX_MODE2) */    /* spi0_cs0.i2c1_scl */
-/*                        >;
-                };
-*/
-              	i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-
-
-&i2c2 {
-        egalax_ts@2A {
-                compatible = "eeti,egalax_i2c";
-                reg = <0x2A>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 8>;
-                int-gpios = <&gpio2 1 0>;
-		linux,wakeup;
-        };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-};
-
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                invert-pxl-clk    = <1>;   
-                };
-	display-timings {
-		1280x800 {
-			hactive         = <1280>;
-			vactive         = <800>;
-			hback-porch     = <50>;
-			hfront-porch    = <60>;
-			hsync-len       = <50>;
-			vback-porch     = <10>;
-			vfront-porch    = <8>;
-			vsync-len       = <5>;
-			clock-frequency = <72000000>;
-			hsync-active    = <0>;
-			vsync-active    = <0>;
-			de-active	= <1>;
-			pixelclk-active = <0>;
-			};
-		};
-  	};
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_10.dtb";
-		display_physical_width = "219"; /* in mm */
-		display_physical_height = "138"; /* in mm */
-	};
-};

+ 0 - 370
board/GfA/Display001/DTS_4.4/Display001_10_30Hz.dts

@@ -1,370 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-             /* 	i2c1_pins: pinmux_i2c1_pins { 
-                        pinctrl-single,pins = <
-                                0x158 (PIN_INPUT | MUX_MODE2) */   /* spi0_d1.i2c1_sda */
-                              /*  0x15c (PIN_INPUT | MUX_MODE2) */    /* spi0_cs0.i2c1_scl */
-/*                        >;
-                };
-*/
-              	i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-
-
-&i2c2 {
-        egalax_ts@2A {
-                compatible = "eeti,egalax_i2c";
-                reg = <0x2A>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 8>;
-                int-gpios = <&gpio2 1 0>;
-		linux,wakeup;
-        };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-};
-
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                invert-pxl-clk    = <1>;   
-                };
-	display-timings {
-		1280x800 {
-			hactive         = <1280>;
-			vactive         = <800>;
-			hback-porch     = <50>;
-			hfront-porch    = <60>;
-			hsync-len       = <50>;
-			vback-porch     = <10>;
-			vfront-porch    = <8>;
-			vsync-len       = <5>;
-			clock-frequency = <36000000>;
-			hsync-active    = <0>;
-			vsync-active    = <0>;
-			de-active	= <1>;
-			pixelclk-active = <0>;
-			};
-		};
-  	};
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_10_30Hz.dtb";
-		display_physical_width = "219"; /* in mm */
-		display_physical_height = "138"; /* in mm */
-	};
-};

+ 0 - 367
board/GfA/Display001/DTS_4.4/Display001_15.dts

@@ -1,367 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-             /* 	i2c1_pins: pinmux_i2c1_pins { 
-                        pinctrl-single,pins = <
-                                0x158 (PIN_INPUT | MUX_MODE2) */   /* spi0_d1.i2c1_sda */
-                              /*  0x15c (PIN_INPUT | MUX_MODE2) */    /* spi0_cs0.i2c1_scl */
-/*                        >;
-                };
-*/
-              	i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-
-
-&i2c2 {
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-
-	pca953x: gpio@70 {
-		compatible = "nxp,pca9538";
-		reg = <0x70>;
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 0>;
-	};
-};
-
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                invert-pxl-clk    = <0>;   
-                };
-	display-timings {
-		1920x1080 {
-			hactive         = <1920>;
-			vactive         = <1080>;
-			hback-porch     = <80>;
-			hfront-porch    = <120>;
-			hsync-len       = <80>;
-			vback-porch     = <10>;
-			vfront-porch    = <20>;
-			vsync-len       = <10>;
-			clock-frequency = <72000000>;
-			hsync-active    = <0>;
-			vsync-active    = <0>;
-			de-active  	= <1>;
-			pixelclk-active = <1>;
-			};
-		};
-  	};
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_15.dtb";
-		display_physical_width = "344.16"; /* in mm */
-		display_physical_height = "193.59"; /* in mm */
-	};
-};

+ 0 - 370
board/GfA/Display001/DTS_4.4/Display001_4.dts

@@ -1,370 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-             /* 	i2c1_pins: pinmux_i2c1_pins { 
-                        pinctrl-single,pins = <
-                                0x158 (PIN_INPUT | MUX_MODE2) */   /* spi0_d1.i2c1_sda */
-                              /*  0x15c (PIN_INPUT | MUX_MODE2) */    /* spi0_cs0.i2c1_scl */
-/*                        >;
-                };
-*/
-              	i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-
-
-&i2c2 {
-        polytouch: edt-ft5x06@38 {
-                compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                reg = <0x38>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 0>;
-                reset-gpios = <&gpio3 21 1>;
-        };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-};
-
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                invert-pxl-clk    = <1>;   
-                };
-
-        display-timings {
-                480x272 {
-                        hactive         = <480>;
-                        vactive         = <272>;
-                        hback-porch     = <2>;
-                        hfront-porch    = <2>;
-                        hsync-len       = <41>;
-                        vback-porch     = <2>;
-                        vfront-porch    = <2>;
-                        vsync-len       = <10>;
-                        clock-frequency = <9000000>;
-                        hsync-active    = <0>;
-                        vsync-active    = <0>;
-                        de-active       = <1>;
-                        pixelclk-active = <1>;
-                };
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_4.dtb";
-		display_physical_width = "96"; /* in mm */
-		display_physical_height = "55"; /* in mm */
-	};
-};

+ 0 - 369
board/GfA/Display001/DTS_4.4/Display001_4_2020.dts

@@ -1,369 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-             /* 	i2c1_pins: pinmux_i2c1_pins { 
-                        pinctrl-single,pins = <
-                                0x158 (PIN_INPUT | MUX_MODE2) */   /* spi0_d1.i2c1_sda */
-                              /*  0x15c (PIN_INPUT | MUX_MODE2) */    /* spi0_cs0.i2c1_scl */
-/*                        >;
-                };
-*/
-              	i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <350000>;
-};
-
-
-&i2c2 {
-        polytouch: edt-ft5x06@38 {
-                compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                reg = <0x38>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 0>;
-                reset-gpios = <&gpio3 21 1>;
-        };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-};
-
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                };
-
-        display-timings {
-                480x272 {
-                        hactive         = <480>;
-                        vactive         = <272>;
-                        hback-porch     = <2>;
-                        hfront-porch    = <2>;
-                        hsync-len       = <41>;
-                        vback-porch     = <2>;
-                        vfront-porch    = <2>;
-                        vsync-len       = <10>;
-                        clock-frequency = <9000000>;
-                        hsync-active    = <0>;
-                        vsync-active    = <0>;
-                        de-active       = <1>;
-                        pixelclk-active = <0>;
-                };
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_4_2020.dtb";
-		display_physical_width = "96"; /* in mm */
-		display_physical_height = "55"; /* in mm */
-	};
-};

+ 0 - 370
board/GfA/Display001/DTS_4.4/Display001_4_nopruss.dts

@@ -1,370 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-             /* 	i2c1_pins: pinmux_i2c1_pins { 
-                        pinctrl-single,pins = <
-                                0x158 (PIN_INPUT | MUX_MODE2) */   /* spi0_d1.i2c1_sda */
-                              /*  0x15c (PIN_INPUT | MUX_MODE2) */    /* spi0_cs0.i2c1_scl */
-/*                        >;
-                };
-*/
-              	i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE7)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-
-
-&i2c2 {
-        polytouch: edt-ft5x06@38 {
-                compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                reg = <0x38>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 0>;
-                reset-gpios = <&gpio3 21 1>;
-        };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-};
-
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                invert-pxl-clk    = <1>;   
-                };
-
-        display-timings {
-                480x272 {
-                        hactive         = <480>;
-                        vactive         = <272>;
-                        hback-porch     = <2>;
-                        hfront-porch    = <2>;
-                        hsync-len       = <41>;
-                        vback-porch     = <2>;
-                        vfront-porch    = <2>;
-                        vsync-len       = <10>;
-                        clock-frequency = <9000000>;
-                        hsync-active    = <0>;
-                        vsync-active    = <0>;
-                        de-active       = <1>;
-                        pixelclk-active = <1>;
-                };
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_4_nopruss.dtb";
-                display_physical_width = "96"; /* in mm */
-		display_physical_height = "55"; /* in mm */
-	};
-};

+ 0 - 529
board/GfA/Display001/DTS_4.4/Display001_5.dts

@@ -1,529 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-             /* 	i2c1_pins: pinmux_i2c1_pins { 
-                        pinctrl-single,pins = <
-                                0x158 (PIN_INPUT | MUX_MODE2) */   /* spi0_d1.i2c1_sda */
-                              /*  0x15c (PIN_INPUT | MUX_MODE2) */    /* spi0_cs0.i2c1_scl */
-/*                        >;
-                };
-*/
-
-              	/*i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <*/
-                                /*0x150 (PIN_INPUT_PULLUP | MUX_MODE2) */   /* spi0_sclk.i2c2_sda */
-                                /*0x154 (PIN_INPUT_PULLUP | MUX_MODE2) */   /* spi0_d0.i2c2_scl */
-                        /*>;
-                };*/
-
-		i2c_gpio_pins: pinmux_i2c_gpio_pins {
-			pinctrl-single,pins = <
-			0x150 (PIN_INPUT | MUX_MODE7)    /* spi0_sclk.i2c2_sda */
-			0x154 (PIN_INPUT | MUX_MODE7)    /* spi0_d0.i2c2_scl */
-			>;
-		};
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-/*
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-*/
-
-/{
-i2c3: i2c@3 {
-	compatible = "i2c-gpio";
-	pinctrl-names = "default";
-	status = "okay";
-	gpios = <&gpio0 2 0 /* sda */
-		 &gpio0 3 0 /* scl */
-		>;
-	/*i2c-gpio,sda-open-drain;
-	i2c-gpio,scl-open-drain;*/ 
-	i2c-gpio,delay-us = <1>;        /* ~200 kHz */
-	#address-cells = <1>;
-	#size-cells = <0>;
-	};
-};
-
-
-&i2c3 {
-	pca9538_0: gpio@70 {
-		compatible = "nxp,pca9538";
-		reg = <0x70>;
-		gpio-controller;
-		#gpio-cells = <2>;
-		/*interrupt-parent = <&gpio2>;*/
-		/*interrupts = <1 8>;*/
-	};
-
-	pca9538_1: gpio@71 {
-		compatible = "nxp,pca9538";
-		reg = <0x71>;
-		gpio-controller;
-		#gpio-cells = <2>;
-		/*interrupt-parent = <&gpio2>;*/
-		/*interrupts = <1 8>;*/
-	};
-
-        polytouch: edt-ft5x06@38 {
-                compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-
-		gain_M09 = <5>;
-		threshold_M09 = <8>;
-		offset_M09 = <25>;
-
-                reg = <0x38>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 0>;
-                reset-gpios = <&gpio3 21 1>;
-        };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-	
-};
-
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                invert-pxl-clk    = <1>;   
-                };
-
-        display-timings {
-                640x480 {
-                        hactive         = <640>;
-                        vactive         = <480>;
-                        hback-porch     = <114>;
-                        hfront-porch    = <16>;
-                        hsync-len       = <30>;
-                        vback-porch     = <32>;
-                        vfront-porch    = <10>;
-                        vsync-len       = <3>;
-                        clock-frequency = <25000000>;
-                        hsync-active    = <0>;
-                        vsync-active    = <0>;
-                        de-active       = <1>;
-                        pixelclk-active = <1>;
-                };
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-
-       gfa_panel_leds {
-                compatible = "gpio-leds";
-
-                led0 {
-                        label = "GfA-LED0";
-                        gpios = <&pca9538_1 2 0>;
-                        linux,default-trigger = "default-off";
-                };
-
-                led1 {
-                        label = "GfA-LED1";
-                        gpios = <&pca9538_1 3 0>;
-                        linux,default-trigger = "default-off";
-                };
-
-                led2 {
-                        label = "GfA-LED2";
-                        gpios = <&pca9538_1 4 0>;
-                        linux,default-trigger = "default-off";
-                };
-
-                led3 {
-                        label = "GfA-LED3";
-                        gpios = <&pca9538_1 5 0>;
-                        linux,default-trigger = "default-off";
-                };
-
-                led4 {
-                        label = "GfA-LED4";
-                        gpios = <&pca9538_1 6 0>;
-                        linux,default-trigger = "default-off";
-                };
-
-                led5 {
-                        label = "GfA-LED5";
-                        gpios = <&pca9538_1 7 0>;
-                        linux,default-trigger = "default-off";
-                };
-        };
-
-	gpio-keys {
-		compatible = "gpio-keys-polled";
-		poll-interval = <100>;
-
-		F2 {
-			linux,code = <60>;
-			label = "F2";
-			gpios = <&pca9538_0 0 0x1>;
-                        };
-
-		F5 {
-			linux,code = <63>;
-			label = "F2";
-			gpios = <&pca9538_0 1 0x1>;
-                        };
-
-		F6 {
-			linux,code = <64>;
-			label = "F6";
-			gpios = <&pca9538_0 2 0x1>;
-                        };
-
-		F7 {
-			linux,code = <65>;
-			label = "F7";
-			gpios = <&pca9538_0 3 0x1>;
-                        };
-
-		F8 {
-			linux,code = <66>;
-			label = "F8";
-			gpios = <&pca9538_0 4 0x1>;
-                        };
-
-		F9 {
-			linux,code = <67>;
-			label = "F9";
-			gpios = <&pca9538_0 5 0x1>;
-                        };
-
-
-		F10 {
-			linux,code = <68>;
-			label = "F10";
-			gpios = <&pca9538_0 6 0x1>;
-                        };
-
-
-		F4 {
-			linux,code = <62>;
-			label = "F4";
-			gpios = <&pca9538_0 7 0x1>;
-                        };
-
-
-		F1 {
-			linux,code = <59>;
-			label = "F1";
-			gpios = <&pca9538_1 0 0x1>;
-                        };
-
-		F3 {
-			linux,code = <61>;
-			label = "F3";
-			gpios = <&pca9538_1 1 0x1>;
-                        };
-
-	};
-
-};
-
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_5.dtb";
-		display_physical_width = "116.57"; /* in mm */
-		display_physical_height = "88.77"; /* in mm */
-	};
-};

+ 0 - 368
board/GfA/Display001/DTS_4.4/Display001_7.dts

@@ -1,368 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-                i2c_gpio_pins: pinmux_i2c_gpio_pins {
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT | MUX_MODE7)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT | MUX_MODE7)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-/ {
-i2c@3 {
-        compatible = "i2c-gpio";
-        pinctrl-names = "default";
-        pinctrl-0 = <&i2c_gpio_pins>;
-        status = "okay";
-
-        gpios = <&gpio0 2 0 /* sda */
-                 &gpio0 3 0 /* scl */
-                >;
-        /*i2c-gpio,sda-open-drain;
-        i2c-gpio,scl-open-drain;*/ 
-        i2c-gpio,delay-us = <1>;        /* ~200 kHz */
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-        polytouch: edt-ft5x06@38 {
-                        compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                        reg = <0x38>;
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&edt_ft5x06_pins>;
-                        interrupt-parent = <&gpio2>;
-                        interrupts = <1 0>;
-                        reset-gpios = <&gpio3 21 1>;
-                };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-        };
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-               };
-
-        display-timings {
-			800x480 {
-				hactive         = <800>;
-				vactive         = <480>;
-				hback-porch     = <88>;
-				hfront-porch    = <40>;
-				hsync-len       = <128>;
-				vback-porch     = <33>;
-				vfront-porch    = <10>;
-				vsync-len       = <2>;
-				clock-frequency = <33000000>;
-				hsync-active    = <0>;
-				vsync-active    = <0>;
-				de-active	= <1>;
-				pixelclk-active = <0>;
-			};
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-
-/ {
-	vendorinfo {
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_7.dtb";
-		display_physical_width = "153"; /* in mm */
-		display_physical_height = "92"; /* in mm */
-	};
-};

+ 0 - 368
board/GfA/Display001/DTS_4.4/Display001_7_30Hz.dts

@@ -1,368 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-                i2c_gpio_pins: pinmux_i2c_gpio_pins {
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT | MUX_MODE7)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT | MUX_MODE7)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-/ {
-i2c@3 {
-        compatible = "i2c-gpio";
-        pinctrl-names = "default";
-        pinctrl-0 = <&i2c_gpio_pins>;
-        status = "okay";
-
-        gpios = <&gpio0 2 0 /* sda */
-                 &gpio0 3 0 /* scl */
-                >;
-        /*i2c-gpio,sda-open-drain;
-        i2c-gpio,scl-open-drain;*/ 
-        i2c-gpio,delay-us = <1>;        /* ~200 kHz */
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-        polytouch: edt-ft5x06@38 {
-                        compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                        reg = <0x38>;
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&edt_ft5x06_pins>;
-                        interrupt-parent = <&gpio2>;
-                        interrupts = <1 0>;
-                        reset-gpios = <&gpio3 21 1>;
-                };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-        };
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-               };
-
-        display-timings {
-			800x480 {
-				hactive         = <800>;
-				vactive         = <480>;
-				hback-porch     = <88>;
-				hfront-porch    = <40>;
-				hsync-len       = <128>;
-				vback-porch     = <33>;
-				vfront-porch    = <10>;
-				vsync-len       = <2>;
-				clock-frequency = <16500000>;
-				hsync-active    = <0>;
-				vsync-active    = <0>;
-				de-active	= <1>;
-				pixelclk-active = <0>;
-			};
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-
-/ {
-	vendorinfo {
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_7_30Hz.dtb";
-		display_physical_width = "153"; /* in mm */
-		display_physical_height = "92"; /* in mm */
-	};
-};

+ 0 - 367
board/GfA/Display001/DTS_4.4/Display001_7_bitbang.dts

@@ -1,367 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-                i2c_gpio_pins: pinmux_i2c_gpio_pins {
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT | MUX_MODE7)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT | MUX_MODE7)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-/ {
-i2c@3 {
-        compatible = "i2c-gpio";
-        pinctrl-names = "default";
-        pinctrl-0 = <&i2c_gpio_pins>;
-        status = "okay";
-
-        gpios = <&gpio0 2 0 /* sda */
-                 &gpio0 3 0 /* scl */
-                >;
-        /*i2c-gpio,sda-open-drain;
-        i2c-gpio,scl-open-drain;*/ 
-        i2c-gpio,delay-us = <1>;        /* ~100 kHz */
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-        polytouch: edt-ft5x06@38 {
-                        compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                        reg = <0x38>;
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&edt_ft5x06_pins>;
-                        interrupt-parent = <&gpio2>;
-                        interrupts = <1 0>;
-                        reset-gpios = <&gpio3 21 1>;
-                };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-        };
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                };
-
-        display-timings {
-			800x480 {
-				hactive         = <800>;
-				vactive         = <480>;
-				hback-porch     = <88>;
-				hfront-porch    = <40>;
-				hsync-len       = <128>;
-				vback-porch     = <33>;
-				vfront-porch    = <10>;
-				vsync-len       = <2>;
-				clock-frequency = <33000000>;
-				hsync-active    = <0>;
-				vsync-active    = <0>;
-				de-active	= <1>;
-				pixelclk-active = <0>;
-			};
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_7_bitbang.dtb";
-		display_physical_width = "153"; /* in mm */
-		display_physical_height = "92"; /* in mm */
-	};
-};

+ 0 - 367
board/GfA/Display001/DTS_4.4/Display001_7_gain1.dts

@@ -1,367 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-                i2c_gpio_pins: pinmux_i2c_gpio_pins {
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT | MUX_MODE7)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT | MUX_MODE7)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-/ {
-i2c@3 {
-        compatible = "i2c-gpio";
-        pinctrl-names = "default";
-        pinctrl-0 = <&i2c_gpio_pins>;
-        status = "okay";
-
-        gpios = <&gpio0 2 0 /* sda */
-                 &gpio0 3 0 /* scl */
-                >;
-        /*i2c-gpio,sda-open-drain;
-        i2c-gpio,scl-open-drain;*/ 
-        i2c-gpio,delay-us = <1>;        /* ~200 kHz */
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-        polytouch: edt-ft5x06@38 {
-                        compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                        reg = <0x38>;
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&edt_ft5x06_pins>;
-                        interrupt-parent = <&gpio2>;
-                        interrupts = <1 0>;
-                        reset-gpios = <&gpio3 21 1>;
-                };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-        };
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                };
-
-        display-timings {
-			800x480 {
-				hactive         = <800>;
-				vactive         = <480>;
-				hback-porch     = <88>;
-				hfront-porch    = <40>;
-				hsync-len       = <128>;
-				vback-porch     = <33>;
-				vfront-porch    = <10>;
-				vsync-len       = <2>;
-				clock-frequency = <33000000>;
-				hsync-active    = <0>;
-				vsync-active    = <0>;
-				de-active	= <1>;
-				pixelclk-active = <0>;
-			};
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_7_gain1.dtb";
-		display_physical_width = "153"; /* in mm */
-		display_physical_height = "92"; /* in mm */
-	};
-};

+ 0 - 366
board/GfA/Display001/DTS_4.4/Display001_7_i2c2.dts

@@ -1,366 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-             /* 	i2c1_pins: pinmux_i2c1_pins { 
-                        pinctrl-single,pins = <
-                                0x158 (PIN_INPUT | MUX_MODE2) */   /* spi0_d1.i2c1_sda */
-                              /*  0x15c (PIN_INPUT | MUX_MODE2) */    /* spi0_cs0.i2c1_scl */
-/*                        >;
-                };
-*/
-              	i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-
-
-&i2c2 {
-        polytouch: edt-ft5x06@38 {
-                compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                reg = <0x38>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 0>;
-                reset-gpios = <&gpio3 21 1>;
-        };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                };
-
-        display-timings {
-			800x480 {
-				hactive         = <800>;
-				vactive         = <480>;
-				hback-porch     = <88>;
-				hfront-porch    = <40>;
-				hsync-len       = <128>;
-				vback-porch     = <33>;
-				vfront-porch    = <10>;
-				vsync-len       = <2>;
-				clock-frequency = <33000000>;
-				hsync-active    = <0>;
-				vsync-active    = <0>;
-				de-active	= <1>;
-				pixelclk-active = <0>;
-			};
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_7_i2c2.dtb";
-		display_physical_width = "153"; /* in mm */
-		display_physical_height = "92"; /* in mm */
-	};
-};

+ 0 - 373
board/GfA/Display001/DTS_4.4/Display001_green.dts

@@ -1,373 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-	 	i2c1_pins: pinmux_i2c1_pins { 
-                        pinctrl-single,pins = <
-                                0x178 (PIN_INPUT | MUX_MODE3)    /* ?? */
-                                0x17c (PIN_INPUT | MUX_MODE3)    /* ?? */
-                        >;
-                };
-
-              	i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-
-               uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		profibus_pins_default: pinmux_profibus_pins_default {
-                        pinctrl-single,pins = < 
-                        0x158 (PIN_INPUT_PULLUP | MUX_MODE4)    /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* spi0_cs0.uart0_txd */ 
-			0x1a4 (PIN_OUTPUT | MUX_MODE5)		/* mcasp0_fsr.gpio3.19 */
-                	>;
-                };
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-
-&i2c1 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c1_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-
-
-&i2c2 {
-        polytouch: edt-ft5x06@38 {
-                compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                reg = <0x38>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 0>;
-                reset-gpios = <&gpio3 21 1>;
-        };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-};
-
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                invert-pxl-clk    = <1>;   
-                };
-
-        display-timings {
-                480x272 {
-                        hactive         = <480>;
-                        vactive         = <272>;
-                        hback-porch     = <2>;
-                        hfront-porch    = <2>;
-                        hsync-len       = <41>;
-                        vback-porch     = <2>;
-                        vfront-porch    = <2>;
-                        vsync-len       = <10>;
-                        clock-frequency = <9000000>;
-                        hsync-active    = <0>;
-                        vsync-active    = <0>;
-                        de-active       = <1>;
-                        pixelclk-active = <1>;
-                };
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-&pruss {
-	pinctrl-names = "default";
-        pinctrl-0 = <&profibus_pins_default>;
-	status = "okay";
-};
-
-/ {
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_green.dtb";
-		display_physical_width = "96"; /* in mm */
-		display_physical_height = "55"; /* in mm */
-	};
-};

+ 0 - 519
board/GfA/Display001/DTS_4.4/Display001_rru.dts

@@ -1,519 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		userled_pins: pinmux_userled_pins {
-			pinctrl-single,pins = <
-				0x98 0x7	/* gpmc_wen.gpio2_4, OUTPUT | MODE7 */
-				0x9c 0x7	/* gpmc_ben0_cle.gpio2_5, OUTPUT | MODE7 */
-			>;
-		};
-
-		i2c0_pins: pinmux_i2c0_pins {
-			pinctrl-single,pins = <
-				0x188 0x70      /* i2c0_sda, SLEWCTRL_SLOW | INPUT_PULLUP | MODE0 */
-				0x18c 0x70      /* i2c0_scl, SLEWCTRL_SLOW | INPUT_PULLUP | MODE0 */
-			>;
-		};
-		i2c1_pins: pinmux_i2c1_pins {
-			pinctrl-single,pins = <
-				0x158 0x72      /* spi0_d1.i2c1_sda, SLEWCTRL_SLOW | INPUT_PULLUP | MODE2 */
-				0x15c 0x72      /* spi0_cs0.i2c1_scl, SLEWCTRL_SLOW | INPUT_PULLUP | MODE2 */
-			>;
-		};
-		mmc1_pins: pinmux_mmc1_pins {
-			pinctrl-single,pins = <
-				0x160 0x2f /* GPIO0_6 (PIN_INPUT | MUX_MODE7) */
-			>;
-		};
-		rstctl_pins: pinmux_rstctl_pins {
-			pinctrl-single,pins = <
-				/* eMMC_RSTn */
-				0x50 0x17	/* gpmc_a4.gpio1_20, OUTPUT | MODE7 | PULLUP */
-			>;
-		};
-
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-			0xa0 0x00       /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xa4 0x00       /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xa8 0x00       /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xac 0x00       /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xb0 0x00       /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xb4 0x00       /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xb8 0x00       /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xbc 0x00       /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xc0 0x00       /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xc4 0x00       /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xc8 0x00       /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xcc 0x00       /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xd0 0x00       /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xd4 0x00       /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xd8 0x00       /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xdc 0x00       /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0x3c 0x11       /* gpmc_ad15.lcd_data16, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
-			0x38 0x11       /* gpmc_ad14.lcd_data17, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
-			0x34 0x11       /* gpmc_ad13.lcd_data18, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
-			0x30 0x11       /* gpmc_ad12.lcd_data19, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
-			0x2c 0x11       /* gpmc_ad11.lcd_data20, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
-			0x28 0x11       /* gpmc_ad10.lcd_data21, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
-			0x24 0x11       /* gpmc_ad9.lcd_data22, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
-			0x20 0x11       /* gpmc_ad8.lcd_data23, OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT */
-			0xe0 0x00       /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xe4 0x00       /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xe8 0x00       /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			0xec 0x00 	/* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
-			>;
-			};
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-	                 pinctrl-single,pins = <
-	                     0x090 (PIN_INPUT | MUX_MODE7)  /* gpmc_advn_ale.timer4 gpio2_2 */
-                >;
-                };
-
-		pwm_bl_pins: pinmux_pwm_bl_pins {
-			pinctrl-single,pins = <
-				/*0x48 0x06*/       /* gpmc_a2.ehrpwm1a, OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT */
-				0x48 0x37       /* gpmc_a1_18, OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT */
-			>;
-		};
-
-		chipsee_gpio_pins: pinmux_chipsee_gpio_pins {
-			pinctrl-single,pins = <
-				0x044 0x27      /* CAP_TSC gpmc_a1.gpio1_17, INPUT | MODE7 */
-				/*0x094 0x07*/      /* BUZZER gpmc_oen_ren.gpio2_3 OUTPUT | MODE7 */
-				0x090 0x7	/* gpmc_advn_ale.gpio2_2, OUTPUT | MODE7 */
-			>;      
-		};
-		chipsee_gpio_keys_pins: pinmux_chipsee_gpio_keys_pins {
-			pinctrl-single,pins = <
-				0x164 0x2f      /* KEY_LEFT ecap0_in_pwm0_out.gpio0_7, INPUT | PULLDIS | MODE7 */
-				0x078 0x2f      /* KEY_RIGHT gpmc_ben1.gpio1_28, INPUT | PULLDIS | MODE7 */
-				0x040 0x2f      /* KEY_UP gpmc_a0.gpio1_16, INPUT | PULLDIS | MODE7 */
-				0x04c 0x2f      /* KEY_DOWN gpmc_a3.gpio1_19, INPUT | PULLDIS | MODE7 */
-				0x1a4 0x2f      /* KEY_ENTER mcasp0_fxr.gpio3_19, INPUT | PULLDIS | MODE7 */
-			>;
-		};
-
-		uart1_pins_default: pinmux_uart1_pins_default {
-			pinctrl-single,pins = <
-				0x180 0x20 /* uart1_rxd.uart1_rxd  INPUT | MODE0 */
-				0x184 0x00 /* uart1_txd.uart1_txd  OUTPUT | MODE0 */
-			>;
-		};
-
-
-		chipsee_uart2_pins: pinmux_chipsee_uart2_pins {
-			pinctrl-single,pins = <
-				0x150 0x21      /* spi0_sclk.uart2_rxd INPUT | MODE1 */
-				0x154 0x01      /* spi0_d0.uart2_txd OUTPUT | MODE1 */
-			>;
-		};
-
-		chipsee_uart4_pins: pinmux_chipsee_uart4_pins {
-			pinctrl-single,pins = <
-				0x070 0x26      /* gpmc_wait0.uart4_rxd INPUT | MODE6 */
-				0x074 0x06      /* gpmc_wpn.uart4_txd OUTPUT | MODE6 */
-			>;
-		};
-
-		chipsee_dcan0_pins: pinmux_chipsee_dcan0_pins {
-			pinctrl-single,pins = <
-				0x178 0x02      /* uart1_ctsn.d_can0_tx OUTPUT | MODE2 */
-				0x17c 0x32      /* uart1_rtsn.d_can0_rx INPUT_PULLUP | MODE2 */
-			>;
-		};
-
-		chipsee_audio_pins: pinmux_chipsee_audio_pins {
-			pinctrl-single,pins = <
-				0x190 0x20      /* mcasp0_aclkx.mcasp0_aclkx, INPUT | MODE0 */
-				0x194 0x20      /* mcasp0_fsx.mcasp0_fsx, INPUT | MODE0 */
-				0x198 0x20      /* mcasp0_axr0.mcasp0_axr0, INPUT | MODE0 */
-				0x19c 0x22      /* mcasp0_ahclkr.mcasp0_axr2, INPUT | MODE2 */
-			>;
-		};
-
-		adxl345_pins: pinmux_adxl345_pins {
-                        pinctrl-single,pins = <
-                               0x08c (PIN_INPUT | MUX_MODE7)  /* gpmc_clp gpio2.1 */
-				>;
-				};
-
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&timer4_pins>; 
-        status = "okay";
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                };
-
-        display-timings {
-			1024x600 {
-				hactive         = <1024>;
-				vactive         = <600>;
-				hback-porch     = <45>;
-				hfront-porch    = <1>;
-				hsync-len       = <30>;
-				vback-porch     = <22>;
-				vfront-porch    = <12>;
-				vsync-len       = <2>;
-				clock-frequency = <36000000>;
-				hsync-active    = <1>;
-				vsync-active    = <1>;
-				de-active	= <1>;
-				pixelclk-active = <0>;
-			};
-        };
-  };
-};
-
-&i2c0 {
-	status = "okay";
-	clock-frequency = <400000>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c0_pins>;
-
-	tps: tps@24 {
-		reg = <0x24>;
-	};
-
-	baseboard_eeprom: baseboard_eeprom@50 {
-		compatible = "at,24c256";
-		reg = <0x50>;
-	};
-};
-
-&i2c1 {
-	status = "okay";
-	clock-frequency = <400000>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&i2c1_pins>;
-
-        polytouch: edt-ft5x06@38 {
-                compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                reg = <0x38>;
-                interrupt-parent = <&gpio1>;
-                interrupts = <17 0>;
-		swap_xy;
-		invert_x;
-		invert_y;
-		max_x = <1024>;
-		max_y = <768>;
-        };
-
-	tlv320aic3x: tlv320aic3x@1b {
-		compatible = "ti,tlv320aic3x";
-		reg = <0x1b>;
-		status = "okay";
-	};
-
-	pcf8563: pcf8563@51 {
-		compatible = "pcf8563";
-		reg = <0x51>;
-		status = "okay";
-	};
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-
-	adxl345: adxl345@53 {
-		pinctrl-names = "default";
-		pinctrl-0 = <&adxl345_pins>;
-		compatible = "adi,adxl345";
-		reg = <0x53>;
-		interrupt-parent = <&gpio2>;
-		interrupts = <1 0>;
-	};
-
-};
-
-/include/ "tps65217.dtsi"
-
-&tps {
-	ti,pmic-shutdown-controller;
-
-	interrupt-parent = <&intc>;
-	interrupts = <7>;/* NNMI */
-
-	regulators {
-		dcdc1_reg: regulator@0 {
-			regulator-always-on;
-		};
-
-		dcdc2_reg: regulator@1 {
-			/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
-			regulator-name = "vdd_mpu";
-			regulator-min-microvolt = <925000>;
-			regulator-max-microvolt = <1325000>;
-			regulator-boot-on;
-			regulator-always-on;
-		};
-
-		dcdc3_reg: regulator@2 {
-			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
-			regulator-name = "vdd_core";
-			regulator-min-microvolt = <925000>;
-			regulator-max-microvolt = <1150000>;
-			regulator-boot-on;
-			regulator-always-on;
-		};
-
-		ldo1_reg: regulator@3 {
-			regulator-always-on;
-		};
-
-		ldo2_reg: regulator@4 {
-			regulator-always-on;
-		};
-
-		ldo3_reg: regulator@5 {
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <3300000>;
-			regulator-always-on;
-		};
-
-		ldo4_reg: regulator@6 {
-			regulator-always-on;
-		};
-	};
-};
-
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&uart1	{
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart1_pins_default>;
-	status = "okay";
-	};
-
-
-&uart2 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&chipsee_uart2_pins>;
-	status = "okay";
-};
-
-&uart4 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&chipsee_uart4_pins>;
-	status = "okay";
-};
-
-
-&dcan0 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&chipsee_dcan0_pins>;
-	status = "okay";
-};
-
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-/*
-&epwmss1 {
-	status = "okay";
-	ehrpwm1 {
-		status = "okay";
-		pinctrl-names = "default";
-		pinctrl-0 = <&pwm_bl_pins>;
-		};
-	};
-*/
-
-
-/ {
-
-/*
-	backlight {
-		compatible      = "pwm-backlight";
-		pwms = <&ehrpwm1 0 500000 0>;
-		brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100>;
-		default-brightness-level = <100>; 
-	};
-*/
-		gpio-leds {
-			compatible = "gpio-leds";
-			pinctrl-names = "default";
-			pinctrl-0 = <&userled_pins>;
-
-			led0 {
-				label = "beaglebone:green:usr0";
-				gpios = <&gpio2 4 0>;
-				linux,default-trigger = "heartbeat";
-				default-state = "off";
-			};
-
-			led1 {
-				label = "beaglebone:green:usr1";
-				gpios = <&gpio2 5 0>;
-				linux,default-trigger = "mmc0";
-				default-state = "off";
-			};
-		};
-
-
-		gpio_keys {
-			compatible = "gpio-keys";
-			pinctrl-names = "default";
-			pinctrl-0 = <&chipsee_gpio_keys_pins>;
-
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			button@1 {
-				debounce_interval = <50>;
-				linux,code = <105>;
-				label = "left";
-				gpios = <&gpio0 7 0x1>;
-				gpio-key,wakeup;
-				autorepeat;
-			};
-			button@2 {
-				debounce_interval = <50>;
-				linux,code = <106>;
-				label = "right";
-				gpios = <&gpio1 28 0x1>;
-				gpio-key,wakeup;
-				autorepeat;
-			};
-			button@3 {
-				debounce_interval = <50>;
-				linux,code = <103>;
-				label = "up";
-				gpios = <&gpio1 16 0x1>;
-				gpio-key,wakeup;
-				autorepeat;
-			};
-			button@4 {
-				debounce_interval = <50>;
-				linux,code = <108>;
-				label = "down";
-				gpios = <&gpio1 19 0x1>;
-				gpio-key,wakeup;
-				autorepeat;
-			};
-			button@5 {
-				debounce_interval = <50>;
-				linux,code = <28>;
-				label = "enter";
-				gpios = <&gpio3 19 0x1>;
-				gpio-key,wakeup;
-			};
-		};
-
-		gpio_setups {
-			compatible = "gpio-of-helper";
-			status = "okay";
-			pinctrl-names = "default";
-			pinctrl-0 = <&pwm_bl_pins>;
-
-			/* declare your gpios */
-			
-			bl_en {
-				gpio-name = "bl_enable";
-				gpio = <&gpio1 18 0x00>;
-				output;
-				init-high;
-			};
-		};
-
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-
-	vmmcsd_fixed: fixedregulator@0 {
-		compatible = "regulator-fixed";
-		regulator-name = "vmmcsd_fixed";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-	};
-
-};
-
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display001";
-		display_dtb = "Display001_rru.dtb";
-		display_physical_width = "153"; /* in mm */
-		display_physical_height = "92"; /* in mm */
-	};
-};

+ 0 - 442
board/GfA/Display001/DTS_4.4/Display002_10.dts

@@ -1,442 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-              	i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-                        pinctrl-single,pins = <
-                               0x090 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_advn_ale.timer4 */
-				>;
-				};
-
-		timer5_pins: pinmux_timer5_pins {
-                        pinctrl-single,pins = <
-                               0x09c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_ben0_cle.timer5 */
-				>;
-				};
-
-		di_pins_default: pinmux_di_pins_default {
-                        pinctrl-single,pins = < 
-                        0x070 (PIN_INPUT | MUX_MODE7)  /* gpmc_wait0.uart4_rxd */
-                        0x074 (PIN_INPUT | MUX_MODE7)  /* gpmc_wpn.uart4_txd */ 
-                        0x158 (PIN_INPUT | MUX_MODE7)  /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_INPUT | MUX_MODE7)  /* spi0_cs0.uart0_txd */ 
-                	>;
-		};
-
-
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer4_pins>; 
-	status = "okay";
-};
-
-&timer5 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer5_pins>; 
-	status = "okay";
-};
-
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-
-&i2c2 {
-        egalax_ts@2A {
-                compatible = "eeti,egalax_i2c";
-                reg = <0x2A>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 8>;
-                int-gpios = <&gpio2 1 0>;
-		linux,wakeup;
-        };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-
-/*
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-*/
-
-	gpio_gfa: gpio_gfa@0 {
-		compatible = "fairchild,74hc595";
-		reg = <0>;
-		gpio-controller;
-		#gpio-cells = <2>;
-		registers-number = <1>;
-		spi-max-frequency = <1000000>;
-	};
-
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-
-
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-      panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                invert-pxl-clk    = <1>;   
-                };
-	display-timings {
-		1280x800 {
-			hactive         = <1280>;
-			vactive         = <800>;
-			hback-porch     = <50>;
-			hfront-porch    = <60>;
-			hsync-len       = <50>;
-			vback-porch     = <10>;
-			vfront-porch    = <8>;
-			vsync-len       = <5>;
-			clock-frequency = <72000000>;
-			hsync-active    = <0>;
-			vsync-active    = <0>;
-			de-active	= <1>;
-			pixelclk-active = <0>;
-			};
-		};
-   };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-
-/ {
-
-
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-
-        pwm4: dmtimer-pwm@4 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer4>;
-                #pwm-cells = <3>;
-        };
-
-        pwm5: dmtimer-pwm@5 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer5>;
-                #pwm-cells = <3>;
-        };
-
-	pwmleds {
-		compatible = "pwm-leds";
-		gfa-backlight { 
-			pwms = <&pwm4 0 1000000 0>;
-			label = "backlight";
-			max-brightness = <255>;
-		};
-
-		gfa-leds { 
-			pwms = <&pwm5 0 1000000 0>;
-			label = "led_brightness";
-			max-brightness = <255>;
-		};
-	};
-
-
-	gfa_panel_leds {
-		compatible = "gpio-leds";
-
-		led0 {
-			label = "GfA-LED0";
-			gpios = <&gpio_gfa 0 0>;
-			linux,default-trigger = "default-on";
-		};
-
-		led1 {
-			label = "GfA-LED1";
-			gpios = <&gpio_gfa 1 0>;
-			linux,default-trigger = "mmc1";
-		};
-
-		led2 {
-			label = "GfA-LED2";
-			gpios = <&gpio_gfa 2 0>;
-			linux,default-trigger = "heartbeat";
-		};
-
-
-	};
-
-               gpio_keys {
-                        compatible = "gpio-keys";
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&di_pins_default>;
-
-                        #address-cells = <1>;
-                        #size-cells = <0>;
-
-                        button@1 {
-				linux,input-type = <5>;
-                                debounce_interval = <50>;
-                                linux,code = <0x0f>;
-                                label = "IN_2";
-                                gpios = <&gpio0 31 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@2 {
-				linux,input-type = <5>;
-                                debounce_interval = <50>;
-                                linux,code = <0x10>;
-                                label = "IN_1";
-                                gpios = <&gpio0 30 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@3 {
-				linux,input-type = <5>;
-                                debounce_interval = <50>;
-                                linux,code = <0x11>;
-                                label = "IN_4";
-                                gpios = <&gpio0 4 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@4 {
-				linux,input-type = <5>;
-                                debounce_interval = <50>;
-                                linux,code = <0x12>;
-                                label = "IN_3";
-                                gpios = <&gpio0 5 0x0>;
-                                gpio-key,wakeup;
-                        };
-                };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display002";
-		display_dtb = "Display002_10.dtb";
-		display_physical_width = "219"; /* in mm */
-		display_physical_height = "138"; /* in mm */
-	};
-};

+ 0 - 438
board/GfA/Display001/DTS_4.4/Display002_10_i2c.dts

@@ -1,438 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-              	i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-                        pinctrl-single,pins = <
-                               0x090 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_advn_ale.timer4 */
-				>;
-				};
-
-		timer5_pins: pinmux_timer5_pins {
-                        pinctrl-single,pins = <
-                               0x09c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_ben0_cle.timer5 */
-				>;
-				};
-
-		di_pins_default: pinmux_di_pins_default {
-                        pinctrl-single,pins = < 
-                        0x070 (PIN_INPUT | MUX_MODE7)  /* gpmc_wait0.uart4_rxd */
-                        0x074 (PIN_INPUT | MUX_MODE7)  /* gpmc_wpn.uart4_txd */ 
-                        0x158 (PIN_INPUT | MUX_MODE7)  /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_INPUT | MUX_MODE7)  /* spi0_cs0.uart0_txd */ 
-                	>;
-		};
-
-
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer4_pins>; 
-	status = "okay";
-};
-
-&timer5 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer5_pins>; 
-	status = "okay";
-};
-
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-
-&i2c2 {
-        egalax_ts@2A {
-                compatible = "eeti,egalax_i2c";
-                reg = <0x2A>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 8>;
-                int-gpios = <&gpio2 1 0>;
-		linux,wakeup;
-        };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-
-/*
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-*/
-
-	gpio_gfa: gpio_gfa@0 {
-		compatible = "fairchild,74hc595";
-		reg = <0>;
-		gpio-controller;
-		#gpio-cells = <2>;
-		registers-number = <1>;
-		spi-max-frequency = <1000000>;
-	};
-
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-
-
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-      panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                invert-pxl-clk    = <1>;   
-                };
-	display-timings {
-		1280x800 {
-			hactive         = <1280>;
-			vactive         = <800>;
-			hback-porch     = <50>;
-			hfront-porch    = <60>;
-			hsync-len       = <50>;
-			vback-porch     = <10>;
-			vfront-porch    = <8>;
-			vsync-len       = <5>;
-			clock-frequency = <72000000>;
-			hsync-active    = <0>;
-			vsync-active    = <0>;
-			de-active	= <1>;
-			pixelclk-active = <0>;
-			};
-		};
-   };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-
-/ {
-
-
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-
-        pwm4: dmtimer-pwm@4 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer4>;
-                #pwm-cells = <3>;
-        };
-
-        pwm5: dmtimer-pwm@5 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer5>;
-                #pwm-cells = <3>;
-        };
-
-	pwmleds {
-		compatible = "pwm-leds";
-		gfa-backlight { 
-			pwms = <&pwm4 0 1000000 0>;
-			label = "backlight";
-			max-brightness = <255>;
-		};
-
-		gfa-leds { 
-			pwms = <&pwm5 0 1000000 0>;
-			label = "led_brightness";
-			max-brightness = <255>;
-		};
-	};
-
-
-	gfa_panel_leds {
-		compatible = "gpio-leds";
-
-		led0 {
-			label = "GfA-LED0";
-			gpios = <&gpio_gfa 0 0>;
-			linux,default-trigger = "default-on";
-		};
-
-		led1 {
-			label = "GfA-LED1";
-			gpios = <&gpio_gfa 1 0>;
-			linux,default-trigger = "mmc1";
-		};
-
-		led2 {
-			label = "GfA-LED2";
-			gpios = <&gpio_gfa 2 0>;
-			linux,default-trigger = "heartbeat";
-		};
-
-
-	};
-
-               gpio_keys {
-                        compatible = "gpio-keys";
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&di_pins_default>;
-
-                        #address-cells = <1>;
-                        #size-cells = <0>;
-
-                        button@1 {
-                                debounce_interval = <50>;
-                                linux,code = <60>;
-                                label = "F2";
-                                gpios = <&gpio0 30 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@2 {
-                                debounce_interval = <50>;
-                                linux,code = <59>;
-                                label = "F1";
-                                gpios = <&gpio0 31 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@3 {
-                                debounce_interval = <50>;
-                                linux,code = <62>;
-                                label = "F4";
-                                gpios = <&gpio0 5 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@4 {
-                                debounce_interval = <50>;
-                                linux,code = <61>;
-                                label = "F3";
-                                gpios = <&gpio0 4 0x0>;
-                                gpio-key,wakeup;
-                        };
-                };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display002";
-		display_dtb = "Display002_10_i2c.dtb";
-		display_physical_width = "219"; /* in mm */
-		display_physical_height = "138"; /* in mm */
-	};
-};

+ 0 - 456
board/GfA/Display001/DTS_4.4/Display002_10_is2bitbang.dts

@@ -1,456 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-                i2c_gpio_pins: pinmux_i2c_gpio_pins {
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT | MUX_MODE7)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT | MUX_MODE7)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-                        pinctrl-single,pins = <
-                               0x090 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_advn_ale.timer4 */
-				>;
-				};
-
-		timer5_pins: pinmux_timer5_pins {
-                        pinctrl-single,pins = <
-                               0x09c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_ben0_cle.timer5 */
-				>;
-				};
-
-		di_pins_default: pinmux_di_pins_default {
-                        pinctrl-single,pins = < 
-                        0x070 (PIN_INPUT | MUX_MODE7)  /* gpmc_wait0.uart4_rxd */
-                        0x074 (PIN_INPUT | MUX_MODE7)  /* gpmc_wpn.uart4_txd */ 
-                        0x158 (PIN_INPUT | MUX_MODE7)  /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_INPUT | MUX_MODE7)  /* spi0_cs0.uart0_txd */ 
-                	>;
-		};
-
-
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer4_pins>; 
-	status = "okay";
-};
-
-&timer5 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer5_pins>; 
-	status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-/ {
-i2c@3 {
-        compatible = "i2c-gpio";
-        pinctrl-names = "default";
-        pinctrl-0 = <&i2c_gpio_pins>;
-        status = "okay";
-
-        gpios = <&gpio0 2 0 /* sda */
-                 &gpio0 3 0 /* scl */
-                >;
-        /*i2c-gpio,sda-open-drain;
-        i2c-gpio,scl-open-drain;*/ 
-        i2c-gpio,delay-us = <1>;        /* ~200 kHz */
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-       egalax_ts@2A {
-                compatible = "eeti,egalax_i2c";
-                reg = <0x2A>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 8>;
-                int-gpios = <&gpio2 1 0>;
-		linux,wakeup;
-        };
-
-	mcp7940x: rtc@6f {
-		compatible = "microchip,mcp7940x";
-		reg = <0x6f>;
-		};
-        };
-
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-
-/*
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-*/
-
-	gpio_gfa: gpio_gfa@0 {
-		compatible = "fairchild,74hc595";
-		reg = <0>;
-		gpio-controller;
-		#gpio-cells = <2>;
-		registers-number = <1>;
-		spi-max-frequency = <1000000>;
-	};
-
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-
-
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
- panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                invert-pxl-clk    = <1>;   
-                };
-	display-timings {
-		1280x800 {
-			hactive         = <1280>;
-			vactive         = <800>;
-			hback-porch     = <50>;
-			hfront-porch    = <60>;
-			hsync-len       = <50>;
-			vback-porch     = <10>;
-			vfront-porch    = <8>;
-			vsync-len       = <5>;
-			clock-frequency = <72000000>;
-			hsync-active    = <0>;
-			vsync-active    = <0>;
-			de-active	= <1>;
-			pixelclk-active = <0>;
-			};
-		};
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-
-/ {
-
-
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-
-        pwm4: dmtimer-pwm@4 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer4>;
-                #pwm-cells = <3>;
-        };
-
-        pwm5: dmtimer-pwm@5 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer5>;
-                #pwm-cells = <3>;
-        };
-
-	pwmleds {
-		compatible = "pwm-leds";
-		gfa-backlight { 
-			pwms = <&pwm4 0 1000000 0>;
-			label = "backlight";
-			max-brightness = <255>;
-		};
-
-		gfa-leds { 
-			pwms = <&pwm5 0 1000000 0>;
-			label = "led_brightness";
-			max-brightness = <255>;
-		};
-	};
-
-
-	gfa_panel_leds {
-		compatible = "gpio-leds";
-
-		led0 {
-			label = "GfA-LED0";
-			gpios = <&gpio_gfa 0 0>;
-			linux,default-trigger = "default-on";
-		};
-
-		led1 {
-			label = "GfA-LED1";
-			gpios = <&gpio_gfa 1 0>;
-			linux,default-trigger = "mmc1";
-		};
-
-		led2 {
-			label = "GfA-LED2";
-			gpios = <&gpio_gfa 2 0>;
-			linux,default-trigger = "heartbeat";
-		};
-
-
-	};
-
-               gpio_keys {
-                        compatible = "gpio-keys";
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&di_pins_default>;
-
-                        #address-cells = <1>;
-                        #size-cells = <0>;
-
-                        button@1 {
-                                debounce_interval = <50>;
-                                linux,code = <60>;
-                                label = "F2";
-                                gpios = <&gpio0 30 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@2 {
-                                debounce_interval = <50>;
-                                linux,code = <59>;
-                                label = "F1";
-                                gpios = <&gpio0 31 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@3 {
-                                debounce_interval = <50>;
-                                linux,code = <62>;
-                                label = "F4";
-                                gpios = <&gpio0 5 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@4 {
-                                debounce_interval = <50>;
-                                linux,code = <61>;
-                                label = "F3";
-                                gpios = <&gpio0 4 0x0>;
-                                gpio-key,wakeup;
-                        };
-                };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display002";
-		display_dtb = "Display002_10_is2bitbang.dtb";
-		display_physical_width = "219"; /* in mm */
-		display_physical_height = "138"; /* in mm */
-	};
-};

+ 0 - 439
board/GfA/Display001/DTS_4.4/Display002_4.dts

@@ -1,439 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-              	i2c2_pins: pinmux_i2c2_pins { 
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-                        pinctrl-single,pins = <
-                               0x090 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_advn_ale.timer4 */
-				>;
-				};
-
-		timer5_pins: pinmux_timer5_pins {
-                        pinctrl-single,pins = <
-                               0x09c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_ben0_cle.timer5 */
-				>;
-				};
-
-		di_pins_default: pinmux_di_pins_default {
-                        pinctrl-single,pins = < 
-                        0x070 (PIN_INPUT | MUX_MODE7)  /* gpmc_wait0.uart4_rxd */
-                        0x074 (PIN_INPUT | MUX_MODE7)  /* gpmc_wpn.uart4_txd */ 
-                        0x158 (PIN_INPUT | MUX_MODE7)  /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_INPUT | MUX_MODE7)  /* spi0_cs0.uart0_txd */ 
-                	>;
-		};
-
-
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer4_pins>; 
-	status = "okay";
-};
-
-&timer5 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer5_pins>; 
-	status = "okay";
-};
-
-&i2c2 {
-    pinctrl-names = "default";
-    pinctrl-0 = <&i2c2_pins>;
-    status = "okay";
-    clock-frequency = <400000>;
-};
-
-
-&i2c2 {
-        polytouch: edt-ft5x06@38 {
-                compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                reg = <0x38>;
-                pinctrl-names = "default";
-                pinctrl-0 = <&edt_ft5x06_pins>;
-                interrupt-parent = <&gpio2>;
-                interrupts = <1 0>;
-                reset-gpios = <&gpio3 21 1>;
-        };
-
-        mcp7940x: rtc@6f {
-                compatible = "microchip,mcp7940x";
-                reg = <0x6f>;
-                };
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-
-/*
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-*/
-
-	gpio_gfa: gpio_gfa@0 {
-		compatible = "fairchild,74hc595";
-		reg = <0>;
-		gpio-controller;
-		#gpio-cells = <2>;
-		registers-number = <1>;
-		spi-max-frequency = <1000000>;
-	};
-
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-
-
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-                invert-pxl-clk    = <1>;   
-                };
-
-        display-timings {
-                480x272 {
-                        hactive         = <480>;
-                        vactive         = <272>;
-                        hback-porch     = <2>;
-                        hfront-porch    = <2>;
-                        hsync-len       = <41>;
-                        vback-porch     = <2>;
-                        vfront-porch    = <2>;
-                        vsync-len       = <10>;
-                        clock-frequency = <9000000>;
-                        hsync-active    = <0>;
-                        vsync-active    = <0>;
-                        de-active       = <1>;
-                        pixelclk-active = <1>;
-                };
-        };
-   };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-
-/ {
-
-
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-
-        pwm4: dmtimer-pwm@4 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer4>;
-                #pwm-cells = <3>;
-        };
-
-        pwm5: dmtimer-pwm@5 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer5>;
-                #pwm-cells = <3>;
-        };
-
-	pwmleds {
-		compatible = "pwm-leds";
-		gfa-backlight { 
-			pwms = <&pwm4 0 1000000 0>;
-			label = "backlight";
-			max-brightness = <255>;
-		};
-
-		gfa-leds { 
-			pwms = <&pwm5 0 1000000 0>;
-			label = "led_brightness";
-			max-brightness = <255>;
-		};
-	};
-
-
-	gfa_panel_leds {
-		compatible = "gpio-leds";
-
-		led0 {
-			label = "GfA-LED0";
-			gpios = <&gpio_gfa 0 0>;
-			linux,default-trigger = "default-on";
-		};
-
-		led1 {
-			label = "GfA-LED1";
-			gpios = <&gpio_gfa 1 0>;
-			linux,default-trigger = "mmc1";
-		};
-
-		led2 {
-			label = "GfA-LED2";
-			gpios = <&gpio_gfa 2 0>;
-			linux,default-trigger = "heartbeat";
-		};
-
-
-	};
-
-               gpio_keys {
-                        compatible = "gpio-keys";
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&di_pins_default>;
-
-                        #address-cells = <1>;
-                        #size-cells = <0>;
-
-                        button@1 {
-                                debounce_interval = <50>;
-                                linux,code = <60>;
-                                label = "F2";
-                                gpios = <&gpio0 30 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@2 {
-                                debounce_interval = <50>;
-                                linux,code = <59>;
-                                label = "F1";
-                                gpios = <&gpio0 31 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@3 {
-                                debounce_interval = <50>;
-                                linux,code = <62>;
-                                label = "F4";
-                                gpios = <&gpio0 5 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@4 {
-                                debounce_interval = <50>;
-                                linux,code = <61>;
-                                label = "F3";
-                                gpios = <&gpio0 4 0x0>;
-                                gpio-key,wakeup;
-                        };
-                };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display002";
-		display_dtb = "Display002_4.dtb";
-		display_physical_width = "96"; /* in mm */
-		display_physical_height = "55"; /* in mm */
-	};
-};

+ 0 - 473
board/GfA/Display001/DTS_4.4/Display002_7.dts

@@ -1,473 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-                i2c_gpio_pins: pinmux_i2c_gpio_pins {
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT | MUX_MODE7)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT | MUX_MODE7)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-                        pinctrl-single,pins = <
-                               0x090 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_advn_ale.timer4 */
-				>;
-				};
-
-		timer5_pins: pinmux_timer5_pins {
-                        pinctrl-single,pins = <
-                               0x09c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_ben0_cle.timer5 */
-				>;
-				};
-
-		di_pins_default: pinmux_di_pins_default {
-                        pinctrl-single,pins = < 
-                        0x070 (PIN_INPUT | MUX_MODE7)  /* gpmc_wait0.uart4_rxd */
-                        0x074 (PIN_INPUT | MUX_MODE7)  /* gpmc_wpn.uart4_txd */ 
-                        0x158 (PIN_INPUT | MUX_MODE7)  /* spi0_d1.uart0_rxd */
-                        0x15c (PIN_INPUT | MUX_MODE7)  /* spi0_cs0.uart0_txd */ 
-                	>;
-		};
-
-
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer4_pins>; 
-	status = "okay";
-};
-
-&timer5 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer5_pins>; 
-	status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-/ {
-i2c@3 {
-        compatible = "i2c-gpio";
-        pinctrl-names = "default";
-        pinctrl-0 = <&i2c_gpio_pins>;
-        status = "okay";
-
-        gpios = <&gpio0 2 0 /* sda */
-                 &gpio0 3 0 /* scl */
-                >;
-        /*i2c-gpio,sda-open-drain;
-        i2c-gpio,scl-open-drain;*/ 
-        i2c-gpio,delay-us = <1>;        /* ~200 kHz */
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-        polytouch: edt-ft5x06@38 {
-                        compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                        reg = <0x38>;
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&edt_ft5x06_pins>;
-                        interrupt-parent = <&gpio2>;
-                        interrupts = <1 8>;
-                        reset-gpios = <&gpio3 21 1>;
-			max_x = <800>;
-			max_y = <480>;
-                };
-
-        maxtouch: atmel_mxt_ts@4a {
-                        compatible = "atmel,maxtouch";
-                   	invert_y;
-			reg = <0x4a>;
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&edt_ft5x06_pins>;
-                        interrupt-parent = <&gpio2>;
-                        interrupts = <1 8>;
-                };
-
-	mcp7940x: rtc@6f {
-		compatible = "microchip,mcp7940x";
-		reg = <0x6f>;
-		};
-        };
-
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-
-/*
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-*/
-
-	gpio_gfa: gpio_gfa@0 {
-		compatible = "fairchild,74hc595";
-		reg = <0>;
-		gpio-controller;
-		#gpio-cells = <2>;
-		registers-number = <1>;
-		spi-max-frequency = <1000000>;
-	};
-
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-
-
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-               };
-
-        display-timings {
-			800x480 {
-				hactive         = <800>;
-				vactive         = <480>;
-				hback-porch     = <88>;
-				hfront-porch    = <40>;
-				hsync-len       = <128>;
-				vback-porch     = <33>;
-				vfront-porch    = <10>;
-				vsync-len       = <2>;
-				clock-frequency = <33000000>;
-				hsync-active    = <0>;
-				vsync-active    = <0>;
-				de-active	= <1>;
-				pixelclk-active = <0>;
-			};
-
-
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-
-/ {
-
-
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-
-        pwm4: dmtimer-pwm@4 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer4>;
-                #pwm-cells = <3>;
-        };
-
-        pwm5: dmtimer-pwm@5 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer5>;
-                #pwm-cells = <3>;
-        };
-
-	pwmleds {
-		compatible = "pwm-leds";
-		gfa-backlight { 
-			pwms = <&pwm4 0 1000000 0>;
-			label = "backlight";
-			max-brightness = <255>;
-		};
-
-		gfa-leds { 
-			pwms = <&pwm5 0 1000000 0>;
-			label = "led_brightness";
-			max-brightness = <255>;
-		};
-	};
-
-
-	gfa_panel_leds {
-		compatible = "gpio-leds";
-
-		led0 {
-			label = "GfA-LED0";
-			gpios = <&gpio_gfa 0 0>;
-			linux,default-trigger = "default-on";
-		};
-
-		led1 {
-			label = "GfA-LED1";
-			gpios = <&gpio_gfa 1 0>;
-			linux,default-trigger = "mmc1";
-		};
-
-		led2 {
-			label = "GfA-LED2";
-			gpios = <&gpio_gfa 2 0>;
-			linux,default-trigger = "heartbeat";
-		};
-
-
-	};
-
-                 gpio_keys {
-                        compatible = "gpio-keys";
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&di_pins_default>;
-
-                        #address-cells = <1>;
-                        #size-cells = <0>;
-
-                        button@1 {
-				linux,input-type = <5>;
-                                debounce_interval = <50>;
-                                linux,code = <0x0f>;
-                                label = "IN_2";
-                                gpios = <&gpio0 31 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@2 {
-				linux,input-type = <5>;
-                                debounce_interval = <50>;
-                                linux,code = <0x10>;
-                                label = "IN_1";
-                                gpios = <&gpio0 30 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@3 {
-				linux,input-type = <5>;
-                                debounce_interval = <50>;
-                                linux,code = <0x11>;
-                                label = "IN_4";
-                                gpios = <&gpio0 4 0x0>;
-                                gpio-key,wakeup;
-                        };
-                        button@4 {
-				linux,input-type = <5>;
-                                debounce_interval = <50>;
-                                linux,code = <0x12>;
-                                label = "IN_3";
-                                gpios = <&gpio0 5 0x0>;
-                                gpio-key,wakeup;
-                        };
-                };
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display002";
-		display_dtb = "Display002_7.dtb";
-		display_physical_width = "153"; /* in mm */
-		display_physical_height = "92"; /* in mm */
-	};
-};

+ 0 - 472
board/GfA/Display001/DTS_4.4/Display002_7_rs485.dts

@@ -1,472 +0,0 @@
-/*
- * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-/dts-v1/;
-
-#include "am33xx.dtsi"
-#include "am335x-bone-common.dtsi"
-
-&ldo3_reg {
-	regulator-min-microvolt = <1800000>;
-	regulator-max-microvolt = <1800000>;
-	regulator-always-on;
-};
-
-&mmc1 {
-	vmmc-supply = <&vmmcsd_fixed>;
-};
-
-&mmc2 {
-	vmmc-supply = <&vmmcsd_fixed>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&emmc_pins>;
-	bus-width = <8>;
-	ti,non-removable;
-	status = "okay";
-};
-
-&am33xx_pinmux {
-		lcd_pins_default: lcd_pins_default {
-			pinctrl-single,pins = <
-				0x20 0x01	/* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-				0x24 0x01	/* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-				0x28 0x01	/* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-				0x2c 0x01	/* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-				0x30 0x01	/* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-				0x34 0x01	/* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-				0x38 0x01	/* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-				0x3c 0x01	/* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-				0xa0 0x00	/* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-				0xa4 0x00	/* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-				0xa8 0x00	/* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-				0xac 0x00	/* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-				0xb0 0x00	/* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-				0xb4 0x00	/* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-				0xb8 0x00	/* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-				0xbc 0x00	/* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-				0xc0 0x00	/* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-				0xc4 0x00	/* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-				0xc8 0x00	/* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-				0xcc 0x00	/* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-				0xd0 0x00	/* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-				0xd4 0x00	/* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-				0xd8 0x00	/* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-				0xdc 0x00	/* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-				0xe0 0x00	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 0x00	/* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-				0xe8 0x00	/* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-				0xec 0x00	/* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-			>;
-		};
-
-		lcd_pins_sleep: lcd_pins_sleep {
-			pinctrl-single,pins = <
-				0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data16 */
-				0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data17 */
-				0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data18 */
-				0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data19 */
-				0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data20 */
-				0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data21 */
-				0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data22 */
-				0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data23 */
-				0xa0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data0.lcd_data0 */
-				0xa4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data1.lcd_data1 */
-				0xa8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data2.lcd_data2 */
-				0xac (PULL_DISABLE | MUX_MODE7)		/* lcd_data3.lcd_data3 */
-				0xb0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data4.lcd_data4 */
-				0xb4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data5.lcd_data5 */
-				0xb8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data6.lcd_data6 */
-				0xbc (PULL_DISABLE | MUX_MODE7)		/* lcd_data7.lcd_data7 */
-				0xc0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data8.lcd_data8 */
-				0xc4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data9.lcd_data9 */
-				0xc8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data10.lcd_data10 */
-				0xcc (PULL_DISABLE | MUX_MODE7)		/* lcd_data11.lcd_data11 */
-				0xd0 (PULL_DISABLE | MUX_MODE7)		/* lcd_data12.lcd_data12 */
-				0xd4 (PULL_DISABLE | MUX_MODE7)		/* lcd_data13.lcd_data13 */
-				0xd8 (PULL_DISABLE | MUX_MODE7)		/* lcd_data14.lcd_data14 */
-				0xdc (PULL_DISABLE | MUX_MODE7)		/* lcd_data15.lcd_data15 */
-				0xe0 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-				0xe4 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
-				0xe8 (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
-				0xec (PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
-			>;
-		};
-
-
-                i2c_gpio_pins: pinmux_i2c_gpio_pins {
-                        pinctrl-single,pins = <
-                                0x150 (PIN_INPUT | MUX_MODE7)    /* spi0_sclk.i2c2_sda */
-                                0x154 (PIN_INPUT | MUX_MODE7)    /* spi0_d0.i2c2_scl */
-                        >;
-                };
-
-               spi1_pins: pinmux_spi1_pins {
-                        pinctrl-single,pins = <
-                                0x190 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkx.spi1_sclk */
-                                0x194 (PIN_INPUT_PULLUP | MUX_MODE3)  /* mcasp0_fsx.spi1_d0 */
-                                0x198 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_axr0.spi1_d1 */
-                                0x19c (PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcasp0_ahclrk.spi1_cs0 */
-                                0x164 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* ecap0_in.pwm0_out */
-                        >;
-                };
-
-
-		edt_ft5x06_pins: pinmux_edt_ft5x06_pins{
-                        pinctrl-single,pins = <
-                                0x1ac (PIN_OUTPUT | MUX_MODE7)    /* mcasp0_ahclkx.gpio3.21 RESET TOUCH P9_25*/
-                                0x8c  (PIN_INPUT | MUX_MODE7)    /* gpmc_clk_mux0.gpio2.1  INT TOUCH P8_18 */
-                        >;
-
-		};
-
-              	igt_emerg_pins: pinmux_igt_emerg_pins {
-                        pinctrl-single,pins = <
-                                0x048 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)    /* ehrpwm1a.gpio1.18 emerg */
-                                0x04C (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /*ehrpwm1b.gpio1.19 igt*/ 
-                        >;
-                };
-
-              	uart4_pins_default: pinmux_uart4_pins_default {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLUP | MUX_MODE6)    /* gpmc_wait0.uart4_rxd */
-                                0x074 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_wpn.uart4_txd */ 
-				0x078 (PIN_OUTPUT | MUX_MODE7)		/* gpmc_ben1.gpio1.28 */
-                        >;
-                };
-
-                uart4_pins_sleep: pinmux_uart4_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x070 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                                0x074 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-				0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
-                        >;
-                };
-
-               uart1_pins_default: pinmux_uart1_pins_default {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_OUTPUT | MUX_MODE0)  	/* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-
-                uart1_pins_sleep: pinmux_uart1_pins_sleep {
-                        pinctrl-single,pins = <
-                                0x180 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* uart1_rxd.uart1_rxd */
-                                0x184 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */ 
-				0x178 (PIN_INPUT_PULLDOWN | MUX_MODE0)	/* i2c2_sda.uart1_ctsn */
-                                0x17c (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* i2c2_scl.uart1_rtsn */
-                        >;
-                };
-
-		timer7_pins: pinmux_timer7_pins {
-                        pinctrl-single,pins = <
-                               0x094 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_oen_ren.timer7 */
-				>;
-				};
-
-		timer4_pins: pinmux_timer4_pins {
-                        pinctrl-single,pins = <
-                               0x090 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_advn_ale.timer4 */
-				>;
-				};
-
-		timer5_pins: pinmux_timer5_pins {
-                        pinctrl-single,pins = <
-                               0x09c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)  /* gpmc_ben0_cle.timer5 */
-				>;
-				};
-
-
-
-};
-
-&timer7 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer7_pins>; 
-	status = "okay";
-};
-
-&timer4 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer4_pins>; 
-	status = "okay";
-};
-
-&timer5 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&timer5_pins>; 
-	status = "okay";
-};
-
-&i2c0 {
-	hdmi1: hdmi@70 {
-	      compatible = "nxp,tda998x";
-	      reg = <0x70>;
-	};
-};
-
-/ {
-i2c@3 {
-        compatible = "i2c-gpio";
-        pinctrl-names = "default";
-        pinctrl-0 = <&i2c_gpio_pins>;
-        status = "okay";
-
-        gpios = <&gpio0 2 0 /* sda */
-                 &gpio0 3 0 /* scl */
-                >;
-        /*i2c-gpio,sda-open-drain;
-        i2c-gpio,scl-open-drain;*/ 
-        i2c-gpio,delay-us = <1>;        /* ~200 kHz */
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-        polytouch: edt-ft5x06@38 {
-                        compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
-                        reg = <0x38>;
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&edt_ft5x06_pins>;
-                        interrupt-parent = <&gpio2>;
-                        interrupts = <1 8>;
-                        reset-gpios = <&gpio3 21 1>;
-			max_x = <800>;
-			max_y = <480>;
-                };
-
-        maxtouch: atmel_mxt_ts@4a {
-                        compatible = "atmel,maxtouch";
-			reg = <0x4a>;
-                        pinctrl-names = "default";
-                        pinctrl-0 = <&edt_ft5x06_pins>;
-                        interrupt-parent = <&gpio2>;
-                        interrupts = <1 8>;
-                };
-
-	mcp7940x: rtc@6f {
-		compatible = "microchip,mcp7940x";
-		reg = <0x6f>;
-		};
-        };
-
-};
-
-&spi1 {
-	pinctrl-names = "default";
-        pinctrl-0 = <&spi1_pins>;
-
-	clock-frequency = <1000000>;
-        status = "okay";
-
-/*
-	spi1_0{
-		compatible = "spidev";
-                reg = <0>;
-		spi-max-frequency = <10000000>;
-        };
-*/
-
-	gpio_gfa: gpio_gfa@0 {
-		compatible = "fairchild,74hc595";
-		reg = <0>;
-		gpio-controller;
-		#gpio-cells = <2>;
-		registers-number = <1>;
-		spi-max-frequency = <1000000>;
-	};
-
-
-	spi1_1{
-		compatible = "spidev";
-                reg = <1>;
-		spi-max-frequency = <10000000>;
-        };
-
-
-};
-
-&lcdc {
-        status = "okay";
-};
-
-/ {
-  panel {
-	compatible = "ti,tilcdc,panel";
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&lcd_pins_default>;
-        pinctrl-1 = <&lcd_pins_sleep>;
-        status = "okay";
-
-       panel-info {
-                ac-bias           = <255>;
-                ac-bias-intrpt    = <0>;  
-                dma-burst-sz      = <16>; 
-                bpp               = <32>; 
-                fdd               = <0x80>;
-                sync-edge         = <0>;   
-                sync-ctrl         = <1>;   
-                raster-order      = <0>;   
-                fifo-th           = <0>;   
-               };
-
-        display-timings {
-			800x480 {
-				hactive         = <800>;
-				vactive         = <480>;
-				hback-porch     = <88>;
-				hfront-porch    = <40>;
-				hsync-len       = <128>;
-				vback-porch     = <33>;
-				vfront-porch    = <10>;
-				vsync-len       = <2>;
-				clock-frequency = <33000000>;
-				hsync-active    = <0>;
-				vsync-active    = <0>;
-				de-active	= <1>;
-				pixelclk-active = <0>;
-			};
-
-
-        };
-  };
-};
-
-/*
-&tscadc {
-        status = "okay";
-        tsc {
-                ti,wires = <4>;
-                ti,x-plate-resistance = <200>;
-                ti,coordinate-readouts = <5>; 
-                ti,wire-config = <0x00 0x11 0x22 0x33>;
-        };
-};
-*/
-
-&tscadc {
-        status = "okay";
-};
-
-&am335x_adc {
-        ti,adc-channels = <0 1 2 3 4 5 6 7>;
-};
-
-&uart4 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart4_pins_default>;
-        pinctrl-1 = <&uart4_pins_sleep>;
-
-        status = "okay";
-
-	rts-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	rs485-rts-active-high;
-	rs485-rts-delay = <0 0 100>;
-	linux,rs485-enabled-at-boot-time;
-	rs485-rx-during-tx;
-};
-
-&uart1 {
-	pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&uart1_pins_default>;
-        pinctrl-1 = <&uart1_pins_sleep>;
-
-        status = "okay";
-};
-
-
-/ {
-
-        pwm7: dmtimer-pwm@7 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer7>;
-                #pwm-cells = <3>;
-        };
-
-
-        pwm-beeper {
-                compatible = "pwm-beeper";
-                pwms = <&pwm7 0 0 0>;
-        };
-
-        pwm4: dmtimer-pwm@4 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer4>;
-                #pwm-cells = <3>;
-        };
-
-        pwm5: dmtimer-pwm@5 {
-                compatible = "ti,omap-dmtimer-pwm";
-                ti,timers = <&timer5>;
-                #pwm-cells = <3>;
-        };
-
-	pwmleds {
-		compatible = "pwm-leds";
-		gfa-backlight { 
-			pwms = <&pwm4 0 1000000 0>;
-			label = "backlight";
-			max-brightness = <255>;
-		};
-
-		gfa-leds { 
-			pwms = <&pwm5 0 1000000 0>;
-			label = "led_brightness";
-			max-brightness = <255>;
-		};
-	};
-
-
-	gfa_panel_leds {
-		compatible = "gpio-leds";
-		pinctrl-names = "default";
-		pinctrl-0 = <&igt_emerg_pins>; 	
-
-		emerg {
-			label = "EMERG";
-			gpios = <&gpio1 18 0>;
-			default-state = "off";
-		};
-
-		ignit {
-			label = "IGNIT";
-			gpios = <&gpio1 19 0>;
-			default-state = "off";
-		};
-
-		led0 {
-			label = "GfA-LED0";
-			gpios = <&gpio_gfa 0 0>;
-			linux,default-trigger = "default-on";
-		};
-
-		led1 {
-			label = "GfA-LED1";
-			gpios = <&gpio_gfa 1 0>;
-			linux,default-trigger = "mmc1";
-		};
-
-		led2 {
-			label = "GfA-LED2";
-			gpios = <&gpio_gfa 2 0>;
-			linux,default-trigger = "heartbeat";
-		};
-
-	};
-
-               
-};
-
-/ {
-	vendorinfo { 
-		vendor_name = "GfA Display002";
-		display_dtb = "Display002_7_rs485.dtb";
-		display_physical_width = "154.08"; /* in mm */
-		display_physical_height = "85.92"; /* in mm */
-	};
-};

+ 244 - 0
board/GfA/Display001/DTS_5.0/SOPINEA64.dts

@@ -0,0 +1,244 @@
+/*
+ * Copyright (c) 2017 Icenowy Zheng <icenowy@aosc.xyz>
+ *
+ * Based on sun50i-a64-pine64.dts, which is:
+ *   Copyright (c) 2016 ARM Ltd.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This library 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.
+ *
+ *     This library is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include "./allwinner/sun50i-a64-sopine.dtsi"
+
+/ {
+	model = "SoPine with baseboard";
+	compatible = "pine64,sopine-baseboard", "pine64,sopine",
+		     "allwinner,sun50i-a64";
+
+	aliases {
+		ethernet0 = &emac;
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con_in: endpoint {
+				remote-endpoint = <&hdmi_out_con>;
+			};
+		};
+	};
+
+	reg_vcc1v8: vcc1v8 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc1v8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+	};
+
+ wifi_pwrseq: wifi_pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
+ };
+
+};
+
+&ac_power_supply {
+	status = "okay";
+};
+
+&battery_power_supply {
+	status = "okay";
+};
+
+&codec {
+	status = "okay";
+};
+
+&codec_analog {
+	status = "okay";
+};
+
+&dai {
+	status = "okay";
+};
+
+&de {
+	status = "okay";
+};
+
+&ehci0 {
+	status = "okay";
+};
+
+&ehci1 {
+	status = "okay";
+};
+
+&emac {
+	pinctrl-names = "default";
+	pinctrl-0 = <&rgmii_pins>;
+	phy-mode = "rgmii";
+	phy-handle = <&ext_rgmii_phy>;
+	phy-supply = <&reg_dc1sw>;
+	status = "okay";
+};
+
+&hdmi {
+	hvcc-supply = <&reg_dldo1>;
+	status = "okay";
+};
+
+&hdmi_out {
+	hdmi_out_con: endpoint {
+		remote-endpoint = <&hdmi_con_in>;
+	};
+};
+
+&mdio {
+	ext_rgmii_phy: ethernet-phy@1 {
+		compatible = "ethernet-phy-ieee802.3-c22";
+		reg = <1>;
+	};
+};
+
+&mmc1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc1_pins>;
+ vmmc-supply = <&reg_dldo4>;
+ vqmmc-supply = <&reg_eldo1>;
+ mmc-pwrseq = <&wifi_pwrseq>;
+ non-removable;
+ bus-width = <4>;
+ status = "okay";
+};
+
+&mmc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc2_pins>;
+	vmmc-supply = <&reg_dcdc1>;
+	vqmmc-supply = <&reg_vcc1v8>;
+	bus-width = <8>;
+	non-removable;
+	cap-mmc-hw-reset;
+	status = "okay";
+};
+
+&ohci0 {
+	status = "okay";
+};
+
+&ohci1 {
+	status = "okay";
+};
+
+&reg_dc1sw {
+	regulator-name = "vcc-phy";
+};
+
+&reg_dldo1 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-hdmi";
+};
+
+&reg_dldo2 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-mipi";
+};
+
+&reg_dldo4 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-wifi";
+};
+
+&simplefb_hdmi {
+	vcc-hdmi-supply = <&reg_dldo1>;
+};
+
+&sound {
+	simple-audio-card,aux-devs = <&codec_analog>;
+	simple-audio-card,widgets = "Microphone", "Microphone Jack",
+				    "Headphone", "Headphone Jack";
+	simple-audio-card,routing =
+			"Left DAC", "AIF1 Slot 0 Left",
+			"Right DAC", "AIF1 Slot 0 Right",
+			"Headphone Jack", "HP",
+			"AIF1 Slot 0 Left ADC", "Left ADC",
+			"AIF1 Slot 0 Right ADC", "Right ADC",
+			"MIC2", "Microphone Jack";
+	status = "okay";
+};
+
+&uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart0_pb_pins>;
+	status = "okay";
+};
+
+&uart1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
+ uart-has-rtscts = <1>;
+ status = "okay";
+
+ bluetooth {
+ compatible = "realtek,rtl8723bs-bt";
+ device-wake-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
+ host-wake-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
+ };
+};
+
+&usb_otg {
+	dr_mode = "host";
+	status = "okay";
+};
+
+&usbphy {
+	status = "okay";
+};

+ 0 - 5841
board/GfA/Display001/Display001_4.4.104_bone23_defconfig

@@ -1,5841 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 4.4.145 Kernel Configuration
-#
-CONFIG_ARM=y
-CONFIG_ARM_HAS_SG_CHAIN=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_ARM_DMA_USE_IOMMU=y
-CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
-CONFIG_MIGHT_HAVE_PCI=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_ARCH_HAS_BANDGAP=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_PGTABLE_LEVELS=2
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_IRQ_WORK=y
-CONFIG_BUILDTIME_EXTABLE_SORT=y
-
-#
-# General setup
-#
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION="-bone23"
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_LZ4=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_XZ is not set
-# CONFIG_KERNEL_LZO is not set
-# CONFIG_KERNEL_LZ4 is not set
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_CROSS_MEMORY_ATTACH=y
-CONFIG_FHANDLE=y
-# CONFIG_USELIB is not set
-CONFIG_AUDIT=y
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_AUDITSYSCALL=y
-CONFIG_AUDIT_WATCH=y
-CONFIG_AUDIT_TREE=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_HANDLE_DOMAIN_IRQ=y
-# CONFIG_IRQ_DOMAIN_DEBUG is not set
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_HZ_PERIODIC=y
-# CONFIG_NO_HZ_IDLE is not set
-# CONFIG_NO_HZ is not set
-CONFIG_HIGH_RES_TIMERS=y
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-
-#
-# RCU Subsystem
-#
-CONFIG_PREEMPT_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-# CONFIG_TASKS_RCU is not set
-CONFIG_RCU_STALL_COMMON=y
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_RCU_EXPEDITE_BOOT is not set
-CONFIG_BUILD_BIN2C=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_GENERIC_SCHED_CLOCK=y
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_PIDS=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-CONFIG_MEMCG_SWAP_ENABLED=y
-CONFIG_MEMCG_KMEM=y
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_BLK_CGROUP=y
-# CONFIG_DEBUG_BLK_CGROUP is not set
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-# CONFIG_BLK_DEV_INITRD is not set
-CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_HAVE_UID16=y
-CONFIG_BPF=y
-CONFIG_EXPERT=y
-CONFIG_UID16=y
-CONFIG_MULTIUSER=y
-# CONFIG_SGETMASK_SYSCALL is not set
-CONFIG_SYSFS_SYSCALL=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_BPF_SYSCALL=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_ADVISE_SYSCALLS=y
-# CONFIG_USERFAULTFD is not set
-CONFIG_MEMBARRIER=y
-CONFIG_EMBEDDED=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-# CONFIG_SYSTEM_DATA_VERIFICATION is not set
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-CONFIG_KEXEC_CORE=y
-# CONFIG_OPROFILE is not set
-CONFIG_HAVE_OPROFILE=y
-CONFIG_KPROBES=y
-# CONFIG_JUMP_LABEL is not set
-CONFIG_UPROBES=y
-# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_ARCH_USE_BUILTIN_BSWAP=y
-CONFIG_KRETPROBES=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_SECCOMP_FILTER=y
-CONFIG_HAVE_CC_STACKPROTECTOR=y
-CONFIG_CC_STACKPROTECTOR=y
-# CONFIG_CC_STACKPROTECTOR_NONE is not set
-# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
-CONFIG_CC_STACKPROTECTOR_STRONG=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_REL=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_OLD_SIGACTION=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
-CONFIG_MODULES_TREE_LOOKUP=y
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_THROTTLING=y
-# CONFIG_BLK_CMDLINE_PARSER is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_AIX_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-# CONFIG_CMDLINE_PARTITION is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_CFQ_GROUP_IOSCHED=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_UNINLINE_SPIN_UNLOCK=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_FREEZER=y
-
-#
-# System Type
-#
-CONFIG_MMU=y
-CONFIG_ARCH_MULTIPLATFORM=y
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C24XX is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP1 is not set
-
-#
-# Multiple platform selection
-#
-
-#
-# CPU Core family selection
-#
-# CONFIG_ARCH_MULTI_V6 is not set
-CONFIG_ARCH_MULTI_V7=y
-CONFIG_ARCH_MULTI_V6_V7=y
-# CONFIG_ARCH_MULTI_CPU_AUTO is not set
-# CONFIG_ARCH_VIRT is not set
-# CONFIG_ARCH_MVEBU is not set
-# CONFIG_ARCH_ALPINE is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_BCM is not set
-# CONFIG_ARCH_BERLIN is not set
-# CONFIG_ARCH_DIGICOLOR is not set
-# CONFIG_ARCH_HIGHBANK is not set
-# CONFIG_ARCH_HISI is not set
-# CONFIG_ARCH_KEYSTONE is not set
-# CONFIG_ARCH_MESON is not set
-# CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_MEDIATEK is not set
-CONFIG_ARCH_OMAP=y
-
-#
-# TI OMAP Common Features
-#
-
-#
-# OMAP Feature Selections
-#
-CONFIG_OMAP_RESET_CLOCKS=y
-CONFIG_OMAP_MUX=y
-CONFIG_OMAP_MUX_DEBUG=y
-CONFIG_OMAP_MUX_WARNINGS=y
-CONFIG_OMAP_32K_TIMER=y
-CONFIG_OMAP_DM_TIMER=y
-CONFIG_OMAP_PM_NOOP=y
-CONFIG_MACH_OMAP_GENERIC=y
-
-#
-# TI OMAP/AM/DM/DRA Family
-#
-# CONFIG_ARCH_OMAP3 is not set
-# CONFIG_ARCH_OMAP4 is not set
-# CONFIG_SOC_OMAP5 is not set
-CONFIG_SOC_AM33XX=y
-# CONFIG_SOC_AM43XX is not set
-# CONFIG_SOC_DRA7XX is not set
-CONFIG_ARCH_OMAP2PLUS=y
-
-#
-# TI OMAP2/3/4 Specific Features
-#
-CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
-CONFIG_SOC_HAS_OMAP2_SDRC=y
-
-#
-# OMAP Legacy Platform Data Board Type
-#
-# CONFIG_ARCH_QCOM is not set
-# CONFIG_ARCH_ROCKCHIP is not set
-# CONFIG_ARCH_SOCFPGA is not set
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_STI is not set
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SHMOBILE_MULTI is not set
-# CONFIG_ARCH_SUNXI is not set
-# CONFIG_ARCH_SIRF is not set
-# CONFIG_ARCH_TEGRA is not set
-# CONFIG_ARCH_UNIPHIER is not set
-# CONFIG_ARCH_U8500 is not set
-# CONFIG_ARCH_VEXPRESS is not set
-# CONFIG_ARCH_WM8850 is not set
-# CONFIG_ARCH_ZX is not set
-# CONFIG_ARCH_ZYNQ is not set
-
-#
-# Processor Type
-#
-CONFIG_CPU_V7=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-CONFIG_CPU_PABRT_V7=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-# CONFIG_ARM_LPAE is not set
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-CONFIG_ARM_THUMB=y
-CONFIG_ARM_THUMBEE=y
-CONFIG_ARM_VIRT_EXT=y
-CONFIG_SWP_EMULATE=y
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_BPREDICT_DISABLE is not set
-CONFIG_KUSER_HELPERS=y
-CONFIG_VDSO=y
-CONFIG_OUTER_CACHE=y
-CONFIG_OUTER_CACHE_SYNC=y
-CONFIG_MIGHT_HAVE_CACHE_L2X0=y
-CONFIG_CACHE_L2X0=y
-CONFIG_PL310_ERRATA_588369=y
-CONFIG_PL310_ERRATA_727915=y
-# CONFIG_PL310_ERRATA_753970 is not set
-# CONFIG_PL310_ERRATA_769419 is not set
-CONFIG_ARM_L1_CACHE_SHIFT_6=y
-CONFIG_ARM_L1_CACHE_SHIFT=6
-CONFIG_ARM_DMA_MEM_BUFFERABLE=y
-CONFIG_ARM_HEAVY_MB=y
-# CONFIG_ARM_KERNMEM_PERMS is not set
-CONFIG_MULTI_IRQ_HANDLER=y
-CONFIG_ARM_ERRATA_430973=y
-CONFIG_ARM_ERRATA_720789=y
-CONFIG_ARM_ERRATA_754322=y
-CONFIG_ARM_ERRATA_775420=y
-# CONFIG_ARM_ERRATA_773022 is not set
-
-#
-# Bus support
-#
-# CONFIG_PCI is not set
-# CONFIG_PCI_DOMAINS_GENERIC is not set
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_HAVE_SMP=y
-# CONFIG_SMP is not set
-CONFIG_HAVE_ARM_ARCH_TIMER=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_3G_OPT is not set
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_ARM_PSCI=y
-CONFIG_ARCH_NR_GPIO=0
-CONFIG_PREEMPT=y
-CONFIG_HAVE_PREEMPT_LAZY=y
-# CONFIG_PREEMPT_NONE is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT__LL=y
-# CONFIG_PREEMPT_RTB is not set
-# CONFIG_PREEMPT_RT_FULL is not set
-CONFIG_PREEMPT_COUNT=y
-CONFIG_HZ_FIXED=0
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_200 is not set
-# CONFIG_HZ_250 is not set
-# CONFIG_HZ_300 is not set
-# CONFIG_HZ_500 is not set
-CONFIG_HZ_1000=y
-CONFIG_HZ=1000
-CONFIG_SCHED_HRTICK=y
-CONFIG_THUMB2_KERNEL=y
-CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11=y
-CONFIG_ARM_ASM_UNIFIED=y
-CONFIG_AEABI=y
-CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HAVE_ARCH_PFN_VALID=y
-CONFIG_HIGHMEM=y
-CONFIG_HIGHPTE=y
-CONFIG_CPU_SW_DOMAIN_PAN=y
-CONFIG_HW_PERF_EVENTS=y
-CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
-# CONFIG_ARM_MODULE_PLTS is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_NO_BOOTMEM=y
-CONFIG_MEMORY_ISOLATION=y
-# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_MEMORY_BALLOON=y
-CONFIG_BALLOON_COMPACTION=y
-CONFIG_COMPACTION=y
-CONFIG_MIGRATION=y
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_BOUNCE=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_NEED_PER_CPU_KM=y
-# CONFIG_CLEANCACHE is not set
-CONFIG_FRONTSWAP=y
-CONFIG_CMA=y
-# CONFIG_CMA_DEBUG is not set
-# CONFIG_CMA_DEBUGFS is not set
-CONFIG_CMA_AREAS=7
-CONFIG_ZSWAP=y
-CONFIG_ZPOOL=y
-CONFIG_ZBUD=y
-CONFIG_ZSMALLOC=m
-# CONFIG_PGTABLE_MAPPING is not set
-# CONFIG_ZSMALLOC_STAT is not set
-# CONFIG_IDLE_PAGE_TRACKING is not set
-CONFIG_FRAME_VECTOR=y
-CONFIG_FORCE_MAX_ZONEORDER=12
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-CONFIG_SECCOMP=y
-CONFIG_SWIOTLB=y
-CONFIG_IOMMU_HELPER=y
-# CONFIG_XEN is not set
-
-#
-# Boot options
-#
-CONFIG_USE_OF=y
-CONFIG_ATAGS=y
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
-CONFIG_CMDLINE=""
-CONFIG_KEXEC=y
-CONFIG_ATAGS_PROC=y
-# CONFIG_CRASH_DUMP is not set
-CONFIG_AUTO_ZRELADDR=y
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_STAT=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_CPUFREQ_DT=y
-# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
-# CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set
-# CONFIG_QORIQ_CPUFREQ is not set
-
-#
-# CPU Idle
-#
-# CONFIG_CPU_IDLE is not set
-# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
-CONFIG_KERNEL_MODE_NEON=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_BINFMT_SCRIPT=y
-# CONFIG_HAVE_AOUT is not set
-CONFIG_BINFMT_MISC=m
-CONFIG_COREDUMP=y
-
-#
-# Power management options
-#
-# CONFIG_SUSPEND is not set
-# CONFIG_HIBERNATION is not set
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-# CONFIG_APM_EMULATION is not set
-CONFIG_PM_OPP=y
-CONFIG_PM_CLK=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_CPU_SUSPEND=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_NET=y
-CONFIG_NET_INGRESS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_DIAG=m
-CONFIG_XFRM=y
-CONFIG_XFRM_ALGO=m
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-# CONFIG_XFRM_STATISTICS is not set
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=y
-CONFIG_INET=y
-CONFIG_WIREGUARD=m
-# CONFIG_WIREGUARD_DEBUG is not set
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_FIB_TRIE_STATS=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IP_TUNNEL=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-CONFIG_NET_FOU=m
-CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=m
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-CONFIG_INET_UDP_DIAG=m
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_TCP_CONG_DCTCP=m
-CONFIG_TCP_CONG_CDG=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=y
-CONFIG_IPV6_ILA=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_VTI=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-CONFIG_NETLABEL=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NET_PTP_CLASSIFY=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=m
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_INGRESS=y
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_NETLINK_ACCT=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_LOG_COMMON=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_PROCFS=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMEOUT=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CONNTRACK_LABELS=y
-CONFIG_NF_CT_PROTO_DCCP=m
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=m
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_GLUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_NF_NAT_PROTO_DCCP=m
-CONFIG_NF_NAT_PROTO_UDPLITE=m
-CONFIG_NF_NAT_PROTO_SCTP=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_REDIRECT=m
-CONFIG_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_INET=m
-# CONFIG_NF_TABLES_NETDEV is not set
-CONFIG_NFT_EXTHDR=m
-CONFIG_NFT_META=m
-CONFIG_NFT_CT=m
-CONFIG_NFT_RBTREE=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_COUNTER=m
-CONFIG_NFT_LOG=m
-CONFIG_NFT_LIMIT=m
-CONFIG_NFT_MASQ=m
-CONFIG_NFT_REDIR=m
-CONFIG_NFT_NAT=m
-CONFIG_NFT_QUEUE=m
-CONFIG_NFT_REJECT=m
-CONFIG_NFT_REJECT_INET=m
-CONFIG_NFT_COMPAT=m
-CONFIG_NETFILTER_XTABLES=y
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-CONFIG_NETFILTER_XT_SET=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_HMARK=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_LOG=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_NAT=m
-CONFIG_NETFILTER_XT_TARGET_NETMAP=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_NETFILTER_XT_MATCH_BPF=m
-CONFIG_NETFILTER_XT_MATCH_CGROUP=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ECN=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_L2TP=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_NFACCT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-CONFIG_IP_SET_HASH_IPMARK=m
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-CONFIG_IP_SET_HASH_MAC=m
-CONFIG_IP_SET_HASH_NETPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETNET=m
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_HASH_NETIFACE=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_PROTO_SCTP=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_FO=m
-CONFIG_IP_VS_OVF=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-
-#
-# IPVS SH scheduler
-#
-CONFIG_IP_VS_SH_TAB_BITS=8
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-CONFIG_NF_TABLES_IPV4=m
-CONFIG_NFT_CHAIN_ROUTE_IPV4=m
-CONFIG_NFT_REJECT_IPV4=m
-CONFIG_NFT_DUP_IPV4=m
-CONFIG_NF_TABLES_ARP=m
-CONFIG_NF_DUP_IPV4=m
-CONFIG_NF_LOG_ARP=m
-CONFIG_NF_LOG_IPV4=m
-CONFIG_NF_REJECT_IPV4=m
-CONFIG_NF_NAT_IPV4=m
-CONFIG_NFT_CHAIN_NAT_IPV4=m
-CONFIG_NF_NAT_MASQUERADE_IPV4=m
-CONFIG_NFT_MASQ_IPV4=m
-CONFIG_NFT_REDIR_IPV4=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_IP_NF_IPTABLES=y
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_RPFILTER=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=y
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_SYNPROXY=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_NF_TABLES_IPV6=m
-CONFIG_NFT_CHAIN_ROUTE_IPV6=m
-CONFIG_NFT_REJECT_IPV6=m
-CONFIG_NFT_DUP_IPV6=m
-CONFIG_NF_DUP_IPV6=m
-CONFIG_NF_REJECT_IPV6=m
-CONFIG_NF_LOG_IPV6=m
-CONFIG_NF_NAT_IPV6=m
-CONFIG_NFT_CHAIN_NAT_IPV6=m
-CONFIG_NF_NAT_MASQUERADE_IPV6=m
-CONFIG_NFT_MASQ_IPV6=m
-CONFIG_NFT_REDIR_IPV6=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RPFILTER=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_TARGET_SYNPROXY=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=m
-CONFIG_NF_TABLES_BRIDGE=m
-CONFIG_NFT_BRIDGE_META=m
-CONFIG_NFT_BRIDGE_REJECT=m
-CONFIG_NF_LOG_BRIDGE=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_TFRC_LIB=y
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-CONFIG_NET_DCCPPROBE=m
-CONFIG_IP_SCTP=m
-CONFIG_NET_SCTPPROBE=m
-# CONFIG_SCTP_DBG_OBJCNT is not set
-CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-CONFIG_SCTP_COOKIE_HMAC_MD5=y
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-CONFIG_RDS=m
-CONFIG_RDS_TCP=m
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-CONFIG_TIPC_MEDIA_UDP=y
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_DEBUGFS=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_MRP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_HAVE_NET_DSA=y
-# CONFIG_NET_DSA is not set
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_VLAN_8021Q_MVRP=y
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-# CONFIG_IPX is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-CONFIG_PHONET=m
-CONFIG_6LOWPAN=m
-CONFIG_6LOWPAN_NHC=m
-CONFIG_6LOWPAN_NHC_DEST=m
-CONFIG_6LOWPAN_NHC_FRAGMENT=m
-CONFIG_6LOWPAN_NHC_HOP=m
-CONFIG_6LOWPAN_NHC_IPV6=m
-CONFIG_6LOWPAN_NHC_MOBILITY=m
-CONFIG_6LOWPAN_NHC_ROUTING=m
-CONFIG_6LOWPAN_NHC_UDP=m
-CONFIG_IEEE802154=m
-# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
-CONFIG_IEEE802154_SOCKET=m
-CONFIG_IEEE802154_6LOWPAN=m
-CONFIG_MAC802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFB=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_CHOKE=m
-CONFIG_NET_SCH_QFQ=m
-CONFIG_NET_SCH_CODEL=m
-CONFIG_NET_SCH_FQ_CODEL=m
-CONFIG_NET_SCH_FQ=m
-CONFIG_NET_SCH_HHF=m
-CONFIG_NET_SCH_PIE=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_SCH_PLUG=m
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=m
-CONFIG_NET_CLS_BPF=m
-# CONFIG_NET_CLS_FLOWER is not set
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_EMATCH_CANID=m
-CONFIG_NET_EMATCH_IPSET=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-CONFIG_NET_ACT_VLAN=m
-CONFIG_NET_ACT_BPF=m
-CONFIG_NET_ACT_CONNMARK=m
-CONFIG_NET_CLS_IND=y
-CONFIG_NET_SCH_FIFO=y
-CONFIG_DCB=y
-CONFIG_DNS_RESOLVER=y
-CONFIG_BATMAN_ADV=m
-CONFIG_BATMAN_ADV_BLA=y
-CONFIG_BATMAN_ADV_DAT=y
-CONFIG_BATMAN_ADV_NC=y
-CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUG is not set
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=m
-CONFIG_OPENVSWITCH_VXLAN=m
-CONFIG_OPENVSWITCH_GENEVE=m
-# CONFIG_VSOCKETS is not set
-CONFIG_NETLINK_DIAG=m
-CONFIG_MPLS=y
-CONFIG_NET_MPLS_GSO=y
-CONFIG_MPLS_ROUTING=m
-CONFIG_MPLS_IPTUNNEL=m
-CONFIG_HSR=m
-# CONFIG_NET_SWITCHDEV is not set
-# CONFIG_NET_L3_MASTER_DEV is not set
-CONFIG_CGROUP_NET_PRIO=y
-CONFIG_CGROUP_NET_CLASSID=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-CONFIG_BPF_JIT=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_NET_TCPPROBE is not set
-CONFIG_NET_DROP_MONITOR=m
-# CONFIG_HAMRADIO is not set
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-CONFIG_CAN_GW=m
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-# CONFIG_CAN_SLCAN is not set
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-# CONFIG_CAN_LEDS is not set
-CONFIG_CAN_TI_HECC=m
-# CONFIG_CAN_FLEXCAN is not set
-# CONFIG_CAN_GRCAN is not set
-# CONFIG_CAN_RCAR is not set
-# CONFIG_CAN_SJA1000 is not set
-CONFIG_CAN_C_CAN=m
-CONFIG_CAN_C_CAN_PLATFORM=m
-# CONFIG_CAN_M_CAN is not set
-# CONFIG_CAN_CC770 is not set
-
-#
-# CAN SPI interfaces
-#
-CONFIG_CAN_MCP251X=m
-
-#
-# CAN USB interfaces
-#
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_ESD_USB2=m
-CONFIG_CAN_GS_USB=m
-CONFIG_CAN_KVASER_USB=m
-CONFIG_CAN_PEAK_USB=m
-CONFIG_CAN_8DEV_USB=m
-# CONFIG_CAN_SOFTING is not set
-# CONFIG_CAN_DEBUG_DEVICES is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
-CONFIG_BT_LE=y
-CONFIG_BT_6LOWPAN=m
-# CONFIG_BT_SELFTEST is not set
-CONFIG_BT_DEBUGFS=y
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_QCA=m
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTUSB_BCM=y
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_ATH3K=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIUART_3WIRE=y
-# CONFIG_BT_HCIUART_INTEL is not set
-CONFIG_BT_HCIUART_BCM=y
-CONFIG_BT_HCIUART_QCA=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_BT_WILINK=m
-CONFIG_AF_RXRPC=m
-# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
-# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-# CONFIG_CFG80211_DEBUGFS is not set
-# CONFIG_CFG80211_INTERNAL_REGDB is not set
-CONFIG_CFG80211_CRDA_SUPPORT=y
-CONFIG_CFG80211_WEXT=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_MINSTREL_HT=y
-# CONFIG_MAC80211_RC_MINSTREL_VHT is not set
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_MESSAGE_TRACING is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_RFKILL=y
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-# CONFIG_RFKILL_REGULATOR is not set
-# CONFIG_RFKILL_GPIO is not set
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-# CONFIG_NET_9P_DEBUG is not set
-# CONFIG_CAIF is not set
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-CONFIG_NFC_NCI=m
-CONFIG_NFC_NCI_SPI=m
-# CONFIG_NFC_NCI_UART is not set
-CONFIG_NFC_HCI=m
-CONFIG_NFC_SHDLC=y
-
-#
-# Near Field Communication (NFC) devices
-#
-CONFIG_NFC_PN533=m
-CONFIG_NFC_WILINK=m
-# CONFIG_NFC_TRF7970A is not set
-CONFIG_NFC_SIM=m
-CONFIG_NFC_PORT100=m
-# CONFIG_NFC_FDP is not set
-CONFIG_NFC_PN544=m
-CONFIG_NFC_PN544_I2C=m
-CONFIG_NFC_MICROREAD=m
-CONFIG_NFC_MICROREAD_I2C=m
-# CONFIG_NFC_MRVL_USB is not set
-# CONFIG_NFC_ST21NFCA is not set
-# CONFIG_NFC_ST_NCI is not set
-# CONFIG_NFC_NXP_NCI is not set
-# CONFIG_NFC_S3FWRN5_I2C is not set
-CONFIG_LWTUNNEL=y
-CONFIG_DST_CACHE=y
-CONFIG_HAVE_BPF_JIT=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-# CONFIG_UEVENT_HELPER is not set
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE="am335x-pm-firmware.elf am335x-bone-scale-data.bin am335x-evm-scale-data.bin am43x-evm-scale-data.bin"
-CONFIG_EXTRA_FIRMWARE_DIR="firmware"
-CONFIG_FW_LOADER_USER_HELPER=y
-# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_ALLOW_DEV_COREDUMP=y
-CONFIG_DEV_COREDUMP=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_GENERIC_CPU_DEVICES is not set
-CONFIG_SOC_BUS=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=y
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGMAP_IRQ=y
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_FENCE_TRACE is not set
-CONFIG_DMA_CMA=y
-
-#
-# Default contiguous memory area size:
-#
-CONFIG_CMA_SIZE_MBYTES=24
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_ALIGNMENT=8
-
-#
-# Bus devices
-#
-# CONFIG_ARM_CCI400_PMU is not set
-# CONFIG_ARM_CCI500_PMU is not set
-# CONFIG_ARM_CCN is not set
-# CONFIG_BRCMSTB_GISB_ARB is not set
-CONFIG_OMAP_INTERCONNECT=y
-CONFIG_OMAP_OCP2SCP=y
-CONFIG_VEXPRESS_CONFIG=y
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-CONFIG_MTD=y
-# CONFIG_MTD_TESTS is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-CONFIG_MTD_OF_PARTS=m
-CONFIG_MTD_AR7_PARTS=m
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-# CONFIG_SM_FTL is not set
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_SWAP=m
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_RAM=m
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_PHYSMAP_OF is not set
-CONFIG_MTD_PLATRAM=m
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-# CONFIG_MTD_DATAFLASH_OTP is not set
-CONFIG_MTD_M25P80=m
-CONFIG_MTD_SST25L=m
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOCG3 is not set
-CONFIG_MTD_NAND_ECC=y
-# CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_BCH=y
-CONFIG_MTD_NAND_ECC_BCH=y
-# CONFIG_MTD_SM_COMMON is not set
-# CONFIG_MTD_NAND_DENALI_DT is not set
-# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_OMAP2=m
-# CONFIG_MTD_NAND_OMAP_BCH is not set
-# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_DOCG4 is not set
-CONFIG_MTD_NAND_NANDSIM=m
-# CONFIG_MTD_NAND_BRCMNAND is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_NAND_HISI504 is not set
-CONFIG_MTD_ONENAND=y
-CONFIG_MTD_ONENAND_VERIFY_WRITE=y
-# CONFIG_MTD_ONENAND_GENERIC is not set
-# CONFIG_MTD_ONENAND_OTP is not set
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-
-#
-# LPDDR & LPDDR2 PCM memory drivers
-#
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-# CONFIG_MTD_LPDDR2_NVM is not set
-CONFIG_MTD_SPI_NOR=m
-CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_LIMIT=20
-# CONFIG_MTD_UBI_FASTMAP is not set
-# CONFIG_MTD_UBI_GLUEBI is not set
-CONFIG_MTD_UBI_BLOCK=y
-CONFIG_DTC=y
-CONFIG_OF=y
-# CONFIG_OF_UNITTEST is not set
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_DYNAMIC=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_NET=y
-CONFIG_OF_MDIO=y
-CONFIG_OF_MTD=y
-CONFIG_OF_RESERVED_MEM=y
-CONFIG_OF_RESOLVE=y
-CONFIG_OF_OVERLAY=y
-CONFIG_OF_CONFIGFS=y
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_NULL_BLK=m
-CONFIG_ZRAM=m
-CONFIG_ZRAM_LZ4_COMPRESS=y
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_OSD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
-# CONFIG_CDROM_PKTCDVD is not set
-CONFIG_ATA_OVER_ETH=m
-# CONFIG_MG_DISK is not set
-CONFIG_VIRTIO_BLK=m
-CONFIG_BLK_DEV_RBD=m
-
-#
-# Misc devices
-#
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-# CONFIG_DUMMY_IRQ is not set
-CONFIG_HWLAT_DETECTOR=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_APDS9802ALS=m
-CONFIG_ISL29003=m
-CONFIG_ISL29020=m
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1780=m
-CONFIG_SENSORS_BH1770=m
-CONFIG_SENSORS_APDS990X=m
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-CONFIG_TI_DAC7512=m
-# CONFIG_BMP085_I2C is not set
-# CONFIG_BMP085_SPI is not set
-# CONFIG_USB_SWITCH_FSA9480 is not set
-# CONFIG_LATTICE_ECP3_CONFIG is not set
-CONFIG_SRAM=y
-CONFIG_VEXPRESS_SYSCFG=y
-# CONFIG_BONE_CAPEMGR is not set
-# CONFIG_DEV_OVERLAYMGR is not set
-CONFIG_TIEQEP=m
-CONFIG_C2PORT=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=y
-CONFIG_EEPROM_AT25=y
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-CONFIG_SENSORS_LIS3_SPI=m
-CONFIG_SENSORS_LIS3_I2C=m
-
-#
-# Altera FPGA firmware download module
-#
-CONFIG_ALTERA_STAPL=m
-
-#
-# Intel MIC Bus Driver
-#
-
-#
-# SCIF Bus Driver
-#
-
-#
-# Intel MIC Host Driver
-#
-
-#
-# Intel MIC Card Driver
-#
-
-#
-# SCIF Driver
-#
-
-#
-# Intel MIC Coprocessor State Management (COSM) Drivers
-#
-
-#
-# Argus cape driver for beaglebone black
-#
-CONFIG_CAPE_BONE_ARGUS=y
-# CONFIG_BEAGLEBONE_PINMUX_HELPER is not set
-# CONFIG_ECHO is not set
-# CONFIG_CXL_BASE is not set
-# CONFIG_CXL_KERNEL_API is not set
-# CONFIG_CXL_EEH is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_NETLINK=y
-# CONFIG_SCSI_MQ_DEFAULT is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_ST=m
-CONFIG_CHR_DEV_OSST=m
-CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_UFSHCD=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-# CONFIG_SCSI_DEBUG is not set
-CONFIG_SCSI_VIRTIO=m
-CONFIG_SCSI_DH=y
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-CONFIG_SCSI_OSD_INITIATOR=m
-CONFIG_SCSI_OSD_ULD=m
-CONFIG_SCSI_OSD_DPRINT_SENSE=1
-# CONFIG_SCSI_OSD_DEBUG is not set
-CONFIG_ATA=y
-# CONFIG_ATA_NONSTANDARD is not set
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI_PLATFORM=y
-# CONFIG_AHCI_CEVA is not set
-CONFIG_AHCI_QORIQ=y
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-
-#
-# PATA SFF controllers with BMDMA
-#
-
-#
-# PIO-only SFF controllers
-#
-CONFIG_PATA_PLATFORM=y
-CONFIG_PATA_OF_PLATFORM=y
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-# CONFIG_MD_CLUSTER is not set
-# CONFIG_BCACHE is not set
-CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_MQ_DEFAULT is not set
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_BUFIO=m
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
-# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_MQ=m
-CONFIG_DM_CACHE_SMQ=m
-CONFIG_DM_CACHE_CLEANER=m
-CONFIG_DM_ERA=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_DELAY=m
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
-CONFIG_DM_SWITCH=m
-CONFIG_DM_LOG_WRITES=m
-CONFIG_TARGET_CORE=m
-CONFIG_TCM_IBLOCK=m
-CONFIG_TCM_FILEIO=m
-CONFIG_TCM_PSCSI=m
-CONFIG_TCM_USER2=m
-CONFIG_LOOPBACK_TARGET=m
-CONFIG_TCM_FC=m
-CONFIG_ISCSI_TARGET=m
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_EQUALIZER=m
-CONFIG_IFB=m
-CONFIG_NET_TEAM=m
-CONFIG_NET_TEAM_MODE_BROADCAST=m
-CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
-CONFIG_NET_TEAM_MODE_RANDOM=m
-CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
-CONFIG_NET_TEAM_MODE_LOADBALANCE=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_IPVLAN=m
-CONFIG_VXLAN=m
-CONFIG_GENEVE=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_TUN=m
-# CONFIG_TUN_VNET_CROSS_LE is not set
-CONFIG_VETH=m
-CONFIG_VIRTIO_NET=m
-CONFIG_NLMON=m
-CONFIG_ATM_DRIVERS=y
-CONFIG_ATM_DUMMY=m
-# CONFIG_ATM_TCP is not set
-
-#
-# CAIF transport drivers
-#
-# CONFIG_VHOST_NET is not set
-# CONFIG_VHOST_SCSI is not set
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
-
-#
-# Distributed Switch Architecture drivers
-#
-# CONFIG_NET_DSA_MV88E6XXX is not set
-# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
-CONFIG_ETHERNET=y
-# CONFIG_ALTERA_TSE is not set
-# CONFIG_NET_VENDOR_ARC is not set
-# CONFIG_NET_VENDOR_AURORA is not set
-CONFIG_NET_CADENCE=y
-# CONFIG_MACB is not set
-CONFIG_NET_VENDOR_BROADCOM=y
-# CONFIG_B44 is not set
-# CONFIG_BCMGENET is not set
-# CONFIG_SYSTEMPORT is not set
-CONFIG_NET_VENDOR_CIRRUS=y
-# CONFIG_CS89x0 is not set
-# CONFIG_DM9000 is not set
-# CONFIG_DNET is not set
-CONFIG_NET_VENDOR_EZCHIP=y
-# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
-CONFIG_NET_VENDOR_FARADAY=y
-# CONFIG_FTMAC100 is not set
-# CONFIG_FTGMAC100 is not set
-CONFIG_NET_VENDOR_HISILICON=y
-# CONFIG_HIX5HD2_GMAC is not set
-# CONFIG_HIP04_ETH is not set
-# CONFIG_HNS is not set
-# CONFIG_HNS_DSAF is not set
-# CONFIG_HNS_ENET is not set
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_MARVELL=y
-# CONFIG_MVMDIO is not set
-CONFIG_NET_VENDOR_MICREL=y
-# CONFIG_KS8842 is not set
-CONFIG_KS8851=m
-# CONFIG_KS8851_MLL is not set
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ENCX24J600=m
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NET_VENDOR_8390=y
-# CONFIG_AX88796 is not set
-# CONFIG_ETHOC is not set
-CONFIG_NET_VENDOR_QUALCOMM=y
-# CONFIG_QCA7000 is not set
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_ROCKER=y
-CONFIG_NET_VENDOR_SAMSUNG=y
-# CONFIG_SXGBE_ETH is not set
-CONFIG_NET_VENDOR_SEEQ=y
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_SMC91X=m
-CONFIG_SMC911X=m
-CONFIG_SMSC911X=m
-# CONFIG_SMSC911X_ARCH_HOOKS is not set
-CONFIG_NET_VENDOR_STMICRO=y
-# CONFIG_STMMAC_ETH is not set
-CONFIG_NET_VENDOR_SYNOPSYS=y
-# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set
-CONFIG_NET_VENDOR_TI=y
-CONFIG_TI_DAVINCI_MDIO=y
-CONFIG_TI_DAVINCI_CPDMA=y
-CONFIG_TI_CPSW_PHY_SEL=y
-CONFIG_TI_CPSW_ALE=y
-CONFIG_TI_CPSW=y
-CONFIG_TI_CPTS=y
-CONFIG_NET_VENDOR_VIA=y
-# CONFIG_VIA_RHINE is not set
-# CONFIG_VIA_VELOCITY is not set
-CONFIG_NET_VENDOR_WIZNET=y
-# CONFIG_WIZNET_W5100 is not set
-# CONFIG_WIZNET_W5300 is not set
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_AQUANTIA_PHY is not set
-CONFIG_AT803X_PHY=m
-CONFIG_AMD_PHY=m
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-# CONFIG_TERANETICS_PHY is not set
-CONFIG_SMSC_PHY=y
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_BROADCOM_PHY=m
-# CONFIG_BCM7XXX_PHY is not set
-CONFIG_BCM87XX_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MICREL_PHY=y
-CONFIG_DP83848_PHY=y
-CONFIG_DP83867_PHY=m
-CONFIG_MICROCHIP_PHY=m
-CONFIG_FIXED_PHY=m
-# CONFIG_MDIO_BITBANG is not set
-# CONFIG_MDIO_BUS_MUX_GPIO is not set
-# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
-# CONFIG_MDIO_BCM_UNIMAC is not set
-# CONFIG_MICREL_KS8995MA is not set
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-CONFIG_USB_NET_DRIVERS=m
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_LAN78XX=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_AX88179_178A=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_HUAWEI_CDC_NCM=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SR9700=m
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_USB_NET_CH9200=m
-CONFIG_WLAN=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_AT76C50X_USB=m
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_MAC80211_HWSIM=m
-CONFIG_ATH_COMMON=m
-CONFIG_ATH_CARDS=m
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K=m
-# CONFIG_ATH9K_AHB is not set
-# CONFIG_ATH9K_DEBUGFS is not set
-# CONFIG_ATH9K_DYNACK is not set
-# CONFIG_ATH9K_WOW is not set
-CONFIG_ATH9K_RFKILL=y
-# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
-CONFIG_ATH9K_PCOEM=y
-CONFIG_ATH9K_HTC=m
-# CONFIG_ATH9K_HTC_DEBUGFS is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-CONFIG_CARL9170_WPC=y
-# CONFIG_CARL9170_HWRNG is not set
-CONFIG_ATH6KL=m
-CONFIG_ATH6KL_SDIO=m
-CONFIG_ATH6KL_USB=m
-# CONFIG_ATH6KL_DEBUG is not set
-# CONFIG_ATH6KL_TRACING is not set
-CONFIG_AR5523=m
-CONFIG_ATH10K=m
-# CONFIG_ATH10K_DEBUG is not set
-# CONFIG_ATH10K_DEBUGFS is not set
-# CONFIG_ATH10K_TRACING is not set
-CONFIG_WCN36XX=m
-# CONFIG_WCN36XX_DEBUGFS is not set
-CONFIG_B43=m
-CONFIG_B43_BCMA=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BUSES_BCMA_AND_SSB=y
-# CONFIG_B43_BUSES_BCMA is not set
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_SDIO=y
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_G=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-CONFIG_BRCMFMAC=m
-CONFIG_BRCMFMAC_PROTO_BCDC=y
-CONFIG_BRCMFMAC_SDIO=y
-CONFIG_BRCMFMAC_USB=y
-# CONFIG_BRCM_TRACING is not set
-# CONFIG_BRCMDBG is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-# CONFIG_P54_SPI is not set
-CONFIG_P54_LEDS=y
-CONFIG_RT2X00=m
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT3573=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_WL_MEDIATEK=y
-CONFIG_MT7601U=m
-CONFIG_RTL_CARDS=m
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_RTL8192C_COMMON=m
-CONFIG_RTL8XXXU=m
-CONFIG_RTL8XXXU_UNTESTED=y
-CONFIG_WL_TI=y
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX=m
-CONFIG_WL18XX=m
-CONFIG_WLCORE=m
-CONFIG_WLCORE_SPI=m
-CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_MWIFIEX_USB=m
-# CONFIG_CW1200 is not set
-CONFIG_RSI_91X=m
-CONFIG_RSI_DEBUGFS=y
-# CONFIG_RSI_SDIO is not set
-CONFIG_RSI_USB=m
-
-#
-# WiMAX Wireless Broadband devices
-#
-CONFIG_WIMAX_I2400M=m
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-# CONFIG_WAN is not set
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKELB=m
-CONFIG_IEEE802154_AT86RF230=m
-# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
-CONFIG_IEEE802154_MRF24J40=m
-CONFIG_IEEE802154_CC2520=m
-CONFIG_IEEE802154_ATUSB=m
-# CONFIG_ISDN is not set
-# CONFIG_NVM is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=y
-CONFIG_INPUT_FF_MEMLESS=y
-CONFIG_INPUT_POLLDEV=m
-CONFIG_INPUT_SPARSEKMAP=m
-CONFIG_INPUT_MATRIXKMAP=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ADP5588=m
-CONFIG_KEYBOARD_ADP5589=m
-CONFIG_KEYBOARD_ATKBD=y
-CONFIG_KEYBOARD_QT1070=m
-CONFIG_KEYBOARD_QT2160=m
-CONFIG_KEYBOARD_LKKBD=m
-CONFIG_KEYBOARD_GPIO=m
-CONFIG_KEYBOARD_GPIO_POLLED=m
-CONFIG_KEYBOARD_TCA6416=m
-CONFIG_KEYBOARD_TCA8418=m
-CONFIG_KEYBOARD_MATRIX=m
-CONFIG_KEYBOARD_LM8323=m
-CONFIG_KEYBOARD_LM8333=m
-CONFIG_KEYBOARD_MAX7359=m
-CONFIG_KEYBOARD_MCS=m
-CONFIG_KEYBOARD_MPR121=m
-CONFIG_KEYBOARD_NEWTON=m
-CONFIG_KEYBOARD_OPENCORES=m
-CONFIG_KEYBOARD_SAMSUNG=m
-CONFIG_KEYBOARD_STOWAWAY=m
-CONFIG_KEYBOARD_SUNKBD=m
-CONFIG_KEYBOARD_OMAP4=m
-CONFIG_KEYBOARD_TWL4030=m
-CONFIG_KEYBOARD_XTKBD=m
-CONFIG_KEYBOARD_CAP11XX=m
-CONFIG_KEYBOARD_BCM=m
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_CYPRESS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_SENTELIC=y
-CONFIG_MOUSE_PS2_TOUCHKIT=y
-CONFIG_MOUSE_PS2_FOCALTECH=y
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_CYAPA=m
-CONFIG_MOUSE_ELAN_I2C=m
-CONFIG_MOUSE_ELAN_I2C_I2C=y
-# CONFIG_MOUSE_ELAN_I2C_SMBUS is not set
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_MOUSE_SYNAPTICS_USB=m
-CONFIG_INPUT_JOYSTICK=y
-CONFIG_JOYSTICK_ANALOG=m
-CONFIG_JOYSTICK_A3D=m
-CONFIG_JOYSTICK_ADI=m
-CONFIG_JOYSTICK_COBRA=m
-CONFIG_JOYSTICK_GF2K=m
-CONFIG_JOYSTICK_GRIP=m
-CONFIG_JOYSTICK_GRIP_MP=m
-CONFIG_JOYSTICK_GUILLEMOT=m
-CONFIG_JOYSTICK_INTERACT=m
-CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_TMDC=m
-CONFIG_JOYSTICK_IFORCE=m
-CONFIG_JOYSTICK_IFORCE_USB=y
-CONFIG_JOYSTICK_IFORCE_232=y
-CONFIG_JOYSTICK_WARRIOR=m
-CONFIG_JOYSTICK_MAGELLAN=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_STINGER=m
-CONFIG_JOYSTICK_TWIDJOY=m
-CONFIG_JOYSTICK_ZHENHUA=m
-CONFIG_JOYSTICK_AS5011=m
-CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_XPAD_FF=y
-CONFIG_JOYSTICK_XPAD_LEDS=y
-CONFIG_INPUT_TABLET=y
-CONFIG_TABLET_USB_ACECAD=m
-CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_GTCO=m
-CONFIG_TABLET_USB_HANWANG=m
-CONFIG_TABLET_USB_KBTAB=m
-CONFIG_TABLET_SERIAL_WACOM4=m
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_PROPERTIES=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-# CONFIG_TOUCHSCREEN_AD7879 is not set
-CONFIG_TOUCHSCREEN_AR1021_I2C=m
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
-CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
-CONFIG_TOUCHSCREEN_BU21013=m
-CONFIG_TOUCHSCREEN_CHIPONE_ICN8318=m
-CONFIG_TOUCHSCREEN_CY8CTMG110=m
-CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
-CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
-CONFIG_TOUCHSCREEN_DA9052=m
-CONFIG_TOUCHSCREEN_DYNAPRO=m
-CONFIG_TOUCHSCREEN_HAMPSHIRE=m
-CONFIG_TOUCHSCREEN_EETI=m
-CONFIG_TOUCHSCREEN_EGALAX=m
-# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
-CONFIG_TOUCHSCREEN_FT6236=m
-CONFIG_TOUCHSCREEN_EGALAX_I2C=m
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_GOODIX=m
-CONFIG_TOUCHSCREEN_ILI210X=m
-CONFIG_TOUCHSCREEN_GUNZE=m
-CONFIG_TOUCHSCREEN_ELAN=m
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-CONFIG_TOUCHSCREEN_WACOM_I2C=m
-CONFIG_TOUCHSCREEN_MAX11801=m
-CONFIG_TOUCHSCREEN_MCS5000=m
-CONFIG_TOUCHSCREEN_MMS114=m
-# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_IMX6UL_TSC=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-CONFIG_TOUCHSCREEN_EDT_FT5X06=m
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
-CONFIG_TOUCHSCREEN_PIXCIR=m
-CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_MC13783=m
-# CONFIG_TOUCHSCREEN_USB_EGALAX is not set
-# CONFIG_TOUCHSCREEN_USB_PANJIT is not set
-# CONFIG_TOUCHSCREEN_USB_3M is not set
-# CONFIG_TOUCHSCREEN_USB_ITM is not set
-# CONFIG_TOUCHSCREEN_USB_ETURBO is not set
-# CONFIG_TOUCHSCREEN_USB_GUNZE is not set
-# CONFIG_TOUCHSCREEN_USB_DMC_TSC10 is not set
-# CONFIG_TOUCHSCREEN_USB_IRTOUCH is not set
-# CONFIG_TOUCHSCREEN_USB_IDEALTEK is not set
-# CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH is not set
-# CONFIG_TOUCHSCREEN_USB_GOTOP is not set
-# CONFIG_TOUCHSCREEN_USB_JASTEC is not set
-# CONFIG_TOUCHSCREEN_USB_ELO is not set
-# CONFIG_TOUCHSCREEN_USB_E2I is not set
-# CONFIG_TOUCHSCREEN_USB_ZYTRONIC is not set
-# CONFIG_TOUCHSCREEN_USB_ETT_TC45USB is not set
-# CONFIG_TOUCHSCREEN_USB_NEXIO is not set
-# CONFIG_TOUCHSCREEN_USB_EASYTOUCH is not set
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC200X_CORE=m
-CONFIG_TOUCHSCREEN_TSC2004=m
-CONFIG_TOUCHSCREEN_TSC2005=m
-CONFIG_TOUCHSCREEN_TSC2007=m
-# CONFIG_TOUCHSCREEN_RM_TS is not set
-# CONFIG_TOUCHSCREEN_SILEAD is not set
-# CONFIG_TOUCHSCREEN_SIS_I2C is not set
-CONFIG_TOUCHSCREEN_ST1232=m
-# CONFIG_TOUCHSCREEN_SUR40 is not set
-# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
-CONFIG_TOUCHSCREEN_SX8654=m
-CONFIG_TOUCHSCREEN_TPS6507X=m
-CONFIG_TOUCHSCREEN_ZFORCE=m
-# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set
-CONFIG_TOUCHSCREEN_ROHM_BU21023=m
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-CONFIG_INPUT_BMA150=m
-CONFIG_INPUT_E3X0_BUTTON=m
-CONFIG_INPUT_MC13783_PWRBUTTON=m
-CONFIG_INPUT_MMA8450=m
-CONFIG_INPUT_MPU3050=m
-CONFIG_INPUT_GP2A=m
-# CONFIG_INPUT_GPIO_BEEPER is not set
-CONFIG_INPUT_GPIO_TILT_POLLED=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_KXTJ9=m
-CONFIG_INPUT_KXTJ9_POLLED_MODE=y
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_REGULATOR_HAPTIC=m
-CONFIG_INPUT_TPS65218_PWRBUTTON=y
-CONFIG_INPUT_AXP20X_PEK=y
-CONFIG_INPUT_TWL4030_PWRBUTTON=y
-CONFIG_INPUT_TWL4030_VIBRA=y
-CONFIG_INPUT_TWL6040_VIBRA=y
-CONFIG_INPUT_UINPUT=y
-CONFIG_INPUT_PALMAS_PWRBUTTON=y
-CONFIG_INPUT_PCF8574=m
-CONFIG_INPUT_PWM_BEEPER=m
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_DA9052_ONKEY=m
-CONFIG_INPUT_DA9055_ONKEY=m
-# CONFIG_INPUT_DA9063_ONKEY is not set
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-CONFIG_INPUT_IMS_PCU=m
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set
-CONFIG_INPUT_DRV260X_HAPTICS=m
-# CONFIG_INPUT_DRV2665_HAPTICS is not set
-CONFIG_INPUT_DRV2667_HAPTICS=m
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-CONFIG_SERIO_ALTERA_PS2=m
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_SERIO_ARC_PS2 is not set
-# CONFIG_SERIO_APBPS2 is not set
-# CONFIG_USERIO is not set
-CONFIG_GAMEPORT=m
-# CONFIG_GAMEPORT_NS558 is not set
-# CONFIG_GAMEPORT_L4 is not set
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_N_GSM=m
-# CONFIG_TRACE_SINK is not set
-CONFIG_DEVMEM=y
-CONFIG_DEVKMEM=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_EARLYCON=y
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
-# CONFIG_SERIAL_KGDB_NMI is not set
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX310X is not set
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_CONSOLE_POLL=y
-CONFIG_SERIAL_OMAP=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_SC16IS7XX is not set
-# CONFIG_SERIAL_BCM63XX is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_IFX6X60 is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-# CONFIG_SERIAL_ARC is not set
-# CONFIG_SERIAL_FSL_LPUART is not set
-# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
-# CONFIG_SERIAL_ST_ASC is not set
-# CONFIG_SERIAL_STM32 is not set
-# CONFIG_SERIAL_MVEBU_UART is not set
-# CONFIG_TTY_PRINTK is not set
-CONFIG_HVC_DRIVER=y
-# CONFIG_HVC_DCC is not set
-CONFIG_VIRTIO_CONSOLE=m
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=m
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-CONFIG_HW_RANDOM_OMAP=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_HW_RANDOM_TPM=m
-# CONFIG_NVRAM is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-CONFIG_TCG_TPM=m
-CONFIG_TCG_TIS_I2C_ATMEL=m
-# CONFIG_TCG_TIS_I2C_INFINEON is not set
-# CONFIG_TCG_TIS_I2C_NUVOTON is not set
-# CONFIG_TCG_ATMEL is not set
-# CONFIG_TCG_TIS_ST33ZP24 is not set
-# CONFIG_XILLYBUS is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MUX=y
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-# CONFIG_I2C_MUX_GPIO is not set
-# CONFIG_I2C_MUX_PCA9541 is not set
-CONFIG_I2C_MUX_PCA954x=y
-CONFIG_I2C_MUX_PINCTRL=y
-# CONFIG_I2C_MUX_REG is not set
-# CONFIG_I2C_DEMUX_PINCTRL is not set
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_ALGOBIT=y
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_CBUS_GPIO is not set
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_EMEV2 is not set
-CONFIG_I2C_GPIO=m
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_OMAP=y
-CONFIG_I2C_PCA_PLATFORM=m
-# CONFIG_I2C_PXA_PCI is not set
-CONFIG_I2C_RK3X=y
-CONFIG_I2C_SIMTEC=m
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_DLN2=m
-# CONFIG_I2C_PARPORT_LIGHT is not set
-CONFIG_I2C_ROBOTFUZZ_OSIF=m
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-CONFIG_I2C_VIPERBOARD=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_SLAVE is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-CONFIG_SPI_BITBANG=y
-# CONFIG_SPI_CADENCE is not set
-CONFIG_SPI_DLN2=m
-CONFIG_SPI_GPIO=y
-# CONFIG_SPI_FSL_SPI is not set
-# CONFIG_SPI_OC_TINY is not set
-CONFIG_SPI_OMAP24XX=y
-CONFIG_SPI_TI_QSPI=m
-# CONFIG_SPI_PXA2XX_PCI is not set
-CONFIG_SPI_ROCKCHIP=m
-# CONFIG_SPI_SC18IS602 is not set
-# CONFIG_SPI_XCOMM is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
-# CONFIG_SPI_DESIGNWARE is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=y
-# CONFIG_SPI_TLE62X0 is not set
-# CONFIG_SPMI is not set
-CONFIG_HSI=m
-CONFIG_HSI_BOARDINFO=y
-
-#
-# HSI controllers
-#
-
-#
-# HSI clients
-#
-# CONFIG_HSI_CHAR is not set
-
-#
-# PPS support
-#
-CONFIG_PPS=y
-# CONFIG_PPS_DEBUG is not set
-# CONFIG_NTP_PPS is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-CONFIG_PPS_CLIENT_LDISC=m
-CONFIG_PPS_CLIENT_GPIO=m
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=y
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-CONFIG_PINCTRL=y
-
-#
-# Pin controllers
-#
-CONFIG_PINMUX=y
-CONFIG_PINCONF=y
-CONFIG_GENERIC_PINCONF=y
-# CONFIG_DEBUG_PINCTRL is not set
-CONFIG_PINCTRL_AS3722=y
-# CONFIG_PINCTRL_AMD is not set
-CONFIG_PINCTRL_SINGLE=y
-CONFIG_PINCTRL_TI_IODELAY=y
-CONFIG_PINCTRL_PALMAS=y
-CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIO_DEVRES=y
-CONFIG_OF_GPIO=y
-CONFIG_GPIOLIB_IRQCHIP=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_OF_HELPER=y
-CONFIG_GPIO_GENERIC=y
-CONFIG_GPIO_MAX730X=m
-
-#
-# Memory mapped GPIO drivers
-#
-# CONFIG_GPIO_74XX_MMIO is not set
-# CONFIG_GPIO_ALTERA is not set
-# CONFIG_GPIO_DWAPB is not set
-# CONFIG_GPIO_EM is not set
-CONFIG_GPIO_GENERIC_PLATFORM=y
-# CONFIG_GPIO_GRGPIO is not set
-CONFIG_GPIO_OMAP=y
-CONFIG_GPIO_SYSCON=y
-# CONFIG_GPIO_XILINX is not set
-# CONFIG_GPIO_ZEVIO is not set
-# CONFIG_GPIO_ZX is not set
-
-#
-# I2C GPIO expanders
-#
-CONFIG_GPIO_ADP5588=m
-CONFIG_GPIO_ADNP=m
-CONFIG_GPIO_MAX7300=m
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=y
-CONFIG_GPIO_PCA953X_IRQ=y
-CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_SX150X=y
-
-#
-# MFD GPIO expanders
-#
-CONFIG_GPIO_DA9052=y
-CONFIG_GPIO_DA9055=y
-CONFIG_GPIO_DLN2=m
-CONFIG_GPIO_PALMAS=y
-CONFIG_GPIO_TPS65910=y
-CONFIG_GPIO_TWL4030=y
-CONFIG_GPIO_TWL6040=y
-
-#
-# SPI GPIO expanders
-#
-CONFIG_GPIO_74X164=m
-CONFIG_GPIO_MAX7301=m
-CONFIG_GPIO_MC33880=m
-
-#
-# SPI or I2C GPIO expanders
-#
-CONFIG_GPIO_MCP23S08=m
-
-#
-# USB GPIO expanders
-#
-CONFIG_GPIO_VIPERBOARD=m
-CONFIG_W1=y
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
-CONFIG_W1_MASTER_GPIO=m
-CONFIG_HDQ_MASTER_OMAP=m
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2408=m
-CONFIG_W1_SLAVE_DS2408_READBACK=y
-CONFIG_W1_SLAVE_DS2413=m
-CONFIG_W1_SLAVE_DS2406=m
-CONFIG_W1_SLAVE_DS2423=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-CONFIG_W1_SLAVE_DS2433_CRC=y
-CONFIG_W1_SLAVE_DS2760=m
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_DS2781=m
-CONFIG_W1_SLAVE_DS28E04=m
-CONFIG_W1_SLAVE_BQ27000=m
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-CONFIG_GENERIC_ADC_BATTERY=m
-# CONFIG_TEST_POWER is not set
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2781 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_SBS is not set
-CONFIG_BATTERY_BQ27XXX=m
-CONFIG_BATTERY_BQ27XXX_I2C=y
-CONFIG_BATTERY_BQ27XXX_PLATFORM=y
-CONFIG_BATTERY_DA9052=m
-CONFIG_AXP288_FUEL_GAUGE=m
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_BATTERY_TWL4030_MADC is not set
-CONFIG_BATTERY_RX51=m
-CONFIG_CHARGER_ISP1704=m
-# CONFIG_CHARGER_MAX8903 is not set
-# CONFIG_CHARGER_TWL4030 is not set
-# CONFIG_CHARGER_LP8727 is not set
-CONFIG_CHARGER_GPIO=m
-# CONFIG_CHARGER_MANAGER is not set
-CONFIG_CHARGER_BQ2415X=m
-# CONFIG_CHARGER_BQ24190 is not set
-# CONFIG_CHARGER_BQ24257 is not set
-# CONFIG_CHARGER_BQ24735 is not set
-# CONFIG_CHARGER_BQ25890 is not set
-# CONFIG_CHARGER_SMB347 is not set
-CONFIG_CHARGER_TPS65217=m
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
-# CONFIG_CHARGER_RT9455 is not set
-CONFIG_AXP20X_POWER=y
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_AS3722=y
-# CONFIG_POWER_RESET_BRCMSTB is not set
-CONFIG_POWER_RESET_GPIO=y
-CONFIG_POWER_RESET_GPIO_RESTART=y
-# CONFIG_POWER_RESET_LTC2952 is not set
-CONFIG_POWER_RESET_RESTART=y
-# CONFIG_POWER_RESET_VERSATILE is not set
-CONFIG_POWER_RESET_VEXPRESS=y
-CONFIG_POWER_RESET_SYSCON=y
-CONFIG_POWER_RESET_SYSCON_POWEROFF=y
-CONFIG_POWER_AVS=y
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-CONFIG_SENSORS_AD7314=m
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7X10=m
-CONFIG_SENSORS_ADT7310=m
-CONFIG_SENSORS_ADT7410=m
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_DA9052_ADC=m
-CONFIG_SENSORS_DA9055=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_MC13783_ADC=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_G762=m
-CONFIG_SENSORS_GPIO_FAN=y
-CONFIG_SENSORS_HIH6130=m
-CONFIG_SENSORS_IIO_HWMON=m
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_JC42=m
-CONFIG_SENSORS_POWR1220=m
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LTC2945=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4222=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4260=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-CONFIG_SENSORS_MAX197=m
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_MAX6697=m
-CONFIG_SENSORS_MAX31790=m
-CONFIG_SENSORS_HTU21=m
-CONFIG_SENSORS_MCP3021=m
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LM95234=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_NCT6683=m
-CONFIG_SENSORS_NCT6775=m
-CONFIG_SENSORS_NCT7802=m
-CONFIG_SENSORS_NCT7904=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-CONFIG_SENSORS_ADM1275=m
-CONFIG_SENSORS_LM25066=m
-CONFIG_SENSORS_LTC2978=m
-CONFIG_SENSORS_LTC2978_REGULATOR=y
-CONFIG_SENSORS_MAX16064=m
-CONFIG_SENSORS_MAX20751=m
-CONFIG_SENSORS_MAX34440=m
-CONFIG_SENSORS_MAX8688=m
-CONFIG_SENSORS_TPS40422=m
-CONFIG_SENSORS_UCD9000=m
-CONFIG_SENSORS_UCD9200=m
-CONFIG_SENSORS_ZL6100=m
-CONFIG_SENSORS_PWM_FAN=m
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SHTC1=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_SMM665=m
-CONFIG_SENSORS_ADC128D818=m
-CONFIG_SENSORS_ADS1015=m
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
-CONFIG_SENSORS_AMC6821=m
-CONFIG_SENSORS_INA209=m
-CONFIG_SENSORS_INA2XX=m
-# CONFIG_SENSORS_TC74 is not set
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-CONFIG_SENSORS_TMP103=m
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_TWL4030_MADC=m
-# CONFIG_SENSORS_VEXPRESS is not set
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-# CONFIG_SENSORS_W83795_FANCTRL is not set
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_HWMON=y
-CONFIG_THERMAL_OF=y
-# CONFIG_THERMAL_WRITABLE_TRIPS is not set
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_STEP_WISE=y
-CONFIG_THERMAL_GOV_BANG_BANG=y
-# CONFIG_THERMAL_GOV_USER_SPACE is not set
-# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
-CONFIG_CPU_THERMAL=y
-CONFIG_CLOCK_THERMAL=y
-CONFIG_DEVFREQ_THERMAL=y
-# CONFIG_THERMAL_EMULATION is not set
-# CONFIG_IMX_THERMAL is not set
-
-#
-# Texas Instruments thermal drivers
-#
-CONFIG_TI_SOC_THERMAL=y
-CONFIG_TI_THERMAL=y
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-CONFIG_WATCHDOG_NOWAYOUT=y
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-# CONFIG_DA9052_WATCHDOG is not set
-# CONFIG_DA9055_WATCHDOG is not set
-# CONFIG_DA9063_WATCHDOG is not set
-# CONFIG_GPIO_WATCHDOG is not set
-# CONFIG_XILINX_WATCHDOG is not set
-# CONFIG_CADENCE_WATCHDOG is not set
-# CONFIG_DW_WATCHDOG is not set
-CONFIG_OMAP_WATCHDOG=y
-CONFIG_TWL4030_WATCHDOG=y
-# CONFIG_MAX63XX_WATCHDOG is not set
-# CONFIG_BCM7038_WDT is not set
-# CONFIG_MEN_A21_WDT is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB=m
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-# CONFIG_SSB_HOST_SOC is not set
-# CONFIG_SSB_SILENT is not set
-# CONFIG_SSB_DEBUG is not set
-# CONFIG_SSB_DRIVER_GPIO is not set
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-# CONFIG_BCMA_HOST_SOC is not set
-# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
-# CONFIG_BCMA_DRIVER_GPIO is not set
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_AS3711 is not set
-CONFIG_MFD_AS3722=y
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_AAT2870_CORE is not set
-# CONFIG_MFD_ATMEL_FLEXCOM is not set
-# CONFIG_MFD_ATMEL_HLCDC is not set
-# CONFIG_MFD_BCM590XX is not set
-CONFIG_MFD_AXP20X=y
-# CONFIG_MFD_CROS_EC is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_PMIC_DA903X is not set
-CONFIG_PMIC_DA9052=y
-CONFIG_MFD_DA9052_SPI=y
-CONFIG_MFD_DA9052_I2C=y
-CONFIG_MFD_DA9055=y
-# CONFIG_MFD_DA9062 is not set
-CONFIG_MFD_DA9063=y
-# CONFIG_MFD_DA9150 is not set
-CONFIG_MFD_DLN2=y
-CONFIG_MFD_MC13XXX=m
-CONFIG_MFD_MC13XXX_SPI=m
-CONFIG_MFD_MC13XXX_I2C=m
-# CONFIG_MFD_HI6421_PMIC is not set
-# CONFIG_HTC_EGPIO is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-# CONFIG_INTEL_SOC_PMIC is not set
-# CONFIG_MFD_KEMPLD is not set
-# CONFIG_MFD_88PM800 is not set
-# CONFIG_MFD_88PM805 is not set
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_MAX14577 is not set
-# CONFIG_MFD_MAX77686 is not set
-# CONFIG_MFD_MAX77693 is not set
-# CONFIG_MFD_MAX77843 is not set
-# CONFIG_MFD_MAX8907 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_MT6397 is not set
-# CONFIG_MFD_MENF21BMC is not set
-# CONFIG_EZX_PCAP is not set
-CONFIG_MFD_VIPERBOARD=m
-# CONFIG_MFD_RETU is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_PM8921_CORE is not set
-# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_USB=m
-# CONFIG_MFD_RC5T583 is not set
-# CONFIG_MFD_RK808 is not set
-# CONFIG_MFD_RN5T618 is not set
-CONFIG_MFD_SEC_CORE=y
-# CONFIG_MFD_SI476X_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_SKY81452 is not set
-# CONFIG_MFD_SMSC is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_MFD_STMPE is not set
-CONFIG_MFD_SYSCON=y
-CONFIG_MFD_TI_AM335X_TSCADC=m
-# CONFIG_MFD_LP3943 is not set
-# CONFIG_MFD_LP8788 is not set
-CONFIG_MFD_OMAP_USB_HOST=y
-CONFIG_MFD_PALMAS=y
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_MFD_TPS65090 is not set
-CONFIG_MFD_TPS65217=y
-CONFIG_MFD_TPS65218=y
-# CONFIG_MFD_TPS6586X is not set
-CONFIG_MFD_TPS65910=y
-# CONFIG_MFD_TPS65912 is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-# CONFIG_MFD_TPS80031 is not set
-CONFIG_TWL4030_CORE=y
-CONFIG_TWL4030_POWER=y
-CONFIG_MFD_TWL4030_AUDIO=y
-CONFIG_TWL6040_CORE=y
-CONFIG_MFD_WL1273_CORE=m
-# CONFIG_MFD_LM3533 is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_ARIZONA_SPI is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-CONFIG_MFD_VEXPRESS_SYSREG=y
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-CONFIG_REGULATOR_USERSPACE_CONSUMER=y
-CONFIG_REGULATOR_ACT8865=m
-# CONFIG_REGULATOR_AD5398 is not set
-CONFIG_REGULATOR_ANATOP=y
-CONFIG_REGULATOR_AS3722=y
-CONFIG_REGULATOR_AXP20X=y
-CONFIG_REGULATOR_DA9052=y
-# CONFIG_REGULATOR_DA9055 is not set
-CONFIG_REGULATOR_DA9063=y
-# CONFIG_REGULATOR_DA9210 is not set
-# CONFIG_REGULATOR_DA9211 is not set
-CONFIG_REGULATOR_FAN53555=m
-CONFIG_REGULATOR_GPIO=y
-# CONFIG_REGULATOR_ISL9305 is not set
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-# CONFIG_REGULATOR_LP872X is not set
-# CONFIG_REGULATOR_LP8755 is not set
-# CONFIG_REGULATOR_LTC3589 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-# CONFIG_REGULATOR_MAX8973 is not set
-CONFIG_REGULATOR_MC13XXX_CORE=m
-CONFIG_REGULATOR_MC13783=m
-CONFIG_REGULATOR_MC13892=m
-CONFIG_REGULATOR_MT6311=y
-CONFIG_REGULATOR_PALMAS=y
-CONFIG_REGULATOR_PBIAS=y
-CONFIG_REGULATOR_PFUZE100=y
-CONFIG_REGULATOR_PWM=y
-CONFIG_REGULATOR_S2MPA01=m
-CONFIG_REGULATOR_S2MPS11=m
-CONFIG_REGULATOR_S5M8767=m
-CONFIG_REGULATOR_TI_ABB=y
-# CONFIG_REGULATOR_TPS51632 is not set
-# CONFIG_REGULATOR_TPS62360 is not set
-CONFIG_REGULATOR_TPS65023=y
-CONFIG_REGULATOR_TPS6507X=y
-CONFIG_REGULATOR_TPS65217=y
-CONFIG_REGULATOR_TPS65218=y
-# CONFIG_REGULATOR_TPS6524X is not set
-CONFIG_REGULATOR_TPS65910=y
-CONFIG_REGULATOR_TWL4030=y
-CONFIG_REGULATOR_VEXPRESS=m
-CONFIG_MEDIA_SUPPORT=y
-
-#
-# Multimedia core support
-#
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
-# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
-# CONFIG_MEDIA_RADIO_SUPPORT is not set
-# CONFIG_MEDIA_SDR_SUPPORT is not set
-CONFIG_MEDIA_RC_SUPPORT=y
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_VIDEO_DEV=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_VIDEO_V4L2=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-# CONFIG_TTPCI_EEPROM is not set
-
-#
-# Media drivers
-#
-CONFIG_RC_CORE=y
-# CONFIG_RC_MAP is not set
-# CONFIG_RC_DECODERS is not set
-# CONFIG_RC_DEVICES is not set
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Webcam devices
-#
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_DTCS033=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STK1135=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TOUPTEK=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_VIDEO_CPIA2=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_VIDEO_USBTV=m
-
-#
-# Webcam, TV (analog/digital) USB devices
-#
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_V4L2=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_RC=m
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_SOC_CAMERA=m
-CONFIG_SOC_CAMERA_PLATFORM=m
-# CONFIG_VIDEO_XILINX is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
-# CONFIG_VIDEO_SH_VEU is not set
-# CONFIG_V4L_TEST_DRIVERS is not set
-
-#
-# Supported MMC/SDIO adapters
-#
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_CYPRESS_FIRMWARE=m
-
-#
-# Media ancillary drivers (tuners, sensors, i2c, frontends)
-#
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-CONFIG_VIDEO_IR_I2C=y
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_MSP3400=m
-
-#
-# RDS decoders
-#
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TVP5150=m
-
-#
-# Video and audio decoders
-#
-
-#
-# Video encoders
-#
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_MT9V011=m
-
-#
-# Flash devices
-#
-
-#
-# Video improvement chips
-#
-
-#
-# Audio/Video compression chips
-#
-
-#
-# Miscellaneous helper chips
-#
-
-#
-# Sensors used on soc_camera driver
-#
-
-#
-# soc_camera sensor drivers
-#
-CONFIG_SOC_CAMERA_IMX074=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_SOC_CAMERA_MT9T031=m
-CONFIG_SOC_CAMERA_MT9T112=m
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_SOC_CAMERA_OV2640=m
-CONFIG_SOC_CAMERA_OV5642=m
-CONFIG_SOC_CAMERA_OV6650=m
-CONFIG_SOC_CAMERA_OV772X=m
-CONFIG_SOC_CAMERA_OV9640=m
-CONFIG_SOC_CAMERA_OV9740=m
-CONFIG_SOC_CAMERA_RJ54N1=m
-CONFIG_SOC_CAMERA_TW9910=m
-
-#
-# Tools to develop new frontends
-#
-# CONFIG_DVB_DUMMY_FE is not set
-
-#
-# Graphics support
-#
-CONFIG_DRM=y
-CONFIG_DRM_KMS_HELPER=y
-CONFIG_DRM_KMS_FB_HELPER=y
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_LOAD_EDID_FIRMWARE=y
-CONFIG_DRM_TTM=m
-CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
-
-#
-# I2C encoder or helper chips
-#
-CONFIG_DRM_I2C_ADV7511=m
-CONFIG_DRM_I2C_ADIHDMI=m
-CONFIG_DRM_I2C_CH7006=m
-CONFIG_DRM_I2C_SIL164=m
-CONFIG_DRM_I2C_NXP_TDA998X=m
-CONFIG_DRM_VGEM=m
-# CONFIG_DRM_EXYNOS is not set
-CONFIG_DRM_UDL=m
-# CONFIG_DRM_ARMADA is not set
-CONFIG_DRM_TILCDC=y
-CONFIG_DRM_TILCDC_SLAVE_COMPAT=y
-CONFIG_DRM_VIRTIO_GPU=m
-# CONFIG_DRM_FSL_DCU is not set
-CONFIG_DRM_BRIDGE=y
-
-#
-# Display Interface Bridges
-#
-# CONFIG_DRM_NXP_PTN3460 is not set
-# CONFIG_DRM_PARADE_PS8622 is not set
-# CONFIG_DRM_STI is not set
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_CMDLINE=y
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=y
-CONFIG_FB_SYS_COPYAREA=y
-CONFIG_FB_SYS_IMAGEBLIT=y
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=y
-CONFIG_FB_DEFERRED_IO=y
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-CONFIG_FB_BACKLIGHT=y
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_UVESA is not set
-# CONFIG_FB_OPENCORES is not set
-# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_SMSCUFX=m
-CONFIG_FB_UDL=m
-# CONFIG_FB_IBM_GXT4500 is not set
-# CONFIG_FB_DA8XX is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_BROADSHEET is not set
-# CONFIG_FB_AUO_K190X is not set
-CONFIG_FB_SIMPLE=y
-# CONFIG_OMAP2_DSS is not set
-CONFIG_FB_SSD1307=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_BACKLIGHT_PWM=m
-# CONFIG_BACKLIGHT_DA9052 is not set
-# CONFIG_BACKLIGHT_PM8941_WLED is not set
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-# CONFIG_BACKLIGHT_LM3630A is not set
-# CONFIG_BACKLIGHT_LM3639 is not set
-# CONFIG_BACKLIGHT_LP855X is not set
-# CONFIG_BACKLIGHT_PANDORA is not set
-# CONFIG_BACKLIGHT_TPS65217 is not set
-CONFIG_BACKLIGHT_GPIO=m
-# CONFIG_BACKLIGHT_LV5207LP is not set
-# CONFIG_BACKLIGHT_BD6107 is not set
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEOMODE_HELPERS=y
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-CONFIG_LOGO=y
-CONFIG_FB_LOGO_CUSTOM=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_DMAENGINE_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_JACK=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_PCM_TIMER=y
-# CONFIG_SND_SEQUENCER_OSS is not set
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=32
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_PROC_FS=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_RAWMIDI_SEQ=m
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DUMMY is not set
-CONFIG_SND_ALOOP=m
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# HD-Audio
-#
-CONFIG_SND_HDA_PREALLOC_SIZE=64
-CONFIG_SND_ARM=y
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_USB_HIFACE=m
-CONFIG_SND_BCD2000=m
-CONFIG_SND_USB_LINE6=m
-CONFIG_SND_USB_POD=m
-CONFIG_SND_USB_PODHD=m
-CONFIG_SND_USB_TONEPORT=m
-CONFIG_SND_USB_VARIAX=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
-# CONFIG_SND_ATMEL_SOC is not set
-CONFIG_SND_EDMA_SOC=m
-CONFIG_SND_DAVINCI_SOC_MCASP=m
-CONFIG_SND_DAVINCI_SOC_GENERIC_EVM=m
-CONFIG_SND_AM33XX_SOC_EVM=m
-# CONFIG_SND_DESIGNWARE_I2S is not set
-
-#
-# SoC Audio for Freescale CPUs
-#
-
-#
-# Common SoC Audio options for Freescale CPUs:
-#
-# CONFIG_SND_SOC_FSL_ASRC is not set
-# CONFIG_SND_SOC_FSL_SAI is not set
-CONFIG_SND_SOC_FSL_SSI=m
-CONFIG_SND_SOC_FSL_SPDIF=m
-# CONFIG_SND_SOC_FSL_ESAI is not set
-CONFIG_SND_SOC_IMX_AUDMUX=m
-CONFIG_SND_OMAP_SOC=m
-CONFIG_SND_OMAP_SOC_MCBSP=m
-CONFIG_SND_OMAP_SOC_HDMI_AUDIO=m
-CONFIG_SND_OMAP_SOC_RX51=m
-CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
-
-#
-# Allwinner SoC Audio support
-#
-CONFIG_SND_SUN4I_CODEC=m
-# CONFIG_SND_SOC_XTFPGA_I2S is not set
-CONFIG_SND_SOC_I2C_AND_SPI=m
-
-#
-# CODEC drivers
-#
-# CONFIG_SND_SOC_AC97_CODEC is not set
-# CONFIG_SND_SOC_ADAU1701 is not set
-# CONFIG_SND_SOC_AK4104 is not set
-# CONFIG_SND_SOC_AK4554 is not set
-# CONFIG_SND_SOC_AK4613 is not set
-# CONFIG_SND_SOC_AK4642 is not set
-# CONFIG_SND_SOC_AK5386 is not set
-# CONFIG_SND_SOC_ALC5623 is not set
-# CONFIG_SND_SOC_CS35L32 is not set
-# CONFIG_SND_SOC_CS42L51_I2C is not set
-# CONFIG_SND_SOC_CS42L52 is not set
-# CONFIG_SND_SOC_CS42L56 is not set
-# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS4265 is not set
-# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
-# CONFIG_SND_SOC_CS4271_SPI is not set
-# CONFIG_SND_SOC_CS42XX8_I2C is not set
-# CONFIG_SND_SOC_CS4349 is not set
-# CONFIG_SND_SOC_ES8328 is not set
-# CONFIG_SND_SOC_GTM601 is not set
-# CONFIG_SND_SOC_PCM1681 is not set
-# CONFIG_SND_SOC_PCM1792A is not set
-# CONFIG_SND_SOC_PCM512x_I2C is not set
-# CONFIG_SND_SOC_PCM512x_SPI is not set
-# CONFIG_SND_SOC_RT5631 is not set
-# CONFIG_SND_SOC_RT5677_SPI is not set
-CONFIG_SND_SOC_SGTL5000=m
-# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
-# CONFIG_SND_SOC_SPDIF is not set
-# CONFIG_SND_SOC_SSM2602_SPI is not set
-# CONFIG_SND_SOC_SSM2602_I2C is not set
-# CONFIG_SND_SOC_SSM4567 is not set
-# CONFIG_SND_SOC_STA32X is not set
-# CONFIG_SND_SOC_STA350 is not set
-# CONFIG_SND_SOC_STI_SAS is not set
-# CONFIG_SND_SOC_TAS2552 is not set
-# CONFIG_SND_SOC_TAS5086 is not set
-# CONFIG_SND_SOC_TAS571X is not set
-# CONFIG_SND_SOC_TFA9879 is not set
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC23_I2C=m
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
-CONFIG_SND_SOC_TLV320AIC31XX=m
-CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_TS3A227E=m
-CONFIG_SND_SOC_TWL4030=m
-# CONFIG_SND_SOC_WM8510 is not set
-# CONFIG_SND_SOC_WM8523 is not set
-# CONFIG_SND_SOC_WM8580 is not set
-# CONFIG_SND_SOC_WM8711 is not set
-# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
-# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
-# CONFIG_SND_SOC_WM8750 is not set
-# CONFIG_SND_SOC_WM8753 is not set
-# CONFIG_SND_SOC_WM8770 is not set
-# CONFIG_SND_SOC_WM8776 is not set
-# CONFIG_SND_SOC_WM8804_I2C is not set
-# CONFIG_SND_SOC_WM8804_SPI is not set
-# CONFIG_SND_SOC_WM8903 is not set
-# CONFIG_SND_SOC_WM8962 is not set
-# CONFIG_SND_SOC_WM8978 is not set
-CONFIG_SND_SOC_TPA6130A2=m
-CONFIG_SND_SIMPLE_CARD=m
-# CONFIG_SOUND_PRIME is not set
-
-#
-# HID support
-#
-CONFIG_HID=y
-CONFIG_HID_BATTERY_STRENGTH=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=y
-CONFIG_HID_GENERIC=y
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=m
-CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=m
-CONFIG_HID_APPLEIR=m
-CONFIG_HID_AUREAL=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_BETOP_FF=m
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
-CONFIG_HID_CORSAIR=m
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CP2112=m
-CONFIG_HID_CYPRESS=m
-CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
-CONFIG_HID_EMS_FF=m
-CONFIG_HID_ELECOM=m
-CONFIG_HID_ELO=m
-CONFIG_HID_EZKEY=m
-CONFIG_HID_GEMBIRD=m
-CONFIG_HID_GFRM=m
-CONFIG_HID_HOLTEK=m
-CONFIG_HOLTEK_FF=y
-CONFIG_HID_GT683R=m
-CONFIG_HID_KEYTOUCH=m
-CONFIG_HID_KYE=m
-CONFIG_HID_UCLOGIC=m
-CONFIG_HID_WALTOP=m
-CONFIG_HID_GYRATION=m
-CONFIG_HID_ICADE=m
-CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=m
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LENOVO=m
-CONFIG_HID_LOGITECH=y
-CONFIG_HID_LOGITECH_DJ=y
-CONFIG_HID_LOGITECH_HIDPP=y
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
-CONFIG_HID_MULTITOUCH=m
-CONFIG_HID_NTRIG=m
-CONFIG_HID_ORTEK=m
-CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
-CONFIG_HID_PENMOUNT=m
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PICOLCD_CIR=y
-CONFIG_HID_PLANTRONICS=m
-CONFIG_HID_PRIMAX=m
-CONFIG_HID_ROCCAT=m
-CONFIG_HID_SAITEK=m
-CONFIG_HID_SAMSUNG=m
-CONFIG_HID_SONY=m
-CONFIG_SONY_FF=y
-CONFIG_HID_SPEEDLINK=m
-CONFIG_HID_STEELSERIES=m
-CONFIG_HID_SUNPLUS=m
-CONFIG_HID_RMI=m
-CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
-CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
-CONFIG_HID_TIVO=m
-CONFIG_HID_TOPSEED=m
-CONFIG_HID_THINGM=m
-CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
-CONFIG_HID_WACOM=m
-CONFIG_HID_WIIMOTE=m
-CONFIG_HID_XINMO=m
-CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
-CONFIG_HID_ZYDACRON=m
-CONFIG_HID_SENSOR_HUB=m
-CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=y
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-
-#
-# I2C HID support
-#
-# CONFIG_I2C_HID is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-CONFIG_USB_DYNAMIC_MINORS=y
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_ULPI_BUS is not set
-CONFIG_USB_MON=m
-CONFIG_USB_WUSB=m
-CONFIG_USB_WUSB_CBAF=m
-# CONFIG_USB_WUSB_CBAF_DEBUG is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_XHCI_HCD=y
-CONFIG_USB_XHCI_PLATFORM=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_HCD_OMAP=y
-CONFIG_USB_EHCI_HCD_PLATFORM=y
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-# CONFIG_USB_FOTG210_HCD is not set
-# CONFIG_USB_MAX3421_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-CONFIG_USB_U132_HCD=m
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-CONFIG_USB_HWA_HCD=m
-# CONFIG_USB_HCD_BCMA is not set
-# CONFIG_USB_HCD_SSB is not set
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-CONFIG_USBIP_CORE=m
-CONFIG_USBIP_VHCI_HCD=m
-CONFIG_USBIP_HOST=m
-# CONFIG_USBIP_DEBUG is not set
-CONFIG_USB_MUSB_HDRC=y
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
-
-#
-# Platform Glue Layer
-#
-# CONFIG_USB_MUSB_TUSB6010 is not set
-# CONFIG_USB_MUSB_OMAP2PLUS is not set
-# CONFIG_USB_MUSB_AM35X is not set
-CONFIG_USB_MUSB_DSPS=y
-CONFIG_USB_MUSB_AM335X_CHILD=y
-
-#
-# MUSB DMA mode
-#
-# CONFIG_MUSB_PIO_ONLY is not set
-CONFIG_USB_TI_CPPI41_DMA=y
-CONFIG_USB_DWC3=y
-# CONFIG_USB_DWC3_HOST is not set
-# CONFIG_USB_DWC3_GADGET is not set
-CONFIG_USB_DWC3_DUAL_ROLE=y
-
-#
-# Platform Glue Driver Support
-#
-CONFIG_USB_DWC3_OMAP=m
-CONFIG_USB_DWC2=m
-# CONFIG_USB_DWC2_HOST is not set
-
-#
-# Gadget/Dual-role mode requires USB Gadget support to be enabled
-#
-# CONFIG_USB_DWC2_PERIPHERAL is not set
-CONFIG_USB_DWC2_DUAL_ROLE=y
-# CONFIG_USB_DWC2_DEBUG is not set
-# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
-CONFIG_USB_CHIPIDEA=y
-CONFIG_USB_CHIPIDEA_OF=y
-CONFIG_USB_CHIPIDEA_UDC=y
-CONFIG_USB_CHIPIDEA_HOST=y
-# CONFIG_USB_CHIPIDEA_DEBUG is not set
-# CONFIG_USB_ISP1760 is not set
-
-#
-# USB port drivers
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_SIMPLE=m
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_F81232=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_METRO=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MXUPORT=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_XSENS_MT=m
-CONFIG_USB_SERIAL_WISHBONE=m
-CONFIG_USB_SERIAL_SSU100=m
-CONFIG_USB_SERIAL_QT2=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-CONFIG_USB_RIO500=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-CONFIG_USB_LD=m
-CONFIG_USB_TRANCEVIBRATOR=m
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-CONFIG_USB_EHSET_TEST_FIXTURE=m
-CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_YUREX=m
-CONFIG_USB_EZUSB_FX2=m
-CONFIG_USB_HSIC_USB3503=m
-# CONFIG_USB_LINK_LAYER_TEST is not set
-CONFIG_USB_CHAOSKEY=m
-# CONFIG_USB_ATM is not set
-
-#
-# USB Physical Layer drivers
-#
-CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=y
-CONFIG_AM335X_CONTROL_USB=y
-CONFIG_AM335X_PHY_USB=y
-CONFIG_USB_GPIO_VBUS=y
-# CONFIG_USB_ISP1301 is not set
-CONFIG_USB_ULPI=y
-CONFIG_USB_ULPI_VIEWPORT=y
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=500
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-
-#
-# USB Peripheral Controller
-#
-# CONFIG_USB_FUSB300 is not set
-# CONFIG_USB_FOTG210_UDC is not set
-# CONFIG_USB_GR_UDC is not set
-# CONFIG_USB_R8A66597 is not set
-# CONFIG_USB_PXA27X is not set
-# CONFIG_USB_MV_UDC is not set
-# CONFIG_USB_MV_U3D is not set
-# CONFIG_USB_M66592 is not set
-# CONFIG_USB_BDC_UDC is not set
-# CONFIG_USB_NET2272 is not set
-# CONFIG_USB_GADGET_XILINX is not set
-# CONFIG_USB_DUMMY_HCD is not set
-CONFIG_USB_LIBCOMPOSITE=m
-CONFIG_USB_F_ACM=m
-CONFIG_USB_F_SS_LB=m
-CONFIG_USB_U_SERIAL=m
-CONFIG_USB_U_ETHER=m
-CONFIG_USB_F_SERIAL=m
-CONFIG_USB_F_OBEX=m
-CONFIG_USB_F_NCM=m
-CONFIG_USB_F_ECM=m
-CONFIG_USB_F_PHONET=m
-CONFIG_USB_F_SUBSET=m
-CONFIG_USB_F_RNDIS=m
-CONFIG_USB_F_MASS_STORAGE=m
-CONFIG_USB_F_FS=m
-CONFIG_USB_F_UAC2=m
-CONFIG_USB_F_MIDI=m
-CONFIG_USB_F_HID=m
-CONFIG_USB_F_PRINTER=m
-CONFIG_USB_CONFIGFS=m
-CONFIG_USB_CONFIGFS_SERIAL=y
-CONFIG_USB_CONFIGFS_ACM=y
-CONFIG_USB_CONFIGFS_OBEX=y
-CONFIG_USB_CONFIGFS_NCM=y
-CONFIG_USB_CONFIGFS_ECM=y
-CONFIG_USB_CONFIGFS_ECM_SUBSET=y
-CONFIG_USB_CONFIGFS_RNDIS=y
-# CONFIG_USB_CONFIGFS_EEM is not set
-# CONFIG_USB_CONFIGFS_PHONET is not set
-# CONFIG_USB_CONFIGFS_MASS_STORAGE is not set
-# CONFIG_USB_CONFIGFS_F_LB_SS is not set
-# CONFIG_USB_CONFIGFS_F_FS is not set
-# CONFIG_USB_CONFIGFS_F_UAC1 is not set
-# CONFIG_USB_CONFIGFS_F_UAC2 is not set
-# CONFIG_USB_CONFIGFS_F_MIDI is not set
-# CONFIG_USB_CONFIGFS_F_HID is not set
-# CONFIG_USB_CONFIGFS_F_UVC is not set
-# CONFIG_USB_CONFIGFS_F_PRINTER is not set
-CONFIG_USB_ZERO=m
-CONFIG_USB_AUDIO=m
-# CONFIG_GADGET_UAC1 is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM is not set
-CONFIG_USB_G_NCM=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_FUNCTIONFS_ETH=y
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-CONFIG_USB_FUNCTIONFS_GENERIC=y
-CONFIG_USB_MASS_STORAGE=m
-# CONFIG_USB_GADGET_TARGET is not set
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_MIDI_GADGET=m
-CONFIG_USB_G_PRINTER=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_USB_G_NOKIA=m
-CONFIG_USB_G_ACM_MS=m
-CONFIG_USB_G_MULTI=m
-CONFIG_USB_G_MULTI_RNDIS=y
-# CONFIG_USB_G_MULTI_CDC is not set
-CONFIG_USB_G_HID=m
-CONFIG_USB_G_DBGP=m
-# CONFIG_USB_G_DBGP_PRINTK is not set
-CONFIG_USB_G_DBGP_SERIAL=y
-# CONFIG_USB_G_WEBCAM is not set
-CONFIG_USB_LED_TRIG=y
-CONFIG_UWB=m
-CONFIG_UWB_HWA=m
-CONFIG_UWB_I1480U=m
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_PLTFM=y
-# CONFIG_MMC_SDHCI_OF_ARASAN is not set
-# CONFIG_MMC_SDHCI_OF_AT91 is not set
-# CONFIG_MMC_SDHCI_F_SDH30 is not set
-CONFIG_MMC_OMAP=y
-CONFIG_MMC_OMAP_HS=y
-CONFIG_MMC_DW=y
-CONFIG_MMC_DW_PLTFM=y
-CONFIG_MMC_DW_EXYNOS=m
-# CONFIG_MMC_DW_K3 is not set
-CONFIG_MMC_VUB300=m
-CONFIG_MMC_USHC=m
-# CONFIG_MMC_USDHI6ROL0 is not set
-CONFIG_MMC_REALTEK_USB=m
-# CONFIG_MMC_MTK is not set
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-# CONFIG_MS_BLOCK is not set
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_REALTEK_USB=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-# CONFIG_LEDS_CLASS_FLASH is not set
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_BCM6328 is not set
-# CONFIG_LEDS_BCM6358 is not set
-CONFIG_LEDS_LM3530=m
-CONFIG_LEDS_LM3642=m
-CONFIG_LEDS_PCA9532=m
-CONFIG_LEDS_PCA9532_GPIO=y
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_LP55XX_COMMON=m
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_LP5562=m
-CONFIG_LEDS_LP8501=m
-CONFIG_LEDS_LP8860=m
-CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_PCA963X=m
-CONFIG_LEDS_DA9052=m
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_REGULATOR=m
-CONFIG_LEDS_BD2802=m
-CONFIG_LEDS_LT3593=m
-CONFIG_LEDS_MC13783=m
-CONFIG_LEDS_TCA6507=m
-CONFIG_LEDS_TLC591XX=m
-CONFIG_LEDS_LM355x=m
-
-#
-# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
-#
-# CONFIG_LEDS_BLINKM is not set
-# CONFIG_LEDS_SYSCON is not set
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_ONESHOT=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_BACKLIGHT=y
-# CONFIG_LEDS_TRIGGER_CPU is not set
-CONFIG_LEDS_TRIGGER_GPIO=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_LEDS_TRIGGER_TRANSIENT=m
-CONFIG_LEDS_TRIGGER_CAMERA=m
-CONFIG_ACCESSIBILITY=y
-CONFIG_A11Y_BRAILLE_CONSOLE=y
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-# CONFIG_EDAC is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_ABB5ZES3 is not set
-# CONFIG_RTC_DRV_ABX80X is not set
-CONFIG_RTC_DRV_AS3722=y
-CONFIG_RTC_DRV_DS1307=y
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1374_WDT=y
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_DS3232=m
-CONFIG_RTC_DRV_HYM8563=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_ISL12057=y
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PALMAS=y
-CONFIG_RTC_DRV_PCF2127=m
-CONFIG_RTC_DRV_PCF8523=y
-CONFIG_RTC_DRV_PCF8563=y
-CONFIG_RTC_DRV_PCF85063=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_TWL4030=y
-CONFIG_RTC_DRV_TPS65910=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-CONFIG_RTC_DRV_RV3029C2=m
-CONFIG_RTC_DRV_RV8803=m
-CONFIG_RTC_DRV_S5M=y
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1343=m
-CONFIG_RTC_DRV_DS1347=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_DS3234=m
-CONFIG_RTC_DRV_PCF2123=m
-CONFIG_RTC_DRV_RX4581=m
-CONFIG_RTC_DRV_MCP795=m
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=m
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1685_FAMILY=m
-CONFIG_RTC_DRV_DS1685=y
-# CONFIG_RTC_DRV_DS1689 is not set
-# CONFIG_RTC_DRV_DS17285 is not set
-# CONFIG_RTC_DRV_DS17485 is not set
-# CONFIG_RTC_DRV_DS17885 is not set
-# CONFIG_RTC_DS1685_PROC_REGS is not set
-# CONFIG_RTC_DS1685_SYSFS_REGS is not set
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_DS2404=m
-CONFIG_RTC_DRV_DA9052=y
-CONFIG_RTC_DRV_DA9055=m
-CONFIG_RTC_DRV_DA9063=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_MSM6242=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_RP5C01=m
-CONFIG_RTC_DRV_V3020=m
-# CONFIG_RTC_DRV_ZYNQMP is not set
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_OMAP=y
-CONFIG_RTC_DRV_MC13XXX=m
-CONFIG_RTC_DRV_SNVS=y
-
-#
-# HID Sensor RTC drivers
-#
-CONFIG_RTC_DRV_HID_SENSOR_TIME=m
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=y
-CONFIG_DMA_OF=y
-CONFIG_DMA_OMAP=y
-CONFIG_FSL_EDMA=y
-# CONFIG_INTEL_IDMA64 is not set
-# CONFIG_NBPFAXI_DMA is not set
-CONFIG_TI_CPPI41=y
-CONFIG_TI_DMA_CROSSBAR=y
-CONFIG_TI_EDMA=y
-CONFIG_DW_DMAC_CORE=y
-CONFIG_DW_DMAC=y
-
-#
-# DMA Clients
-#
-CONFIG_ASYNC_TX_DMA=y
-# CONFIG_DMATEST is not set
-# CONFIG_AUXDISPLAY is not set
-CONFIG_UIO=m
-CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_DMEM_GENIRQ=m
-CONFIG_UIO_PRUSS=m
-# CONFIG_VFIO is not set
-CONFIG_VIRT_DRIVERS=y
-CONFIG_VIRTIO=y
-
-#
-# Virtio drivers
-#
-CONFIG_VIRTIO_BALLOON=m
-CONFIG_VIRTIO_INPUT=m
-CONFIG_VIRTIO_MMIO=m
-# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-CONFIG_STAGING=y
-# CONFIG_PRISM2_USB is not set
-# CONFIG_COMEDI is not set
-CONFIG_RTLLIB=m
-CONFIG_RTLLIB_CRYPTO_CCMP=m
-CONFIG_RTLLIB_CRYPTO_TKIP=m
-CONFIG_RTLLIB_CRYPTO_WEP=m
-CONFIG_R8712U=m
-CONFIG_R8188EU=m
-CONFIG_88EU_AP_MODE=y
-# CONFIG_R8723AU is not set
-# CONFIG_VT6656 is not set
-
-#
-# IIO staging drivers
-#
-
-#
-# Accelerometers
-#
-CONFIG_ADIS16201=m
-CONFIG_ADIS16203=m
-CONFIG_ADIS16209=m
-CONFIG_ADIS16240=m
-CONFIG_LIS3L02DQ=m
-CONFIG_SCA3000=m
-
-#
-# Analog to digital converters
-#
-CONFIG_AD7606=m
-# CONFIG_AD7606_IFACE_PARALLEL is not set
-CONFIG_AD7606_IFACE_SPI=m
-CONFIG_AD7780=m
-CONFIG_AD7816=m
-CONFIG_AD7192=m
-CONFIG_AD7280=m
-
-#
-# Analog digital bi-direction converters
-#
-CONFIG_ADT7316=m
-CONFIG_ADT7316_SPI=m
-CONFIG_ADT7316_I2C=m
-
-#
-# Capacitance to digital converters
-#
-CONFIG_AD7150=m
-CONFIG_AD7152=m
-CONFIG_AD7746=m
-
-#
-# Direct Digital Synthesis
-#
-CONFIG_AD9832=m
-CONFIG_AD9834=m
-
-#
-# Digital gyroscope sensors
-#
-CONFIG_ADIS16060=m
-
-#
-# Network Analyzer, Impedance Converters
-#
-CONFIG_AD5933=m
-
-#
-# Light sensors
-#
-CONFIG_SENSORS_ISL29018=m
-CONFIG_SENSORS_ISL29028=m
-CONFIG_TSL2583=m
-CONFIG_TSL2x7x=m
-
-#
-# Active energy metering IC
-#
-CONFIG_ADE7753=m
-CONFIG_ADE7754=m
-CONFIG_ADE7758=m
-CONFIG_ADE7759=m
-CONFIG_ADE7854=m
-CONFIG_ADE7854_I2C=m
-CONFIG_ADE7854_SPI=m
-
-#
-# Resolver to digital converters
-#
-CONFIG_AD2S90=m
-CONFIG_AD2S1200=m
-CONFIG_AD2S1210=m
-
-#
-# Triggers - standalone
-#
-
-#
-# Speakup console speech
-#
-CONFIG_SPEAKUP=m
-CONFIG_SPEAKUP_SYNTH_ACNTSA=m
-CONFIG_SPEAKUP_SYNTH_APOLLO=m
-CONFIG_SPEAKUP_SYNTH_AUDPTR=m
-CONFIG_SPEAKUP_SYNTH_BNS=m
-CONFIG_SPEAKUP_SYNTH_DECTLK=m
-CONFIG_SPEAKUP_SYNTH_DECEXT=m
-CONFIG_SPEAKUP_SYNTH_LTLK=m
-CONFIG_SPEAKUP_SYNTH_SOFT=m
-CONFIG_SPEAKUP_SYNTH_SPKOUT=m
-CONFIG_SPEAKUP_SYNTH_TXPRT=m
-CONFIG_SPEAKUP_SYNTH_DUMMY=m
-# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
-# CONFIG_STAGING_MEDIA is not set
-
-#
-# Android
-#
-CONFIG_ASHMEM=y
-CONFIG_ANDROID_TIMED_OUTPUT=y
-CONFIG_ANDROID_TIMED_GPIO=m
-# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
-CONFIG_SYNC=y
-# CONFIG_SW_SYNC is not set
-CONFIG_ION=y
-# CONFIG_ION_TEST is not set
-# CONFIG_ION_DUMMY is not set
-# CONFIG_STAGING_BOARD is not set
-# CONFIG_WIMAX_GDM72XX is not set
-# CONFIG_LTE_GDM724X is not set
-# CONFIG_MTD_SPINAND_MT29F is not set
-# CONFIG_LUSTRE_FS is not set
-# CONFIG_DGAP is not set
-# CONFIG_GS_FPGABOOT is not set
-# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
-CONFIG_FB_TFT=m
-CONFIG_FB_TFT_AGM1264K_FL=m
-CONFIG_FB_TFT_BD663474=m
-CONFIG_FB_TFT_HX8340BN=m
-CONFIG_FB_TFT_HX8347D=m
-CONFIG_FB_TFT_HX8353D=m
-CONFIG_FB_TFT_HX8357D=m
-CONFIG_FB_TFT_ILI9163=m
-CONFIG_FB_TFT_ILI9320=m
-CONFIG_FB_TFT_ILI9325=m
-CONFIG_FB_TFT_ILI9340=m
-CONFIG_FB_TFT_ILI9341=m
-CONFIG_FB_TFT_ILI9481=m
-CONFIG_FB_TFT_ILI9486=m
-CONFIG_FB_TFT_PCD8544=m
-CONFIG_FB_TFT_RA8875=m
-CONFIG_FB_TFT_S6D02A1=m
-CONFIG_FB_TFT_S6D1121=m
-CONFIG_FB_TFT_SSD1289=m
-CONFIG_FB_TFT_SSD1305=m
-CONFIG_FB_TFT_SSD1306=m
-CONFIG_FB_TFT_SSD1325=m
-CONFIG_FB_TFT_SSD1331=m
-CONFIG_FB_TFT_SSD1351=m
-CONFIG_FB_TFT_ST7735R=m
-CONFIG_FB_TFT_ST7789V=m
-CONFIG_FB_TFT_TINYLCD=m
-CONFIG_FB_TFT_TLS8204=m
-CONFIG_FB_TFT_UC1611=m
-CONFIG_FB_TFT_UC1701=m
-CONFIG_FB_TFT_UPD161704=m
-CONFIG_FB_TFT_WATTEROTT=m
-CONFIG_FB_FLEX=m
-CONFIG_FB_TFT_FBTFT_DEVICE=m
-# CONFIG_WILC1000_DRIVER is not set
-# CONFIG_MOST is not set
-# CONFIG_CHROME_PLATFORMS is not set
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_COMMON_CLK=y
-
-#
-# Common Clock Framework
-#
-# CONFIG_COMMON_CLK_SI5351 is not set
-# CONFIG_COMMON_CLK_SI514 is not set
-# CONFIG_COMMON_CLK_SI570 is not set
-# CONFIG_COMMON_CLK_CDCE925 is not set
-CONFIG_COMMON_CLK_S2MPS11=m
-CONFIG_CLK_TWL6040=y
-# CONFIG_CLK_QORIQ is not set
-CONFIG_COMMON_CLK_PALMAS=y
-# CONFIG_COMMON_CLK_PWM is not set
-# CONFIG_COMMON_CLK_PXA is not set
-# CONFIG_COMMON_CLK_CDCE706 is not set
-CONFIG_HWSPINLOCK=y
-
-#
-# Hardware Spinlock drivers
-#
-CONFIG_HWSPINLOCK_OMAP=y
-
-#
-# Clock Source drivers
-#
-CONFIG_CLKSRC_OF=y
-CONFIG_CLKSRC_PROBE=y
-CONFIG_CLKSRC_MMIO=y
-CONFIG_CLKSRC_TI_32K=y
-CONFIG_ARM_ARCH_TIMER=y
-CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
-CONFIG_ARM_TIMER_SP804=y
-# CONFIG_ATMEL_PIT is not set
-# CONFIG_SH_TIMER_CMT is not set
-# CONFIG_SH_TIMER_MTU2 is not set
-# CONFIG_SH_TIMER_TMU is not set
-# CONFIG_EM_TIMER_STI is not set
-CONFIG_MAILBOX=y
-CONFIG_OMAP2PLUS_MBOX=y
-CONFIG_OMAP_MBOX_KFIFO_SIZE=256
-# CONFIG_ALTERA_MBOX is not set
-# CONFIG_MAILBOX_TEST is not set
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-CONFIG_IOMMU_IO_PGTABLE=y
-CONFIG_IOMMU_IO_PGTABLE_LPAE=y
-# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
-CONFIG_OF_IOMMU=y
-CONFIG_OMAP_IOMMU=y
-# CONFIG_OMAP_IOMMU_DEBUG is not set
-CONFIG_ARM_SMMU=y
-
-#
-# Remoteproc drivers
-#
-CONFIG_REMOTEPROC=y
-# CONFIG_STE_MODEM_RPROC is not set
-CONFIG_WKUP_M3_RPROC=y
-
-#
-# Rpmsg drivers
-#
-
-#
-# SOC (System On Chip) specific Drivers
-#
-# CONFIG_SOC_BRCMSTB is not set
-# CONFIG_SUNXI_SRAM is not set
-CONFIG_SOC_TI=y
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
-CONFIG_DEVFREQ_GOV_PERFORMANCE=y
-# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
-CONFIG_DEVFREQ_GOV_USERSPACE=y
-
-#
-# DEVFREQ Drivers
-#
-# CONFIG_PM_DEVFREQ_EVENT is not set
-CONFIG_EXTCON=y
-
-#
-# Extcon Device Drivers
-#
-# CONFIG_EXTCON_ADC_JACK is not set
-# CONFIG_EXTCON_AXP288 is not set
-CONFIG_EXTCON_GPIO=y
-CONFIG_EXTCON_PALMAS=y
-# CONFIG_EXTCON_RT8973A is not set
-# CONFIG_EXTCON_SM5502 is not set
-CONFIG_EXTCON_USB_GPIO=y
-CONFIG_MEMORY=y
-CONFIG_TI_EMIF=y
-CONFIG_OMAP_GPMC=y
-# CONFIG_OMAP_GPMC_DEBUG is not set
-CONFIG_IIO=m
-CONFIG_IIO_BUFFER=y
-CONFIG_IIO_BUFFER_CB=m
-CONFIG_IIO_KFIFO_BUF=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
-CONFIG_IIO_CONFIGFS=m
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-# CONFIG_IIO_SW_TRIGGER is not set
-CONFIG_IIO_TRIGGERED_EVENT=m
-
-#
-# Accelerometers
-#
-CONFIG_BMA180=m
-CONFIG_BMC150_ACCEL=m
-CONFIG_BMC150_ACCEL_I2C=m
-CONFIG_BMC150_ACCEL_SPI=m
-CONFIG_HID_SENSOR_ACCEL_3D=m
-CONFIG_IIO_ST_ACCEL_3AXIS=m
-CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
-CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
-CONFIG_KXSD9=m
-CONFIG_KXCJK1013=m
-CONFIG_MMA7455=m
-CONFIG_MMA7455_I2C=m
-CONFIG_MMA7455_SPI=m
-CONFIG_MMA8452=m
-CONFIG_MMA9551_CORE=m
-CONFIG_MMA9551=m
-CONFIG_MMA9553=m
-CONFIG_MXC4005=m
-CONFIG_MXC6255=m
-CONFIG_STK8312=m
-CONFIG_STK8BA50=m
-
-#
-# Analog to digital converters
-#
-CONFIG_AD_SIGMA_DELTA=m
-CONFIG_AD7266=m
-CONFIG_AD7291=m
-CONFIG_AD7298=m
-CONFIG_AD7476=m
-CONFIG_AD7791=m
-CONFIG_AD7793=m
-CONFIG_AD7887=m
-CONFIG_AD7923=m
-CONFIG_AD799X=m
-CONFIG_AXP288_ADC=m
-CONFIG_CC10001_ADC=m
-CONFIG_HI8435=m
-CONFIG_INA2XX_ADC=m
-CONFIG_MAX1027=m
-CONFIG_MAX1363=m
-CONFIG_MCP320X=m
-CONFIG_MCP3422=m
-CONFIG_NAU7802=m
-CONFIG_PALMAS_GPADC=m
-CONFIG_TI_ADC081C=m
-CONFIG_TI_ADC0832=m
-CONFIG_TI_ADC128S052=m
-CONFIG_TI_ADS1015=m
-CONFIG_TI_ADS8688=m
-CONFIG_TI_AM335X_ADC=m
-CONFIG_TWL4030_MADC=m
-CONFIG_TWL6030_GPADC=m
-CONFIG_VF610_ADC=m
-CONFIG_VIPERBOARD_ADC=m
-
-#
-# Amplifiers
-#
-CONFIG_AD8366=m
-
-#
-# Chemical Sensors
-#
-CONFIG_ATLAS_PH_SENSOR=m
-CONFIG_IAQCORE=m
-CONFIG_VZ89X=m
-
-#
-# Hid Sensor IIO Common
-#
-CONFIG_HID_SENSOR_IIO_COMMON=m
-CONFIG_HID_SENSOR_IIO_TRIGGER=m
-CONFIG_IIO_MS_SENSORS_I2C=m
-
-#
-# SSP Sensor Common
-#
-# CONFIG_IIO_SSP_SENSORHUB is not set
-CONFIG_IIO_ST_SENSORS_I2C=m
-CONFIG_IIO_ST_SENSORS_SPI=m
-CONFIG_IIO_ST_SENSORS_CORE=m
-
-#
-# Digital to analog converters
-#
-CONFIG_AD5064=m
-CONFIG_AD5360=m
-CONFIG_AD5380=m
-CONFIG_AD5421=m
-CONFIG_AD5446=m
-CONFIG_AD5449=m
-# CONFIG_AD5592R is not set
-# CONFIG_AD5593R is not set
-CONFIG_AD5504=m
-CONFIG_AD5624R_SPI=m
-CONFIG_AD5686=m
-CONFIG_AD5755=m
-CONFIG_AD5761=m
-CONFIG_AD5764=m
-CONFIG_AD5791=m
-CONFIG_AD7303=m
-CONFIG_M62332=m
-CONFIG_MAX517=m
-CONFIG_MAX5821=m
-CONFIG_MCP4725=m
-CONFIG_MCP4922=m
-# CONFIG_VF610_DAC is not set
-
-#
-# IIO dummy driver
-#
-# CONFIG_IIO_SIMPLE_DUMMY is not set
-
-#
-# Frequency Synthesizers DDS/PLL
-#
-
-#
-# Clock Generator/Distribution
-#
-CONFIG_AD9523=m
-
-#
-# Phase-Locked Loop (PLL) frequency synthesizers
-#
-CONFIG_ADF4350=m
-
-#
-# Digital gyroscope sensors
-#
-CONFIG_ADIS16080=m
-CONFIG_ADIS16130=m
-CONFIG_ADIS16136=m
-CONFIG_ADIS16260=m
-CONFIG_ADXRS450=m
-CONFIG_BMG160=m
-CONFIG_BMG160_I2C=m
-CONFIG_BMG160_SPI=m
-CONFIG_HID_SENSOR_GYRO_3D=m
-CONFIG_IIO_ST_GYRO_3AXIS=m
-CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
-CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
-CONFIG_ITG3200=m
-
-#
-# Health Sensors
-#
-
-#
-# Heart Rate Monitors
-#
-CONFIG_AFE4403=m
-CONFIG_AFE4404=m
-CONFIG_MAX30100=m
-
-#
-# Humidity sensors
-#
-# CONFIG_AM2315 is not set
-CONFIG_DHT11=m
-CONFIG_HDC100X=m
-CONFIG_HTU21=m
-CONFIG_SI7005=m
-CONFIG_SI7020=m
-
-#
-# Inertial measurement units
-#
-CONFIG_ADIS16400=m
-CONFIG_ADIS16480=m
-# CONFIG_BMI160_I2C is not set
-# CONFIG_BMI160_SPI is not set
-CONFIG_KMX61=m
-CONFIG_INV_MPU6050_IIO=m
-CONFIG_INV_MPU6050_I2C=m
-CONFIG_INV_MPU6050_SPI=m
-CONFIG_IIO_ADIS_LIB=m
-CONFIG_IIO_ADIS_LIB_BUFFER=y
-
-#
-# Light sensors
-#
-CONFIG_ADJD_S311=m
-CONFIG_AL3320A=m
-CONFIG_APDS9300=m
-CONFIG_APDS9960=m
-CONFIG_BH1750=m
-# CONFIG_BH1780 is not set
-CONFIG_CM32181=m
-CONFIG_CM3232=m
-CONFIG_CM3323=m
-CONFIG_CM36651=m
-CONFIG_GP2AP020A00F=m
-CONFIG_ISL29125=m
-CONFIG_HID_SENSOR_ALS=m
-CONFIG_HID_SENSOR_PROX=m
-CONFIG_JSA1212=m
-CONFIG_RPR0521=m
-CONFIG_LTR501=m
-# CONFIG_MAX44000 is not set
-CONFIG_OPT3001=m
-CONFIG_PA12203001=m
-CONFIG_STK3310=m
-CONFIG_TCS3414=m
-CONFIG_TCS3472=m
-CONFIG_SENSORS_TSL2563=m
-CONFIG_TSL4531=m
-CONFIG_US5182D=m
-CONFIG_VCNL4000=m
-# CONFIG_VEML6070 is not set
-
-#
-# Magnetometer sensors
-#
-CONFIG_AK8975=m
-CONFIG_AK09911=m
-# CONFIG_BMC150_MAGN_I2C is not set
-# CONFIG_BMC150_MAGN_SPI is not set
-CONFIG_MAG3110=m
-CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
-CONFIG_MMC35240=m
-CONFIG_IIO_ST_MAGN_3AXIS=m
-CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
-CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
-CONFIG_SENSORS_HMC5843=m
-CONFIG_SENSORS_HMC5843_I2C=m
-CONFIG_SENSORS_HMC5843_SPI=m
-
-#
-# Inclinometer sensors
-#
-CONFIG_HID_SENSOR_INCLINOMETER_3D=m
-CONFIG_HID_SENSOR_DEVICE_ROTATION=m
-
-#
-# Triggers - standalone
-#
-CONFIG_IIO_INTERRUPT_TRIGGER=m
-CONFIG_IIO_SYSFS_TRIGGER=m
-
-#
-# Digital potentiometers
-#
-# CONFIG_DS1803 is not set
-# CONFIG_MCP4131 is not set
-CONFIG_MCP4531=m
-CONFIG_TPL0102=m
-
-#
-# Pressure sensors
-#
-CONFIG_BMP280=m
-CONFIG_HID_SENSOR_PRESS=m
-# CONFIG_HP03 is not set
-CONFIG_MPL115=m
-CONFIG_MPL115_I2C=m
-CONFIG_MPL115_SPI=m
-CONFIG_MPL3115=m
-CONFIG_MS5611=m
-CONFIG_MS5611_I2C=m
-CONFIG_MS5611_SPI=m
-CONFIG_MS5637=m
-CONFIG_IIO_ST_PRESS=m
-CONFIG_IIO_ST_PRESS_I2C=m
-CONFIG_IIO_ST_PRESS_SPI=m
-CONFIG_T5403=m
-# CONFIG_HP206C is not set
-
-#
-# Lightning sensors
-#
-CONFIG_AS3935=m
-
-#
-# Proximity sensors
-#
-CONFIG_LIDAR_LITE_V2=m
-CONFIG_SX9500=m
-
-#
-# Temperature sensors
-#
-CONFIG_MLX90614=m
-CONFIG_TMP006=m
-CONFIG_TSYS01=m
-CONFIG_TSYS02D=m
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-# CONFIG_PWM_FSL_FTM is not set
-CONFIG_PWM_OMAP_DMTIMER=m
-CONFIG_PWM_PCA9685=m
-CONFIG_PWM_TIECAP=m
-CONFIG_PWM_TIEHRPWM=m
-CONFIG_PWM_TIPWMSS=y
-CONFIG_PWM_TWL=m
-CONFIG_PWM_TWL_LED=m
-CONFIG_IRQCHIP=y
-CONFIG_OMAP_IRQCHIP=y
-# CONFIG_IPACK_BUS is not set
-# CONFIG_RESET_CONTROLLER is not set
-# CONFIG_FMC is not set
-
-#
-# PHY Subsystem
-#
-CONFIG_GENERIC_PHY=y
-# CONFIG_PHY_DM816X_USB is not set
-# CONFIG_PHY_PXA_28NM_HSIC is not set
-# CONFIG_PHY_PXA_28NM_USB2 is not set
-CONFIG_OMAP_CONTROL_PHY=y
-CONFIG_OMAP_USB2=y
-CONFIG_TI_PIPE3=m
-# CONFIG_BCM_KONA_USB2_PHY is not set
-CONFIG_PHY_SAMSUNG_USB2=m
-# CONFIG_PHY_EXYNOS4210_USB2 is not set
-# CONFIG_PHY_EXYNOS4X12_USB2 is not set
-# CONFIG_PHY_EXYNOS5250_USB2 is not set
-# CONFIG_POWERCAP is not set
-# CONFIG_MCB is not set
-
-#
-# Performance monitor support
-#
-CONFIG_ARM_PMU=y
-CONFIG_RAS=y
-
-#
-# Android
-#
-CONFIG_ANDROID=y
-CONFIG_ANDROID_BINDER_IPC=y
-CONFIG_ANDROID_BINDER_IPC_32BIT=y
-CONFIG_NVMEM=y
-# CONFIG_STM is not set
-# CONFIG_STM_DUMMY is not set
-# CONFIG_STM_SOURCE_CONSOLE is not set
-# CONFIG_INTEL_TH is not set
-
-#
-# FPGA Configuration Support
-#
-# CONFIG_FPGA is not set
-
-#
-# Firmware Drivers
-#
-CONFIG_ARM_PSCI_FW=y
-# CONFIG_FIRMWARE_MEMMAP is not set
-
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT2=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_EXT4_ENCRYPTION=y
-CONFIG_EXT4_FS_ENCRYPTION=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
-CONFIG_XFS_FS=y
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=y
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
-# CONFIG_BTRFS_DEBUG is not set
-# CONFIG_BTRFS_ASSERT is not set
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=y
-CONFIG_F2FS_STAT_FS=y
-CONFIG_F2FS_FS_XATTR=y
-CONFIG_F2FS_FS_POSIX_ACL=y
-CONFIG_F2FS_FS_SECURITY=y
-# CONFIG_F2FS_CHECK_FS is not set
-CONFIG_F2FS_FS_ENCRYPTION=y
-# CONFIG_F2FS_IO_TRACE is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-CONFIG_PRINT_QUOTA_WARNING=y
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=y
-CONFIG_CUSE=m
-CONFIG_OVERLAY_FS=y
-
-#
-# Caches
-#
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_PROC_CHILDREN=y
-CONFIG_KERNFS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_CONFIGFS_FS=y
-CONFIG_MISC_FILESYSTEMS=y
-CONFIG_ADFS_FS=m
-# CONFIG_ADFS_FS_RW is not set
-CONFIG_AFFS_FS=m
-CONFIG_ECRYPT_FS=m
-CONFIG_ECRYPT_FS_MESSAGING=y
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-# CONFIG_HFSPLUS_FS_POSIX_ACL is not set
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-CONFIG_UBIFS_FS=m
-CONFIG_UBIFS_FS_ADVANCED_COMPR=y
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-# CONFIG_UBIFS_ATIME_SUPPORT is not set
-CONFIG_LOGFS=m
-# CONFIG_CRAMFS is not set
-CONFIG_SQUASHFS=m
-CONFIG_SQUASHFS_FILE_CACHE=y
-# CONFIG_SQUASHFS_FILE_DIRECT is not set
-CONFIG_SQUASHFS_DECOMP_SINGLE=y
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-CONFIG_SQUASHFS_LZ4=y
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-# CONFIG_HPFS_FS is not set
-CONFIG_QNX4FS_FS=m
-CONFIG_QNX6FS_FS=m
-# CONFIG_QNX6FS_DEBUG is not set
-CONFIG_ROMFS_FS=m
-# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-CONFIG_ROMFS_BACKED_BY_BOTH=y
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_ROMFS_ON_MTD=y
-# CONFIG_PSTORE is not set
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_EXOFS_FS=m
-# CONFIG_EXOFS_DEBUG is not set
-CONFIG_AUFS_FS=m
-CONFIG_AUFS_BRANCH_MAX_127=y
-# CONFIG_AUFS_BRANCH_MAX_511 is not set
-# CONFIG_AUFS_BRANCH_MAX_1023 is not set
-# CONFIG_AUFS_BRANCH_MAX_32767 is not set
-CONFIG_AUFS_SBILIST=y
-# CONFIG_AUFS_HNOTIFY is not set
-CONFIG_AUFS_EXPORT=y
-CONFIG_AUFS_XATTR=y
-# CONFIG_AUFS_FHSM is not set
-# CONFIG_AUFS_RDU is not set
-# CONFIG_AUFS_SHWH is not set
-# CONFIG_AUFS_BR_RAMFS is not set
-# CONFIG_AUFS_BR_FUSE is not set
-CONFIG_AUFS_BR_HFSPLUS=y
-CONFIG_AUFS_BDEV_LOOP=y
-# CONFIG_AUFS_DEBUG is not set
-CONFIG_ORE=m
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V2=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_SWAP=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=y
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_OBJLAYOUT=m
-CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
-# CONFIG_NFS_V4_1_MIGRATION is not set
-CONFIG_NFS_V4_SECURITY_LABEL=y
-CONFIG_ROOT_NFS=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFS_DEBUG=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-# CONFIG_NFSD_PNFS is not set
-CONFIG_NFSD_V4_SECURITY_LABEL=y
-# CONFIG_NFSD_FAULT_INJECTION is not set
-CONFIG_GRACE_PERIOD=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_SUNRPC_SWAP=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_SUNRPC_DEBUG=y
-CONFIG_CEPH_FS=m
-CONFIG_CEPH_FSCACHE=y
-CONFIG_CEPH_FS_POSIX_ACL=y
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_UPCALL=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_ACL=y
-CONFIG_CIFS_DEBUG=y
-# CONFIG_CIFS_DEBUG2 is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_SMB2=y
-# CONFIG_CIFS_SMB311 is not set
-CONFIG_CIFS_FSCACHE=y
-CONFIG_NCP_FS=m
-CONFIG_NCPFS_PACKET_SIGNING=y
-CONFIG_NCPFS_IOCTL_LOCKING=y
-CONFIG_NCPFS_STRONG=y
-CONFIG_NCPFS_NFS_NS=y
-CONFIG_NCPFS_OS2_NS=y
-# CONFIG_NCPFS_SMALLDOS is not set
-CONFIG_NCPFS_NLS=y
-CONFIG_NCPFS_EXTRAS=y
-CONFIG_CODA_FS=m
-CONFIG_AFS_FS=m
-# CONFIG_AFS_DEBUG is not set
-CONFIG_AFS_FSCACHE=y
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-CONFIG_9P_FS_SECURITY=y
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-CONFIG_DLM_DEBUG=y
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-CONFIG_PRINTK_TIME=y
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-# CONFIG_BOOT_PRINTK_DELAY is not set
-CONFIG_DYNAMIC_DEBUG=y
-
-#
-# Compile-time checks and compiler options
-#
-CONFIG_DEBUG_INFO=y
-# CONFIG_DEBUG_INFO_REDUCED is not set
-CONFIG_DEBUG_INFO_SPLIT=y
-CONFIG_DEBUG_INFO_DWARF4=y
-# CONFIG_GDB_SCRIPTS is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-CONFIG_STRIP_ASM_SYMS=y
-# CONFIG_READABLE_ASM is not set
-CONFIG_UNUSED_SYMBOLS=y
-# CONFIG_PAGE_OWNER is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
-CONFIG_DEBUG_KERNEL=y
-
-#
-# Memory Debugging
-#
-# CONFIG_PAGE_EXTENSION is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_VM is not set
-CONFIG_DEBUG_MEMORY_INIT=y
-# CONFIG_DEBUG_HIGHMEM is not set
-# CONFIG_DEBUG_SHIRQ is not set
-
-#
-# Debug Lockups and Hangs
-#
-CONFIG_LOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHED_INFO=y
-CONFIG_SCHEDSTATS=y
-CONFIG_SCHED_STACK_END_CHECK=y
-# CONFIG_DEBUG_TIMEKEEPING is not set
-CONFIG_TIMER_STATS=y
-CONFIG_DEBUG_PREEMPT=y
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_LOCK_TORTURE_TEST is not set
-CONFIG_STACKTRACE=y
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-CONFIG_DEBUG_LIST=y
-# CONFIG_DEBUG_PI_LIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-
-#
-# RCU Debugging
-#
-# CONFIG_PROVE_RCU is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_TORTURE_TEST is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=21
-# CONFIG_RCU_TRACE is not set
-# CONFIG_RCU_EQS_DEBUG is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-CONFIG_NOTIFIER_ERROR_INJECTION=m
-CONFIG_PM_NOTIFIER_ERROR_INJECT=m
-# CONFIG_OF_RECONFIG_NOTIFIER_ERROR_INJECT is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACER_MAX_TRACE=y
-CONFIG_TRACE_CLOCK=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_TRACING=y
-CONFIG_GENERIC_TRACER=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-CONFIG_FUNCTION_TRACER=y
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_PREEMPT_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_MISSED_TIMER_OFFSETS_HIST is not set
-CONFIG_FTRACE_SYSCALLS=y
-CONFIG_TRACER_SNAPSHOT=y
-# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-CONFIG_STACK_TRACER=y
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_KPROBE_EVENT=y
-CONFIG_UPROBE_EVENT=y
-CONFIG_BPF_EVENTS=y
-CONFIG_PROBE_EVENTS=y
-CONFIG_DYNAMIC_FTRACE=y
-# CONFIG_FUNCTION_PROFILER is not set
-CONFIG_FTRACE_MCOUNT_RECORD=y
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_TRACEPOINT_BENCHMARK is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_RING_BUFFER_STARTUP_TEST is not set
-# CONFIG_TRACE_ENUM_MAP_FILE is not set
-CONFIG_TRACING_EVENTS_GPIO=y
-
-#
-# Runtime Testing
-#
-# CONFIG_LKDTM is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_RBTREE_TEST is not set
-# CONFIG_INTERVAL_TREE_TEST is not set
-# CONFIG_PERCPU_TEST is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_ASYNC_RAID6_TEST is not set
-# CONFIG_TEST_HEXDUMP is not set
-# CONFIG_TEST_STRING_HELPERS is not set
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_TEST_PRINTF is not set
-# CONFIG_TEST_RHASHTABLE is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_TEST_LKM is not set
-CONFIG_TEST_USER_COPY=m
-CONFIG_TEST_BPF=m
-CONFIG_TEST_FIRMWARE=m
-# CONFIG_TEST_UDELAY is not set
-# CONFIG_MEMTEST is not set
-CONFIG_TEST_STATIC_KEYS=m
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_KGDB=y
-CONFIG_KGDB_SERIAL_CONSOLE=y
-# CONFIG_KGDB_TESTS is not set
-CONFIG_KGDB_KDB=y
-CONFIG_KDB_DEFAULT_ENABLE=0x1
-CONFIG_KDB_KEYBOARD=y
-CONFIG_KDB_CONTINUE_CATASTROPHIC=0
-# CONFIG_ARM_PTDUMP is not set
-# CONFIG_STRICT_DEVMEM is not set
-CONFIG_ARM_UNWIND=y
-# CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_LL is not set
-CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
-# CONFIG_DEBUG_UART_8250 is not set
-CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
-# CONFIG_ARM_KPROBES_TEST is not set
-# CONFIG_PID_IN_CONTEXTIDR is not set
-# CONFIG_DEBUG_SET_MODULE_RONX is not set
-# CONFIG_CORESIGHT is not set
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-# CONFIG_PERSISTENT_KEYRINGS is not set
-# CONFIG_BIG_KEYS is not set
-# CONFIG_TRUSTED_KEYS is not set
-CONFIG_ENCRYPTED_KEYS=y
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_SECURITY_NETWORK_XFRM=y
-CONFIG_SECURITY_PATH=y
-CONFIG_LSM_MMAP_MIN_ADDR=32768
-CONFIG_SECURITY_SELINUX=y
-# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
-# CONFIG_SECURITY_SELINUX_DISABLE is not set
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
-# CONFIG_SECURITY_SMACK is not set
-CONFIG_SECURITY_TOMOYO=y
-CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
-CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
-# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
-CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
-CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
-CONFIG_SECURITY_APPARMOR_HASH=y
-CONFIG_SECURITY_YAMA=y
-CONFIG_INTEGRITY=y
-# CONFIG_INTEGRITY_SIGNATURE is not set
-CONFIG_INTEGRITY_AUDIT=y
-# CONFIG_IMA is not set
-# CONFIG_EVM is not set
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_DEFAULT_SECURITY=""
-CONFIG_XOR_BLOCKS=y
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=y
-CONFIG_CRYPTO_PCOMP=m
-CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_AKCIPHER2=y
-# CONFIG_CRYPTO_RSA is not set
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_USER is not set
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=y
-CONFIG_CRYPTO_NULL=y
-CONFIG_CRYPTO_NULL2=y
-CONFIG_CRYPTO_WORKQUEUE=y
-CONFIG_CRYPTO_CRYPTD=m
-# CONFIG_CRYPTO_MCRYPTD is not set
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-CONFIG_CRYPTO_ABLK_HELPER=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTR=y
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=y
-# CONFIG_CRYPTO_KEYWRAP is not set
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_CMAC=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32=m
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_POLY1305 is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST_COMMON=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
-# CONFIG_CRYPTO_CHACHA20 is not set
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_ZLIB=m
-CONFIG_CRYPTO_LZO=y
-# CONFIG_CRYPTO_842 is not set
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=y
-CONFIG_CRYPTO_DRBG_HMAC=y
-# CONFIG_CRYPTO_DRBG_HASH is not set
-# CONFIG_CRYPTO_DRBG_CTR is not set
-CONFIG_CRYPTO_DRBG=y
-CONFIG_CRYPTO_JITTERENTROPY=y
-CONFIG_CRYPTO_USER_API=m
-CONFIG_CRYPTO_USER_API_HASH=m
-CONFIG_CRYPTO_USER_API_SKCIPHER=m
-# CONFIG_CRYPTO_USER_API_RNG is not set
-# CONFIG_CRYPTO_USER_API_AEAD is not set
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_OMAP_SHAM=m
-CONFIG_CRYPTO_DEV_OMAP_AES=m
-CONFIG_CRYPTO_DEV_OMAP_DES=m
-# CONFIG_ASYMMETRIC_KEY_TYPE is not set
-
-#
-# Certificates for signature checking
-#
-# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
-CONFIG_ARM_CRYPTO=y
-CONFIG_CRYPTO_SHA1_ARM=m
-CONFIG_CRYPTO_SHA1_ARM_NEON=m
-# CONFIG_CRYPTO_SHA1_ARM_CE is not set
-# CONFIG_CRYPTO_SHA2_ARM_CE is not set
-CONFIG_CRYPTO_SHA256_ARM=m
-CONFIG_CRYPTO_SHA512_ARM=m
-CONFIG_CRYPTO_AES_ARM=m
-CONFIG_CRYPTO_AES_ARM_BS=m
-# CONFIG_CRYPTO_AES_ARM_CE is not set
-# CONFIG_CRYPTO_GHASH_ARM_CE is not set
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=y
-CONFIG_BITREVERSE=y
-CONFIG_HAVE_ARCH_BITREVERSE=y
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_IO=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-# CONFIG_CRC32_SELFTEST is not set
-CONFIG_CRC32_SLICEBY8=y
-# CONFIG_CRC32_SLICEBY4 is not set
-# CONFIG_CRC32_SARWATE is not set
-# CONFIG_CRC32_BIT is not set
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=y
-# CONFIG_CRC8 is not set
-CONFIG_AUDIT_GENERIC=y
-# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=m
-CONFIG_LZ4HC_COMPRESS=m
-CONFIG_LZ4_DECOMPRESS=m
-CONFIG_XZ_DEC=y
-# CONFIG_XZ_DEC_X86 is not set
-# CONFIG_XZ_DEC_POWERPC is not set
-# CONFIG_XZ_DEC_IA64 is not set
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-# CONFIG_XZ_DEC_SPARC is not set
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_BCH=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAS_DMA=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
-CONFIG_LRU_CACHE=m
-CONFIG_CORDIC=m
-CONFIG_DDR=y
-CONFIG_LIBFDT=y
-CONFIG_OID_REGISTRY=y
-CONFIG_FONT_SUPPORT=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-# CONFIG_SG_SPLIT is not set
-CONFIG_ARCH_HAS_SG_CHAIN=y
-CONFIG_VIRTUALIZATION=y

+ 0 - 5838
board/GfA/Display001/Display001_4.4.104_rt_defconfig

@@ -1,5838 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 4.4.104 Kernel Configuration
-#
-CONFIG_ARM=y
-CONFIG_ARM_HAS_SG_CHAIN=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_ARM_DMA_USE_IOMMU=y
-CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
-CONFIG_MIGHT_HAVE_PCI=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_ARCH_HAS_BANDGAP=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_PGTABLE_LEVELS=2
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_IRQ_WORK=y
-CONFIG_BUILDTIME_EXTABLE_SORT=y
-
-#
-# General setup
-#
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION="-bone-rt-r21"
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_LZ4=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_XZ is not set
-# CONFIG_KERNEL_LZO is not set
-# CONFIG_KERNEL_LZ4 is not set
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_CROSS_MEMORY_ATTACH=y
-CONFIG_FHANDLE=y
-# CONFIG_USELIB is not set
-CONFIG_AUDIT=y
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_AUDITSYSCALL=y
-CONFIG_AUDIT_WATCH=y
-CONFIG_AUDIT_TREE=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_HANDLE_DOMAIN_IRQ=y
-# CONFIG_IRQ_DOMAIN_DEBUG is not set
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_HZ_PERIODIC=y
-# CONFIG_NO_HZ_IDLE is not set
-# CONFIG_NO_HZ is not set
-CONFIG_HIGH_RES_TIMERS=y
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-
-#
-# RCU Subsystem
-#
-CONFIG_PREEMPT_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-# CONFIG_TASKS_RCU is not set
-CONFIG_RCU_STALL_COMMON=y
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_RCU_EXPEDITE_BOOT is not set
-CONFIG_BUILD_BIN2C=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_GENERIC_SCHED_CLOCK=y
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_PIDS=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-CONFIG_MEMCG_SWAP_ENABLED=y
-CONFIG_MEMCG_KMEM=y
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_BLK_CGROUP=y
-# CONFIG_DEBUG_BLK_CGROUP is not set
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-# CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_HAVE_UID16=y
-CONFIG_BPF=y
-CONFIG_EXPERT=y
-CONFIG_UID16=y
-CONFIG_MULTIUSER=y
-# CONFIG_SGETMASK_SYSCALL is not set
-CONFIG_SYSFS_SYSCALL=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_BPF_SYSCALL=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_ADVISE_SYSCALLS=y
-# CONFIG_USERFAULTFD is not set
-CONFIG_MEMBARRIER=y
-CONFIG_EMBEDDED=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-# CONFIG_SYSTEM_DATA_VERIFICATION is not set
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-CONFIG_KEXEC_CORE=y
-# CONFIG_OPROFILE is not set
-CONFIG_HAVE_OPROFILE=y
-CONFIG_KPROBES=y
-# CONFIG_JUMP_LABEL is not set
-CONFIG_UPROBES=y
-# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_ARCH_USE_BUILTIN_BSWAP=y
-CONFIG_KRETPROBES=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_SECCOMP_FILTER=y
-CONFIG_HAVE_CC_STACKPROTECTOR=y
-CONFIG_CC_STACKPROTECTOR=y
-# CONFIG_CC_STACKPROTECTOR_NONE is not set
-# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
-CONFIG_CC_STACKPROTECTOR_STRONG=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_REL=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_OLD_SIGACTION=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
-CONFIG_MODULES_TREE_LOOKUP=y
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_THROTTLING=y
-# CONFIG_BLK_CMDLINE_PARSER is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_AIX_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-# CONFIG_CMDLINE_PARTITION is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_CFQ_GROUP_IOSCHED=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_UNINLINE_SPIN_UNLOCK=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_FREEZER=y
-
-#
-# System Type
-#
-CONFIG_MMU=y
-CONFIG_ARCH_MULTIPLATFORM=y
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C24XX is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP1 is not set
-
-#
-# Multiple platform selection
-#
-
-#
-# CPU Core family selection
-#
-# CONFIG_ARCH_MULTI_V6 is not set
-CONFIG_ARCH_MULTI_V7=y
-CONFIG_ARCH_MULTI_V6_V7=y
-# CONFIG_ARCH_MULTI_CPU_AUTO is not set
-# CONFIG_ARCH_VIRT is not set
-# CONFIG_ARCH_MVEBU is not set
-# CONFIG_ARCH_ALPINE is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_BCM is not set
-# CONFIG_ARCH_BERLIN is not set
-# CONFIG_ARCH_DIGICOLOR is not set
-# CONFIG_ARCH_HIGHBANK is not set
-# CONFIG_ARCH_HISI is not set
-# CONFIG_ARCH_KEYSTONE is not set
-# CONFIG_ARCH_MESON is not set
-# CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_MEDIATEK is not set
-CONFIG_ARCH_OMAP=y
-
-#
-# TI OMAP Common Features
-#
-
-#
-# OMAP Feature Selections
-#
-CONFIG_OMAP_RESET_CLOCKS=y
-CONFIG_OMAP_MUX=y
-CONFIG_OMAP_MUX_DEBUG=y
-CONFIG_OMAP_MUX_WARNINGS=y
-CONFIG_OMAP_32K_TIMER=y
-CONFIG_OMAP_DM_TIMER=y
-CONFIG_OMAP_PM_NOOP=y
-CONFIG_MACH_OMAP_GENERIC=y
-
-#
-# TI OMAP/AM/DM/DRA Family
-#
-# CONFIG_ARCH_OMAP3 is not set
-# CONFIG_ARCH_OMAP4 is not set
-# CONFIG_SOC_OMAP5 is not set
-CONFIG_SOC_AM33XX=y
-# CONFIG_SOC_AM43XX is not set
-# CONFIG_SOC_DRA7XX is not set
-CONFIG_ARCH_OMAP2PLUS=y
-
-#
-# TI OMAP2/3/4 Specific Features
-#
-CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
-CONFIG_SOC_HAS_OMAP2_SDRC=y
-
-#
-# OMAP Legacy Platform Data Board Type
-#
-# CONFIG_ARCH_QCOM is not set
-# CONFIG_ARCH_ROCKCHIP is not set
-# CONFIG_ARCH_SOCFPGA is not set
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_STI is not set
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SHMOBILE_MULTI is not set
-# CONFIG_ARCH_SUNXI is not set
-# CONFIG_ARCH_SIRF is not set
-# CONFIG_ARCH_TEGRA is not set
-# CONFIG_ARCH_UNIPHIER is not set
-# CONFIG_ARCH_U8500 is not set
-# CONFIG_ARCH_VEXPRESS is not set
-# CONFIG_ARCH_WM8850 is not set
-# CONFIG_ARCH_ZX is not set
-# CONFIG_ARCH_ZYNQ is not set
-
-#
-# Processor Type
-#
-CONFIG_CPU_V7=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-CONFIG_CPU_PABRT_V7=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-# CONFIG_ARM_LPAE is not set
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-CONFIG_ARM_THUMB=y
-CONFIG_ARM_THUMBEE=y
-CONFIG_ARM_VIRT_EXT=y
-CONFIG_SWP_EMULATE=y
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_BPREDICT_DISABLE is not set
-CONFIG_KUSER_HELPERS=y
-CONFIG_VDSO=y
-CONFIG_OUTER_CACHE=y
-CONFIG_OUTER_CACHE_SYNC=y
-CONFIG_MIGHT_HAVE_CACHE_L2X0=y
-CONFIG_CACHE_L2X0=y
-CONFIG_PL310_ERRATA_588369=y
-CONFIG_PL310_ERRATA_727915=y
-# CONFIG_PL310_ERRATA_753970 is not set
-# CONFIG_PL310_ERRATA_769419 is not set
-CONFIG_ARM_L1_CACHE_SHIFT_6=y
-CONFIG_ARM_L1_CACHE_SHIFT=6
-CONFIG_ARM_DMA_MEM_BUFFERABLE=y
-CONFIG_ARM_HEAVY_MB=y
-# CONFIG_ARM_KERNMEM_PERMS is not set
-CONFIG_MULTI_IRQ_HANDLER=y
-CONFIG_ARM_ERRATA_430973=y
-CONFIG_ARM_ERRATA_720789=y
-CONFIG_ARM_ERRATA_754322=y
-CONFIG_ARM_ERRATA_775420=y
-# CONFIG_ARM_ERRATA_773022 is not set
-
-#
-# Bus support
-#
-# CONFIG_PCI is not set
-# CONFIG_PCI_DOMAINS_GENERIC is not set
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_HAVE_SMP=y
-# CONFIG_SMP is not set
-CONFIG_HAVE_ARM_ARCH_TIMER=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_3G_OPT is not set
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_ARM_PSCI=y
-CONFIG_ARCH_NR_GPIO=0
-CONFIG_PREEMPT=y
-CONFIG_HAVE_PREEMPT_LAZY=y
-# CONFIG_PREEMPT_NONE is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT__LL=y
-# CONFIG_PREEMPT_RTB is not set
-# CONFIG_PREEMPT_RT_FULL is not set
-CONFIG_PREEMPT_COUNT=y
-CONFIG_HZ_FIXED=0
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_200 is not set
-# CONFIG_HZ_250 is not set
-# CONFIG_HZ_300 is not set
-# CONFIG_HZ_500 is not set
-CONFIG_HZ_1000=y
-CONFIG_HZ=1000
-CONFIG_SCHED_HRTICK=y
-CONFIG_THUMB2_KERNEL=y
-CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11=y
-CONFIG_ARM_ASM_UNIFIED=y
-CONFIG_AEABI=y
-CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HAVE_ARCH_PFN_VALID=y
-CONFIG_HIGHMEM=y
-CONFIG_HIGHPTE=y
-CONFIG_CPU_SW_DOMAIN_PAN=y
-CONFIG_HW_PERF_EVENTS=y
-CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
-# CONFIG_ARM_MODULE_PLTS is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_NO_BOOTMEM=y
-CONFIG_MEMORY_ISOLATION=y
-# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_MEMORY_BALLOON=y
-CONFIG_BALLOON_COMPACTION=y
-CONFIG_COMPACTION=y
-CONFIG_MIGRATION=y
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_BOUNCE=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_NEED_PER_CPU_KM=y
-# CONFIG_CLEANCACHE is not set
-CONFIG_FRONTSWAP=y
-CONFIG_CMA=y
-# CONFIG_CMA_DEBUG is not set
-# CONFIG_CMA_DEBUGFS is not set
-CONFIG_CMA_AREAS=7
-CONFIG_ZSWAP=y
-CONFIG_ZPOOL=y
-CONFIG_ZBUD=y
-CONFIG_ZSMALLOC=m
-# CONFIG_PGTABLE_MAPPING is not set
-# CONFIG_ZSMALLOC_STAT is not set
-# CONFIG_IDLE_PAGE_TRACKING is not set
-CONFIG_FRAME_VECTOR=y
-CONFIG_FORCE_MAX_ZONEORDER=12
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-CONFIG_SECCOMP=y
-CONFIG_SWIOTLB=y
-CONFIG_IOMMU_HELPER=y
-# CONFIG_XEN is not set
-
-#
-# Boot options
-#
-CONFIG_USE_OF=y
-CONFIG_ATAGS=y
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
-CONFIG_CMDLINE=""
-CONFIG_KEXEC=y
-CONFIG_ATAGS_PROC=y
-# CONFIG_CRASH_DUMP is not set
-CONFIG_AUTO_ZRELADDR=y
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_STAT=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_CPUFREQ_DT=y
-# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
-# CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set
-# CONFIG_QORIQ_CPUFREQ is not set
-
-#
-# CPU Idle
-#
-# CONFIG_CPU_IDLE is not set
-# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
-CONFIG_KERNEL_MODE_NEON=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_BINFMT_SCRIPT=y
-# CONFIG_HAVE_AOUT is not set
-CONFIG_BINFMT_MISC=m
-CONFIG_COREDUMP=y
-
-#
-# Power management options
-#
-# CONFIG_SUSPEND is not set
-# CONFIG_HIBERNATION is not set
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-# CONFIG_APM_EMULATION is not set
-CONFIG_PM_OPP=y
-CONFIG_PM_CLK=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_CPU_SUSPEND=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_NET=y
-CONFIG_NET_INGRESS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_DIAG=m
-CONFIG_XFRM=y
-CONFIG_XFRM_ALGO=m
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-# CONFIG_XFRM_STATISTICS is not set
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=y
-CONFIG_INET=y
-CONFIG_WIREGUARD=m
-# CONFIG_WIREGUARD_DEBUG is not set
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_FIB_TRIE_STATS=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IP_TUNNEL=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-CONFIG_NET_FOU=m
-CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=m
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-CONFIG_INET_UDP_DIAG=m
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_TCP_CONG_DCTCP=m
-CONFIG_TCP_CONG_CDG=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=y
-CONFIG_IPV6_ILA=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_VTI=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-CONFIG_NETLABEL=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NET_PTP_CLASSIFY=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=m
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_INGRESS=y
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_NETLINK_ACCT=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_LOG_COMMON=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_PROCFS=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMEOUT=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CONNTRACK_LABELS=y
-CONFIG_NF_CT_PROTO_DCCP=m
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=m
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_GLUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_NF_NAT_PROTO_DCCP=m
-CONFIG_NF_NAT_PROTO_UDPLITE=m
-CONFIG_NF_NAT_PROTO_SCTP=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_REDIRECT=m
-CONFIG_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_INET=m
-# CONFIG_NF_TABLES_NETDEV is not set
-CONFIG_NFT_EXTHDR=m
-CONFIG_NFT_META=m
-CONFIG_NFT_CT=m
-CONFIG_NFT_RBTREE=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_COUNTER=m
-CONFIG_NFT_LOG=m
-CONFIG_NFT_LIMIT=m
-CONFIG_NFT_MASQ=m
-CONFIG_NFT_REDIR=m
-CONFIG_NFT_NAT=m
-CONFIG_NFT_QUEUE=m
-CONFIG_NFT_REJECT=m
-CONFIG_NFT_REJECT_INET=m
-CONFIG_NFT_COMPAT=m
-CONFIG_NETFILTER_XTABLES=y
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-CONFIG_NETFILTER_XT_SET=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_HMARK=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_LOG=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_NAT=m
-CONFIG_NETFILTER_XT_TARGET_NETMAP=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_NETFILTER_XT_MATCH_BPF=m
-CONFIG_NETFILTER_XT_MATCH_CGROUP=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ECN=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_L2TP=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_NFACCT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-CONFIG_IP_SET_HASH_IPMARK=m
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-CONFIG_IP_SET_HASH_MAC=m
-CONFIG_IP_SET_HASH_NETPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETNET=m
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_HASH_NETIFACE=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_PROTO_SCTP=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_FO=m
-CONFIG_IP_VS_OVF=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-
-#
-# IPVS SH scheduler
-#
-CONFIG_IP_VS_SH_TAB_BITS=8
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-CONFIG_NF_TABLES_IPV4=m
-CONFIG_NFT_CHAIN_ROUTE_IPV4=m
-CONFIG_NFT_REJECT_IPV4=m
-CONFIG_NFT_DUP_IPV4=m
-CONFIG_NF_TABLES_ARP=m
-CONFIG_NF_DUP_IPV4=m
-CONFIG_NF_LOG_ARP=m
-CONFIG_NF_LOG_IPV4=m
-CONFIG_NF_REJECT_IPV4=m
-CONFIG_NF_NAT_IPV4=m
-CONFIG_NFT_CHAIN_NAT_IPV4=m
-CONFIG_NF_NAT_MASQUERADE_IPV4=m
-CONFIG_NFT_MASQ_IPV4=m
-CONFIG_NFT_REDIR_IPV4=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_IP_NF_IPTABLES=y
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_RPFILTER=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=y
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_SYNPROXY=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_NF_TABLES_IPV6=m
-CONFIG_NFT_CHAIN_ROUTE_IPV6=m
-CONFIG_NFT_REJECT_IPV6=m
-CONFIG_NFT_DUP_IPV6=m
-CONFIG_NF_DUP_IPV6=m
-CONFIG_NF_REJECT_IPV6=m
-CONFIG_NF_LOG_IPV6=m
-CONFIG_NF_NAT_IPV6=m
-CONFIG_NFT_CHAIN_NAT_IPV6=m
-CONFIG_NF_NAT_MASQUERADE_IPV6=m
-CONFIG_NFT_MASQ_IPV6=m
-CONFIG_NFT_REDIR_IPV6=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RPFILTER=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_TARGET_SYNPROXY=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=m
-CONFIG_NF_TABLES_BRIDGE=m
-CONFIG_NFT_BRIDGE_META=m
-CONFIG_NFT_BRIDGE_REJECT=m
-CONFIG_NF_LOG_BRIDGE=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_TFRC_LIB=y
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-CONFIG_NET_DCCPPROBE=m
-CONFIG_IP_SCTP=m
-CONFIG_NET_SCTPPROBE=m
-# CONFIG_SCTP_DBG_OBJCNT is not set
-CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-CONFIG_SCTP_COOKIE_HMAC_MD5=y
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-CONFIG_RDS=m
-CONFIG_RDS_TCP=m
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-CONFIG_TIPC_MEDIA_UDP=y
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_DEBUGFS=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_MRP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_HAVE_NET_DSA=y
-# CONFIG_NET_DSA is not set
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_VLAN_8021Q_MVRP=y
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-# CONFIG_IPX is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-CONFIG_PHONET=m
-CONFIG_6LOWPAN=m
-CONFIG_6LOWPAN_NHC=m
-CONFIG_6LOWPAN_NHC_DEST=m
-CONFIG_6LOWPAN_NHC_FRAGMENT=m
-CONFIG_6LOWPAN_NHC_HOP=m
-CONFIG_6LOWPAN_NHC_IPV6=m
-CONFIG_6LOWPAN_NHC_MOBILITY=m
-CONFIG_6LOWPAN_NHC_ROUTING=m
-CONFIG_6LOWPAN_NHC_UDP=m
-CONFIG_IEEE802154=m
-# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
-CONFIG_IEEE802154_SOCKET=m
-CONFIG_IEEE802154_6LOWPAN=m
-CONFIG_MAC802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFB=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_CHOKE=m
-CONFIG_NET_SCH_QFQ=m
-CONFIG_NET_SCH_CODEL=m
-CONFIG_NET_SCH_FQ_CODEL=m
-CONFIG_NET_SCH_FQ=m
-CONFIG_NET_SCH_HHF=m
-CONFIG_NET_SCH_PIE=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_SCH_PLUG=m
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=m
-CONFIG_NET_CLS_BPF=m
-# CONFIG_NET_CLS_FLOWER is not set
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_EMATCH_CANID=m
-CONFIG_NET_EMATCH_IPSET=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-CONFIG_NET_ACT_VLAN=m
-CONFIG_NET_ACT_BPF=m
-CONFIG_NET_ACT_CONNMARK=m
-CONFIG_NET_CLS_IND=y
-CONFIG_NET_SCH_FIFO=y
-CONFIG_DCB=y
-CONFIG_DNS_RESOLVER=y
-CONFIG_BATMAN_ADV=m
-CONFIG_BATMAN_ADV_BLA=y
-CONFIG_BATMAN_ADV_DAT=y
-CONFIG_BATMAN_ADV_NC=y
-CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUG is not set
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=m
-CONFIG_OPENVSWITCH_VXLAN=m
-CONFIG_OPENVSWITCH_GENEVE=m
-# CONFIG_VSOCKETS is not set
-CONFIG_NETLINK_DIAG=m
-CONFIG_MPLS=y
-CONFIG_NET_MPLS_GSO=y
-CONFIG_MPLS_ROUTING=m
-CONFIG_MPLS_IPTUNNEL=m
-CONFIG_HSR=m
-# CONFIG_NET_SWITCHDEV is not set
-# CONFIG_NET_L3_MASTER_DEV is not set
-CONFIG_CGROUP_NET_PRIO=y
-CONFIG_CGROUP_NET_CLASSID=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-CONFIG_BPF_JIT=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_NET_TCPPROBE is not set
-CONFIG_NET_DROP_MONITOR=m
-# CONFIG_HAMRADIO is not set
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-CONFIG_CAN_GW=m
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-# CONFIG_CAN_SLCAN is not set
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-# CONFIG_CAN_LEDS is not set
-CONFIG_CAN_TI_HECC=m
-# CONFIG_CAN_FLEXCAN is not set
-# CONFIG_CAN_GRCAN is not set
-# CONFIG_CAN_RCAR is not set
-# CONFIG_CAN_SJA1000 is not set
-CONFIG_CAN_C_CAN=m
-CONFIG_CAN_C_CAN_PLATFORM=m
-# CONFIG_CAN_M_CAN is not set
-# CONFIG_CAN_CC770 is not set
-
-#
-# CAN SPI interfaces
-#
-CONFIG_CAN_MCP251X=m
-
-#
-# CAN USB interfaces
-#
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_ESD_USB2=m
-CONFIG_CAN_GS_USB=m
-CONFIG_CAN_KVASER_USB=m
-CONFIG_CAN_PEAK_USB=m
-CONFIG_CAN_8DEV_USB=m
-# CONFIG_CAN_SOFTING is not set
-# CONFIG_CAN_DEBUG_DEVICES is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
-CONFIG_BT_LE=y
-CONFIG_BT_6LOWPAN=m
-# CONFIG_BT_SELFTEST is not set
-CONFIG_BT_DEBUGFS=y
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_QCA=m
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTUSB_BCM=y
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_ATH3K=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIUART_3WIRE=y
-# CONFIG_BT_HCIUART_INTEL is not set
-CONFIG_BT_HCIUART_BCM=y
-CONFIG_BT_HCIUART_QCA=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_BT_WILINK=m
-CONFIG_AF_RXRPC=m
-# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
-# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-# CONFIG_CFG80211_DEBUGFS is not set
-# CONFIG_CFG80211_INTERNAL_REGDB is not set
-CONFIG_CFG80211_CRDA_SUPPORT=y
-CONFIG_CFG80211_WEXT=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_MINSTREL_HT=y
-# CONFIG_MAC80211_RC_MINSTREL_VHT is not set
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_MESSAGE_TRACING is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_RFKILL=y
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-# CONFIG_RFKILL_REGULATOR is not set
-# CONFIG_RFKILL_GPIO is not set
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-# CONFIG_NET_9P_DEBUG is not set
-# CONFIG_CAIF is not set
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-CONFIG_NFC_NCI=m
-CONFIG_NFC_NCI_SPI=m
-# CONFIG_NFC_NCI_UART is not set
-CONFIG_NFC_HCI=m
-CONFIG_NFC_SHDLC=y
-
-#
-# Near Field Communication (NFC) devices
-#
-CONFIG_NFC_PN533=m
-CONFIG_NFC_WILINK=m
-# CONFIG_NFC_TRF7970A is not set
-CONFIG_NFC_SIM=m
-CONFIG_NFC_PORT100=m
-# CONFIG_NFC_FDP is not set
-CONFIG_NFC_PN544=m
-CONFIG_NFC_PN544_I2C=m
-CONFIG_NFC_MICROREAD=m
-CONFIG_NFC_MICROREAD_I2C=m
-# CONFIG_NFC_MRVL_USB is not set
-# CONFIG_NFC_ST21NFCA is not set
-# CONFIG_NFC_ST_NCI is not set
-# CONFIG_NFC_NXP_NCI is not set
-# CONFIG_NFC_S3FWRN5_I2C is not set
-CONFIG_LWTUNNEL=y
-CONFIG_HAVE_BPF_JIT=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-# CONFIG_UEVENT_HELPER is not set
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE="am335x-pm-firmware.elf am335x-bone-scale-data.bin am335x-evm-scale-data.bin am43x-evm-scale-data.bin"
-CONFIG_EXTRA_FIRMWARE_DIR="firmware"
-CONFIG_FW_LOADER_USER_HELPER=y
-# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_ALLOW_DEV_COREDUMP=y
-CONFIG_DEV_COREDUMP=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_GENERIC_CPU_DEVICES is not set
-CONFIG_SOC_BUS=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=y
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGMAP_IRQ=y
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_FENCE_TRACE is not set
-CONFIG_DMA_CMA=y
-
-#
-# Default contiguous memory area size:
-#
-CONFIG_CMA_SIZE_MBYTES=24
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_ALIGNMENT=8
-
-#
-# Bus devices
-#
-# CONFIG_ARM_CCI400_PMU is not set
-# CONFIG_ARM_CCI500_PMU is not set
-# CONFIG_ARM_CCN is not set
-# CONFIG_BRCMSTB_GISB_ARB is not set
-CONFIG_OMAP_INTERCONNECT=y
-CONFIG_OMAP_OCP2SCP=y
-CONFIG_VEXPRESS_CONFIG=y
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-CONFIG_MTD=y
-# CONFIG_MTD_TESTS is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-CONFIG_MTD_OF_PARTS=m
-CONFIG_MTD_AR7_PARTS=m
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-# CONFIG_SM_FTL is not set
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_SWAP=m
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_RAM=m
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_PHYSMAP_OF is not set
-CONFIG_MTD_PLATRAM=m
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-# CONFIG_MTD_DATAFLASH_OTP is not set
-CONFIG_MTD_M25P80=m
-CONFIG_MTD_SST25L=m
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOCG3 is not set
-CONFIG_MTD_NAND_ECC=y
-# CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_BCH=y
-CONFIG_MTD_NAND_ECC_BCH=y
-# CONFIG_MTD_SM_COMMON is not set
-# CONFIG_MTD_NAND_DENALI_DT is not set
-# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_OMAP2=m
-# CONFIG_MTD_NAND_OMAP_BCH is not set
-# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_DOCG4 is not set
-CONFIG_MTD_NAND_NANDSIM=m
-# CONFIG_MTD_NAND_BRCMNAND is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_NAND_HISI504 is not set
-CONFIG_MTD_ONENAND=y
-CONFIG_MTD_ONENAND_VERIFY_WRITE=y
-# CONFIG_MTD_ONENAND_GENERIC is not set
-# CONFIG_MTD_ONENAND_OTP is not set
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-
-#
-# LPDDR & LPDDR2 PCM memory drivers
-#
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-# CONFIG_MTD_LPDDR2_NVM is not set
-CONFIG_MTD_SPI_NOR=m
-CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_LIMIT=20
-# CONFIG_MTD_UBI_FASTMAP is not set
-# CONFIG_MTD_UBI_GLUEBI is not set
-CONFIG_MTD_UBI_BLOCK=y
-CONFIG_DTC=y
-CONFIG_OF=y
-# CONFIG_OF_UNITTEST is not set
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_DYNAMIC=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_NET=y
-CONFIG_OF_MDIO=y
-CONFIG_OF_MTD=y
-CONFIG_OF_RESERVED_MEM=y
-CONFIG_OF_RESOLVE=y
-CONFIG_OF_OVERLAY=y
-CONFIG_OF_CONFIGFS=y
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_NULL_BLK=m
-CONFIG_ZRAM=m
-CONFIG_ZRAM_LZ4_COMPRESS=y
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_OSD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
-# CONFIG_CDROM_PKTCDVD is not set
-CONFIG_ATA_OVER_ETH=m
-# CONFIG_MG_DISK is not set
-CONFIG_VIRTIO_BLK=m
-CONFIG_BLK_DEV_RBD=m
-
-#
-# Misc devices
-#
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-# CONFIG_DUMMY_IRQ is not set
-CONFIG_HWLAT_DETECTOR=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_APDS9802ALS=m
-CONFIG_ISL29003=m
-CONFIG_ISL29020=m
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1780=m
-CONFIG_SENSORS_BH1770=m
-CONFIG_SENSORS_APDS990X=m
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-CONFIG_TI_DAC7512=m
-# CONFIG_BMP085_I2C is not set
-# CONFIG_BMP085_SPI is not set
-# CONFIG_USB_SWITCH_FSA9480 is not set
-# CONFIG_LATTICE_ECP3_CONFIG is not set
-CONFIG_SRAM=y
-CONFIG_VEXPRESS_SYSCFG=y
-# CONFIG_BONE_CAPEMGR is not set
-# CONFIG_DEV_OVERLAYMGR is not set
-CONFIG_TIEQEP=m
-CONFIG_C2PORT=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=y
-CONFIG_EEPROM_AT25=y
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-CONFIG_SENSORS_LIS3_SPI=m
-CONFIG_SENSORS_LIS3_I2C=m
-
-#
-# Altera FPGA firmware download module
-#
-CONFIG_ALTERA_STAPL=m
-
-#
-# Intel MIC Bus Driver
-#
-
-#
-# SCIF Bus Driver
-#
-
-#
-# Intel MIC Host Driver
-#
-
-#
-# Intel MIC Card Driver
-#
-
-#
-# SCIF Driver
-#
-
-#
-# Intel MIC Coprocessor State Management (COSM) Drivers
-#
-
-#
-# Argus cape driver for beaglebone black
-#
-CONFIG_CAPE_BONE_ARGUS=y
-# CONFIG_BEAGLEBONE_PINMUX_HELPER is not set
-# CONFIG_ECHO is not set
-# CONFIG_CXL_BASE is not set
-# CONFIG_CXL_KERNEL_API is not set
-# CONFIG_CXL_EEH is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_NETLINK=y
-# CONFIG_SCSI_MQ_DEFAULT is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_ST=m
-CONFIG_CHR_DEV_OSST=m
-CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_UFSHCD=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-# CONFIG_SCSI_DEBUG is not set
-CONFIG_SCSI_VIRTIO=m
-CONFIG_SCSI_DH=y
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-CONFIG_SCSI_OSD_INITIATOR=m
-CONFIG_SCSI_OSD_ULD=m
-CONFIG_SCSI_OSD_DPRINT_SENSE=1
-# CONFIG_SCSI_OSD_DEBUG is not set
-CONFIG_ATA=y
-# CONFIG_ATA_NONSTANDARD is not set
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI_PLATFORM=y
-# CONFIG_AHCI_CEVA is not set
-CONFIG_AHCI_QORIQ=y
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-
-#
-# PATA SFF controllers with BMDMA
-#
-
-#
-# PIO-only SFF controllers
-#
-CONFIG_PATA_PLATFORM=y
-CONFIG_PATA_OF_PLATFORM=y
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-# CONFIG_MD_CLUSTER is not set
-# CONFIG_BCACHE is not set
-CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_MQ_DEFAULT is not set
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_BUFIO=m
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
-# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_MQ=m
-CONFIG_DM_CACHE_SMQ=m
-CONFIG_DM_CACHE_CLEANER=m
-CONFIG_DM_ERA=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_DELAY=m
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
-CONFIG_DM_SWITCH=m
-CONFIG_DM_LOG_WRITES=m
-CONFIG_TARGET_CORE=m
-CONFIG_TCM_IBLOCK=m
-CONFIG_TCM_FILEIO=m
-CONFIG_TCM_PSCSI=m
-CONFIG_TCM_USER2=m
-CONFIG_LOOPBACK_TARGET=m
-CONFIG_TCM_FC=m
-CONFIG_ISCSI_TARGET=m
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_EQUALIZER=m
-CONFIG_IFB=m
-CONFIG_NET_TEAM=m
-CONFIG_NET_TEAM_MODE_BROADCAST=m
-CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
-CONFIG_NET_TEAM_MODE_RANDOM=m
-CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
-CONFIG_NET_TEAM_MODE_LOADBALANCE=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_IPVLAN=m
-CONFIG_VXLAN=m
-CONFIG_GENEVE=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_TUN=m
-# CONFIG_TUN_VNET_CROSS_LE is not set
-CONFIG_VETH=m
-CONFIG_VIRTIO_NET=m
-CONFIG_NLMON=m
-CONFIG_ATM_DRIVERS=y
-CONFIG_ATM_DUMMY=m
-# CONFIG_ATM_TCP is not set
-
-#
-# CAIF transport drivers
-#
-# CONFIG_VHOST_NET is not set
-# CONFIG_VHOST_SCSI is not set
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
-
-#
-# Distributed Switch Architecture drivers
-#
-# CONFIG_NET_DSA_MV88E6XXX is not set
-# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
-CONFIG_ETHERNET=y
-# CONFIG_ALTERA_TSE is not set
-# CONFIG_NET_VENDOR_ARC is not set
-# CONFIG_NET_VENDOR_AURORA is not set
-CONFIG_NET_CADENCE=y
-# CONFIG_MACB is not set
-CONFIG_NET_VENDOR_BROADCOM=y
-# CONFIG_B44 is not set
-# CONFIG_BCMGENET is not set
-# CONFIG_SYSTEMPORT is not set
-CONFIG_NET_VENDOR_CIRRUS=y
-# CONFIG_CS89x0 is not set
-# CONFIG_DM9000 is not set
-# CONFIG_DNET is not set
-CONFIG_NET_VENDOR_EZCHIP=y
-# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
-CONFIG_NET_VENDOR_FARADAY=y
-# CONFIG_FTMAC100 is not set
-# CONFIG_FTGMAC100 is not set
-CONFIG_NET_VENDOR_HISILICON=y
-# CONFIG_HIX5HD2_GMAC is not set
-# CONFIG_HIP04_ETH is not set
-# CONFIG_HNS is not set
-# CONFIG_HNS_DSAF is not set
-# CONFIG_HNS_ENET is not set
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_MARVELL=y
-# CONFIG_MVMDIO is not set
-CONFIG_NET_VENDOR_MICREL=y
-# CONFIG_KS8842 is not set
-CONFIG_KS8851=m
-# CONFIG_KS8851_MLL is not set
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ENCX24J600=m
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NET_VENDOR_8390=y
-# CONFIG_AX88796 is not set
-# CONFIG_ETHOC is not set
-CONFIG_NET_VENDOR_QUALCOMM=y
-# CONFIG_QCA7000 is not set
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_ROCKER=y
-CONFIG_NET_VENDOR_SAMSUNG=y
-# CONFIG_SXGBE_ETH is not set
-CONFIG_NET_VENDOR_SEEQ=y
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_SMC91X=m
-CONFIG_SMC911X=m
-CONFIG_SMSC911X=m
-# CONFIG_SMSC911X_ARCH_HOOKS is not set
-CONFIG_NET_VENDOR_STMICRO=y
-# CONFIG_STMMAC_ETH is not set
-CONFIG_NET_VENDOR_SYNOPSYS=y
-# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set
-CONFIG_NET_VENDOR_TI=y
-CONFIG_TI_DAVINCI_MDIO=y
-CONFIG_TI_DAVINCI_CPDMA=y
-CONFIG_TI_CPSW_PHY_SEL=y
-CONFIG_TI_CPSW_ALE=y
-CONFIG_TI_CPSW=y
-CONFIG_TI_CPTS=y
-CONFIG_NET_VENDOR_VIA=y
-# CONFIG_VIA_RHINE is not set
-# CONFIG_VIA_VELOCITY is not set
-CONFIG_NET_VENDOR_WIZNET=y
-# CONFIG_WIZNET_W5100 is not set
-# CONFIG_WIZNET_W5300 is not set
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_AQUANTIA_PHY is not set
-CONFIG_AT803X_PHY=m
-CONFIG_AMD_PHY=m
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-# CONFIG_TERANETICS_PHY is not set
-CONFIG_SMSC_PHY=y
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_BROADCOM_PHY=m
-# CONFIG_BCM7XXX_PHY is not set
-CONFIG_BCM87XX_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MICREL_PHY=y
-CONFIG_DP83848_PHY=y
-CONFIG_DP83867_PHY=m
-CONFIG_MICROCHIP_PHY=m
-CONFIG_FIXED_PHY=m
-# CONFIG_MDIO_BITBANG is not set
-# CONFIG_MDIO_BUS_MUX_GPIO is not set
-# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
-# CONFIG_MDIO_BCM_UNIMAC is not set
-# CONFIG_MICREL_KS8995MA is not set
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-CONFIG_USB_NET_DRIVERS=m
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_LAN78XX=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_AX88179_178A=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_HUAWEI_CDC_NCM=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SR9700=m
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_USB_NET_CH9200=m
-CONFIG_WLAN=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_AT76C50X_USB=m
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_MAC80211_HWSIM=m
-CONFIG_ATH_COMMON=m
-CONFIG_ATH_CARDS=m
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K=m
-# CONFIG_ATH9K_AHB is not set
-# CONFIG_ATH9K_DEBUGFS is not set
-# CONFIG_ATH9K_DYNACK is not set
-# CONFIG_ATH9K_WOW is not set
-CONFIG_ATH9K_RFKILL=y
-# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
-CONFIG_ATH9K_PCOEM=y
-CONFIG_ATH9K_HTC=m
-# CONFIG_ATH9K_HTC_DEBUGFS is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-CONFIG_CARL9170_WPC=y
-# CONFIG_CARL9170_HWRNG is not set
-CONFIG_ATH6KL=m
-CONFIG_ATH6KL_SDIO=m
-CONFIG_ATH6KL_USB=m
-# CONFIG_ATH6KL_DEBUG is not set
-# CONFIG_ATH6KL_TRACING is not set
-CONFIG_AR5523=m
-CONFIG_ATH10K=m
-# CONFIG_ATH10K_DEBUG is not set
-# CONFIG_ATH10K_DEBUGFS is not set
-# CONFIG_ATH10K_TRACING is not set
-CONFIG_WCN36XX=m
-# CONFIG_WCN36XX_DEBUGFS is not set
-CONFIG_B43=m
-CONFIG_B43_BCMA=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BUSES_BCMA_AND_SSB=y
-# CONFIG_B43_BUSES_BCMA is not set
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_SDIO=y
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_G=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-CONFIG_BRCMFMAC=m
-CONFIG_BRCMFMAC_PROTO_BCDC=y
-CONFIG_BRCMFMAC_SDIO=y
-CONFIG_BRCMFMAC_USB=y
-# CONFIG_BRCM_TRACING is not set
-# CONFIG_BRCMDBG is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-# CONFIG_P54_SPI is not set
-CONFIG_P54_LEDS=y
-CONFIG_RT2X00=m
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT3573=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_WL_MEDIATEK=y
-CONFIG_MT7601U=m
-CONFIG_RTL_CARDS=m
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_RTL8192C_COMMON=m
-CONFIG_RTL8XXXU=m
-CONFIG_RTL8XXXU_UNTESTED=y
-CONFIG_WL_TI=y
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX=m
-CONFIG_WL18XX=m
-CONFIG_WLCORE=m
-CONFIG_WLCORE_SPI=m
-CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_MWIFIEX_USB=m
-# CONFIG_CW1200 is not set
-CONFIG_RSI_91X=m
-CONFIG_RSI_DEBUGFS=y
-# CONFIG_RSI_SDIO is not set
-CONFIG_RSI_USB=m
-
-#
-# WiMAX Wireless Broadband devices
-#
-CONFIG_WIMAX_I2400M=m
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-# CONFIG_WAN is not set
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKELB=m
-CONFIG_IEEE802154_AT86RF230=m
-# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
-CONFIG_IEEE802154_MRF24J40=m
-CONFIG_IEEE802154_CC2520=m
-CONFIG_IEEE802154_ATUSB=m
-# CONFIG_ISDN is not set
-# CONFIG_NVM is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=y
-CONFIG_INPUT_FF_MEMLESS=y
-CONFIG_INPUT_POLLDEV=m
-CONFIG_INPUT_SPARSEKMAP=m
-CONFIG_INPUT_MATRIXKMAP=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ADP5588=m
-CONFIG_KEYBOARD_ADP5589=m
-CONFIG_KEYBOARD_ATKBD=y
-CONFIG_KEYBOARD_QT1070=m
-CONFIG_KEYBOARD_QT2160=m
-CONFIG_KEYBOARD_LKKBD=m
-CONFIG_KEYBOARD_GPIO=m
-CONFIG_KEYBOARD_GPIO_POLLED=m
-CONFIG_KEYBOARD_TCA6416=m
-CONFIG_KEYBOARD_TCA8418=m
-CONFIG_KEYBOARD_MATRIX=m
-CONFIG_KEYBOARD_LM8323=m
-CONFIG_KEYBOARD_LM8333=m
-CONFIG_KEYBOARD_MAX7359=m
-CONFIG_KEYBOARD_MCS=m
-CONFIG_KEYBOARD_MPR121=m
-CONFIG_KEYBOARD_NEWTON=m
-CONFIG_KEYBOARD_OPENCORES=m
-CONFIG_KEYBOARD_SAMSUNG=m
-CONFIG_KEYBOARD_STOWAWAY=m
-CONFIG_KEYBOARD_SUNKBD=m
-CONFIG_KEYBOARD_OMAP4=m
-CONFIG_KEYBOARD_TWL4030=m
-CONFIG_KEYBOARD_XTKBD=m
-CONFIG_KEYBOARD_CAP11XX=m
-CONFIG_KEYBOARD_BCM=m
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_CYPRESS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_SENTELIC=y
-CONFIG_MOUSE_PS2_TOUCHKIT=y
-CONFIG_MOUSE_PS2_FOCALTECH=y
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_CYAPA=m
-CONFIG_MOUSE_ELAN_I2C=m
-CONFIG_MOUSE_ELAN_I2C_I2C=y
-# CONFIG_MOUSE_ELAN_I2C_SMBUS is not set
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_MOUSE_SYNAPTICS_USB=m
-CONFIG_INPUT_JOYSTICK=y
-CONFIG_JOYSTICK_ANALOG=m
-CONFIG_JOYSTICK_A3D=m
-CONFIG_JOYSTICK_ADI=m
-CONFIG_JOYSTICK_COBRA=m
-CONFIG_JOYSTICK_GF2K=m
-CONFIG_JOYSTICK_GRIP=m
-CONFIG_JOYSTICK_GRIP_MP=m
-CONFIG_JOYSTICK_GUILLEMOT=m
-CONFIG_JOYSTICK_INTERACT=m
-CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_TMDC=m
-CONFIG_JOYSTICK_IFORCE=m
-CONFIG_JOYSTICK_IFORCE_USB=y
-CONFIG_JOYSTICK_IFORCE_232=y
-CONFIG_JOYSTICK_WARRIOR=m
-CONFIG_JOYSTICK_MAGELLAN=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_STINGER=m
-CONFIG_JOYSTICK_TWIDJOY=m
-CONFIG_JOYSTICK_ZHENHUA=m
-CONFIG_JOYSTICK_AS5011=m
-CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_XPAD_FF=y
-CONFIG_JOYSTICK_XPAD_LEDS=y
-CONFIG_INPUT_TABLET=y
-CONFIG_TABLET_USB_ACECAD=m
-CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_GTCO=m
-CONFIG_TABLET_USB_HANWANG=m
-CONFIG_TABLET_USB_KBTAB=m
-CONFIG_TABLET_SERIAL_WACOM4=m
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_PROPERTIES=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-# CONFIG_TOUCHSCREEN_AD7879 is not set
-CONFIG_TOUCHSCREEN_AR1021_I2C=m
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
-CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
-CONFIG_TOUCHSCREEN_BU21013=m
-CONFIG_TOUCHSCREEN_CHIPONE_ICN8318=m
-CONFIG_TOUCHSCREEN_CY8CTMG110=m
-CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
-CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
-CONFIG_TOUCHSCREEN_DA9052=m
-CONFIG_TOUCHSCREEN_DYNAPRO=m
-CONFIG_TOUCHSCREEN_HAMPSHIRE=m
-CONFIG_TOUCHSCREEN_EETI=m
-CONFIG_TOUCHSCREEN_EGALAX=m
-# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
-CONFIG_TOUCHSCREEN_FT6236=m
-CONFIG_TOUCHSCREEN_EGALAX_I2C=m
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_GOODIX=m
-CONFIG_TOUCHSCREEN_ILI210X=m
-CONFIG_TOUCHSCREEN_GUNZE=m
-CONFIG_TOUCHSCREEN_ELAN=m
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-CONFIG_TOUCHSCREEN_WACOM_I2C=m
-CONFIG_TOUCHSCREEN_MAX11801=m
-CONFIG_TOUCHSCREEN_MCS5000=m
-CONFIG_TOUCHSCREEN_MMS114=m
-# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_IMX6UL_TSC=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-CONFIG_TOUCHSCREEN_EDT_FT5X06=m
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
-CONFIG_TOUCHSCREEN_PIXCIR=m
-CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_MC13783=m
-# CONFIG_TOUCHSCREEN_USB_EGALAX is not set
-# CONFIG_TOUCHSCREEN_USB_PANJIT is not set
-# CONFIG_TOUCHSCREEN_USB_3M is not set
-# CONFIG_TOUCHSCREEN_USB_ITM is not set
-# CONFIG_TOUCHSCREEN_USB_ETURBO is not set
-# CONFIG_TOUCHSCREEN_USB_GUNZE is not set
-# CONFIG_TOUCHSCREEN_USB_DMC_TSC10 is not set
-# CONFIG_TOUCHSCREEN_USB_IRTOUCH is not set
-# CONFIG_TOUCHSCREEN_USB_IDEALTEK is not set
-# CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH is not set
-# CONFIG_TOUCHSCREEN_USB_GOTOP is not set
-# CONFIG_TOUCHSCREEN_USB_JASTEC is not set
-# CONFIG_TOUCHSCREEN_USB_ELO is not set
-# CONFIG_TOUCHSCREEN_USB_E2I is not set
-# CONFIG_TOUCHSCREEN_USB_ZYTRONIC is not set
-# CONFIG_TOUCHSCREEN_USB_ETT_TC45USB is not set
-# CONFIG_TOUCHSCREEN_USB_NEXIO is not set
-# CONFIG_TOUCHSCREEN_USB_EASYTOUCH is not set
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC200X_CORE=m
-CONFIG_TOUCHSCREEN_TSC2004=m
-CONFIG_TOUCHSCREEN_TSC2005=m
-CONFIG_TOUCHSCREEN_TSC2007=m
-# CONFIG_TOUCHSCREEN_RM_TS is not set
-# CONFIG_TOUCHSCREEN_SILEAD is not set
-# CONFIG_TOUCHSCREEN_SIS_I2C is not set
-CONFIG_TOUCHSCREEN_ST1232=m
-# CONFIG_TOUCHSCREEN_SUR40 is not set
-# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
-CONFIG_TOUCHSCREEN_SX8654=m
-CONFIG_TOUCHSCREEN_TPS6507X=m
-CONFIG_TOUCHSCREEN_ZFORCE=m
-# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set
-CONFIG_TOUCHSCREEN_ROHM_BU21023=m
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-CONFIG_INPUT_BMA150=m
-CONFIG_INPUT_E3X0_BUTTON=m
-CONFIG_INPUT_MC13783_PWRBUTTON=m
-CONFIG_INPUT_MMA8450=m
-CONFIG_INPUT_MPU3050=m
-CONFIG_INPUT_GP2A=m
-# CONFIG_INPUT_GPIO_BEEPER is not set
-CONFIG_INPUT_GPIO_TILT_POLLED=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_KXTJ9=m
-CONFIG_INPUT_KXTJ9_POLLED_MODE=y
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_REGULATOR_HAPTIC=m
-CONFIG_INPUT_TPS65218_PWRBUTTON=y
-CONFIG_INPUT_AXP20X_PEK=y
-CONFIG_INPUT_TWL4030_PWRBUTTON=y
-CONFIG_INPUT_TWL4030_VIBRA=y
-CONFIG_INPUT_TWL6040_VIBRA=y
-CONFIG_INPUT_UINPUT=y
-CONFIG_INPUT_PALMAS_PWRBUTTON=y
-CONFIG_INPUT_PCF8574=m
-CONFIG_INPUT_PWM_BEEPER=m
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_DA9052_ONKEY=m
-CONFIG_INPUT_DA9055_ONKEY=m
-# CONFIG_INPUT_DA9063_ONKEY is not set
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-CONFIG_INPUT_IMS_PCU=m
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set
-CONFIG_INPUT_DRV260X_HAPTICS=m
-# CONFIG_INPUT_DRV2665_HAPTICS is not set
-CONFIG_INPUT_DRV2667_HAPTICS=m
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-CONFIG_SERIO_ALTERA_PS2=m
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_SERIO_ARC_PS2 is not set
-# CONFIG_SERIO_APBPS2 is not set
-# CONFIG_USERIO is not set
-CONFIG_GAMEPORT=m
-# CONFIG_GAMEPORT_NS558 is not set
-# CONFIG_GAMEPORT_L4 is not set
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_N_GSM=m
-# CONFIG_TRACE_SINK is not set
-CONFIG_DEVMEM=y
-CONFIG_DEVKMEM=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_EARLYCON=y
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
-# CONFIG_SERIAL_KGDB_NMI is not set
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX310X is not set
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_CONSOLE_POLL=y
-CONFIG_SERIAL_OMAP=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_SC16IS7XX is not set
-# CONFIG_SERIAL_BCM63XX is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_IFX6X60 is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-# CONFIG_SERIAL_ARC is not set
-# CONFIG_SERIAL_FSL_LPUART is not set
-# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
-# CONFIG_SERIAL_ST_ASC is not set
-# CONFIG_SERIAL_STM32 is not set
-# CONFIG_SERIAL_MVEBU_UART is not set
-# CONFIG_TTY_PRINTK is not set
-CONFIG_HVC_DRIVER=y
-# CONFIG_HVC_DCC is not set
-CONFIG_VIRTIO_CONSOLE=m
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=m
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-CONFIG_HW_RANDOM_OMAP=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_HW_RANDOM_TPM=m
-# CONFIG_NVRAM is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-CONFIG_TCG_TPM=m
-CONFIG_TCG_TIS_I2C_ATMEL=m
-# CONFIG_TCG_TIS_I2C_INFINEON is not set
-# CONFIG_TCG_TIS_I2C_NUVOTON is not set
-# CONFIG_TCG_ATMEL is not set
-# CONFIG_TCG_TIS_ST33ZP24 is not set
-# CONFIG_XILLYBUS is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MUX=y
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-# CONFIG_I2C_MUX_GPIO is not set
-# CONFIG_I2C_MUX_PCA9541 is not set
-CONFIG_I2C_MUX_PCA954x=y
-CONFIG_I2C_MUX_PINCTRL=y
-# CONFIG_I2C_MUX_REG is not set
-# CONFIG_I2C_DEMUX_PINCTRL is not set
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_ALGOBIT=y
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_CBUS_GPIO is not set
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_EMEV2 is not set
-CONFIG_I2C_GPIO=m
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_OMAP=y
-CONFIG_I2C_PCA_PLATFORM=m
-# CONFIG_I2C_PXA_PCI is not set
-CONFIG_I2C_RK3X=y
-CONFIG_I2C_SIMTEC=m
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_DLN2=m
-# CONFIG_I2C_PARPORT_LIGHT is not set
-CONFIG_I2C_ROBOTFUZZ_OSIF=m
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-CONFIG_I2C_VIPERBOARD=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_SLAVE is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-CONFIG_SPI_BITBANG=y
-# CONFIG_SPI_CADENCE is not set
-CONFIG_SPI_DLN2=m
-CONFIG_SPI_GPIO=y
-# CONFIG_SPI_FSL_SPI is not set
-# CONFIG_SPI_OC_TINY is not set
-CONFIG_SPI_OMAP24XX=y
-CONFIG_SPI_TI_QSPI=m
-# CONFIG_SPI_PXA2XX_PCI is not set
-CONFIG_SPI_ROCKCHIP=m
-# CONFIG_SPI_SC18IS602 is not set
-# CONFIG_SPI_XCOMM is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
-# CONFIG_SPI_DESIGNWARE is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=y
-# CONFIG_SPI_TLE62X0 is not set
-# CONFIG_SPMI is not set
-CONFIG_HSI=m
-CONFIG_HSI_BOARDINFO=y
-
-#
-# HSI controllers
-#
-
-#
-# HSI clients
-#
-# CONFIG_HSI_CHAR is not set
-
-#
-# PPS support
-#
-CONFIG_PPS=y
-# CONFIG_PPS_DEBUG is not set
-# CONFIG_NTP_PPS is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-CONFIG_PPS_CLIENT_LDISC=m
-CONFIG_PPS_CLIENT_GPIO=m
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=y
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-CONFIG_PINCTRL=y
-
-#
-# Pin controllers
-#
-CONFIG_PINMUX=y
-CONFIG_PINCONF=y
-CONFIG_GENERIC_PINCONF=y
-# CONFIG_DEBUG_PINCTRL is not set
-CONFIG_PINCTRL_AS3722=y
-# CONFIG_PINCTRL_AMD is not set
-CONFIG_PINCTRL_SINGLE=y
-CONFIG_PINCTRL_TI_IODELAY=y
-CONFIG_PINCTRL_PALMAS=y
-CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIO_DEVRES=y
-CONFIG_OF_GPIO=y
-CONFIG_GPIOLIB_IRQCHIP=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_OF_HELPER=y
-CONFIG_GPIO_GENERIC=y
-CONFIG_GPIO_MAX730X=m
-
-#
-# Memory mapped GPIO drivers
-#
-# CONFIG_GPIO_74XX_MMIO is not set
-# CONFIG_GPIO_ALTERA is not set
-# CONFIG_GPIO_DWAPB is not set
-# CONFIG_GPIO_EM is not set
-CONFIG_GPIO_GENERIC_PLATFORM=y
-# CONFIG_GPIO_GRGPIO is not set
-CONFIG_GPIO_OMAP=y
-CONFIG_GPIO_SYSCON=y
-# CONFIG_GPIO_XILINX is not set
-# CONFIG_GPIO_ZEVIO is not set
-# CONFIG_GPIO_ZX is not set
-
-#
-# I2C GPIO expanders
-#
-CONFIG_GPIO_ADP5588=m
-CONFIG_GPIO_ADNP=m
-CONFIG_GPIO_MAX7300=m
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=y
-CONFIG_GPIO_PCA953X_IRQ=y
-CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_SX150X=y
-
-#
-# MFD GPIO expanders
-#
-CONFIG_GPIO_DA9052=y
-CONFIG_GPIO_DA9055=y
-CONFIG_GPIO_DLN2=m
-CONFIG_GPIO_PALMAS=y
-CONFIG_GPIO_TPS65910=y
-CONFIG_GPIO_TWL4030=y
-CONFIG_GPIO_TWL6040=y
-
-#
-# SPI GPIO expanders
-#
-CONFIG_GPIO_74X164=m
-CONFIG_GPIO_MAX7301=m
-CONFIG_GPIO_MC33880=m
-
-#
-# SPI or I2C GPIO expanders
-#
-CONFIG_GPIO_MCP23S08=m
-
-#
-# USB GPIO expanders
-#
-CONFIG_GPIO_VIPERBOARD=m
-CONFIG_W1=y
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
-CONFIG_W1_MASTER_GPIO=m
-CONFIG_HDQ_MASTER_OMAP=m
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2408=m
-CONFIG_W1_SLAVE_DS2408_READBACK=y
-CONFIG_W1_SLAVE_DS2413=m
-CONFIG_W1_SLAVE_DS2406=m
-CONFIG_W1_SLAVE_DS2423=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-CONFIG_W1_SLAVE_DS2433_CRC=y
-CONFIG_W1_SLAVE_DS2760=m
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_DS2781=m
-CONFIG_W1_SLAVE_DS28E04=m
-CONFIG_W1_SLAVE_BQ27000=m
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-CONFIG_GENERIC_ADC_BATTERY=m
-# CONFIG_TEST_POWER is not set
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2781 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_SBS is not set
-CONFIG_BATTERY_BQ27XXX=m
-CONFIG_BATTERY_BQ27XXX_I2C=y
-CONFIG_BATTERY_BQ27XXX_PLATFORM=y
-CONFIG_BATTERY_DA9052=m
-CONFIG_AXP288_FUEL_GAUGE=m
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_BATTERY_TWL4030_MADC is not set
-CONFIG_BATTERY_RX51=m
-CONFIG_CHARGER_ISP1704=m
-# CONFIG_CHARGER_MAX8903 is not set
-# CONFIG_CHARGER_TWL4030 is not set
-# CONFIG_CHARGER_LP8727 is not set
-CONFIG_CHARGER_GPIO=m
-# CONFIG_CHARGER_MANAGER is not set
-CONFIG_CHARGER_BQ2415X=m
-# CONFIG_CHARGER_BQ24190 is not set
-# CONFIG_CHARGER_BQ24257 is not set
-# CONFIG_CHARGER_BQ24735 is not set
-# CONFIG_CHARGER_BQ25890 is not set
-# CONFIG_CHARGER_SMB347 is not set
-CONFIG_CHARGER_TPS65217=m
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
-# CONFIG_CHARGER_RT9455 is not set
-CONFIG_AXP20X_POWER=y
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_AS3722=y
-# CONFIG_POWER_RESET_BRCMSTB is not set
-CONFIG_POWER_RESET_GPIO=y
-CONFIG_POWER_RESET_GPIO_RESTART=y
-# CONFIG_POWER_RESET_LTC2952 is not set
-CONFIG_POWER_RESET_RESTART=y
-# CONFIG_POWER_RESET_VERSATILE is not set
-CONFIG_POWER_RESET_VEXPRESS=y
-CONFIG_POWER_RESET_SYSCON=y
-CONFIG_POWER_RESET_SYSCON_POWEROFF=y
-CONFIG_POWER_AVS=y
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-CONFIG_SENSORS_AD7314=m
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7X10=m
-CONFIG_SENSORS_ADT7310=m
-CONFIG_SENSORS_ADT7410=m
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_DA9052_ADC=m
-CONFIG_SENSORS_DA9055=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_MC13783_ADC=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_G762=m
-CONFIG_SENSORS_GPIO_FAN=y
-CONFIG_SENSORS_HIH6130=m
-CONFIG_SENSORS_IIO_HWMON=m
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_JC42=m
-CONFIG_SENSORS_POWR1220=m
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LTC2945=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4222=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4260=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-CONFIG_SENSORS_MAX197=m
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_MAX6697=m
-CONFIG_SENSORS_MAX31790=m
-CONFIG_SENSORS_HTU21=m
-CONFIG_SENSORS_MCP3021=m
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LM95234=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_NCT6683=m
-CONFIG_SENSORS_NCT6775=m
-CONFIG_SENSORS_NCT7802=m
-CONFIG_SENSORS_NCT7904=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-CONFIG_SENSORS_ADM1275=m
-CONFIG_SENSORS_LM25066=m
-CONFIG_SENSORS_LTC2978=m
-CONFIG_SENSORS_LTC2978_REGULATOR=y
-CONFIG_SENSORS_MAX16064=m
-CONFIG_SENSORS_MAX20751=m
-CONFIG_SENSORS_MAX34440=m
-CONFIG_SENSORS_MAX8688=m
-CONFIG_SENSORS_TPS40422=m
-CONFIG_SENSORS_UCD9000=m
-CONFIG_SENSORS_UCD9200=m
-CONFIG_SENSORS_ZL6100=m
-CONFIG_SENSORS_PWM_FAN=m
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SHTC1=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_SMM665=m
-CONFIG_SENSORS_ADC128D818=m
-CONFIG_SENSORS_ADS1015=m
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
-CONFIG_SENSORS_AMC6821=m
-CONFIG_SENSORS_INA209=m
-CONFIG_SENSORS_INA2XX=m
-# CONFIG_SENSORS_TC74 is not set
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-CONFIG_SENSORS_TMP103=m
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_TWL4030_MADC=m
-# CONFIG_SENSORS_VEXPRESS is not set
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-# CONFIG_SENSORS_W83795_FANCTRL is not set
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_HWMON=y
-CONFIG_THERMAL_OF=y
-# CONFIG_THERMAL_WRITABLE_TRIPS is not set
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_STEP_WISE=y
-CONFIG_THERMAL_GOV_BANG_BANG=y
-# CONFIG_THERMAL_GOV_USER_SPACE is not set
-# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
-CONFIG_CPU_THERMAL=y
-CONFIG_CLOCK_THERMAL=y
-CONFIG_DEVFREQ_THERMAL=y
-# CONFIG_THERMAL_EMULATION is not set
-# CONFIG_IMX_THERMAL is not set
-
-#
-# Texas Instruments thermal drivers
-#
-CONFIG_TI_SOC_THERMAL=y
-CONFIG_TI_THERMAL=y
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-CONFIG_WATCHDOG_NOWAYOUT=y
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-# CONFIG_DA9052_WATCHDOG is not set
-# CONFIG_DA9055_WATCHDOG is not set
-# CONFIG_DA9063_WATCHDOG is not set
-# CONFIG_GPIO_WATCHDOG is not set
-# CONFIG_XILINX_WATCHDOG is not set
-# CONFIG_CADENCE_WATCHDOG is not set
-# CONFIG_DW_WATCHDOG is not set
-CONFIG_OMAP_WATCHDOG=y
-CONFIG_TWL4030_WATCHDOG=y
-# CONFIG_MAX63XX_WATCHDOG is not set
-# CONFIG_BCM7038_WDT is not set
-# CONFIG_MEN_A21_WDT is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB=m
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-# CONFIG_SSB_HOST_SOC is not set
-# CONFIG_SSB_SILENT is not set
-# CONFIG_SSB_DEBUG is not set
-# CONFIG_SSB_DRIVER_GPIO is not set
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-# CONFIG_BCMA_HOST_SOC is not set
-# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
-# CONFIG_BCMA_DRIVER_GPIO is not set
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_AS3711 is not set
-CONFIG_MFD_AS3722=y
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_AAT2870_CORE is not set
-# CONFIG_MFD_ATMEL_FLEXCOM is not set
-# CONFIG_MFD_ATMEL_HLCDC is not set
-# CONFIG_MFD_BCM590XX is not set
-CONFIG_MFD_AXP20X=y
-# CONFIG_MFD_CROS_EC is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_PMIC_DA903X is not set
-CONFIG_PMIC_DA9052=y
-CONFIG_MFD_DA9052_SPI=y
-CONFIG_MFD_DA9052_I2C=y
-CONFIG_MFD_DA9055=y
-# CONFIG_MFD_DA9062 is not set
-CONFIG_MFD_DA9063=y
-# CONFIG_MFD_DA9150 is not set
-CONFIG_MFD_DLN2=y
-CONFIG_MFD_MC13XXX=m
-CONFIG_MFD_MC13XXX_SPI=m
-CONFIG_MFD_MC13XXX_I2C=m
-# CONFIG_MFD_HI6421_PMIC is not set
-# CONFIG_HTC_EGPIO is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-# CONFIG_INTEL_SOC_PMIC is not set
-# CONFIG_MFD_KEMPLD is not set
-# CONFIG_MFD_88PM800 is not set
-# CONFIG_MFD_88PM805 is not set
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_MAX14577 is not set
-# CONFIG_MFD_MAX77686 is not set
-# CONFIG_MFD_MAX77693 is not set
-# CONFIG_MFD_MAX77843 is not set
-# CONFIG_MFD_MAX8907 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_MT6397 is not set
-# CONFIG_MFD_MENF21BMC is not set
-# CONFIG_EZX_PCAP is not set
-CONFIG_MFD_VIPERBOARD=m
-# CONFIG_MFD_RETU is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_PM8921_CORE is not set
-# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_USB=m
-# CONFIG_MFD_RC5T583 is not set
-# CONFIG_MFD_RK808 is not set
-# CONFIG_MFD_RN5T618 is not set
-CONFIG_MFD_SEC_CORE=y
-# CONFIG_MFD_SI476X_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_SKY81452 is not set
-# CONFIG_MFD_SMSC is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_MFD_STMPE is not set
-CONFIG_MFD_SYSCON=y
-CONFIG_MFD_TI_AM335X_TSCADC=m
-# CONFIG_MFD_LP3943 is not set
-# CONFIG_MFD_LP8788 is not set
-CONFIG_MFD_OMAP_USB_HOST=y
-CONFIG_MFD_PALMAS=y
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_MFD_TPS65090 is not set
-CONFIG_MFD_TPS65217=y
-CONFIG_MFD_TPS65218=y
-# CONFIG_MFD_TPS6586X is not set
-CONFIG_MFD_TPS65910=y
-# CONFIG_MFD_TPS65912 is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-# CONFIG_MFD_TPS80031 is not set
-CONFIG_TWL4030_CORE=y
-CONFIG_TWL4030_POWER=y
-CONFIG_MFD_TWL4030_AUDIO=y
-CONFIG_TWL6040_CORE=y
-CONFIG_MFD_WL1273_CORE=m
-# CONFIG_MFD_LM3533 is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_ARIZONA_SPI is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-CONFIG_MFD_VEXPRESS_SYSREG=y
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-CONFIG_REGULATOR_USERSPACE_CONSUMER=y
-CONFIG_REGULATOR_ACT8865=m
-# CONFIG_REGULATOR_AD5398 is not set
-CONFIG_REGULATOR_ANATOP=y
-CONFIG_REGULATOR_AS3722=y
-CONFIG_REGULATOR_AXP20X=y
-CONFIG_REGULATOR_DA9052=y
-# CONFIG_REGULATOR_DA9055 is not set
-CONFIG_REGULATOR_DA9063=y
-# CONFIG_REGULATOR_DA9210 is not set
-# CONFIG_REGULATOR_DA9211 is not set
-CONFIG_REGULATOR_FAN53555=m
-CONFIG_REGULATOR_GPIO=y
-# CONFIG_REGULATOR_ISL9305 is not set
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-# CONFIG_REGULATOR_LP872X is not set
-# CONFIG_REGULATOR_LP8755 is not set
-# CONFIG_REGULATOR_LTC3589 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-# CONFIG_REGULATOR_MAX8973 is not set
-CONFIG_REGULATOR_MC13XXX_CORE=m
-CONFIG_REGULATOR_MC13783=m
-CONFIG_REGULATOR_MC13892=m
-CONFIG_REGULATOR_MT6311=y
-CONFIG_REGULATOR_PALMAS=y
-CONFIG_REGULATOR_PBIAS=y
-CONFIG_REGULATOR_PFUZE100=y
-CONFIG_REGULATOR_PWM=y
-CONFIG_REGULATOR_S2MPA01=m
-CONFIG_REGULATOR_S2MPS11=m
-CONFIG_REGULATOR_S5M8767=m
-CONFIG_REGULATOR_TI_ABB=y
-# CONFIG_REGULATOR_TPS51632 is not set
-# CONFIG_REGULATOR_TPS62360 is not set
-CONFIG_REGULATOR_TPS65023=y
-CONFIG_REGULATOR_TPS6507X=y
-CONFIG_REGULATOR_TPS65217=y
-CONFIG_REGULATOR_TPS65218=y
-# CONFIG_REGULATOR_TPS6524X is not set
-CONFIG_REGULATOR_TPS65910=y
-CONFIG_REGULATOR_TWL4030=y
-CONFIG_REGULATOR_VEXPRESS=m
-CONFIG_MEDIA_SUPPORT=y
-
-#
-# Multimedia core support
-#
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
-# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
-# CONFIG_MEDIA_RADIO_SUPPORT is not set
-# CONFIG_MEDIA_SDR_SUPPORT is not set
-CONFIG_MEDIA_RC_SUPPORT=y
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_VIDEO_DEV=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_VIDEO_V4L2=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-# CONFIG_TTPCI_EEPROM is not set
-
-#
-# Media drivers
-#
-CONFIG_RC_CORE=y
-# CONFIG_RC_MAP is not set
-# CONFIG_RC_DECODERS is not set
-# CONFIG_RC_DEVICES is not set
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Webcam devices
-#
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_DTCS033=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STK1135=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TOUPTEK=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_VIDEO_CPIA2=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_VIDEO_USBTV=m
-
-#
-# Webcam, TV (analog/digital) USB devices
-#
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_V4L2=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_RC=m
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_SOC_CAMERA=m
-CONFIG_SOC_CAMERA_PLATFORM=m
-# CONFIG_VIDEO_XILINX is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
-# CONFIG_VIDEO_SH_VEU is not set
-# CONFIG_V4L_TEST_DRIVERS is not set
-
-#
-# Supported MMC/SDIO adapters
-#
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_CYPRESS_FIRMWARE=m
-
-#
-# Media ancillary drivers (tuners, sensors, i2c, frontends)
-#
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-CONFIG_VIDEO_IR_I2C=y
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_MSP3400=m
-
-#
-# RDS decoders
-#
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TVP5150=m
-
-#
-# Video and audio decoders
-#
-
-#
-# Video encoders
-#
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_MT9V011=m
-
-#
-# Flash devices
-#
-
-#
-# Video improvement chips
-#
-
-#
-# Audio/Video compression chips
-#
-
-#
-# Miscellaneous helper chips
-#
-
-#
-# Sensors used on soc_camera driver
-#
-
-#
-# soc_camera sensor drivers
-#
-CONFIG_SOC_CAMERA_IMX074=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_SOC_CAMERA_MT9T031=m
-CONFIG_SOC_CAMERA_MT9T112=m
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_SOC_CAMERA_OV2640=m
-CONFIG_SOC_CAMERA_OV5642=m
-CONFIG_SOC_CAMERA_OV6650=m
-CONFIG_SOC_CAMERA_OV772X=m
-CONFIG_SOC_CAMERA_OV9640=m
-CONFIG_SOC_CAMERA_OV9740=m
-CONFIG_SOC_CAMERA_RJ54N1=m
-CONFIG_SOC_CAMERA_TW9910=m
-
-#
-# Tools to develop new frontends
-#
-# CONFIG_DVB_DUMMY_FE is not set
-
-#
-# Graphics support
-#
-CONFIG_DRM=y
-CONFIG_DRM_KMS_HELPER=y
-CONFIG_DRM_KMS_FB_HELPER=y
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_LOAD_EDID_FIRMWARE=y
-CONFIG_DRM_TTM=m
-CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
-
-#
-# I2C encoder or helper chips
-#
-CONFIG_DRM_I2C_ADV7511=m
-CONFIG_DRM_I2C_ADIHDMI=m
-CONFIG_DRM_I2C_CH7006=m
-CONFIG_DRM_I2C_SIL164=m
-CONFIG_DRM_I2C_NXP_TDA998X=m
-CONFIG_DRM_VGEM=m
-# CONFIG_DRM_EXYNOS is not set
-CONFIG_DRM_UDL=m
-# CONFIG_DRM_ARMADA is not set
-CONFIG_DRM_TILCDC=y
-CONFIG_DRM_TILCDC_SLAVE_COMPAT=y
-CONFIG_DRM_VIRTIO_GPU=m
-# CONFIG_DRM_FSL_DCU is not set
-CONFIG_DRM_BRIDGE=y
-
-#
-# Display Interface Bridges
-#
-# CONFIG_DRM_NXP_PTN3460 is not set
-# CONFIG_DRM_PARADE_PS8622 is not set
-# CONFIG_DRM_STI is not set
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_CMDLINE=y
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=y
-CONFIG_FB_SYS_COPYAREA=y
-CONFIG_FB_SYS_IMAGEBLIT=y
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=y
-CONFIG_FB_DEFERRED_IO=y
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-CONFIG_FB_BACKLIGHT=y
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_UVESA is not set
-# CONFIG_FB_OPENCORES is not set
-# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_SMSCUFX=m
-CONFIG_FB_UDL=m
-# CONFIG_FB_IBM_GXT4500 is not set
-# CONFIG_FB_DA8XX is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_BROADSHEET is not set
-# CONFIG_FB_AUO_K190X is not set
-CONFIG_FB_SIMPLE=y
-# CONFIG_OMAP2_DSS is not set
-CONFIG_FB_SSD1307=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_BACKLIGHT_PWM=m
-# CONFIG_BACKLIGHT_DA9052 is not set
-# CONFIG_BACKLIGHT_PM8941_WLED is not set
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-# CONFIG_BACKLIGHT_LM3630A is not set
-# CONFIG_BACKLIGHT_LM3639 is not set
-# CONFIG_BACKLIGHT_LP855X is not set
-# CONFIG_BACKLIGHT_PANDORA is not set
-# CONFIG_BACKLIGHT_TPS65217 is not set
-CONFIG_BACKLIGHT_GPIO=m
-# CONFIG_BACKLIGHT_LV5207LP is not set
-# CONFIG_BACKLIGHT_BD6107 is not set
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEOMODE_HELPERS=y
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-CONFIG_LOGO=y
-CONFIG_FB_LOGO_CUSTOM=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_DMAENGINE_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_JACK=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_PCM_TIMER=y
-# CONFIG_SND_SEQUENCER_OSS is not set
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=32
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_PROC_FS=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_RAWMIDI_SEQ=m
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DUMMY is not set
-CONFIG_SND_ALOOP=m
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# HD-Audio
-#
-CONFIG_SND_HDA_PREALLOC_SIZE=64
-CONFIG_SND_ARM=y
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_USB_HIFACE=m
-CONFIG_SND_BCD2000=m
-CONFIG_SND_USB_LINE6=m
-CONFIG_SND_USB_POD=m
-CONFIG_SND_USB_PODHD=m
-CONFIG_SND_USB_TONEPORT=m
-CONFIG_SND_USB_VARIAX=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
-# CONFIG_SND_ATMEL_SOC is not set
-CONFIG_SND_EDMA_SOC=m
-CONFIG_SND_DAVINCI_SOC_MCASP=m
-CONFIG_SND_DAVINCI_SOC_GENERIC_EVM=m
-CONFIG_SND_AM33XX_SOC_EVM=m
-# CONFIG_SND_DESIGNWARE_I2S is not set
-
-#
-# SoC Audio for Freescale CPUs
-#
-
-#
-# Common SoC Audio options for Freescale CPUs:
-#
-# CONFIG_SND_SOC_FSL_ASRC is not set
-# CONFIG_SND_SOC_FSL_SAI is not set
-CONFIG_SND_SOC_FSL_SSI=m
-CONFIG_SND_SOC_FSL_SPDIF=m
-# CONFIG_SND_SOC_FSL_ESAI is not set
-CONFIG_SND_SOC_IMX_AUDMUX=m
-CONFIG_SND_OMAP_SOC=m
-CONFIG_SND_OMAP_SOC_MCBSP=m
-CONFIG_SND_OMAP_SOC_HDMI_AUDIO=m
-CONFIG_SND_OMAP_SOC_RX51=m
-CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
-
-#
-# Allwinner SoC Audio support
-#
-CONFIG_SND_SUN4I_CODEC=m
-# CONFIG_SND_SOC_XTFPGA_I2S is not set
-CONFIG_SND_SOC_I2C_AND_SPI=m
-
-#
-# CODEC drivers
-#
-# CONFIG_SND_SOC_AC97_CODEC is not set
-# CONFIG_SND_SOC_ADAU1701 is not set
-# CONFIG_SND_SOC_AK4104 is not set
-# CONFIG_SND_SOC_AK4554 is not set
-# CONFIG_SND_SOC_AK4613 is not set
-# CONFIG_SND_SOC_AK4642 is not set
-# CONFIG_SND_SOC_AK5386 is not set
-# CONFIG_SND_SOC_ALC5623 is not set
-# CONFIG_SND_SOC_CS35L32 is not set
-# CONFIG_SND_SOC_CS42L51_I2C is not set
-# CONFIG_SND_SOC_CS42L52 is not set
-# CONFIG_SND_SOC_CS42L56 is not set
-# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS4265 is not set
-# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
-# CONFIG_SND_SOC_CS4271_SPI is not set
-# CONFIG_SND_SOC_CS42XX8_I2C is not set
-# CONFIG_SND_SOC_CS4349 is not set
-# CONFIG_SND_SOC_ES8328 is not set
-# CONFIG_SND_SOC_GTM601 is not set
-# CONFIG_SND_SOC_PCM1681 is not set
-# CONFIG_SND_SOC_PCM1792A is not set
-# CONFIG_SND_SOC_PCM512x_I2C is not set
-# CONFIG_SND_SOC_PCM512x_SPI is not set
-# CONFIG_SND_SOC_RT5631 is not set
-# CONFIG_SND_SOC_RT5677_SPI is not set
-CONFIG_SND_SOC_SGTL5000=m
-# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
-# CONFIG_SND_SOC_SPDIF is not set
-# CONFIG_SND_SOC_SSM2602_SPI is not set
-# CONFIG_SND_SOC_SSM2602_I2C is not set
-# CONFIG_SND_SOC_SSM4567 is not set
-# CONFIG_SND_SOC_STA32X is not set
-# CONFIG_SND_SOC_STA350 is not set
-# CONFIG_SND_SOC_STI_SAS is not set
-# CONFIG_SND_SOC_TAS2552 is not set
-# CONFIG_SND_SOC_TAS5086 is not set
-# CONFIG_SND_SOC_TAS571X is not set
-# CONFIG_SND_SOC_TFA9879 is not set
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC23_I2C=m
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
-CONFIG_SND_SOC_TLV320AIC31XX=m
-CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_TS3A227E=m
-CONFIG_SND_SOC_TWL4030=m
-# CONFIG_SND_SOC_WM8510 is not set
-# CONFIG_SND_SOC_WM8523 is not set
-# CONFIG_SND_SOC_WM8580 is not set
-# CONFIG_SND_SOC_WM8711 is not set
-# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
-# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
-# CONFIG_SND_SOC_WM8750 is not set
-# CONFIG_SND_SOC_WM8753 is not set
-# CONFIG_SND_SOC_WM8770 is not set
-# CONFIG_SND_SOC_WM8776 is not set
-# CONFIG_SND_SOC_WM8804_I2C is not set
-# CONFIG_SND_SOC_WM8804_SPI is not set
-# CONFIG_SND_SOC_WM8903 is not set
-# CONFIG_SND_SOC_WM8962 is not set
-# CONFIG_SND_SOC_WM8978 is not set
-CONFIG_SND_SOC_TPA6130A2=m
-CONFIG_SND_SIMPLE_CARD=m
-# CONFIG_SOUND_PRIME is not set
-
-#
-# HID support
-#
-CONFIG_HID=y
-CONFIG_HID_BATTERY_STRENGTH=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=y
-CONFIG_HID_GENERIC=y
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=m
-CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=m
-CONFIG_HID_APPLEIR=m
-CONFIG_HID_AUREAL=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_BETOP_FF=m
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
-CONFIG_HID_CORSAIR=m
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CP2112=m
-CONFIG_HID_CYPRESS=m
-CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
-CONFIG_HID_EMS_FF=m
-CONFIG_HID_ELECOM=m
-CONFIG_HID_ELO=m
-CONFIG_HID_EZKEY=m
-CONFIG_HID_GEMBIRD=m
-CONFIG_HID_GFRM=m
-CONFIG_HID_HOLTEK=m
-CONFIG_HOLTEK_FF=y
-CONFIG_HID_GT683R=m
-CONFIG_HID_KEYTOUCH=m
-CONFIG_HID_KYE=m
-CONFIG_HID_UCLOGIC=m
-CONFIG_HID_WALTOP=m
-CONFIG_HID_GYRATION=m
-CONFIG_HID_ICADE=m
-CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=m
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LENOVO=m
-CONFIG_HID_LOGITECH=y
-CONFIG_HID_LOGITECH_DJ=y
-CONFIG_HID_LOGITECH_HIDPP=y
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
-CONFIG_HID_MULTITOUCH=m
-CONFIG_HID_NTRIG=m
-CONFIG_HID_ORTEK=m
-CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
-CONFIG_HID_PENMOUNT=m
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PICOLCD_CIR=y
-CONFIG_HID_PLANTRONICS=m
-CONFIG_HID_PRIMAX=m
-CONFIG_HID_ROCCAT=m
-CONFIG_HID_SAITEK=m
-CONFIG_HID_SAMSUNG=m
-CONFIG_HID_SONY=m
-CONFIG_SONY_FF=y
-CONFIG_HID_SPEEDLINK=m
-CONFIG_HID_STEELSERIES=m
-CONFIG_HID_SUNPLUS=m
-CONFIG_HID_RMI=m
-CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
-CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
-CONFIG_HID_TIVO=m
-CONFIG_HID_TOPSEED=m
-CONFIG_HID_THINGM=m
-CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
-CONFIG_HID_WACOM=m
-CONFIG_HID_WIIMOTE=m
-CONFIG_HID_XINMO=m
-CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
-CONFIG_HID_ZYDACRON=m
-CONFIG_HID_SENSOR_HUB=m
-CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=y
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-
-#
-# I2C HID support
-#
-# CONFIG_I2C_HID is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-CONFIG_USB_DYNAMIC_MINORS=y
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_ULPI_BUS is not set
-CONFIG_USB_MON=m
-CONFIG_USB_WUSB=m
-CONFIG_USB_WUSB_CBAF=m
-# CONFIG_USB_WUSB_CBAF_DEBUG is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_XHCI_HCD=y
-CONFIG_USB_XHCI_PLATFORM=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_HCD_OMAP=y
-CONFIG_USB_EHCI_HCD_PLATFORM=y
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-# CONFIG_USB_FOTG210_HCD is not set
-# CONFIG_USB_MAX3421_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-CONFIG_USB_U132_HCD=m
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-CONFIG_USB_HWA_HCD=m
-# CONFIG_USB_HCD_BCMA is not set
-# CONFIG_USB_HCD_SSB is not set
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-CONFIG_USBIP_CORE=m
-CONFIG_USBIP_VHCI_HCD=m
-CONFIG_USBIP_HOST=m
-# CONFIG_USBIP_DEBUG is not set
-CONFIG_USB_MUSB_HDRC=y
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
-
-#
-# Platform Glue Layer
-#
-# CONFIG_USB_MUSB_TUSB6010 is not set
-# CONFIG_USB_MUSB_OMAP2PLUS is not set
-# CONFIG_USB_MUSB_AM35X is not set
-CONFIG_USB_MUSB_DSPS=y
-CONFIG_USB_MUSB_AM335X_CHILD=y
-
-#
-# MUSB DMA mode
-#
-# CONFIG_MUSB_PIO_ONLY is not set
-CONFIG_USB_TI_CPPI41_DMA=y
-CONFIG_USB_DWC3=y
-# CONFIG_USB_DWC3_HOST is not set
-# CONFIG_USB_DWC3_GADGET is not set
-CONFIG_USB_DWC3_DUAL_ROLE=y
-
-#
-# Platform Glue Driver Support
-#
-CONFIG_USB_DWC3_OMAP=m
-CONFIG_USB_DWC2=m
-# CONFIG_USB_DWC2_HOST is not set
-
-#
-# Gadget/Dual-role mode requires USB Gadget support to be enabled
-#
-# CONFIG_USB_DWC2_PERIPHERAL is not set
-CONFIG_USB_DWC2_DUAL_ROLE=y
-# CONFIG_USB_DWC2_DEBUG is not set
-# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
-CONFIG_USB_CHIPIDEA=y
-CONFIG_USB_CHIPIDEA_OF=y
-CONFIG_USB_CHIPIDEA_UDC=y
-CONFIG_USB_CHIPIDEA_HOST=y
-# CONFIG_USB_CHIPIDEA_DEBUG is not set
-# CONFIG_USB_ISP1760 is not set
-
-#
-# USB port drivers
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_SIMPLE=m
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_F81232=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_METRO=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MXUPORT=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_XSENS_MT=m
-CONFIG_USB_SERIAL_WISHBONE=m
-CONFIG_USB_SERIAL_SSU100=m
-CONFIG_USB_SERIAL_QT2=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-CONFIG_USB_RIO500=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-CONFIG_USB_LD=m
-CONFIG_USB_TRANCEVIBRATOR=m
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-CONFIG_USB_EHSET_TEST_FIXTURE=m
-CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_YUREX=m
-CONFIG_USB_EZUSB_FX2=m
-CONFIG_USB_HSIC_USB3503=m
-# CONFIG_USB_LINK_LAYER_TEST is not set
-CONFIG_USB_CHAOSKEY=m
-# CONFIG_USB_ATM is not set
-
-#
-# USB Physical Layer drivers
-#
-CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=y
-CONFIG_AM335X_CONTROL_USB=y
-CONFIG_AM335X_PHY_USB=y
-CONFIG_USB_GPIO_VBUS=y
-# CONFIG_USB_ISP1301 is not set
-CONFIG_USB_ULPI=y
-CONFIG_USB_ULPI_VIEWPORT=y
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=500
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-
-#
-# USB Peripheral Controller
-#
-# CONFIG_USB_FUSB300 is not set
-# CONFIG_USB_FOTG210_UDC is not set
-# CONFIG_USB_GR_UDC is not set
-# CONFIG_USB_R8A66597 is not set
-# CONFIG_USB_PXA27X is not set
-# CONFIG_USB_MV_UDC is not set
-# CONFIG_USB_MV_U3D is not set
-# CONFIG_USB_M66592 is not set
-# CONFIG_USB_BDC_UDC is not set
-# CONFIG_USB_NET2272 is not set
-# CONFIG_USB_GADGET_XILINX is not set
-# CONFIG_USB_DUMMY_HCD is not set
-CONFIG_USB_LIBCOMPOSITE=m
-CONFIG_USB_F_ACM=m
-CONFIG_USB_F_SS_LB=m
-CONFIG_USB_U_SERIAL=m
-CONFIG_USB_U_ETHER=m
-CONFIG_USB_F_SERIAL=m
-CONFIG_USB_F_OBEX=m
-CONFIG_USB_F_NCM=m
-CONFIG_USB_F_ECM=m
-CONFIG_USB_F_PHONET=m
-CONFIG_USB_F_SUBSET=m
-CONFIG_USB_F_RNDIS=m
-CONFIG_USB_F_MASS_STORAGE=m
-CONFIG_USB_F_FS=m
-CONFIG_USB_F_UAC2=m
-CONFIG_USB_F_MIDI=m
-CONFIG_USB_F_HID=m
-CONFIG_USB_F_PRINTER=m
-CONFIG_USB_CONFIGFS=m
-CONFIG_USB_CONFIGFS_SERIAL=y
-CONFIG_USB_CONFIGFS_ACM=y
-CONFIG_USB_CONFIGFS_OBEX=y
-CONFIG_USB_CONFIGFS_NCM=y
-CONFIG_USB_CONFIGFS_ECM=y
-CONFIG_USB_CONFIGFS_ECM_SUBSET=y
-CONFIG_USB_CONFIGFS_RNDIS=y
-# CONFIG_USB_CONFIGFS_EEM is not set
-# CONFIG_USB_CONFIGFS_PHONET is not set
-# CONFIG_USB_CONFIGFS_MASS_STORAGE is not set
-# CONFIG_USB_CONFIGFS_F_LB_SS is not set
-# CONFIG_USB_CONFIGFS_F_FS is not set
-# CONFIG_USB_CONFIGFS_F_UAC1 is not set
-# CONFIG_USB_CONFIGFS_F_UAC2 is not set
-# CONFIG_USB_CONFIGFS_F_MIDI is not set
-# CONFIG_USB_CONFIGFS_F_HID is not set
-# CONFIG_USB_CONFIGFS_F_UVC is not set
-# CONFIG_USB_CONFIGFS_F_PRINTER is not set
-CONFIG_USB_ZERO=m
-CONFIG_USB_AUDIO=m
-# CONFIG_GADGET_UAC1 is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM is not set
-CONFIG_USB_G_NCM=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_FUNCTIONFS_ETH=y
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-CONFIG_USB_FUNCTIONFS_GENERIC=y
-CONFIG_USB_MASS_STORAGE=m
-# CONFIG_USB_GADGET_TARGET is not set
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_MIDI_GADGET=m
-CONFIG_USB_G_PRINTER=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_USB_G_NOKIA=m
-CONFIG_USB_G_ACM_MS=m
-CONFIG_USB_G_MULTI=m
-CONFIG_USB_G_MULTI_RNDIS=y
-# CONFIG_USB_G_MULTI_CDC is not set
-CONFIG_USB_G_HID=m
-CONFIG_USB_G_DBGP=m
-# CONFIG_USB_G_DBGP_PRINTK is not set
-CONFIG_USB_G_DBGP_SERIAL=y
-# CONFIG_USB_G_WEBCAM is not set
-CONFIG_USB_LED_TRIG=y
-CONFIG_UWB=m
-CONFIG_UWB_HWA=m
-CONFIG_UWB_I1480U=m
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_PLTFM=y
-# CONFIG_MMC_SDHCI_OF_ARASAN is not set
-# CONFIG_MMC_SDHCI_OF_AT91 is not set
-# CONFIG_MMC_SDHCI_F_SDH30 is not set
-CONFIG_MMC_OMAP=y
-CONFIG_MMC_OMAP_HS=y
-CONFIG_MMC_DW=y
-CONFIG_MMC_DW_PLTFM=y
-CONFIG_MMC_DW_EXYNOS=m
-# CONFIG_MMC_DW_K3 is not set
-CONFIG_MMC_VUB300=m
-CONFIG_MMC_USHC=m
-# CONFIG_MMC_USDHI6ROL0 is not set
-CONFIG_MMC_REALTEK_USB=m
-# CONFIG_MMC_MTK is not set
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-# CONFIG_MS_BLOCK is not set
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_REALTEK_USB=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-# CONFIG_LEDS_CLASS_FLASH is not set
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_BCM6328 is not set
-# CONFIG_LEDS_BCM6358 is not set
-CONFIG_LEDS_LM3530=m
-CONFIG_LEDS_LM3642=m
-CONFIG_LEDS_PCA9532=m
-CONFIG_LEDS_PCA9532_GPIO=y
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_LP55XX_COMMON=m
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_LP5562=m
-CONFIG_LEDS_LP8501=m
-CONFIG_LEDS_LP8860=m
-CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_PCA963X=m
-CONFIG_LEDS_DA9052=m
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_REGULATOR=m
-CONFIG_LEDS_BD2802=m
-CONFIG_LEDS_LT3593=m
-CONFIG_LEDS_MC13783=m
-CONFIG_LEDS_TCA6507=m
-CONFIG_LEDS_TLC591XX=m
-CONFIG_LEDS_LM355x=m
-
-#
-# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
-#
-# CONFIG_LEDS_BLINKM is not set
-# CONFIG_LEDS_SYSCON is not set
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_ONESHOT=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_BACKLIGHT=y
-# CONFIG_LEDS_TRIGGER_CPU is not set
-CONFIG_LEDS_TRIGGER_GPIO=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_LEDS_TRIGGER_TRANSIENT=m
-CONFIG_LEDS_TRIGGER_CAMERA=m
-CONFIG_ACCESSIBILITY=y
-CONFIG_A11Y_BRAILLE_CONSOLE=y
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-# CONFIG_EDAC is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_ABB5ZES3 is not set
-# CONFIG_RTC_DRV_ABX80X is not set
-CONFIG_RTC_DRV_AS3722=y
-CONFIG_RTC_DRV_DS1307=y
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1374_WDT=y
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_DS3232=m
-CONFIG_RTC_DRV_HYM8563=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_ISL12057=y
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PALMAS=y
-CONFIG_RTC_DRV_PCF2127=m
-CONFIG_RTC_DRV_PCF8523=y
-CONFIG_RTC_DRV_PCF8563=y
-CONFIG_RTC_DRV_PCF85063=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_TWL4030=y
-CONFIG_RTC_DRV_TPS65910=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-CONFIG_RTC_DRV_RV3029C2=m
-CONFIG_RTC_DRV_RV8803=m
-CONFIG_RTC_DRV_S5M=y
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1343=m
-CONFIG_RTC_DRV_DS1347=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_DS3234=m
-CONFIG_RTC_DRV_PCF2123=m
-CONFIG_RTC_DRV_RX4581=m
-CONFIG_RTC_DRV_MCP795=m
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=m
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1685_FAMILY=m
-CONFIG_RTC_DRV_DS1685=y
-# CONFIG_RTC_DRV_DS1689 is not set
-# CONFIG_RTC_DRV_DS17285 is not set
-# CONFIG_RTC_DRV_DS17485 is not set
-# CONFIG_RTC_DRV_DS17885 is not set
-# CONFIG_RTC_DS1685_PROC_REGS is not set
-# CONFIG_RTC_DS1685_SYSFS_REGS is not set
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_DS2404=m
-CONFIG_RTC_DRV_DA9052=y
-CONFIG_RTC_DRV_DA9055=m
-CONFIG_RTC_DRV_DA9063=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_MSM6242=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_RP5C01=m
-CONFIG_RTC_DRV_V3020=m
-# CONFIG_RTC_DRV_ZYNQMP is not set
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_OMAP=y
-CONFIG_RTC_DRV_MC13XXX=m
-CONFIG_RTC_DRV_SNVS=y
-
-#
-# HID Sensor RTC drivers
-#
-CONFIG_RTC_DRV_HID_SENSOR_TIME=m
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=y
-CONFIG_DMA_OF=y
-CONFIG_DMA_OMAP=y
-CONFIG_FSL_EDMA=y
-# CONFIG_INTEL_IDMA64 is not set
-# CONFIG_NBPFAXI_DMA is not set
-CONFIG_TI_CPPI41=y
-CONFIG_TI_DMA_CROSSBAR=y
-CONFIG_TI_EDMA=y
-CONFIG_DW_DMAC_CORE=y
-CONFIG_DW_DMAC=y
-
-#
-# DMA Clients
-#
-CONFIG_ASYNC_TX_DMA=y
-# CONFIG_DMATEST is not set
-# CONFIG_AUXDISPLAY is not set
-CONFIG_UIO=m
-CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_DMEM_GENIRQ=m
-CONFIG_UIO_PRUSS=m
-# CONFIG_VFIO is not set
-CONFIG_VIRT_DRIVERS=y
-CONFIG_VIRTIO=y
-
-#
-# Virtio drivers
-#
-CONFIG_VIRTIO_BALLOON=m
-CONFIG_VIRTIO_INPUT=m
-CONFIG_VIRTIO_MMIO=m
-# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-CONFIG_STAGING=y
-# CONFIG_PRISM2_USB is not set
-# CONFIG_COMEDI is not set
-CONFIG_RTLLIB=m
-CONFIG_RTLLIB_CRYPTO_CCMP=m
-CONFIG_RTLLIB_CRYPTO_TKIP=m
-CONFIG_RTLLIB_CRYPTO_WEP=m
-CONFIG_R8712U=m
-CONFIG_R8188EU=m
-CONFIG_88EU_AP_MODE=y
-# CONFIG_R8723AU is not set
-# CONFIG_VT6656 is not set
-
-#
-# IIO staging drivers
-#
-
-#
-# Accelerometers
-#
-CONFIG_ADIS16201=m
-CONFIG_ADIS16203=m
-CONFIG_ADIS16209=m
-CONFIG_ADIS16240=m
-CONFIG_LIS3L02DQ=m
-CONFIG_SCA3000=m
-
-#
-# Analog to digital converters
-#
-CONFIG_AD7606=m
-# CONFIG_AD7606_IFACE_PARALLEL is not set
-CONFIG_AD7606_IFACE_SPI=m
-CONFIG_AD7780=m
-CONFIG_AD7816=m
-CONFIG_AD7192=m
-CONFIG_AD7280=m
-
-#
-# Analog digital bi-direction converters
-#
-CONFIG_ADT7316=m
-CONFIG_ADT7316_SPI=m
-CONFIG_ADT7316_I2C=m
-
-#
-# Capacitance to digital converters
-#
-CONFIG_AD7150=m
-CONFIG_AD7152=m
-CONFIG_AD7746=m
-
-#
-# Direct Digital Synthesis
-#
-CONFIG_AD9832=m
-CONFIG_AD9834=m
-
-#
-# Digital gyroscope sensors
-#
-CONFIG_ADIS16060=m
-
-#
-# Network Analyzer, Impedance Converters
-#
-CONFIG_AD5933=m
-
-#
-# Light sensors
-#
-CONFIG_SENSORS_ISL29018=m
-CONFIG_SENSORS_ISL29028=m
-CONFIG_TSL2583=m
-CONFIG_TSL2x7x=m
-
-#
-# Active energy metering IC
-#
-CONFIG_ADE7753=m
-CONFIG_ADE7754=m
-CONFIG_ADE7758=m
-CONFIG_ADE7759=m
-CONFIG_ADE7854=m
-CONFIG_ADE7854_I2C=m
-CONFIG_ADE7854_SPI=m
-
-#
-# Resolver to digital converters
-#
-CONFIG_AD2S90=m
-CONFIG_AD2S1200=m
-CONFIG_AD2S1210=m
-
-#
-# Triggers - standalone
-#
-
-#
-# Speakup console speech
-#
-CONFIG_SPEAKUP=m
-CONFIG_SPEAKUP_SYNTH_ACNTSA=m
-CONFIG_SPEAKUP_SYNTH_APOLLO=m
-CONFIG_SPEAKUP_SYNTH_AUDPTR=m
-CONFIG_SPEAKUP_SYNTH_BNS=m
-CONFIG_SPEAKUP_SYNTH_DECTLK=m
-CONFIG_SPEAKUP_SYNTH_DECEXT=m
-CONFIG_SPEAKUP_SYNTH_LTLK=m
-CONFIG_SPEAKUP_SYNTH_SOFT=m
-CONFIG_SPEAKUP_SYNTH_SPKOUT=m
-CONFIG_SPEAKUP_SYNTH_TXPRT=m
-CONFIG_SPEAKUP_SYNTH_DUMMY=m
-# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
-# CONFIG_STAGING_MEDIA is not set
-
-#
-# Android
-#
-CONFIG_ASHMEM=y
-CONFIG_ANDROID_TIMED_OUTPUT=y
-CONFIG_ANDROID_TIMED_GPIO=m
-# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
-CONFIG_SYNC=y
-# CONFIG_SW_SYNC is not set
-CONFIG_ION=y
-# CONFIG_ION_TEST is not set
-# CONFIG_ION_DUMMY is not set
-# CONFIG_STAGING_BOARD is not set
-# CONFIG_WIMAX_GDM72XX is not set
-# CONFIG_LTE_GDM724X is not set
-# CONFIG_MTD_SPINAND_MT29F is not set
-# CONFIG_LUSTRE_FS is not set
-# CONFIG_DGAP is not set
-# CONFIG_GS_FPGABOOT is not set
-# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
-CONFIG_FB_TFT=m
-CONFIG_FB_TFT_AGM1264K_FL=m
-CONFIG_FB_TFT_BD663474=m
-CONFIG_FB_TFT_HX8340BN=m
-CONFIG_FB_TFT_HX8347D=m
-CONFIG_FB_TFT_HX8353D=m
-CONFIG_FB_TFT_HX8357D=m
-CONFIG_FB_TFT_ILI9163=m
-CONFIG_FB_TFT_ILI9320=m
-CONFIG_FB_TFT_ILI9325=m
-CONFIG_FB_TFT_ILI9340=m
-CONFIG_FB_TFT_ILI9341=m
-CONFIG_FB_TFT_ILI9481=m
-CONFIG_FB_TFT_ILI9486=m
-CONFIG_FB_TFT_PCD8544=m
-CONFIG_FB_TFT_RA8875=m
-CONFIG_FB_TFT_S6D02A1=m
-CONFIG_FB_TFT_S6D1121=m
-CONFIG_FB_TFT_SSD1289=m
-CONFIG_FB_TFT_SSD1305=m
-CONFIG_FB_TFT_SSD1306=m
-CONFIG_FB_TFT_SSD1325=m
-CONFIG_FB_TFT_SSD1331=m
-CONFIG_FB_TFT_SSD1351=m
-CONFIG_FB_TFT_ST7735R=m
-CONFIG_FB_TFT_ST7789V=m
-CONFIG_FB_TFT_TINYLCD=m
-CONFIG_FB_TFT_TLS8204=m
-CONFIG_FB_TFT_UC1611=m
-CONFIG_FB_TFT_UC1701=m
-CONFIG_FB_TFT_UPD161704=m
-CONFIG_FB_TFT_WATTEROTT=m
-CONFIG_FB_FLEX=m
-CONFIG_FB_TFT_FBTFT_DEVICE=m
-# CONFIG_WILC1000_DRIVER is not set
-# CONFIG_MOST is not set
-# CONFIG_CHROME_PLATFORMS is not set
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_COMMON_CLK=y
-
-#
-# Common Clock Framework
-#
-# CONFIG_COMMON_CLK_SI5351 is not set
-# CONFIG_COMMON_CLK_SI514 is not set
-# CONFIG_COMMON_CLK_SI570 is not set
-# CONFIG_COMMON_CLK_CDCE925 is not set
-CONFIG_COMMON_CLK_S2MPS11=m
-CONFIG_CLK_TWL6040=y
-# CONFIG_CLK_QORIQ is not set
-CONFIG_COMMON_CLK_PALMAS=y
-# CONFIG_COMMON_CLK_PWM is not set
-# CONFIG_COMMON_CLK_PXA is not set
-# CONFIG_COMMON_CLK_CDCE706 is not set
-CONFIG_HWSPINLOCK=y
-
-#
-# Hardware Spinlock drivers
-#
-CONFIG_HWSPINLOCK_OMAP=y
-
-#
-# Clock Source drivers
-#
-CONFIG_CLKSRC_OF=y
-CONFIG_CLKSRC_PROBE=y
-CONFIG_CLKSRC_MMIO=y
-CONFIG_CLKSRC_TI_32K=y
-CONFIG_ARM_ARCH_TIMER=y
-CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
-CONFIG_ARM_TIMER_SP804=y
-# CONFIG_ATMEL_PIT is not set
-# CONFIG_SH_TIMER_CMT is not set
-# CONFIG_SH_TIMER_MTU2 is not set
-# CONFIG_SH_TIMER_TMU is not set
-# CONFIG_EM_TIMER_STI is not set
-CONFIG_MAILBOX=y
-CONFIG_OMAP2PLUS_MBOX=y
-CONFIG_OMAP_MBOX_KFIFO_SIZE=256
-# CONFIG_ALTERA_MBOX is not set
-# CONFIG_MAILBOX_TEST is not set
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-CONFIG_IOMMU_IO_PGTABLE=y
-CONFIG_IOMMU_IO_PGTABLE_LPAE=y
-# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
-CONFIG_OF_IOMMU=y
-CONFIG_OMAP_IOMMU=y
-# CONFIG_OMAP_IOMMU_DEBUG is not set
-CONFIG_ARM_SMMU=y
-
-#
-# Remoteproc drivers
-#
-CONFIG_REMOTEPROC=y
-# CONFIG_STE_MODEM_RPROC is not set
-CONFIG_WKUP_M3_RPROC=y
-
-#
-# Rpmsg drivers
-#
-
-#
-# SOC (System On Chip) specific Drivers
-#
-# CONFIG_SOC_BRCMSTB is not set
-# CONFIG_SUNXI_SRAM is not set
-CONFIG_SOC_TI=y
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
-CONFIG_DEVFREQ_GOV_PERFORMANCE=y
-# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
-CONFIG_DEVFREQ_GOV_USERSPACE=y
-
-#
-# DEVFREQ Drivers
-#
-# CONFIG_PM_DEVFREQ_EVENT is not set
-CONFIG_EXTCON=y
-
-#
-# Extcon Device Drivers
-#
-# CONFIG_EXTCON_ADC_JACK is not set
-# CONFIG_EXTCON_AXP288 is not set
-CONFIG_EXTCON_GPIO=y
-CONFIG_EXTCON_PALMAS=y
-# CONFIG_EXTCON_RT8973A is not set
-# CONFIG_EXTCON_SM5502 is not set
-CONFIG_EXTCON_USB_GPIO=y
-CONFIG_MEMORY=y
-CONFIG_TI_EMIF=y
-CONFIG_OMAP_GPMC=y
-# CONFIG_OMAP_GPMC_DEBUG is not set
-CONFIG_IIO=m
-CONFIG_IIO_BUFFER=y
-CONFIG_IIO_BUFFER_CB=m
-CONFIG_IIO_KFIFO_BUF=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
-CONFIG_IIO_CONFIGFS=m
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-# CONFIG_IIO_SW_TRIGGER is not set
-CONFIG_IIO_TRIGGERED_EVENT=m
-
-#
-# Accelerometers
-#
-CONFIG_BMA180=m
-CONFIG_BMC150_ACCEL=m
-CONFIG_BMC150_ACCEL_I2C=m
-CONFIG_BMC150_ACCEL_SPI=m
-CONFIG_HID_SENSOR_ACCEL_3D=m
-CONFIG_IIO_ST_ACCEL_3AXIS=m
-CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
-CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
-CONFIG_KXSD9=m
-CONFIG_KXCJK1013=m
-CONFIG_MMA7455=m
-CONFIG_MMA7455_I2C=m
-CONFIG_MMA7455_SPI=m
-CONFIG_MMA8452=m
-CONFIG_MMA9551_CORE=m
-CONFIG_MMA9551=m
-CONFIG_MMA9553=m
-CONFIG_MXC4005=m
-CONFIG_MXC6255=m
-CONFIG_STK8312=m
-CONFIG_STK8BA50=m
-
-#
-# Analog to digital converters
-#
-CONFIG_AD_SIGMA_DELTA=m
-CONFIG_AD7266=m
-CONFIG_AD7291=m
-CONFIG_AD7298=m
-CONFIG_AD7476=m
-CONFIG_AD7791=m
-CONFIG_AD7793=m
-CONFIG_AD7887=m
-CONFIG_AD7923=m
-CONFIG_AD799X=m
-CONFIG_AXP288_ADC=m
-CONFIG_CC10001_ADC=m
-CONFIG_HI8435=m
-CONFIG_INA2XX_ADC=m
-CONFIG_MAX1027=m
-CONFIG_MAX1363=m
-CONFIG_MCP320X=m
-CONFIG_MCP3422=m
-CONFIG_NAU7802=m
-CONFIG_PALMAS_GPADC=m
-CONFIG_TI_ADC081C=m
-CONFIG_TI_ADC0832=m
-CONFIG_TI_ADC128S052=m
-CONFIG_TI_ADS1015=m
-CONFIG_TI_ADS8688=m
-CONFIG_TI_AM335X_ADC=m
-CONFIG_TWL4030_MADC=m
-CONFIG_TWL6030_GPADC=m
-CONFIG_VF610_ADC=m
-CONFIG_VIPERBOARD_ADC=m
-
-#
-# Amplifiers
-#
-CONFIG_AD8366=m
-
-#
-# Chemical Sensors
-#
-CONFIG_ATLAS_PH_SENSOR=m
-CONFIG_IAQCORE=m
-CONFIG_VZ89X=m
-
-#
-# Hid Sensor IIO Common
-#
-CONFIG_HID_SENSOR_IIO_COMMON=m
-CONFIG_HID_SENSOR_IIO_TRIGGER=m
-CONFIG_IIO_MS_SENSORS_I2C=m
-
-#
-# SSP Sensor Common
-#
-# CONFIG_IIO_SSP_SENSORHUB is not set
-CONFIG_IIO_ST_SENSORS_I2C=m
-CONFIG_IIO_ST_SENSORS_SPI=m
-CONFIG_IIO_ST_SENSORS_CORE=m
-
-#
-# Digital to analog converters
-#
-CONFIG_AD5064=m
-CONFIG_AD5360=m
-CONFIG_AD5380=m
-CONFIG_AD5421=m
-CONFIG_AD5446=m
-CONFIG_AD5449=m
-# CONFIG_AD5592R is not set
-# CONFIG_AD5593R is not set
-CONFIG_AD5504=m
-CONFIG_AD5624R_SPI=m
-CONFIG_AD5686=m
-CONFIG_AD5755=m
-CONFIG_AD5761=m
-CONFIG_AD5764=m
-CONFIG_AD5791=m
-CONFIG_AD7303=m
-CONFIG_M62332=m
-CONFIG_MAX517=m
-CONFIG_MAX5821=m
-CONFIG_MCP4725=m
-CONFIG_MCP4922=m
-# CONFIG_VF610_DAC is not set
-
-#
-# IIO dummy driver
-#
-# CONFIG_IIO_SIMPLE_DUMMY is not set
-
-#
-# Frequency Synthesizers DDS/PLL
-#
-
-#
-# Clock Generator/Distribution
-#
-CONFIG_AD9523=m
-
-#
-# Phase-Locked Loop (PLL) frequency synthesizers
-#
-CONFIG_ADF4350=m
-
-#
-# Digital gyroscope sensors
-#
-CONFIG_ADIS16080=m
-CONFIG_ADIS16130=m
-CONFIG_ADIS16136=m
-CONFIG_ADIS16260=m
-CONFIG_ADXRS450=m
-CONFIG_BMG160=m
-CONFIG_BMG160_I2C=m
-CONFIG_BMG160_SPI=m
-CONFIG_HID_SENSOR_GYRO_3D=m
-CONFIG_IIO_ST_GYRO_3AXIS=m
-CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
-CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
-CONFIG_ITG3200=m
-
-#
-# Health Sensors
-#
-
-#
-# Heart Rate Monitors
-#
-CONFIG_AFE4403=m
-CONFIG_AFE4404=m
-CONFIG_MAX30100=m
-
-#
-# Humidity sensors
-#
-# CONFIG_AM2315 is not set
-CONFIG_DHT11=m
-CONFIG_HDC100X=m
-CONFIG_HTU21=m
-CONFIG_SI7005=m
-CONFIG_SI7020=m
-
-#
-# Inertial measurement units
-#
-CONFIG_ADIS16400=m
-CONFIG_ADIS16480=m
-# CONFIG_BMI160_I2C is not set
-# CONFIG_BMI160_SPI is not set
-CONFIG_KMX61=m
-CONFIG_INV_MPU6050_IIO=m
-CONFIG_INV_MPU6050_I2C=m
-CONFIG_INV_MPU6050_SPI=m
-CONFIG_IIO_ADIS_LIB=m
-CONFIG_IIO_ADIS_LIB_BUFFER=y
-
-#
-# Light sensors
-#
-CONFIG_ADJD_S311=m
-CONFIG_AL3320A=m
-CONFIG_APDS9300=m
-CONFIG_APDS9960=m
-CONFIG_BH1750=m
-# CONFIG_BH1780 is not set
-CONFIG_CM32181=m
-CONFIG_CM3232=m
-CONFIG_CM3323=m
-CONFIG_CM36651=m
-CONFIG_GP2AP020A00F=m
-CONFIG_ISL29125=m
-CONFIG_HID_SENSOR_ALS=m
-CONFIG_HID_SENSOR_PROX=m
-CONFIG_JSA1212=m
-CONFIG_RPR0521=m
-CONFIG_LTR501=m
-# CONFIG_MAX44000 is not set
-CONFIG_OPT3001=m
-CONFIG_PA12203001=m
-CONFIG_STK3310=m
-CONFIG_TCS3414=m
-CONFIG_TCS3472=m
-CONFIG_SENSORS_TSL2563=m
-CONFIG_TSL4531=m
-CONFIG_US5182D=m
-CONFIG_VCNL4000=m
-# CONFIG_VEML6070 is not set
-
-#
-# Magnetometer sensors
-#
-CONFIG_AK8975=m
-CONFIG_AK09911=m
-# CONFIG_BMC150_MAGN_I2C is not set
-# CONFIG_BMC150_MAGN_SPI is not set
-CONFIG_MAG3110=m
-CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
-CONFIG_MMC35240=m
-CONFIG_IIO_ST_MAGN_3AXIS=m
-CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
-CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
-CONFIG_SENSORS_HMC5843=m
-CONFIG_SENSORS_HMC5843_I2C=m
-CONFIG_SENSORS_HMC5843_SPI=m
-
-#
-# Inclinometer sensors
-#
-CONFIG_HID_SENSOR_INCLINOMETER_3D=m
-CONFIG_HID_SENSOR_DEVICE_ROTATION=m
-
-#
-# Triggers - standalone
-#
-CONFIG_IIO_INTERRUPT_TRIGGER=m
-CONFIG_IIO_SYSFS_TRIGGER=m
-
-#
-# Digital potentiometers
-#
-# CONFIG_DS1803 is not set
-# CONFIG_MCP4131 is not set
-CONFIG_MCP4531=m
-CONFIG_TPL0102=m
-
-#
-# Pressure sensors
-#
-CONFIG_BMP280=m
-CONFIG_HID_SENSOR_PRESS=m
-# CONFIG_HP03 is not set
-CONFIG_MPL115=m
-CONFIG_MPL115_I2C=m
-CONFIG_MPL115_SPI=m
-CONFIG_MPL3115=m
-CONFIG_MS5611=m
-CONFIG_MS5611_I2C=m
-CONFIG_MS5611_SPI=m
-CONFIG_MS5637=m
-CONFIG_IIO_ST_PRESS=m
-CONFIG_IIO_ST_PRESS_I2C=m
-CONFIG_IIO_ST_PRESS_SPI=m
-CONFIG_T5403=m
-# CONFIG_HP206C is not set
-
-#
-# Lightning sensors
-#
-CONFIG_AS3935=m
-
-#
-# Proximity sensors
-#
-CONFIG_LIDAR_LITE_V2=m
-CONFIG_SX9500=m
-
-#
-# Temperature sensors
-#
-CONFIG_MLX90614=m
-CONFIG_TMP006=m
-CONFIG_TSYS01=m
-CONFIG_TSYS02D=m
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-# CONFIG_PWM_FSL_FTM is not set
-CONFIG_PWM_OMAP_DMTIMER=m
-CONFIG_PWM_PCA9685=m
-CONFIG_PWM_TIECAP=m
-CONFIG_PWM_TIEHRPWM=m
-CONFIG_PWM_TIPWMSS=y
-CONFIG_PWM_TWL=m
-CONFIG_PWM_TWL_LED=m
-CONFIG_IRQCHIP=y
-CONFIG_OMAP_IRQCHIP=y
-# CONFIG_IPACK_BUS is not set
-# CONFIG_RESET_CONTROLLER is not set
-# CONFIG_FMC is not set
-
-#
-# PHY Subsystem
-#
-CONFIG_GENERIC_PHY=y
-# CONFIG_PHY_DM816X_USB is not set
-# CONFIG_PHY_PXA_28NM_HSIC is not set
-# CONFIG_PHY_PXA_28NM_USB2 is not set
-CONFIG_OMAP_CONTROL_PHY=y
-CONFIG_OMAP_USB2=y
-CONFIG_TI_PIPE3=m
-# CONFIG_BCM_KONA_USB2_PHY is not set
-CONFIG_PHY_SAMSUNG_USB2=m
-# CONFIG_PHY_EXYNOS4210_USB2 is not set
-# CONFIG_PHY_EXYNOS4X12_USB2 is not set
-# CONFIG_PHY_EXYNOS5250_USB2 is not set
-# CONFIG_POWERCAP is not set
-# CONFIG_MCB is not set
-
-#
-# Performance monitor support
-#
-CONFIG_ARM_PMU=y
-CONFIG_RAS=y
-
-#
-# Android
-#
-CONFIG_ANDROID=y
-CONFIG_ANDROID_BINDER_IPC=y
-CONFIG_ANDROID_BINDER_IPC_32BIT=y
-CONFIG_NVMEM=y
-# CONFIG_STM is not set
-# CONFIG_STM_DUMMY is not set
-# CONFIG_STM_SOURCE_CONSOLE is not set
-# CONFIG_INTEL_TH is not set
-
-#
-# FPGA Configuration Support
-#
-# CONFIG_FPGA is not set
-
-#
-# Firmware Drivers
-#
-CONFIG_ARM_PSCI_FW=y
-# CONFIG_FIRMWARE_MEMMAP is not set
-
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT2=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_EXT4_ENCRYPTION=y
-CONFIG_EXT4_FS_ENCRYPTION=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
-CONFIG_XFS_FS=y
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=y
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
-# CONFIG_BTRFS_DEBUG is not set
-# CONFIG_BTRFS_ASSERT is not set
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=y
-CONFIG_F2FS_STAT_FS=y
-CONFIG_F2FS_FS_XATTR=y
-CONFIG_F2FS_FS_POSIX_ACL=y
-CONFIG_F2FS_FS_SECURITY=y
-# CONFIG_F2FS_CHECK_FS is not set
-CONFIG_F2FS_FS_ENCRYPTION=y
-# CONFIG_F2FS_IO_TRACE is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-CONFIG_PRINT_QUOTA_WARNING=y
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=y
-CONFIG_CUSE=m
-CONFIG_OVERLAY_FS=y
-
-#
-# Caches
-#
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_PROC_CHILDREN=y
-CONFIG_KERNFS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_CONFIGFS_FS=y
-CONFIG_MISC_FILESYSTEMS=y
-CONFIG_ADFS_FS=m
-# CONFIG_ADFS_FS_RW is not set
-CONFIG_AFFS_FS=m
-CONFIG_ECRYPT_FS=m
-CONFIG_ECRYPT_FS_MESSAGING=y
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-# CONFIG_HFSPLUS_FS_POSIX_ACL is not set
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-CONFIG_UBIFS_FS=m
-CONFIG_UBIFS_FS_ADVANCED_COMPR=y
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-# CONFIG_UBIFS_ATIME_SUPPORT is not set
-CONFIG_LOGFS=m
-# CONFIG_CRAMFS is not set
-CONFIG_SQUASHFS=m
-CONFIG_SQUASHFS_FILE_CACHE=y
-# CONFIG_SQUASHFS_FILE_DIRECT is not set
-CONFIG_SQUASHFS_DECOMP_SINGLE=y
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-CONFIG_SQUASHFS_LZ4=y
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-# CONFIG_HPFS_FS is not set
-CONFIG_QNX4FS_FS=m
-CONFIG_QNX6FS_FS=m
-# CONFIG_QNX6FS_DEBUG is not set
-CONFIG_ROMFS_FS=m
-# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-CONFIG_ROMFS_BACKED_BY_BOTH=y
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_ROMFS_ON_MTD=y
-# CONFIG_PSTORE is not set
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_EXOFS_FS=m
-# CONFIG_EXOFS_DEBUG is not set
-CONFIG_AUFS_FS=m
-CONFIG_AUFS_BRANCH_MAX_127=y
-# CONFIG_AUFS_BRANCH_MAX_511 is not set
-# CONFIG_AUFS_BRANCH_MAX_1023 is not set
-# CONFIG_AUFS_BRANCH_MAX_32767 is not set
-CONFIG_AUFS_SBILIST=y
-# CONFIG_AUFS_HNOTIFY is not set
-CONFIG_AUFS_EXPORT=y
-CONFIG_AUFS_XATTR=y
-# CONFIG_AUFS_FHSM is not set
-# CONFIG_AUFS_RDU is not set
-# CONFIG_AUFS_SHWH is not set
-# CONFIG_AUFS_BR_RAMFS is not set
-# CONFIG_AUFS_BR_FUSE is not set
-CONFIG_AUFS_BR_HFSPLUS=y
-CONFIG_AUFS_BDEV_LOOP=y
-# CONFIG_AUFS_DEBUG is not set
-CONFIG_ORE=m
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V2=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_SWAP=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=y
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_OBJLAYOUT=m
-CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
-# CONFIG_NFS_V4_1_MIGRATION is not set
-CONFIG_NFS_V4_SECURITY_LABEL=y
-CONFIG_ROOT_NFS=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFS_DEBUG=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-# CONFIG_NFSD_PNFS is not set
-CONFIG_NFSD_V4_SECURITY_LABEL=y
-# CONFIG_NFSD_FAULT_INJECTION is not set
-CONFIG_GRACE_PERIOD=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_SUNRPC_SWAP=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_SUNRPC_DEBUG=y
-CONFIG_CEPH_FS=m
-CONFIG_CEPH_FSCACHE=y
-CONFIG_CEPH_FS_POSIX_ACL=y
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_UPCALL=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_ACL=y
-CONFIG_CIFS_DEBUG=y
-# CONFIG_CIFS_DEBUG2 is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_SMB2=y
-# CONFIG_CIFS_SMB311 is not set
-CONFIG_CIFS_FSCACHE=y
-CONFIG_NCP_FS=m
-CONFIG_NCPFS_PACKET_SIGNING=y
-CONFIG_NCPFS_IOCTL_LOCKING=y
-CONFIG_NCPFS_STRONG=y
-CONFIG_NCPFS_NFS_NS=y
-CONFIG_NCPFS_OS2_NS=y
-# CONFIG_NCPFS_SMALLDOS is not set
-CONFIG_NCPFS_NLS=y
-CONFIG_NCPFS_EXTRAS=y
-CONFIG_CODA_FS=m
-CONFIG_AFS_FS=m
-# CONFIG_AFS_DEBUG is not set
-CONFIG_AFS_FSCACHE=y
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-CONFIG_9P_FS_SECURITY=y
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-CONFIG_DLM_DEBUG=y
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-CONFIG_PRINTK_TIME=y
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-# CONFIG_BOOT_PRINTK_DELAY is not set
-CONFIG_DYNAMIC_DEBUG=y
-
-#
-# Compile-time checks and compiler options
-#
-CONFIG_DEBUG_INFO=y
-# CONFIG_DEBUG_INFO_REDUCED is not set
-CONFIG_DEBUG_INFO_SPLIT=y
-CONFIG_DEBUG_INFO_DWARF4=y
-# CONFIG_GDB_SCRIPTS is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-CONFIG_STRIP_ASM_SYMS=y
-# CONFIG_READABLE_ASM is not set
-CONFIG_UNUSED_SYMBOLS=y
-# CONFIG_PAGE_OWNER is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
-CONFIG_DEBUG_KERNEL=y
-
-#
-# Memory Debugging
-#
-# CONFIG_PAGE_EXTENSION is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_VM is not set
-CONFIG_DEBUG_MEMORY_INIT=y
-# CONFIG_DEBUG_HIGHMEM is not set
-# CONFIG_DEBUG_SHIRQ is not set
-
-#
-# Debug Lockups and Hangs
-#
-CONFIG_LOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHED_INFO=y
-CONFIG_SCHEDSTATS=y
-CONFIG_SCHED_STACK_END_CHECK=y
-# CONFIG_DEBUG_TIMEKEEPING is not set
-CONFIG_TIMER_STATS=y
-CONFIG_DEBUG_PREEMPT=y
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_LOCK_TORTURE_TEST is not set
-CONFIG_STACKTRACE=y
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-CONFIG_DEBUG_LIST=y
-# CONFIG_DEBUG_PI_LIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-
-#
-# RCU Debugging
-#
-# CONFIG_PROVE_RCU is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_TORTURE_TEST is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=21
-# CONFIG_RCU_TRACE is not set
-# CONFIG_RCU_EQS_DEBUG is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-CONFIG_NOTIFIER_ERROR_INJECTION=m
-CONFIG_PM_NOTIFIER_ERROR_INJECT=m
-# CONFIG_OF_RECONFIG_NOTIFIER_ERROR_INJECT is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACER_MAX_TRACE=y
-CONFIG_TRACE_CLOCK=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_TRACING=y
-CONFIG_GENERIC_TRACER=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-CONFIG_FUNCTION_TRACER=y
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_PREEMPT_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_MISSED_TIMER_OFFSETS_HIST is not set
-CONFIG_FTRACE_SYSCALLS=y
-CONFIG_TRACER_SNAPSHOT=y
-# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-CONFIG_STACK_TRACER=y
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_KPROBE_EVENT=y
-CONFIG_UPROBE_EVENT=y
-CONFIG_BPF_EVENTS=y
-CONFIG_PROBE_EVENTS=y
-CONFIG_DYNAMIC_FTRACE=y
-# CONFIG_FUNCTION_PROFILER is not set
-CONFIG_FTRACE_MCOUNT_RECORD=y
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_TRACEPOINT_BENCHMARK is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_RING_BUFFER_STARTUP_TEST is not set
-# CONFIG_TRACE_ENUM_MAP_FILE is not set
-CONFIG_TRACING_EVENTS_GPIO=y
-
-#
-# Runtime Testing
-#
-# CONFIG_LKDTM is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_RBTREE_TEST is not set
-# CONFIG_INTERVAL_TREE_TEST is not set
-# CONFIG_PERCPU_TEST is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_ASYNC_RAID6_TEST is not set
-# CONFIG_TEST_HEXDUMP is not set
-# CONFIG_TEST_STRING_HELPERS is not set
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_TEST_PRINTF is not set
-# CONFIG_TEST_RHASHTABLE is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_TEST_LKM is not set
-CONFIG_TEST_USER_COPY=m
-CONFIG_TEST_BPF=m
-CONFIG_TEST_FIRMWARE=m
-# CONFIG_TEST_UDELAY is not set
-# CONFIG_MEMTEST is not set
-CONFIG_TEST_STATIC_KEYS=m
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_KGDB=y
-CONFIG_KGDB_SERIAL_CONSOLE=y
-# CONFIG_KGDB_TESTS is not set
-CONFIG_KGDB_KDB=y
-CONFIG_KDB_DEFAULT_ENABLE=0x1
-CONFIG_KDB_KEYBOARD=y
-CONFIG_KDB_CONTINUE_CATASTROPHIC=0
-# CONFIG_ARM_PTDUMP is not set
-# CONFIG_STRICT_DEVMEM is not set
-CONFIG_ARM_UNWIND=y
-# CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_LL is not set
-CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
-# CONFIG_DEBUG_UART_8250 is not set
-CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
-# CONFIG_ARM_KPROBES_TEST is not set
-# CONFIG_PID_IN_CONTEXTIDR is not set
-# CONFIG_DEBUG_SET_MODULE_RONX is not set
-# CONFIG_CORESIGHT is not set
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-# CONFIG_PERSISTENT_KEYRINGS is not set
-# CONFIG_BIG_KEYS is not set
-# CONFIG_TRUSTED_KEYS is not set
-CONFIG_ENCRYPTED_KEYS=y
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_SECURITY_NETWORK_XFRM=y
-CONFIG_SECURITY_PATH=y
-CONFIG_LSM_MMAP_MIN_ADDR=32768
-CONFIG_SECURITY_SELINUX=y
-# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
-# CONFIG_SECURITY_SELINUX_DISABLE is not set
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
-# CONFIG_SECURITY_SMACK is not set
-CONFIG_SECURITY_TOMOYO=y
-CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
-CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
-# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
-CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
-CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
-CONFIG_SECURITY_APPARMOR_HASH=y
-CONFIG_SECURITY_YAMA=y
-CONFIG_INTEGRITY=y
-# CONFIG_INTEGRITY_SIGNATURE is not set
-CONFIG_INTEGRITY_AUDIT=y
-# CONFIG_IMA is not set
-# CONFIG_EVM is not set
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_DEFAULT_SECURITY=""
-CONFIG_XOR_BLOCKS=y
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=y
-CONFIG_CRYPTO_PCOMP=m
-CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_AKCIPHER2=y
-# CONFIG_CRYPTO_RSA is not set
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_USER is not set
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=y
-CONFIG_CRYPTO_NULL=y
-CONFIG_CRYPTO_NULL2=y
-CONFIG_CRYPTO_WORKQUEUE=y
-CONFIG_CRYPTO_CRYPTD=m
-# CONFIG_CRYPTO_MCRYPTD is not set
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-CONFIG_CRYPTO_ABLK_HELPER=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTR=y
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=y
-# CONFIG_CRYPTO_KEYWRAP is not set
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_CMAC=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32=m
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_POLY1305 is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST_COMMON=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
-# CONFIG_CRYPTO_CHACHA20 is not set
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_ZLIB=m
-CONFIG_CRYPTO_LZO=y
-# CONFIG_CRYPTO_842 is not set
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=y
-CONFIG_CRYPTO_DRBG_HMAC=y
-# CONFIG_CRYPTO_DRBG_HASH is not set
-# CONFIG_CRYPTO_DRBG_CTR is not set
-CONFIG_CRYPTO_DRBG=y
-CONFIG_CRYPTO_JITTERENTROPY=y
-CONFIG_CRYPTO_USER_API=m
-CONFIG_CRYPTO_USER_API_HASH=m
-CONFIG_CRYPTO_USER_API_SKCIPHER=m
-# CONFIG_CRYPTO_USER_API_RNG is not set
-# CONFIG_CRYPTO_USER_API_AEAD is not set
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_OMAP_SHAM=m
-CONFIG_CRYPTO_DEV_OMAP_AES=m
-CONFIG_CRYPTO_DEV_OMAP_DES=m
-# CONFIG_ASYMMETRIC_KEY_TYPE is not set
-
-#
-# Certificates for signature checking
-#
-# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
-CONFIG_ARM_CRYPTO=y
-CONFIG_CRYPTO_SHA1_ARM=m
-CONFIG_CRYPTO_SHA1_ARM_NEON=m
-# CONFIG_CRYPTO_SHA1_ARM_CE is not set
-# CONFIG_CRYPTO_SHA2_ARM_CE is not set
-CONFIG_CRYPTO_SHA256_ARM=m
-CONFIG_CRYPTO_SHA512_ARM=m
-CONFIG_CRYPTO_AES_ARM=m
-CONFIG_CRYPTO_AES_ARM_BS=m
-# CONFIG_CRYPTO_AES_ARM_CE is not set
-# CONFIG_CRYPTO_GHASH_ARM_CE is not set
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=y
-CONFIG_BITREVERSE=y
-CONFIG_HAVE_ARCH_BITREVERSE=y
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_IO=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-# CONFIG_CRC32_SELFTEST is not set
-CONFIG_CRC32_SLICEBY8=y
-# CONFIG_CRC32_SLICEBY4 is not set
-# CONFIG_CRC32_SARWATE is not set
-# CONFIG_CRC32_BIT is not set
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=y
-# CONFIG_CRC8 is not set
-CONFIG_AUDIT_GENERIC=y
-# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=m
-CONFIG_LZ4HC_COMPRESS=m
-CONFIG_LZ4_DECOMPRESS=m
-CONFIG_XZ_DEC=y
-# CONFIG_XZ_DEC_X86 is not set
-# CONFIG_XZ_DEC_POWERPC is not set
-# CONFIG_XZ_DEC_IA64 is not set
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-# CONFIG_XZ_DEC_SPARC is not set
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_BCH=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAS_DMA=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
-CONFIG_LRU_CACHE=m
-CONFIG_CORDIC=m
-CONFIG_DDR=y
-CONFIG_LIBFDT=y
-CONFIG_OID_REGISTRY=y
-CONFIG_FONT_SUPPORT=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-# CONFIG_SG_SPLIT is not set
-CONFIG_ARCH_HAS_SG_CHAIN=y
-CONFIG_VIRTUALIZATION=y

+ 0 - 5855
board/GfA/Display001/Display001_4.4.94_rt_defconfig

@@ -1,5855 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 4.4.94 Kernel Configuration
-#
-CONFIG_ARM=y
-CONFIG_ARM_HAS_SG_CHAIN=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_ARM_DMA_USE_IOMMU=y
-CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
-CONFIG_MIGHT_HAVE_PCI=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_ARCH_HAS_BANDGAP=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_PGTABLE_LEVELS=2
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_IRQ_WORK=y
-CONFIG_BUILDTIME_EXTABLE_SORT=y
-
-#
-# General setup
-#
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION="-bone-rt-r19"
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_LZ4=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_XZ is not set
-# CONFIG_KERNEL_LZO is not set
-# CONFIG_KERNEL_LZ4 is not set
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_CROSS_MEMORY_ATTACH=y
-CONFIG_FHANDLE=y
-# CONFIG_USELIB is not set
-CONFIG_AUDIT=y
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_AUDITSYSCALL=y
-CONFIG_AUDIT_WATCH=y
-CONFIG_AUDIT_TREE=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_HANDLE_DOMAIN_IRQ=y
-# CONFIG_IRQ_DOMAIN_DEBUG is not set
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ_COMMON=y
-# CONFIG_HZ_PERIODIC is not set
-CONFIG_NO_HZ_IDLE=y
-# CONFIG_NO_HZ is not set
-CONFIG_HIGH_RES_TIMERS=y
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-
-#
-# RCU Subsystem
-#
-CONFIG_PREEMPT_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-# CONFIG_TASKS_RCU is not set
-CONFIG_RCU_STALL_COMMON=y
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_RCU_EXPEDITE_BOOT is not set
-CONFIG_BUILD_BIN2C=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_GENERIC_SCHED_CLOCK=y
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_PIDS=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-CONFIG_MEMCG_SWAP_ENABLED=y
-CONFIG_MEMCG_KMEM=y
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-CONFIG_BLK_CGROUP=y
-# CONFIG_DEBUG_BLK_CGROUP is not set
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_RD_LZ4=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_HAVE_UID16=y
-CONFIG_BPF=y
-CONFIG_EXPERT=y
-CONFIG_UID16=y
-CONFIG_MULTIUSER=y
-# CONFIG_SGETMASK_SYSCALL is not set
-CONFIG_SYSFS_SYSCALL=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_BPF_SYSCALL=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_ADVISE_SYSCALLS=y
-# CONFIG_USERFAULTFD is not set
-CONFIG_MEMBARRIER=y
-CONFIG_EMBEDDED=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLUB=y
-# CONFIG_SYSTEM_DATA_VERIFICATION is not set
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-CONFIG_KEXEC_CORE=y
-CONFIG_HAVE_OPROFILE=y
-CONFIG_KPROBES=y
-CONFIG_UPROBES=y
-# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_ARCH_USE_BUILTIN_BSWAP=y
-CONFIG_KRETPROBES=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_SECCOMP_FILTER=y
-CONFIG_HAVE_CC_STACKPROTECTOR=y
-CONFIG_CC_STACKPROTECTOR=y
-# CONFIG_CC_STACKPROTECTOR_NONE is not set
-# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
-CONFIG_CC_STACKPROTECTOR_STRONG=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_REL=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_OLD_SIGACTION=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
-CONFIG_MODULES_TREE_LOOKUP=y
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_THROTTLING=y
-# CONFIG_BLK_CMDLINE_PARSER is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_AIX_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-# CONFIG_CMDLINE_PARTITION is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_CFQ_GROUP_IOSCHED=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_FREEZER=y
-
-#
-# System Type
-#
-CONFIG_MMU=y
-CONFIG_ARCH_MULTIPLATFORM=y
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C24XX is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP1 is not set
-
-#
-# Multiple platform selection
-#
-
-#
-# CPU Core family selection
-#
-# CONFIG_ARCH_MULTI_V6 is not set
-CONFIG_ARCH_MULTI_V7=y
-CONFIG_ARCH_MULTI_V6_V7=y
-# CONFIG_ARCH_MULTI_CPU_AUTO is not set
-# CONFIG_ARCH_VIRT is not set
-# CONFIG_ARCH_MVEBU is not set
-# CONFIG_ARCH_ALPINE is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_BCM is not set
-# CONFIG_ARCH_BERLIN is not set
-# CONFIG_ARCH_DIGICOLOR is not set
-# CONFIG_ARCH_HIGHBANK is not set
-# CONFIG_ARCH_HISI is not set
-# CONFIG_ARCH_KEYSTONE is not set
-# CONFIG_ARCH_MESON is not set
-# CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_MEDIATEK is not set
-CONFIG_ARCH_OMAP=y
-
-#
-# TI OMAP Common Features
-#
-
-#
-# OMAP Feature Selections
-#
-CONFIG_OMAP_RESET_CLOCKS=y
-CONFIG_OMAP_MUX=y
-CONFIG_OMAP_MUX_DEBUG=y
-CONFIG_OMAP_MUX_WARNINGS=y
-CONFIG_OMAP_32K_TIMER=y
-CONFIG_OMAP_DM_TIMER=y
-CONFIG_OMAP_PM_NOOP=y
-CONFIG_MACH_OMAP_GENERIC=y
-
-#
-# TI OMAP/AM/DM/DRA Family
-#
-# CONFIG_ARCH_OMAP3 is not set
-# CONFIG_ARCH_OMAP4 is not set
-# CONFIG_SOC_OMAP5 is not set
-CONFIG_SOC_AM33XX=y
-# CONFIG_SOC_AM43XX is not set
-# CONFIG_SOC_DRA7XX is not set
-CONFIG_ARCH_OMAP2PLUS=y
-
-#
-# TI OMAP2/3/4 Specific Features
-#
-CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
-CONFIG_SOC_HAS_OMAP2_SDRC=y
-
-#
-# OMAP Legacy Platform Data Board Type
-#
-# CONFIG_ARCH_QCOM is not set
-# CONFIG_ARCH_ROCKCHIP is not set
-# CONFIG_ARCH_SOCFPGA is not set
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_STI is not set
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SHMOBILE_MULTI is not set
-# CONFIG_ARCH_SUNXI is not set
-# CONFIG_ARCH_SIRF is not set
-# CONFIG_ARCH_TEGRA is not set
-# CONFIG_ARCH_UNIPHIER is not set
-# CONFIG_ARCH_U8500 is not set
-# CONFIG_ARCH_VEXPRESS is not set
-# CONFIG_ARCH_WM8850 is not set
-# CONFIG_ARCH_ZX is not set
-# CONFIG_ARCH_ZYNQ is not set
-
-#
-# Processor Type
-#
-CONFIG_CPU_V7=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-CONFIG_CPU_PABRT_V7=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-# CONFIG_ARM_LPAE is not set
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-CONFIG_ARM_THUMB=y
-CONFIG_ARM_THUMBEE=y
-CONFIG_ARM_VIRT_EXT=y
-CONFIG_SWP_EMULATE=y
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_BPREDICT_DISABLE is not set
-CONFIG_KUSER_HELPERS=y
-CONFIG_VDSO=y
-CONFIG_OUTER_CACHE=y
-CONFIG_OUTER_CACHE_SYNC=y
-CONFIG_MIGHT_HAVE_CACHE_L2X0=y
-CONFIG_CACHE_L2X0=y
-CONFIG_PL310_ERRATA_588369=y
-CONFIG_PL310_ERRATA_727915=y
-# CONFIG_PL310_ERRATA_753970 is not set
-# CONFIG_PL310_ERRATA_769419 is not set
-CONFIG_ARM_L1_CACHE_SHIFT_6=y
-CONFIG_ARM_L1_CACHE_SHIFT=6
-CONFIG_ARM_DMA_MEM_BUFFERABLE=y
-CONFIG_ARM_HEAVY_MB=y
-# CONFIG_ARM_KERNMEM_PERMS is not set
-CONFIG_MULTI_IRQ_HANDLER=y
-CONFIG_ARM_ERRATA_430973=y
-CONFIG_ARM_ERRATA_720789=y
-CONFIG_ARM_ERRATA_754322=y
-CONFIG_ARM_ERRATA_775420=y
-# CONFIG_ARM_ERRATA_773022 is not set
-
-#
-# Bus support
-#
-# CONFIG_PCI is not set
-# CONFIG_PCI_DOMAINS_GENERIC is not set
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_HAVE_SMP=y
-# CONFIG_SMP is not set
-CONFIG_HAVE_ARM_ARCH_TIMER=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_3G_OPT is not set
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_ARM_PSCI=y
-CONFIG_ARCH_NR_GPIO=0
-CONFIG_PREEMPT=y
-CONFIG_PREEMPT_RT_BASE=y
-CONFIG_HAVE_PREEMPT_LAZY=y
-CONFIG_PREEMPT_LAZY=y
-# CONFIG_PREEMPT_NONE is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT__LL is not set
-# CONFIG_PREEMPT_RTB is not set
-CONFIG_PREEMPT_RT_FULL=y
-CONFIG_PREEMPT_COUNT=y
-CONFIG_HZ_FIXED=0
-CONFIG_HZ_100=y
-# CONFIG_HZ_200 is not set
-# CONFIG_HZ_250 is not set
-# CONFIG_HZ_300 is not set
-# CONFIG_HZ_500 is not set
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=100
-CONFIG_SCHED_HRTICK=y
-CONFIG_THUMB2_KERNEL=y
-CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11=y
-CONFIG_ARM_ASM_UNIFIED=y
-CONFIG_AEABI=y
-CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HAVE_ARCH_PFN_VALID=y
-CONFIG_HIGHMEM=y
-CONFIG_HIGHPTE=y
-CONFIG_CPU_SW_DOMAIN_PAN=y
-CONFIG_HW_PERF_EVENTS=y
-CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
-# CONFIG_ARM_MODULE_PLTS is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_NO_BOOTMEM=y
-CONFIG_MEMORY_ISOLATION=y
-# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_MEMORY_BALLOON=y
-CONFIG_BALLOON_COMPACTION=y
-CONFIG_COMPACTION=y
-CONFIG_MIGRATION=y
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_BOUNCE=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_NEED_PER_CPU_KM=y
-# CONFIG_CLEANCACHE is not set
-CONFIG_FRONTSWAP=y
-CONFIG_CMA=y
-# CONFIG_CMA_DEBUG is not set
-# CONFIG_CMA_DEBUGFS is not set
-CONFIG_CMA_AREAS=7
-CONFIG_ZSWAP=y
-CONFIG_ZPOOL=y
-CONFIG_ZBUD=y
-CONFIG_ZSMALLOC=m
-# CONFIG_PGTABLE_MAPPING is not set
-# CONFIG_ZSMALLOC_STAT is not set
-# CONFIG_IDLE_PAGE_TRACKING is not set
-CONFIG_FRAME_VECTOR=y
-CONFIG_FORCE_MAX_ZONEORDER=12
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-CONFIG_SECCOMP=y
-CONFIG_SWIOTLB=y
-CONFIG_IOMMU_HELPER=y
-# CONFIG_XEN is not set
-
-#
-# Boot options
-#
-CONFIG_USE_OF=y
-CONFIG_ATAGS=y
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
-CONFIG_CMDLINE=""
-CONFIG_KEXEC=y
-CONFIG_ATAGS_PROC=y
-# CONFIG_CRASH_DUMP is not set
-CONFIG_AUTO_ZRELADDR=y
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_STAT=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_CPUFREQ_DT=y
-# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
-# CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set
-# CONFIG_QORIQ_CPUFREQ is not set
-
-#
-# CPU Idle
-#
-# CONFIG_CPU_IDLE is not set
-# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
-CONFIG_KERNEL_MODE_NEON=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_BINFMT_SCRIPT=y
-# CONFIG_HAVE_AOUT is not set
-CONFIG_BINFMT_MISC=m
-CONFIG_COREDUMP=y
-
-#
-# Power management options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_SUSPEND_SKIP_SYNC is not set
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_PM_SLEEP=y
-CONFIG_PM_AUTOSLEEP=y
-CONFIG_PM_WAKELOCKS=y
-CONFIG_PM_WAKELOCKS_LIMIT=100
-CONFIG_PM_WAKELOCKS_GC=y
-CONFIG_PM=y
-CONFIG_PM_DEBUG=y
-CONFIG_PM_ADVANCED_DEBUG=y
-# CONFIG_PM_TEST_SUSPEND is not set
-CONFIG_PM_SLEEP_DEBUG=y
-CONFIG_APM_EMULATION=y
-CONFIG_PM_OPP=y
-CONFIG_PM_CLK=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
-CONFIG_CPU_PM=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_CPU_SUSPEND=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_NET=y
-CONFIG_NET_INGRESS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_DIAG=m
-CONFIG_XFRM=y
-CONFIG_XFRM_ALGO=m
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-# CONFIG_XFRM_STATISTICS is not set
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_FIB_TRIE_STATS=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IP_TUNNEL=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-CONFIG_NET_FOU=m
-CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=m
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-CONFIG_INET_UDP_DIAG=m
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_TCP_CONG_DCTCP=m
-CONFIG_TCP_CONG_CDG=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=y
-CONFIG_IPV6_ILA=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_VTI=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-CONFIG_NETLABEL=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NET_PTP_CLASSIFY=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=m
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_INGRESS=y
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_NETLINK_ACCT=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_LOG_COMMON=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_PROCFS=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMEOUT=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CONNTRACK_LABELS=y
-CONFIG_NF_CT_PROTO_DCCP=m
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=m
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_GLUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_NF_NAT_PROTO_DCCP=m
-CONFIG_NF_NAT_PROTO_UDPLITE=m
-CONFIG_NF_NAT_PROTO_SCTP=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_REDIRECT=m
-CONFIG_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_INET=m
-# CONFIG_NF_TABLES_NETDEV is not set
-CONFIG_NFT_EXTHDR=m
-CONFIG_NFT_META=m
-CONFIG_NFT_CT=m
-CONFIG_NFT_RBTREE=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_COUNTER=m
-CONFIG_NFT_LOG=m
-CONFIG_NFT_LIMIT=m
-CONFIG_NFT_MASQ=m
-CONFIG_NFT_REDIR=m
-CONFIG_NFT_NAT=m
-CONFIG_NFT_QUEUE=m
-CONFIG_NFT_REJECT=m
-CONFIG_NFT_REJECT_INET=m
-CONFIG_NFT_COMPAT=m
-CONFIG_NETFILTER_XTABLES=y
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-CONFIG_NETFILTER_XT_SET=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_HMARK=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_LOG=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_NAT=m
-CONFIG_NETFILTER_XT_TARGET_NETMAP=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_NETFILTER_XT_MATCH_BPF=m
-CONFIG_NETFILTER_XT_MATCH_CGROUP=m
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ECN=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_L2TP=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_NFACCT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-CONFIG_IP_SET_HASH_IPMARK=m
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-CONFIG_IP_SET_HASH_MAC=m
-CONFIG_IP_SET_HASH_NETPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETNET=m
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_HASH_NETIFACE=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_PROTO_SCTP=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_FO=m
-CONFIG_IP_VS_OVF=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-
-#
-# IPVS SH scheduler
-#
-CONFIG_IP_VS_SH_TAB_BITS=8
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-CONFIG_NF_TABLES_IPV4=m
-CONFIG_NFT_CHAIN_ROUTE_IPV4=m
-CONFIG_NFT_REJECT_IPV4=m
-CONFIG_NFT_DUP_IPV4=m
-CONFIG_NF_TABLES_ARP=m
-CONFIG_NF_DUP_IPV4=m
-CONFIG_NF_LOG_ARP=m
-CONFIG_NF_LOG_IPV4=m
-CONFIG_NF_REJECT_IPV4=m
-CONFIG_NF_NAT_IPV4=m
-CONFIG_NFT_CHAIN_NAT_IPV4=m
-CONFIG_NF_NAT_MASQUERADE_IPV4=m
-CONFIG_NFT_MASQ_IPV4=m
-CONFIG_NFT_REDIR_IPV4=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_IP_NF_IPTABLES=y
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_RPFILTER=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=y
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_SYNPROXY=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_NF_TABLES_IPV6=m
-CONFIG_NFT_CHAIN_ROUTE_IPV6=m
-CONFIG_NFT_REJECT_IPV6=m
-CONFIG_NFT_DUP_IPV6=m
-CONFIG_NF_DUP_IPV6=m
-CONFIG_NF_REJECT_IPV6=m
-CONFIG_NF_LOG_IPV6=m
-CONFIG_NF_NAT_IPV6=m
-CONFIG_NFT_CHAIN_NAT_IPV6=m
-CONFIG_NF_NAT_MASQUERADE_IPV6=m
-CONFIG_NFT_MASQ_IPV6=m
-CONFIG_NFT_REDIR_IPV6=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RPFILTER=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_TARGET_SYNPROXY=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=m
-CONFIG_NF_TABLES_BRIDGE=m
-CONFIG_NFT_BRIDGE_META=m
-CONFIG_NFT_BRIDGE_REJECT=m
-CONFIG_NF_LOG_BRIDGE=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_TFRC_LIB=y
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-CONFIG_NET_DCCPPROBE=m
-CONFIG_IP_SCTP=m
-CONFIG_NET_SCTPPROBE=m
-# CONFIG_SCTP_DBG_OBJCNT is not set
-CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-CONFIG_SCTP_COOKIE_HMAC_MD5=y
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-CONFIG_RDS=m
-CONFIG_RDS_TCP=m
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-CONFIG_TIPC_MEDIA_UDP=y
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_DEBUGFS=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_MRP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_HAVE_NET_DSA=y
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_VLAN_8021Q_MVRP=y
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-# CONFIG_IPX is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-CONFIG_PHONET=m
-CONFIG_6LOWPAN=m
-CONFIG_6LOWPAN_NHC=m
-CONFIG_6LOWPAN_NHC_DEST=m
-CONFIG_6LOWPAN_NHC_FRAGMENT=m
-CONFIG_6LOWPAN_NHC_HOP=m
-CONFIG_6LOWPAN_NHC_IPV6=m
-CONFIG_6LOWPAN_NHC_MOBILITY=m
-CONFIG_6LOWPAN_NHC_ROUTING=m
-CONFIG_6LOWPAN_NHC_UDP=m
-CONFIG_IEEE802154=m
-# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
-CONFIG_IEEE802154_SOCKET=m
-CONFIG_IEEE802154_6LOWPAN=m
-CONFIG_MAC802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFB=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_CHOKE=m
-CONFIG_NET_SCH_QFQ=m
-CONFIG_NET_SCH_CODEL=m
-CONFIG_NET_SCH_FQ_CODEL=m
-CONFIG_NET_SCH_FQ=m
-CONFIG_NET_SCH_HHF=m
-CONFIG_NET_SCH_PIE=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_SCH_PLUG=m
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=m
-CONFIG_NET_CLS_BPF=m
-# CONFIG_NET_CLS_FLOWER is not set
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_EMATCH_CANID=m
-CONFIG_NET_EMATCH_IPSET=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-CONFIG_NET_ACT_VLAN=m
-CONFIG_NET_ACT_BPF=m
-CONFIG_NET_ACT_CONNMARK=m
-CONFIG_NET_CLS_IND=y
-CONFIG_NET_SCH_FIFO=y
-CONFIG_DCB=y
-CONFIG_DNS_RESOLVER=y
-CONFIG_BATMAN_ADV=m
-CONFIG_BATMAN_ADV_BLA=y
-CONFIG_BATMAN_ADV_DAT=y
-CONFIG_BATMAN_ADV_NC=y
-CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUG is not set
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=m
-CONFIG_OPENVSWITCH_VXLAN=m
-CONFIG_OPENVSWITCH_GENEVE=m
-# CONFIG_VSOCKETS is not set
-CONFIG_NETLINK_DIAG=m
-CONFIG_MPLS=y
-CONFIG_NET_MPLS_GSO=y
-CONFIG_MPLS_ROUTING=m
-CONFIG_MPLS_IPTUNNEL=m
-CONFIG_HSR=m
-# CONFIG_NET_SWITCHDEV is not set
-# CONFIG_NET_L3_MASTER_DEV is not set
-CONFIG_CGROUP_NET_PRIO=y
-CONFIG_CGROUP_NET_CLASSID=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-CONFIG_BPF_JIT=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_NET_TCPPROBE is not set
-CONFIG_NET_DROP_MONITOR=m
-# CONFIG_HAMRADIO is not set
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-CONFIG_CAN_GW=m
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-# CONFIG_CAN_SLCAN is not set
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-# CONFIG_CAN_LEDS is not set
-CONFIG_CAN_TI_HECC=m
-# CONFIG_CAN_FLEXCAN is not set
-# CONFIG_CAN_GRCAN is not set
-# CONFIG_CAN_RCAR is not set
-# CONFIG_CAN_SJA1000 is not set
-CONFIG_CAN_C_CAN=m
-CONFIG_CAN_C_CAN_PLATFORM=m
-# CONFIG_CAN_M_CAN is not set
-# CONFIG_CAN_CC770 is not set
-
-#
-# CAN SPI interfaces
-#
-CONFIG_CAN_MCP251X=m
-
-#
-# CAN USB interfaces
-#
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_ESD_USB2=m
-CONFIG_CAN_GS_USB=m
-CONFIG_CAN_KVASER_USB=m
-CONFIG_CAN_PEAK_USB=m
-CONFIG_CAN_8DEV_USB=m
-# CONFIG_CAN_SOFTING is not set
-# CONFIG_CAN_DEBUG_DEVICES is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
-CONFIG_BT_LE=y
-CONFIG_BT_6LOWPAN=m
-# CONFIG_BT_SELFTEST is not set
-CONFIG_BT_DEBUGFS=y
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_QCA=m
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTUSB_BCM=y
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_ATH3K=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIUART_3WIRE=y
-# CONFIG_BT_HCIUART_INTEL is not set
-CONFIG_BT_HCIUART_BCM=y
-CONFIG_BT_HCIUART_QCA=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_BT_WILINK=m
-CONFIG_AF_RXRPC=m
-# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
-# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-# CONFIG_CFG80211_DEBUGFS is not set
-# CONFIG_CFG80211_INTERNAL_REGDB is not set
-CONFIG_CFG80211_CRDA_SUPPORT=y
-CONFIG_CFG80211_WEXT=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_MINSTREL_HT=y
-# CONFIG_MAC80211_RC_MINSTREL_VHT is not set
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_MESSAGE_TRACING is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_RFKILL=y
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-# CONFIG_RFKILL_REGULATOR is not set
-# CONFIG_RFKILL_GPIO is not set
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-# CONFIG_NET_9P_DEBUG is not set
-# CONFIG_CAIF is not set
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-CONFIG_NFC_NCI=m
-CONFIG_NFC_NCI_SPI=m
-# CONFIG_NFC_NCI_UART is not set
-CONFIG_NFC_HCI=m
-CONFIG_NFC_SHDLC=y
-
-#
-# Near Field Communication (NFC) devices
-#
-CONFIG_NFC_PN533=m
-CONFIG_NFC_WILINK=m
-# CONFIG_NFC_TRF7970A is not set
-CONFIG_NFC_SIM=m
-CONFIG_NFC_PORT100=m
-# CONFIG_NFC_FDP is not set
-CONFIG_NFC_PN544=m
-CONFIG_NFC_PN544_I2C=m
-CONFIG_NFC_MICROREAD=m
-CONFIG_NFC_MICROREAD_I2C=m
-# CONFIG_NFC_MRVL_USB is not set
-# CONFIG_NFC_ST21NFCA is not set
-# CONFIG_NFC_ST_NCI is not set
-# CONFIG_NFC_NXP_NCI is not set
-# CONFIG_NFC_S3FWRN5_I2C is not set
-CONFIG_LWTUNNEL=y
-CONFIG_HAVE_BPF_JIT=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-# CONFIG_UEVENT_HELPER is not set
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE="am335x-pm-firmware.elf am335x-bone-scale-data.bin am335x-evm-scale-data.bin am43x-evm-scale-data.bin"
-CONFIG_EXTRA_FIRMWARE_DIR="firmware"
-CONFIG_FW_LOADER_USER_HELPER=y
-# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_ALLOW_DEV_COREDUMP=y
-CONFIG_DEV_COREDUMP=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_GENERIC_CPU_DEVICES is not set
-CONFIG_SOC_BUS=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=y
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGMAP_IRQ=y
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_FENCE_TRACE is not set
-CONFIG_DMA_CMA=y
-
-#
-# Default contiguous memory area size:
-#
-CONFIG_CMA_SIZE_MBYTES=24
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_ALIGNMENT=8
-
-#
-# Bus devices
-#
-# CONFIG_ARM_CCI400_PMU is not set
-# CONFIG_ARM_CCI500_PMU is not set
-# CONFIG_ARM_CCN is not set
-# CONFIG_BRCMSTB_GISB_ARB is not set
-CONFIG_OMAP_INTERCONNECT=y
-CONFIG_OMAP_OCP2SCP=y
-CONFIG_VEXPRESS_CONFIG=y
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-CONFIG_MTD=y
-# CONFIG_MTD_TESTS is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-CONFIG_MTD_OF_PARTS=m
-CONFIG_MTD_AR7_PARTS=m
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-# CONFIG_SM_FTL is not set
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_SWAP=m
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_RAM=m
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_PHYSMAP_OF is not set
-CONFIG_MTD_PLATRAM=m
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-# CONFIG_MTD_DATAFLASH_OTP is not set
-CONFIG_MTD_M25P80=m
-CONFIG_MTD_SST25L=m
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOCG3 is not set
-CONFIG_MTD_NAND_ECC=y
-# CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_BCH=y
-CONFIG_MTD_NAND_ECC_BCH=y
-# CONFIG_MTD_SM_COMMON is not set
-# CONFIG_MTD_NAND_DENALI_DT is not set
-# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_OMAP2=m
-# CONFIG_MTD_NAND_OMAP_BCH is not set
-# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_DOCG4 is not set
-CONFIG_MTD_NAND_NANDSIM=m
-# CONFIG_MTD_NAND_BRCMNAND is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_NAND_HISI504 is not set
-CONFIG_MTD_ONENAND=y
-CONFIG_MTD_ONENAND_VERIFY_WRITE=y
-# CONFIG_MTD_ONENAND_GENERIC is not set
-# CONFIG_MTD_ONENAND_OTP is not set
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-
-#
-# LPDDR & LPDDR2 PCM memory drivers
-#
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-# CONFIG_MTD_LPDDR2_NVM is not set
-CONFIG_MTD_SPI_NOR=m
-CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_LIMIT=20
-# CONFIG_MTD_UBI_FASTMAP is not set
-# CONFIG_MTD_UBI_GLUEBI is not set
-CONFIG_MTD_UBI_BLOCK=y
-CONFIG_DTC=y
-CONFIG_OF=y
-# CONFIG_OF_UNITTEST is not set
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_DYNAMIC=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_NET=y
-CONFIG_OF_MDIO=y
-CONFIG_OF_MTD=y
-CONFIG_OF_RESERVED_MEM=y
-CONFIG_OF_RESOLVE=y
-CONFIG_OF_OVERLAY=y
-CONFIG_OF_CONFIGFS=y
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_NULL_BLK=m
-CONFIG_ZRAM=m
-CONFIG_ZRAM_LZ4_COMPRESS=y
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_OSD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
-# CONFIG_CDROM_PKTCDVD is not set
-CONFIG_ATA_OVER_ETH=m
-# CONFIG_MG_DISK is not set
-CONFIG_VIRTIO_BLK=m
-CONFIG_BLK_DEV_RBD=m
-
-#
-# Misc devices
-#
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-# CONFIG_DUMMY_IRQ is not set
-CONFIG_HWLAT_DETECTOR=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_APDS9802ALS=m
-CONFIG_ISL29003=m
-CONFIG_ISL29020=m
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1780=m
-CONFIG_SENSORS_BH1770=m
-CONFIG_SENSORS_APDS990X=m
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-CONFIG_TI_DAC7512=m
-# CONFIG_BMP085_I2C is not set
-# CONFIG_BMP085_SPI is not set
-# CONFIG_USB_SWITCH_FSA9480 is not set
-# CONFIG_LATTICE_ECP3_CONFIG is not set
-CONFIG_SRAM=y
-CONFIG_VEXPRESS_SYSCFG=y
-CONFIG_BONE_CAPEMGR=y
-# CONFIG_DEV_OVERLAYMGR is not set
-CONFIG_TIEQEP=m
-CONFIG_C2PORT=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=y
-CONFIG_EEPROM_AT25=y
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-CONFIG_SENSORS_LIS3_SPI=m
-CONFIG_SENSORS_LIS3_I2C=m
-
-#
-# Altera FPGA firmware download module
-#
-CONFIG_ALTERA_STAPL=m
-
-#
-# Intel MIC Bus Driver
-#
-
-#
-# SCIF Bus Driver
-#
-
-#
-# Intel MIC Host Driver
-#
-
-#
-# Intel MIC Card Driver
-#
-
-#
-# SCIF Driver
-#
-
-#
-# Intel MIC Coprocessor State Management (COSM) Drivers
-#
-
-#
-# Argus cape driver for beaglebone black
-#
-CONFIG_CAPE_BONE_ARGUS=y
-CONFIG_BEAGLEBONE_PINMUX_HELPER=y
-# CONFIG_ECHO is not set
-# CONFIG_CXL_BASE is not set
-# CONFIG_CXL_KERNEL_API is not set
-# CONFIG_CXL_EEH is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_NETLINK=y
-# CONFIG_SCSI_MQ_DEFAULT is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_ST=m
-CONFIG_CHR_DEV_OSST=m
-CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_UFSHCD=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-# CONFIG_SCSI_DEBUG is not set
-CONFIG_SCSI_VIRTIO=m
-CONFIG_SCSI_DH=y
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-CONFIG_SCSI_OSD_INITIATOR=m
-CONFIG_SCSI_OSD_ULD=m
-CONFIG_SCSI_OSD_DPRINT_SENSE=1
-# CONFIG_SCSI_OSD_DEBUG is not set
-CONFIG_ATA=y
-# CONFIG_ATA_NONSTANDARD is not set
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI_PLATFORM=y
-# CONFIG_AHCI_CEVA is not set
-CONFIG_AHCI_QORIQ=y
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-
-#
-# PATA SFF controllers with BMDMA
-#
-
-#
-# PIO-only SFF controllers
-#
-CONFIG_PATA_PLATFORM=y
-CONFIG_PATA_OF_PLATFORM=y
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-# CONFIG_MD_CLUSTER is not set
-CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_MQ_DEFAULT is not set
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_BUFIO=m
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
-# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_MQ=m
-CONFIG_DM_CACHE_SMQ=m
-CONFIG_DM_CACHE_CLEANER=m
-CONFIG_DM_ERA=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_DELAY=m
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
-CONFIG_DM_SWITCH=m
-CONFIG_DM_LOG_WRITES=m
-CONFIG_TARGET_CORE=m
-CONFIG_TCM_IBLOCK=m
-CONFIG_TCM_FILEIO=m
-CONFIG_TCM_PSCSI=m
-CONFIG_TCM_USER2=m
-CONFIG_LOOPBACK_TARGET=m
-CONFIG_TCM_FC=m
-CONFIG_ISCSI_TARGET=m
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_EQUALIZER=m
-CONFIG_IFB=m
-CONFIG_NET_TEAM=m
-CONFIG_NET_TEAM_MODE_BROADCAST=m
-CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
-CONFIG_NET_TEAM_MODE_RANDOM=m
-CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
-CONFIG_NET_TEAM_MODE_LOADBALANCE=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_IPVLAN=m
-CONFIG_VXLAN=m
-CONFIG_GENEVE=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_TUN=m
-# CONFIG_TUN_VNET_CROSS_LE is not set
-CONFIG_VETH=m
-CONFIG_VIRTIO_NET=m
-CONFIG_NLMON=m
-CONFIG_ATM_DRIVERS=y
-CONFIG_ATM_DUMMY=m
-# CONFIG_ATM_TCP is not set
-
-#
-# CAIF transport drivers
-#
-# CONFIG_VHOST_NET is not set
-# CONFIG_VHOST_SCSI is not set
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
-
-#
-# Distributed Switch Architecture drivers
-#
-# CONFIG_NET_DSA_MV88E6XXX is not set
-# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
-CONFIG_ETHERNET=y
-# CONFIG_ALTERA_TSE is not set
-# CONFIG_NET_VENDOR_ARC is not set
-# CONFIG_NET_VENDOR_AURORA is not set
-CONFIG_NET_CADENCE=y
-# CONFIG_MACB is not set
-CONFIG_NET_VENDOR_BROADCOM=y
-# CONFIG_B44 is not set
-# CONFIG_BCMGENET is not set
-# CONFIG_SYSTEMPORT is not set
-CONFIG_NET_VENDOR_CIRRUS=y
-# CONFIG_CS89x0 is not set
-# CONFIG_DM9000 is not set
-# CONFIG_DNET is not set
-CONFIG_NET_VENDOR_EZCHIP=y
-# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
-CONFIG_NET_VENDOR_FARADAY=y
-# CONFIG_FTMAC100 is not set
-# CONFIG_FTGMAC100 is not set
-CONFIG_NET_VENDOR_HISILICON=y
-# CONFIG_HIX5HD2_GMAC is not set
-# CONFIG_HIP04_ETH is not set
-# CONFIG_HNS is not set
-# CONFIG_HNS_DSAF is not set
-# CONFIG_HNS_ENET is not set
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_MARVELL=y
-# CONFIG_MVMDIO is not set
-CONFIG_NET_VENDOR_MICREL=y
-# CONFIG_KS8842 is not set
-CONFIG_KS8851=m
-# CONFIG_KS8851_MLL is not set
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ENCX24J600=m
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NET_VENDOR_8390=y
-# CONFIG_AX88796 is not set
-# CONFIG_ETHOC is not set
-CONFIG_NET_VENDOR_QUALCOMM=y
-# CONFIG_QCA7000 is not set
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_ROCKER=y
-CONFIG_NET_VENDOR_SAMSUNG=y
-# CONFIG_SXGBE_ETH is not set
-CONFIG_NET_VENDOR_SEEQ=y
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_SMC91X=m
-CONFIG_SMC911X=m
-CONFIG_SMSC911X=m
-# CONFIG_SMSC911X_ARCH_HOOKS is not set
-CONFIG_NET_VENDOR_STMICRO=y
-# CONFIG_STMMAC_ETH is not set
-CONFIG_NET_VENDOR_SYNOPSYS=y
-# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set
-CONFIG_NET_VENDOR_TI=y
-CONFIG_TI_DAVINCI_MDIO=y
-CONFIG_TI_DAVINCI_CPDMA=y
-CONFIG_TI_CPSW_PHY_SEL=y
-CONFIG_TI_CPSW_ALE=y
-CONFIG_TI_CPSW=y
-CONFIG_TI_CPTS=y
-CONFIG_NET_VENDOR_VIA=y
-# CONFIG_VIA_RHINE is not set
-# CONFIG_VIA_VELOCITY is not set
-CONFIG_NET_VENDOR_WIZNET=y
-# CONFIG_WIZNET_W5100 is not set
-# CONFIG_WIZNET_W5300 is not set
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_AQUANTIA_PHY is not set
-CONFIG_AT803X_PHY=m
-CONFIG_AMD_PHY=m
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-# CONFIG_TERANETICS_PHY is not set
-CONFIG_SMSC_PHY=y
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_BROADCOM_PHY=m
-# CONFIG_BCM7XXX_PHY is not set
-CONFIG_BCM87XX_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MICREL_PHY=y
-CONFIG_DP83848_PHY=y
-CONFIG_DP83867_PHY=m
-CONFIG_MICROCHIP_PHY=m
-CONFIG_FIXED_PHY=m
-# CONFIG_MDIO_BITBANG is not set
-# CONFIG_MDIO_BUS_MUX_GPIO is not set
-# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
-# CONFIG_MDIO_BCM_UNIMAC is not set
-# CONFIG_MICREL_KS8995MA is not set
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-CONFIG_USB_NET_DRIVERS=m
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_LAN78XX=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_AX88179_178A=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_HUAWEI_CDC_NCM=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SR9700=m
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_USB_NET_CH9200=m
-CONFIG_WLAN=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_AT76C50X_USB=m
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_MAC80211_HWSIM=m
-CONFIG_ATH_COMMON=m
-CONFIG_ATH_CARDS=m
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K=m
-# CONFIG_ATH9K_AHB is not set
-# CONFIG_ATH9K_DEBUGFS is not set
-# CONFIG_ATH9K_DYNACK is not set
-# CONFIG_ATH9K_WOW is not set
-CONFIG_ATH9K_RFKILL=y
-# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
-CONFIG_ATH9K_PCOEM=y
-CONFIG_ATH9K_HTC=m
-# CONFIG_ATH9K_HTC_DEBUGFS is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-CONFIG_CARL9170_WPC=y
-# CONFIG_CARL9170_HWRNG is not set
-CONFIG_ATH6KL=m
-CONFIG_ATH6KL_SDIO=m
-CONFIG_ATH6KL_USB=m
-# CONFIG_ATH6KL_DEBUG is not set
-# CONFIG_ATH6KL_TRACING is not set
-CONFIG_AR5523=m
-CONFIG_ATH10K=m
-# CONFIG_ATH10K_DEBUG is not set
-# CONFIG_ATH10K_DEBUGFS is not set
-# CONFIG_ATH10K_TRACING is not set
-CONFIG_WCN36XX=m
-# CONFIG_WCN36XX_DEBUGFS is not set
-CONFIG_B43=m
-CONFIG_B43_BCMA=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BUSES_BCMA_AND_SSB=y
-# CONFIG_B43_BUSES_BCMA is not set
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_SDIO=y
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_G=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-CONFIG_BRCMFMAC=m
-CONFIG_BRCMFMAC_PROTO_BCDC=y
-CONFIG_BRCMFMAC_SDIO=y
-CONFIG_BRCMFMAC_USB=y
-# CONFIG_BRCM_TRACING is not set
-# CONFIG_BRCMDBG is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-# CONFIG_P54_SPI is not set
-CONFIG_P54_LEDS=y
-CONFIG_RT2X00=m
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT3573=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-# CONFIG_RT2800USB_UNKNOWN is not set
-CONFIG_RT2800_LIB=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_WL_MEDIATEK=y
-CONFIG_MT7601U=m
-CONFIG_RTL_CARDS=m
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_RTL8192C_COMMON=m
-CONFIG_RTL8XXXU=m
-# CONFIG_RTL8XXXU_UNTESTED is not set
-CONFIG_WL_TI=y
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX=m
-CONFIG_WL18XX=m
-CONFIG_WLCORE=m
-CONFIG_WLCORE_SPI=m
-CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_MWIFIEX_USB=m
-# CONFIG_CW1200 is not set
-CONFIG_RSI_91X=m
-CONFIG_RSI_DEBUGFS=y
-# CONFIG_RSI_SDIO is not set
-CONFIG_RSI_USB=m
-
-#
-# WiMAX Wireless Broadband devices
-#
-CONFIG_WIMAX_I2400M=m
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-# CONFIG_WAN is not set
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKELB=m
-CONFIG_IEEE802154_AT86RF230=m
-# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
-CONFIG_IEEE802154_MRF24J40=m
-CONFIG_IEEE802154_CC2520=m
-CONFIG_IEEE802154_ATUSB=m
-# CONFIG_ISDN is not set
-# CONFIG_NVM is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=y
-CONFIG_INPUT_FF_MEMLESS=y
-CONFIG_INPUT_POLLDEV=m
-CONFIG_INPUT_SPARSEKMAP=m
-CONFIG_INPUT_MATRIXKMAP=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_EVBUG is not set
-# CONFIG_INPUT_APMPOWER is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ADP5588=m
-CONFIG_KEYBOARD_ADP5589=m
-CONFIG_KEYBOARD_ATKBD=y
-CONFIG_KEYBOARD_QT1070=m
-CONFIG_KEYBOARD_QT2160=m
-CONFIG_KEYBOARD_LKKBD=m
-CONFIG_KEYBOARD_GPIO=y
-CONFIG_KEYBOARD_GPIO_POLLED=m
-CONFIG_KEYBOARD_TCA6416=m
-CONFIG_KEYBOARD_TCA8418=m
-CONFIG_KEYBOARD_MATRIX=m
-CONFIG_KEYBOARD_LM8323=m
-CONFIG_KEYBOARD_LM8333=m
-CONFIG_KEYBOARD_MAX7359=m
-CONFIG_KEYBOARD_MCS=m
-CONFIG_KEYBOARD_MPR121=m
-CONFIG_KEYBOARD_NEWTON=m
-CONFIG_KEYBOARD_OPENCORES=m
-CONFIG_KEYBOARD_SAMSUNG=m
-CONFIG_KEYBOARD_STOWAWAY=m
-CONFIG_KEYBOARD_SUNKBD=m
-CONFIG_KEYBOARD_OMAP4=m
-CONFIG_KEYBOARD_TWL4030=m
-CONFIG_KEYBOARD_XTKBD=m
-CONFIG_KEYBOARD_CAP11XX=m
-CONFIG_KEYBOARD_BCM=m
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_CYPRESS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_SENTELIC=y
-CONFIG_MOUSE_PS2_TOUCHKIT=y
-CONFIG_MOUSE_PS2_FOCALTECH=y
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_CYAPA=m
-CONFIG_MOUSE_ELAN_I2C=m
-CONFIG_MOUSE_ELAN_I2C_I2C=y
-# CONFIG_MOUSE_ELAN_I2C_SMBUS is not set
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_MOUSE_SYNAPTICS_USB=m
-CONFIG_INPUT_JOYSTICK=y
-CONFIG_JOYSTICK_ANALOG=m
-CONFIG_JOYSTICK_A3D=m
-CONFIG_JOYSTICK_ADI=m
-CONFIG_JOYSTICK_COBRA=m
-CONFIG_JOYSTICK_GF2K=m
-CONFIG_JOYSTICK_GRIP=m
-CONFIG_JOYSTICK_GRIP_MP=m
-CONFIG_JOYSTICK_GUILLEMOT=m
-CONFIG_JOYSTICK_INTERACT=m
-CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_TMDC=m
-CONFIG_JOYSTICK_IFORCE=m
-CONFIG_JOYSTICK_IFORCE_USB=y
-CONFIG_JOYSTICK_IFORCE_232=y
-CONFIG_JOYSTICK_WARRIOR=m
-CONFIG_JOYSTICK_MAGELLAN=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_STINGER=m
-CONFIG_JOYSTICK_TWIDJOY=m
-CONFIG_JOYSTICK_ZHENHUA=m
-CONFIG_JOYSTICK_AS5011=m
-CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_XPAD_FF=y
-CONFIG_JOYSTICK_XPAD_LEDS=y
-CONFIG_INPUT_TABLET=y
-CONFIG_TABLET_USB_ACECAD=m
-CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_GTCO=m
-CONFIG_TABLET_USB_HANWANG=m
-CONFIG_TABLET_USB_KBTAB=m
-CONFIG_TABLET_SERIAL_WACOM4=m
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_PROPERTIES=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-# CONFIG_TOUCHSCREEN_AD7879 is not set
-CONFIG_TOUCHSCREEN_AR1021_I2C=m
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
-CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
-CONFIG_TOUCHSCREEN_BU21013=m
-CONFIG_TOUCHSCREEN_CHIPONE_ICN8318=m
-CONFIG_TOUCHSCREEN_CY8CTMG110=m
-CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
-CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
-CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
-CONFIG_TOUCHSCREEN_DA9052=m
-CONFIG_TOUCHSCREEN_DYNAPRO=m
-CONFIG_TOUCHSCREEN_HAMPSHIRE=m
-CONFIG_TOUCHSCREEN_EETI=m
-CONFIG_TOUCHSCREEN_EGALAX=m
-# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
-CONFIG_TOUCHSCREEN_FT6236=m
-CONFIG_TOUCHSCREEN_EGALAX_I2C=m
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_GOODIX=m
-CONFIG_TOUCHSCREEN_ILI210X=m
-CONFIG_TOUCHSCREEN_GUNZE=m
-CONFIG_TOUCHSCREEN_ELAN=m
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-CONFIG_TOUCHSCREEN_WACOM_I2C=m
-CONFIG_TOUCHSCREEN_MAX11801=m
-CONFIG_TOUCHSCREEN_MCS5000=m
-CONFIG_TOUCHSCREEN_MMS114=m
-# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_IMX6UL_TSC=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-CONFIG_TOUCHSCREEN_EDT_FT5X06=m
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
-CONFIG_TOUCHSCREEN_PIXCIR=m
-CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_MC13783=m
-# CONFIG_TOUCHSCREEN_USB_EGALAX is not set
-# CONFIG_TOUCHSCREEN_USB_PANJIT is not set
-# CONFIG_TOUCHSCREEN_USB_3M is not set
-# CONFIG_TOUCHSCREEN_USB_ITM is not set
-# CONFIG_TOUCHSCREEN_USB_ETURBO is not set
-# CONFIG_TOUCHSCREEN_USB_GUNZE is not set
-# CONFIG_TOUCHSCREEN_USB_DMC_TSC10 is not set
-# CONFIG_TOUCHSCREEN_USB_IRTOUCH is not set
-# CONFIG_TOUCHSCREEN_USB_IDEALTEK is not set
-# CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH is not set
-# CONFIG_TOUCHSCREEN_USB_GOTOP is not set
-# CONFIG_TOUCHSCREEN_USB_JASTEC is not set
-# CONFIG_TOUCHSCREEN_USB_ELO is not set
-# CONFIG_TOUCHSCREEN_USB_E2I is not set
-# CONFIG_TOUCHSCREEN_USB_ZYTRONIC is not set
-# CONFIG_TOUCHSCREEN_USB_ETT_TC45USB is not set
-# CONFIG_TOUCHSCREEN_USB_NEXIO is not set
-# CONFIG_TOUCHSCREEN_USB_EASYTOUCH is not set
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC200X_CORE=m
-CONFIG_TOUCHSCREEN_TSC2004=m
-CONFIG_TOUCHSCREEN_TSC2005=m
-CONFIG_TOUCHSCREEN_TSC2007=m
-# CONFIG_TOUCHSCREEN_RM_TS is not set
-# CONFIG_TOUCHSCREEN_SILEAD is not set
-# CONFIG_TOUCHSCREEN_SIS_I2C is not set
-CONFIG_TOUCHSCREEN_ST1232=m
-# CONFIG_TOUCHSCREEN_SUR40 is not set
-# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
-CONFIG_TOUCHSCREEN_SX8654=m
-CONFIG_TOUCHSCREEN_TPS6507X=m
-CONFIG_TOUCHSCREEN_ZFORCE=m
-# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set
-CONFIG_TOUCHSCREEN_ROHM_BU21023=m
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-CONFIG_INPUT_BMA150=m
-CONFIG_INPUT_E3X0_BUTTON=m
-CONFIG_INPUT_MC13783_PWRBUTTON=m
-CONFIG_INPUT_MMA8450=m
-CONFIG_INPUT_MPU3050=m
-CONFIG_INPUT_GP2A=m
-# CONFIG_INPUT_GPIO_BEEPER is not set
-CONFIG_INPUT_GPIO_TILT_POLLED=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_KXTJ9=m
-CONFIG_INPUT_KXTJ9_POLLED_MODE=y
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_REGULATOR_HAPTIC=m
-CONFIG_INPUT_TPS65218_PWRBUTTON=y
-CONFIG_INPUT_AXP20X_PEK=y
-CONFIG_INPUT_TWL4030_PWRBUTTON=y
-CONFIG_INPUT_TWL4030_VIBRA=y
-CONFIG_INPUT_TWL6040_VIBRA=y
-CONFIG_INPUT_UINPUT=y
-CONFIG_INPUT_PALMAS_PWRBUTTON=y
-CONFIG_INPUT_PCF8574=m
-CONFIG_INPUT_PWM_BEEPER=m
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_DA9052_ONKEY=m
-CONFIG_INPUT_DA9055_ONKEY=m
-# CONFIG_INPUT_DA9063_ONKEY is not set
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-CONFIG_INPUT_IMS_PCU=m
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set
-CONFIG_INPUT_DRV260X_HAPTICS=m
-# CONFIG_INPUT_DRV2665_HAPTICS is not set
-CONFIG_INPUT_DRV2667_HAPTICS=m
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-CONFIG_SERIO_ALTERA_PS2=m
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_SERIO_ARC_PS2 is not set
-# CONFIG_SERIO_APBPS2 is not set
-# CONFIG_USERIO is not set
-CONFIG_GAMEPORT=m
-# CONFIG_GAMEPORT_NS558 is not set
-# CONFIG_GAMEPORT_L4 is not set
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_N_GSM=m
-# CONFIG_TRACE_SINK is not set
-CONFIG_DEVMEM=y
-CONFIG_DEVKMEM=y
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set
-# CONFIG_SERIAL_KGDB_NMI is not set
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX310X is not set
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_CONSOLE_POLL=y
-CONFIG_SERIAL_OMAP=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_SC16IS7XX is not set
-# CONFIG_SERIAL_BCM63XX is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_IFX6X60 is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-# CONFIG_SERIAL_ARC is not set
-# CONFIG_SERIAL_FSL_LPUART is not set
-# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
-# CONFIG_SERIAL_ST_ASC is not set
-# CONFIG_SERIAL_STM32 is not set
-# CONFIG_SERIAL_MVEBU_UART is not set
-# CONFIG_TTY_PRINTK is not set
-CONFIG_HVC_DRIVER=y
-# CONFIG_HVC_DCC is not set
-CONFIG_VIRTIO_CONSOLE=m
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=m
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-CONFIG_HW_RANDOM_OMAP=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_HW_RANDOM_TPM=m
-# CONFIG_NVRAM is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-CONFIG_TCG_TPM=m
-CONFIG_TCG_TIS_I2C_ATMEL=m
-# CONFIG_TCG_TIS_I2C_INFINEON is not set
-# CONFIG_TCG_TIS_I2C_NUVOTON is not set
-# CONFIG_TCG_ATMEL is not set
-# CONFIG_TCG_TIS_ST33ZP24 is not set
-# CONFIG_XILLYBUS is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MUX=y
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-# CONFIG_I2C_MUX_GPIO is not set
-# CONFIG_I2C_MUX_PCA9541 is not set
-CONFIG_I2C_MUX_PCA954x=y
-CONFIG_I2C_MUX_PINCTRL=y
-# CONFIG_I2C_MUX_REG is not set
-# CONFIG_I2C_DEMUX_PINCTRL is not set
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_ALGOBIT=y
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_CBUS_GPIO is not set
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_EMEV2 is not set
-CONFIG_I2C_GPIO=m
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_OMAP=y
-CONFIG_I2C_PCA_PLATFORM=m
-# CONFIG_I2C_PXA_PCI is not set
-CONFIG_I2C_RK3X=y
-CONFIG_I2C_SIMTEC=m
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_DLN2=m
-# CONFIG_I2C_PARPORT_LIGHT is not set
-CONFIG_I2C_ROBOTFUZZ_OSIF=m
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-CONFIG_I2C_VIPERBOARD=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_SLAVE is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-CONFIG_SPI_BITBANG=y
-# CONFIG_SPI_CADENCE is not set
-CONFIG_SPI_DLN2=m
-CONFIG_SPI_GPIO=y
-# CONFIG_SPI_FSL_SPI is not set
-# CONFIG_SPI_OC_TINY is not set
-CONFIG_SPI_OMAP24XX=y
-CONFIG_SPI_TI_QSPI=m
-# CONFIG_SPI_PXA2XX_PCI is not set
-CONFIG_SPI_ROCKCHIP=m
-# CONFIG_SPI_SC18IS602 is not set
-# CONFIG_SPI_XCOMM is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
-# CONFIG_SPI_DESIGNWARE is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=y
-# CONFIG_SPI_TLE62X0 is not set
-# CONFIG_SPMI is not set
-CONFIG_HSI=m
-CONFIG_HSI_BOARDINFO=y
-
-#
-# HSI controllers
-#
-
-#
-# HSI clients
-#
-# CONFIG_HSI_CHAR is not set
-
-#
-# PPS support
-#
-CONFIG_PPS=y
-# CONFIG_PPS_DEBUG is not set
-# CONFIG_NTP_PPS is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-CONFIG_PPS_CLIENT_LDISC=m
-CONFIG_PPS_CLIENT_GPIO=m
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=y
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-CONFIG_PINCTRL=y
-
-#
-# Pin controllers
-#
-CONFIG_PINMUX=y
-CONFIG_PINCONF=y
-CONFIG_GENERIC_PINCONF=y
-# CONFIG_DEBUG_PINCTRL is not set
-CONFIG_PINCTRL_AS3722=y
-# CONFIG_PINCTRL_AMD is not set
-CONFIG_PINCTRL_SINGLE=y
-CONFIG_PINCTRL_TI_IODELAY=y
-CONFIG_PINCTRL_PALMAS=y
-CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIO_DEVRES=y
-CONFIG_OF_GPIO=y
-CONFIG_GPIOLIB_IRQCHIP=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_OF_HELPER=y
-CONFIG_GPIO_GENERIC=y
-CONFIG_GPIO_MAX730X=m
-
-#
-# Memory mapped GPIO drivers
-#
-# CONFIG_GPIO_74XX_MMIO is not set
-# CONFIG_GPIO_ALTERA is not set
-# CONFIG_GPIO_DWAPB is not set
-# CONFIG_GPIO_EM is not set
-CONFIG_GPIO_GENERIC_PLATFORM=y
-# CONFIG_GPIO_GRGPIO is not set
-CONFIG_GPIO_OMAP=y
-CONFIG_GPIO_SYSCON=y
-# CONFIG_GPIO_XILINX is not set
-# CONFIG_GPIO_ZEVIO is not set
-# CONFIG_GPIO_ZX is not set
-
-#
-# I2C GPIO expanders
-#
-CONFIG_GPIO_ADP5588=m
-CONFIG_GPIO_ADNP=m
-CONFIG_GPIO_MAX7300=m
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=y
-CONFIG_GPIO_PCA953X_IRQ=y
-CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_SX150X=y
-
-#
-# MFD GPIO expanders
-#
-CONFIG_GPIO_DA9052=y
-CONFIG_GPIO_DA9055=y
-CONFIG_GPIO_DLN2=m
-CONFIG_GPIO_PALMAS=y
-CONFIG_GPIO_TPS65910=y
-CONFIG_GPIO_TWL4030=y
-CONFIG_GPIO_TWL6040=y
-
-#
-# SPI GPIO expanders
-#
-CONFIG_GPIO_74X164=m
-CONFIG_GPIO_MAX7301=m
-CONFIG_GPIO_MC33880=m
-
-#
-# SPI or I2C GPIO expanders
-#
-CONFIG_GPIO_MCP23S08=m
-
-#
-# USB GPIO expanders
-#
-CONFIG_GPIO_VIPERBOARD=m
-CONFIG_W1=y
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
-CONFIG_W1_MASTER_GPIO=m
-CONFIG_HDQ_MASTER_OMAP=m
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2408=m
-CONFIG_W1_SLAVE_DS2408_READBACK=y
-CONFIG_W1_SLAVE_DS2413=m
-CONFIG_W1_SLAVE_DS2406=m
-CONFIG_W1_SLAVE_DS2423=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-CONFIG_W1_SLAVE_DS2433_CRC=y
-CONFIG_W1_SLAVE_DS2760=m
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_DS2781=m
-CONFIG_W1_SLAVE_DS28E04=m
-CONFIG_W1_SLAVE_BQ27000=m
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-# CONFIG_APM_POWER is not set
-CONFIG_GENERIC_ADC_BATTERY=m
-# CONFIG_TEST_POWER is not set
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2781 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_SBS is not set
-CONFIG_BATTERY_BQ27XXX=m
-CONFIG_BATTERY_BQ27XXX_I2C=y
-CONFIG_BATTERY_BQ27XXX_PLATFORM=y
-CONFIG_BATTERY_DA9052=m
-CONFIG_AXP288_FUEL_GAUGE=m
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_BATTERY_TWL4030_MADC is not set
-CONFIG_BATTERY_RX51=m
-CONFIG_CHARGER_ISP1704=m
-# CONFIG_CHARGER_MAX8903 is not set
-# CONFIG_CHARGER_TWL4030 is not set
-# CONFIG_CHARGER_LP8727 is not set
-CONFIG_CHARGER_GPIO=m
-# CONFIG_CHARGER_MANAGER is not set
-CONFIG_CHARGER_BQ2415X=m
-# CONFIG_CHARGER_BQ24190 is not set
-# CONFIG_CHARGER_BQ24257 is not set
-# CONFIG_CHARGER_BQ24735 is not set
-# CONFIG_CHARGER_BQ25890 is not set
-# CONFIG_CHARGER_SMB347 is not set
-CONFIG_CHARGER_TPS65217=m
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
-# CONFIG_CHARGER_RT9455 is not set
-CONFIG_AXP20X_POWER=y
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_AS3722=y
-# CONFIG_POWER_RESET_BRCMSTB is not set
-CONFIG_POWER_RESET_GPIO=y
-CONFIG_POWER_RESET_GPIO_RESTART=y
-# CONFIG_POWER_RESET_LTC2952 is not set
-CONFIG_POWER_RESET_RESTART=y
-# CONFIG_POWER_RESET_VERSATILE is not set
-CONFIG_POWER_RESET_VEXPRESS=y
-CONFIG_POWER_RESET_SYSCON=y
-CONFIG_POWER_RESET_SYSCON_POWEROFF=y
-CONFIG_POWER_AVS=y
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-CONFIG_SENSORS_AD7314=m
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7X10=m
-CONFIG_SENSORS_ADT7310=m
-CONFIG_SENSORS_ADT7410=m
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_DA9052_ADC=m
-CONFIG_SENSORS_DA9055=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_MC13783_ADC=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_G762=m
-CONFIG_SENSORS_GPIO_FAN=y
-CONFIG_SENSORS_HIH6130=m
-CONFIG_SENSORS_IIO_HWMON=m
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_JC42=m
-CONFIG_SENSORS_POWR1220=m
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LTC2945=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4222=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4260=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-CONFIG_SENSORS_MAX197=m
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_MAX6697=m
-CONFIG_SENSORS_MAX31790=m
-CONFIG_SENSORS_HTU21=m
-CONFIG_SENSORS_MCP3021=m
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LM95234=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_NCT6683=m
-CONFIG_SENSORS_NCT6775=m
-CONFIG_SENSORS_NCT7802=m
-CONFIG_SENSORS_NCT7904=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-CONFIG_SENSORS_ADM1275=m
-CONFIG_SENSORS_LM25066=m
-CONFIG_SENSORS_LTC2978=m
-CONFIG_SENSORS_LTC2978_REGULATOR=y
-CONFIG_SENSORS_MAX16064=m
-CONFIG_SENSORS_MAX20751=m
-CONFIG_SENSORS_MAX34440=m
-CONFIG_SENSORS_MAX8688=m
-CONFIG_SENSORS_TPS40422=m
-CONFIG_SENSORS_UCD9000=m
-CONFIG_SENSORS_UCD9200=m
-CONFIG_SENSORS_ZL6100=m
-CONFIG_SENSORS_PWM_FAN=m
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SHTC1=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_SMM665=m
-CONFIG_SENSORS_ADC128D818=m
-CONFIG_SENSORS_ADS1015=m
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
-CONFIG_SENSORS_AMC6821=m
-CONFIG_SENSORS_INA209=m
-CONFIG_SENSORS_INA2XX=m
-# CONFIG_SENSORS_TC74 is not set
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-CONFIG_SENSORS_TMP103=m
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_TWL4030_MADC=m
-# CONFIG_SENSORS_VEXPRESS is not set
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-# CONFIG_SENSORS_W83795_FANCTRL is not set
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_HWMON=y
-CONFIG_THERMAL_OF=y
-# CONFIG_THERMAL_WRITABLE_TRIPS is not set
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_STEP_WISE=y
-CONFIG_THERMAL_GOV_BANG_BANG=y
-# CONFIG_THERMAL_GOV_USER_SPACE is not set
-# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
-CONFIG_CPU_THERMAL=y
-CONFIG_CLOCK_THERMAL=y
-CONFIG_DEVFREQ_THERMAL=y
-# CONFIG_THERMAL_EMULATION is not set
-# CONFIG_IMX_THERMAL is not set
-
-#
-# Texas Instruments thermal drivers
-#
-CONFIG_TI_SOC_THERMAL=y
-CONFIG_TI_THERMAL=y
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-CONFIG_WATCHDOG_NOWAYOUT=y
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-# CONFIG_DA9052_WATCHDOG is not set
-# CONFIG_DA9055_WATCHDOG is not set
-# CONFIG_DA9063_WATCHDOG is not set
-# CONFIG_GPIO_WATCHDOG is not set
-# CONFIG_XILINX_WATCHDOG is not set
-# CONFIG_CADENCE_WATCHDOG is not set
-# CONFIG_DW_WATCHDOG is not set
-CONFIG_OMAP_WATCHDOG=y
-CONFIG_TWL4030_WATCHDOG=y
-# CONFIG_MAX63XX_WATCHDOG is not set
-# CONFIG_BCM7038_WDT is not set
-# CONFIG_MEN_A21_WDT is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB=m
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-# CONFIG_SSB_HOST_SOC is not set
-# CONFIG_SSB_SILENT is not set
-# CONFIG_SSB_DEBUG is not set
-# CONFIG_SSB_DRIVER_GPIO is not set
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-# CONFIG_BCMA_HOST_SOC is not set
-# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
-# CONFIG_BCMA_DRIVER_GPIO is not set
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_AS3711 is not set
-CONFIG_MFD_AS3722=y
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_AAT2870_CORE is not set
-# CONFIG_MFD_ATMEL_FLEXCOM is not set
-# CONFIG_MFD_ATMEL_HLCDC is not set
-# CONFIG_MFD_BCM590XX is not set
-CONFIG_MFD_AXP20X=y
-# CONFIG_MFD_CROS_EC is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_PMIC_DA903X is not set
-CONFIG_PMIC_DA9052=y
-CONFIG_MFD_DA9052_SPI=y
-CONFIG_MFD_DA9052_I2C=y
-CONFIG_MFD_DA9055=y
-# CONFIG_MFD_DA9062 is not set
-CONFIG_MFD_DA9063=y
-# CONFIG_MFD_DA9150 is not set
-CONFIG_MFD_DLN2=y
-CONFIG_MFD_MC13XXX=m
-CONFIG_MFD_MC13XXX_SPI=m
-CONFIG_MFD_MC13XXX_I2C=m
-# CONFIG_MFD_HI6421_PMIC is not set
-# CONFIG_HTC_EGPIO is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-# CONFIG_INTEL_SOC_PMIC is not set
-# CONFIG_MFD_KEMPLD is not set
-# CONFIG_MFD_88PM800 is not set
-# CONFIG_MFD_88PM805 is not set
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_MAX14577 is not set
-# CONFIG_MFD_MAX77686 is not set
-# CONFIG_MFD_MAX77693 is not set
-# CONFIG_MFD_MAX77843 is not set
-# CONFIG_MFD_MAX8907 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_MT6397 is not set
-# CONFIG_MFD_MENF21BMC is not set
-# CONFIG_EZX_PCAP is not set
-CONFIG_MFD_VIPERBOARD=m
-# CONFIG_MFD_RETU is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_PM8921_CORE is not set
-# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_USB=m
-# CONFIG_MFD_RC5T583 is not set
-# CONFIG_MFD_RK808 is not set
-# CONFIG_MFD_RN5T618 is not set
-CONFIG_MFD_SEC_CORE=y
-# CONFIG_MFD_SI476X_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_SKY81452 is not set
-# CONFIG_MFD_SMSC is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_MFD_STMPE is not set
-CONFIG_MFD_SYSCON=y
-CONFIG_MFD_TI_AM335X_TSCADC=m
-# CONFIG_MFD_LP3943 is not set
-# CONFIG_MFD_LP8788 is not set
-CONFIG_MFD_OMAP_USB_HOST=y
-CONFIG_MFD_PALMAS=y
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_MFD_TPS65090 is not set
-CONFIG_MFD_TPS65217=y
-CONFIG_MFD_TPS65218=y
-# CONFIG_MFD_TPS6586X is not set
-CONFIG_MFD_TPS65910=y
-# CONFIG_MFD_TPS65912 is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-# CONFIG_MFD_TPS80031 is not set
-CONFIG_TWL4030_CORE=y
-CONFIG_TWL4030_POWER=y
-CONFIG_MFD_TWL4030_AUDIO=y
-CONFIG_TWL6040_CORE=y
-CONFIG_MFD_WL1273_CORE=m
-# CONFIG_MFD_LM3533 is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_ARIZONA_SPI is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-CONFIG_MFD_VEXPRESS_SYSREG=y
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-CONFIG_REGULATOR_USERSPACE_CONSUMER=y
-CONFIG_REGULATOR_ACT8865=m
-# CONFIG_REGULATOR_AD5398 is not set
-CONFIG_REGULATOR_ANATOP=y
-CONFIG_REGULATOR_AS3722=y
-CONFIG_REGULATOR_AXP20X=y
-CONFIG_REGULATOR_DA9052=y
-# CONFIG_REGULATOR_DA9055 is not set
-CONFIG_REGULATOR_DA9063=y
-# CONFIG_REGULATOR_DA9210 is not set
-# CONFIG_REGULATOR_DA9211 is not set
-CONFIG_REGULATOR_FAN53555=m
-CONFIG_REGULATOR_GPIO=y
-# CONFIG_REGULATOR_ISL9305 is not set
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-# CONFIG_REGULATOR_LP872X is not set
-# CONFIG_REGULATOR_LP8755 is not set
-# CONFIG_REGULATOR_LTC3589 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-# CONFIG_REGULATOR_MAX8973 is not set
-CONFIG_REGULATOR_MC13XXX_CORE=m
-CONFIG_REGULATOR_MC13783=m
-CONFIG_REGULATOR_MC13892=m
-CONFIG_REGULATOR_MT6311=y
-CONFIG_REGULATOR_PALMAS=y
-CONFIG_REGULATOR_PBIAS=y
-CONFIG_REGULATOR_PFUZE100=y
-CONFIG_REGULATOR_PWM=y
-CONFIG_REGULATOR_S2MPA01=m
-CONFIG_REGULATOR_S2MPS11=m
-CONFIG_REGULATOR_S5M8767=m
-CONFIG_REGULATOR_TI_ABB=y
-# CONFIG_REGULATOR_TPS51632 is not set
-# CONFIG_REGULATOR_TPS62360 is not set
-CONFIG_REGULATOR_TPS65023=y
-CONFIG_REGULATOR_TPS6507X=y
-CONFIG_REGULATOR_TPS65217=y
-CONFIG_REGULATOR_TPS65218=y
-# CONFIG_REGULATOR_TPS6524X is not set
-CONFIG_REGULATOR_TPS65910=y
-CONFIG_REGULATOR_TWL4030=y
-CONFIG_REGULATOR_VEXPRESS=m
-CONFIG_MEDIA_SUPPORT=y
-
-#
-# Multimedia core support
-#
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
-# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
-# CONFIG_MEDIA_RADIO_SUPPORT is not set
-# CONFIG_MEDIA_SDR_SUPPORT is not set
-CONFIG_MEDIA_RC_SUPPORT=y
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_VIDEO_DEV=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_VIDEO_V4L2=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-# CONFIG_TTPCI_EEPROM is not set
-
-#
-# Media drivers
-#
-CONFIG_RC_CORE=y
-# CONFIG_RC_MAP is not set
-# CONFIG_RC_DECODERS is not set
-# CONFIG_RC_DEVICES is not set
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Webcam devices
-#
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_DTCS033=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STK1135=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TOUPTEK=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_VIDEO_CPIA2=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_VIDEO_USBTV=m
-
-#
-# Webcam, TV (analog/digital) USB devices
-#
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_V4L2=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_RC=m
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_SOC_CAMERA=m
-CONFIG_SOC_CAMERA_PLATFORM=m
-# CONFIG_VIDEO_XILINX is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
-# CONFIG_VIDEO_SH_VEU is not set
-# CONFIG_V4L_TEST_DRIVERS is not set
-
-#
-# Supported MMC/SDIO adapters
-#
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_CYPRESS_FIRMWARE=m
-
-#
-# Media ancillary drivers (tuners, sensors, i2c, frontends)
-#
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-CONFIG_VIDEO_IR_I2C=y
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_MSP3400=m
-
-#
-# RDS decoders
-#
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TVP5150=m
-
-#
-# Video and audio decoders
-#
-
-#
-# Video encoders
-#
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_MT9V011=m
-
-#
-# Flash devices
-#
-
-#
-# Video improvement chips
-#
-
-#
-# Audio/Video compression chips
-#
-
-#
-# Miscellaneous helper chips
-#
-
-#
-# Sensors used on soc_camera driver
-#
-
-#
-# soc_camera sensor drivers
-#
-CONFIG_SOC_CAMERA_IMX074=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_SOC_CAMERA_MT9T031=m
-CONFIG_SOC_CAMERA_MT9T112=m
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_SOC_CAMERA_OV2640=m
-CONFIG_SOC_CAMERA_OV5642=m
-CONFIG_SOC_CAMERA_OV6650=m
-CONFIG_SOC_CAMERA_OV772X=m
-CONFIG_SOC_CAMERA_OV9640=m
-CONFIG_SOC_CAMERA_OV9740=m
-CONFIG_SOC_CAMERA_RJ54N1=m
-CONFIG_SOC_CAMERA_TW9910=m
-
-#
-# Tools to develop new frontends
-#
-# CONFIG_DVB_DUMMY_FE is not set
-
-#
-# Graphics support
-#
-CONFIG_DRM=y
-CONFIG_DRM_KMS_HELPER=y
-CONFIG_DRM_KMS_FB_HELPER=y
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_LOAD_EDID_FIRMWARE=y
-CONFIG_DRM_TTM=m
-CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
-
-#
-# I2C encoder or helper chips
-#
-CONFIG_DRM_I2C_ADV7511=m
-CONFIG_DRM_I2C_ADIHDMI=m
-CONFIG_DRM_I2C_CH7006=m
-CONFIG_DRM_I2C_SIL164=m
-CONFIG_DRM_I2C_NXP_TDA998X=m
-CONFIG_DRM_VGEM=m
-# CONFIG_DRM_EXYNOS is not set
-CONFIG_DRM_UDL=m
-# CONFIG_DRM_ARMADA is not set
-CONFIG_DRM_TILCDC=y
-CONFIG_DRM_TILCDC_SLAVE_COMPAT=y
-CONFIG_DRM_VIRTIO_GPU=m
-# CONFIG_DRM_FSL_DCU is not set
-CONFIG_DRM_BRIDGE=y
-
-#
-# Display Interface Bridges
-#
-# CONFIG_DRM_NXP_PTN3460 is not set
-# CONFIG_DRM_PARADE_PS8622 is not set
-# CONFIG_DRM_STI is not set
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_CMDLINE=y
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=y
-CONFIG_FB_SYS_COPYAREA=y
-CONFIG_FB_SYS_IMAGEBLIT=y
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=y
-CONFIG_FB_DEFERRED_IO=y
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-CONFIG_FB_BACKLIGHT=y
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_UVESA is not set
-# CONFIG_FB_OPENCORES is not set
-# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_SMSCUFX=m
-CONFIG_FB_UDL=m
-# CONFIG_FB_IBM_GXT4500 is not set
-# CONFIG_FB_DA8XX is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_BROADSHEET is not set
-# CONFIG_FB_AUO_K190X is not set
-CONFIG_FB_SIMPLE=y
-# CONFIG_OMAP2_DSS is not set
-CONFIG_FB_SSD1307=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_BACKLIGHT_PWM=m
-# CONFIG_BACKLIGHT_DA9052 is not set
-# CONFIG_BACKLIGHT_PM8941_WLED is not set
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-# CONFIG_BACKLIGHT_LM3630A is not set
-# CONFIG_BACKLIGHT_LM3639 is not set
-# CONFIG_BACKLIGHT_LP855X is not set
-# CONFIG_BACKLIGHT_PANDORA is not set
-# CONFIG_BACKLIGHT_TPS65217 is not set
-CONFIG_BACKLIGHT_GPIO=m
-# CONFIG_BACKLIGHT_LV5207LP is not set
-# CONFIG_BACKLIGHT_BD6107 is not set
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEOMODE_HELPERS=y
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-CONFIG_LOGO=y
-CONFIG_FB_LOGO_CUSTOM=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_DMAENGINE_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_JACK=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_PCM_TIMER=y
-# CONFIG_SND_SEQUENCER_OSS is not set
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=32
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_PROC_FS=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_RAWMIDI_SEQ=m
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DUMMY is not set
-CONFIG_SND_ALOOP=m
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# HD-Audio
-#
-CONFIG_SND_HDA_PREALLOC_SIZE=64
-CONFIG_SND_ARM=y
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_USB_HIFACE=m
-CONFIG_SND_BCD2000=m
-CONFIG_SND_USB_LINE6=m
-CONFIG_SND_USB_POD=m
-CONFIG_SND_USB_PODHD=m
-CONFIG_SND_USB_TONEPORT=m
-CONFIG_SND_USB_VARIAX=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
-# CONFIG_SND_ATMEL_SOC is not set
-CONFIG_SND_EDMA_SOC=m
-CONFIG_SND_DAVINCI_SOC_MCASP=m
-CONFIG_SND_DAVINCI_SOC_GENERIC_EVM=m
-CONFIG_SND_AM33XX_SOC_EVM=m
-# CONFIG_SND_DESIGNWARE_I2S is not set
-
-#
-# SoC Audio for Freescale CPUs
-#
-
-#
-# Common SoC Audio options for Freescale CPUs:
-#
-# CONFIG_SND_SOC_FSL_ASRC is not set
-# CONFIG_SND_SOC_FSL_SAI is not set
-CONFIG_SND_SOC_FSL_SSI=m
-CONFIG_SND_SOC_FSL_SPDIF=m
-# CONFIG_SND_SOC_FSL_ESAI is not set
-CONFIG_SND_SOC_IMX_AUDMUX=m
-CONFIG_SND_OMAP_SOC=m
-CONFIG_SND_OMAP_SOC_MCBSP=m
-CONFIG_SND_OMAP_SOC_HDMI_AUDIO=m
-CONFIG_SND_OMAP_SOC_RX51=m
-CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
-
-#
-# Allwinner SoC Audio support
-#
-CONFIG_SND_SUN4I_CODEC=m
-# CONFIG_SND_SOC_XTFPGA_I2S is not set
-CONFIG_SND_SOC_I2C_AND_SPI=m
-
-#
-# CODEC drivers
-#
-# CONFIG_SND_SOC_AC97_CODEC is not set
-# CONFIG_SND_SOC_ADAU1701 is not set
-# CONFIG_SND_SOC_AK4104 is not set
-# CONFIG_SND_SOC_AK4554 is not set
-# CONFIG_SND_SOC_AK4613 is not set
-# CONFIG_SND_SOC_AK4642 is not set
-# CONFIG_SND_SOC_AK5386 is not set
-# CONFIG_SND_SOC_ALC5623 is not set
-# CONFIG_SND_SOC_CS35L32 is not set
-# CONFIG_SND_SOC_CS42L51_I2C is not set
-# CONFIG_SND_SOC_CS42L52 is not set
-# CONFIG_SND_SOC_CS42L56 is not set
-# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS4265 is not set
-# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
-# CONFIG_SND_SOC_CS4271_SPI is not set
-# CONFIG_SND_SOC_CS42XX8_I2C is not set
-# CONFIG_SND_SOC_CS4349 is not set
-# CONFIG_SND_SOC_ES8328 is not set
-# CONFIG_SND_SOC_GTM601 is not set
-# CONFIG_SND_SOC_PCM1681 is not set
-# CONFIG_SND_SOC_PCM1792A is not set
-# CONFIG_SND_SOC_PCM512x_I2C is not set
-# CONFIG_SND_SOC_PCM512x_SPI is not set
-# CONFIG_SND_SOC_RT5631 is not set
-# CONFIG_SND_SOC_RT5677_SPI is not set
-CONFIG_SND_SOC_SGTL5000=m
-# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
-# CONFIG_SND_SOC_SPDIF is not set
-# CONFIG_SND_SOC_SSM2602_SPI is not set
-# CONFIG_SND_SOC_SSM2602_I2C is not set
-# CONFIG_SND_SOC_SSM4567 is not set
-# CONFIG_SND_SOC_STA32X is not set
-# CONFIG_SND_SOC_STA350 is not set
-# CONFIG_SND_SOC_STI_SAS is not set
-# CONFIG_SND_SOC_TAS2552 is not set
-# CONFIG_SND_SOC_TAS5086 is not set
-# CONFIG_SND_SOC_TAS571X is not set
-# CONFIG_SND_SOC_TFA9879 is not set
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC23_I2C=m
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
-CONFIG_SND_SOC_TLV320AIC31XX=m
-CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_TS3A227E=m
-CONFIG_SND_SOC_TWL4030=m
-# CONFIG_SND_SOC_WM8510 is not set
-# CONFIG_SND_SOC_WM8523 is not set
-# CONFIG_SND_SOC_WM8580 is not set
-# CONFIG_SND_SOC_WM8711 is not set
-# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
-# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
-# CONFIG_SND_SOC_WM8750 is not set
-# CONFIG_SND_SOC_WM8753 is not set
-# CONFIG_SND_SOC_WM8770 is not set
-# CONFIG_SND_SOC_WM8776 is not set
-# CONFIG_SND_SOC_WM8804_I2C is not set
-# CONFIG_SND_SOC_WM8804_SPI is not set
-# CONFIG_SND_SOC_WM8903 is not set
-# CONFIG_SND_SOC_WM8962 is not set
-# CONFIG_SND_SOC_WM8978 is not set
-CONFIG_SND_SOC_TPA6130A2=m
-CONFIG_SND_SIMPLE_CARD=m
-# CONFIG_SOUND_PRIME is not set
-
-#
-# HID support
-#
-CONFIG_HID=y
-CONFIG_HID_BATTERY_STRENGTH=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=y
-CONFIG_HID_GENERIC=y
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=m
-CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=m
-CONFIG_HID_APPLEIR=m
-CONFIG_HID_AUREAL=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_BETOP_FF=m
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
-CONFIG_HID_CORSAIR=m
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CP2112=m
-CONFIG_HID_CYPRESS=m
-CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
-CONFIG_HID_EMS_FF=m
-CONFIG_HID_ELECOM=m
-CONFIG_HID_ELO=m
-CONFIG_HID_EZKEY=m
-CONFIG_HID_GEMBIRD=m
-CONFIG_HID_GFRM=m
-CONFIG_HID_HOLTEK=m
-CONFIG_HOLTEK_FF=y
-CONFIG_HID_GT683R=m
-CONFIG_HID_KEYTOUCH=m
-CONFIG_HID_KYE=m
-CONFIG_HID_UCLOGIC=m
-CONFIG_HID_WALTOP=m
-CONFIG_HID_GYRATION=m
-CONFIG_HID_ICADE=m
-CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=m
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LENOVO=m
-CONFIG_HID_LOGITECH=y
-CONFIG_HID_LOGITECH_DJ=y
-CONFIG_HID_LOGITECH_HIDPP=y
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
-CONFIG_HID_MULTITOUCH=m
-CONFIG_HID_NTRIG=m
-CONFIG_HID_ORTEK=m
-CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
-CONFIG_HID_PENMOUNT=m
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PICOLCD_CIR=y
-CONFIG_HID_PLANTRONICS=m
-CONFIG_HID_PRIMAX=m
-CONFIG_HID_ROCCAT=m
-CONFIG_HID_SAITEK=m
-CONFIG_HID_SAMSUNG=m
-CONFIG_HID_SONY=m
-CONFIG_SONY_FF=y
-CONFIG_HID_SPEEDLINK=m
-CONFIG_HID_STEELSERIES=m
-CONFIG_HID_SUNPLUS=m
-CONFIG_HID_RMI=m
-CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
-CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
-CONFIG_HID_TIVO=m
-CONFIG_HID_TOPSEED=m
-CONFIG_HID_THINGM=m
-CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
-CONFIG_HID_WACOM=m
-CONFIG_HID_WIIMOTE=m
-CONFIG_HID_XINMO=m
-CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
-CONFIG_HID_ZYDACRON=m
-CONFIG_HID_SENSOR_HUB=m
-CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=y
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-
-#
-# I2C HID support
-#
-# CONFIG_I2C_HID is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-CONFIG_USB_DYNAMIC_MINORS=y
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_ULPI_BUS is not set
-CONFIG_USB_MON=m
-CONFIG_USB_WUSB=m
-CONFIG_USB_WUSB_CBAF=m
-# CONFIG_USB_WUSB_CBAF_DEBUG is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_XHCI_HCD=y
-CONFIG_USB_XHCI_PLATFORM=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_HCD_OMAP=y
-CONFIG_USB_EHCI_HCD_PLATFORM=y
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-# CONFIG_USB_FOTG210_HCD is not set
-# CONFIG_USB_MAX3421_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-CONFIG_USB_U132_HCD=m
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-CONFIG_USB_HWA_HCD=m
-# CONFIG_USB_HCD_BCMA is not set
-# CONFIG_USB_HCD_SSB is not set
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-CONFIG_USBIP_CORE=m
-CONFIG_USBIP_VHCI_HCD=m
-CONFIG_USBIP_HOST=m
-# CONFIG_USBIP_DEBUG is not set
-CONFIG_USB_MUSB_HDRC=y
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
-
-#
-# Platform Glue Layer
-#
-# CONFIG_USB_MUSB_TUSB6010 is not set
-# CONFIG_USB_MUSB_OMAP2PLUS is not set
-# CONFIG_USB_MUSB_AM35X is not set
-CONFIG_USB_MUSB_DSPS=y
-CONFIG_USB_MUSB_AM335X_CHILD=y
-
-#
-# MUSB DMA mode
-#
-CONFIG_MUSB_PIO_ONLY=y
-CONFIG_USB_DWC3=y
-# CONFIG_USB_DWC3_HOST is not set
-# CONFIG_USB_DWC3_GADGET is not set
-CONFIG_USB_DWC3_DUAL_ROLE=y
-
-#
-# Platform Glue Driver Support
-#
-CONFIG_USB_DWC3_OMAP=m
-CONFIG_USB_DWC2=m
-# CONFIG_USB_DWC2_HOST is not set
-
-#
-# Gadget/Dual-role mode requires USB Gadget support to be enabled
-#
-# CONFIG_USB_DWC2_PERIPHERAL is not set
-CONFIG_USB_DWC2_DUAL_ROLE=y
-# CONFIG_USB_DWC2_DEBUG is not set
-# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
-CONFIG_USB_CHIPIDEA=y
-CONFIG_USB_CHIPIDEA_OF=y
-CONFIG_USB_CHIPIDEA_UDC=y
-CONFIG_USB_CHIPIDEA_HOST=y
-# CONFIG_USB_CHIPIDEA_DEBUG is not set
-# CONFIG_USB_ISP1760 is not set
-
-#
-# USB port drivers
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_SIMPLE=m
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_F81232=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_METRO=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MXUPORT=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_XSENS_MT=m
-CONFIG_USB_SERIAL_WISHBONE=m
-CONFIG_USB_SERIAL_SSU100=m
-CONFIG_USB_SERIAL_QT2=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-CONFIG_USB_RIO500=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-CONFIG_USB_LD=m
-CONFIG_USB_TRANCEVIBRATOR=m
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-CONFIG_USB_EHSET_TEST_FIXTURE=m
-CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_YUREX=m
-CONFIG_USB_EZUSB_FX2=m
-CONFIG_USB_HSIC_USB3503=m
-# CONFIG_USB_LINK_LAYER_TEST is not set
-CONFIG_USB_CHAOSKEY=m
-# CONFIG_USB_ATM is not set
-
-#
-# USB Physical Layer drivers
-#
-CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=y
-CONFIG_AM335X_CONTROL_USB=y
-CONFIG_AM335X_PHY_USB=y
-CONFIG_USB_GPIO_VBUS=y
-# CONFIG_USB_ISP1301 is not set
-CONFIG_USB_ULPI=y
-CONFIG_USB_ULPI_VIEWPORT=y
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=500
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-
-#
-# USB Peripheral Controller
-#
-# CONFIG_USB_FUSB300 is not set
-# CONFIG_USB_FOTG210_UDC is not set
-# CONFIG_USB_GR_UDC is not set
-# CONFIG_USB_R8A66597 is not set
-# CONFIG_USB_PXA27X is not set
-# CONFIG_USB_MV_UDC is not set
-# CONFIG_USB_MV_U3D is not set
-# CONFIG_USB_M66592 is not set
-# CONFIG_USB_BDC_UDC is not set
-# CONFIG_USB_NET2272 is not set
-# CONFIG_USB_GADGET_XILINX is not set
-# CONFIG_USB_DUMMY_HCD is not set
-CONFIG_USB_LIBCOMPOSITE=m
-CONFIG_USB_F_ACM=m
-CONFIG_USB_F_SS_LB=m
-CONFIG_USB_U_SERIAL=m
-CONFIG_USB_U_ETHER=m
-CONFIG_USB_F_SERIAL=m
-CONFIG_USB_F_OBEX=m
-CONFIG_USB_F_NCM=m
-CONFIG_USB_F_ECM=m
-CONFIG_USB_F_PHONET=m
-CONFIG_USB_F_SUBSET=m
-CONFIG_USB_F_RNDIS=m
-CONFIG_USB_F_MASS_STORAGE=m
-CONFIG_USB_F_FS=m
-CONFIG_USB_F_UAC2=m
-CONFIG_USB_F_MIDI=m
-CONFIG_USB_F_HID=m
-CONFIG_USB_F_PRINTER=m
-CONFIG_USB_CONFIGFS=m
-CONFIG_USB_CONFIGFS_SERIAL=y
-CONFIG_USB_CONFIGFS_ACM=y
-CONFIG_USB_CONFIGFS_OBEX=y
-CONFIG_USB_CONFIGFS_NCM=y
-CONFIG_USB_CONFIGFS_ECM=y
-CONFIG_USB_CONFIGFS_ECM_SUBSET=y
-CONFIG_USB_CONFIGFS_RNDIS=y
-# CONFIG_USB_CONFIGFS_EEM is not set
-# CONFIG_USB_CONFIGFS_PHONET is not set
-# CONFIG_USB_CONFIGFS_MASS_STORAGE is not set
-# CONFIG_USB_CONFIGFS_F_LB_SS is not set
-# CONFIG_USB_CONFIGFS_F_FS is not set
-# CONFIG_USB_CONFIGFS_F_UAC1 is not set
-# CONFIG_USB_CONFIGFS_F_UAC2 is not set
-# CONFIG_USB_CONFIGFS_F_MIDI is not set
-# CONFIG_USB_CONFIGFS_F_HID is not set
-# CONFIG_USB_CONFIGFS_F_UVC is not set
-# CONFIG_USB_CONFIGFS_F_PRINTER is not set
-CONFIG_USB_ZERO=m
-CONFIG_USB_AUDIO=m
-# CONFIG_GADGET_UAC1 is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM is not set
-CONFIG_USB_G_NCM=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_FUNCTIONFS_ETH=y
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-CONFIG_USB_FUNCTIONFS_GENERIC=y
-CONFIG_USB_MASS_STORAGE=m
-# CONFIG_USB_GADGET_TARGET is not set
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_MIDI_GADGET=m
-CONFIG_USB_G_PRINTER=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_USB_G_NOKIA=m
-CONFIG_USB_G_ACM_MS=m
-CONFIG_USB_G_MULTI=m
-CONFIG_USB_G_MULTI_RNDIS=y
-# CONFIG_USB_G_MULTI_CDC is not set
-CONFIG_USB_G_HID=m
-CONFIG_USB_G_DBGP=m
-# CONFIG_USB_G_DBGP_PRINTK is not set
-CONFIG_USB_G_DBGP_SERIAL=y
-# CONFIG_USB_G_WEBCAM is not set
-CONFIG_USB_LED_TRIG=y
-CONFIG_UWB=m
-CONFIG_UWB_HWA=m
-CONFIG_UWB_I1480U=m
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_PLTFM=y
-# CONFIG_MMC_SDHCI_OF_ARASAN is not set
-# CONFIG_MMC_SDHCI_OF_AT91 is not set
-# CONFIG_MMC_SDHCI_F_SDH30 is not set
-CONFIG_MMC_OMAP=y
-CONFIG_MMC_OMAP_HS=y
-CONFIG_MMC_DW=y
-CONFIG_MMC_DW_PLTFM=y
-CONFIG_MMC_DW_EXYNOS=m
-# CONFIG_MMC_DW_K3 is not set
-CONFIG_MMC_VUB300=m
-CONFIG_MMC_USHC=m
-# CONFIG_MMC_USDHI6ROL0 is not set
-CONFIG_MMC_REALTEK_USB=m
-# CONFIG_MMC_MTK is not set
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-# CONFIG_MS_BLOCK is not set
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_REALTEK_USB=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-# CONFIG_LEDS_CLASS_FLASH is not set
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_BCM6328 is not set
-# CONFIG_LEDS_BCM6358 is not set
-CONFIG_LEDS_LM3530=m
-CONFIG_LEDS_LM3642=m
-CONFIG_LEDS_PCA9532=m
-CONFIG_LEDS_PCA9532_GPIO=y
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_LP55XX_COMMON=m
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_LP5562=m
-CONFIG_LEDS_LP8501=m
-CONFIG_LEDS_LP8860=m
-CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_PCA963X=m
-CONFIG_LEDS_DA9052=m
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_REGULATOR=m
-CONFIG_LEDS_BD2802=m
-CONFIG_LEDS_LT3593=m
-CONFIG_LEDS_MC13783=m
-CONFIG_LEDS_TCA6507=m
-CONFIG_LEDS_TLC591XX=m
-CONFIG_LEDS_LM355x=m
-
-#
-# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
-#
-# CONFIG_LEDS_BLINKM is not set
-# CONFIG_LEDS_SYSCON is not set
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_ONESHOT=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_BACKLIGHT=y
-CONFIG_LEDS_TRIGGER_GPIO=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_LEDS_TRIGGER_TRANSIENT=m
-CONFIG_LEDS_TRIGGER_CAMERA=m
-CONFIG_ACCESSIBILITY=y
-CONFIG_A11Y_BRAILLE_CONSOLE=y
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-# CONFIG_EDAC is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_ABB5ZES3 is not set
-# CONFIG_RTC_DRV_ABX80X is not set
-CONFIG_RTC_DRV_AS3722=y
-CONFIG_RTC_DRV_DS1307=y
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1374_WDT=y
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_DS3232=m
-CONFIG_RTC_DRV_HYM8563=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_ISL12057=y
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PALMAS=y
-CONFIG_RTC_DRV_PCF2127=m
-CONFIG_RTC_DRV_PCF8523=y
-CONFIG_RTC_DRV_PCF8563=y
-CONFIG_RTC_DRV_PCF85063=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_TWL4030=y
-CONFIG_RTC_DRV_TPS65910=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-CONFIG_RTC_DRV_RV3029C2=m
-CONFIG_RTC_DRV_RV8803=m
-CONFIG_RTC_DRV_S5M=y
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1343=m
-CONFIG_RTC_DRV_DS1347=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_DS3234=m
-CONFIG_RTC_DRV_PCF2123=m
-CONFIG_RTC_DRV_RX4581=m
-CONFIG_RTC_DRV_MCP795=m
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=m
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1685_FAMILY=m
-CONFIG_RTC_DRV_DS1685=y
-# CONFIG_RTC_DRV_DS1689 is not set
-# CONFIG_RTC_DRV_DS17285 is not set
-# CONFIG_RTC_DRV_DS17485 is not set
-# CONFIG_RTC_DRV_DS17885 is not set
-# CONFIG_RTC_DS1685_PROC_REGS is not set
-# CONFIG_RTC_DS1685_SYSFS_REGS is not set
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_DS2404=m
-CONFIG_RTC_DRV_DA9052=y
-CONFIG_RTC_DRV_DA9055=m
-CONFIG_RTC_DRV_DA9063=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_MSM6242=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_RP5C01=m
-CONFIG_RTC_DRV_V3020=m
-# CONFIG_RTC_DRV_ZYNQMP is not set
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_OMAP=y
-CONFIG_RTC_DRV_MC13XXX=m
-CONFIG_RTC_DRV_SNVS=y
-
-#
-# HID Sensor RTC drivers
-#
-CONFIG_RTC_DRV_HID_SENSOR_TIME=m
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=y
-CONFIG_DMA_OF=y
-CONFIG_DMA_OMAP=y
-CONFIG_FSL_EDMA=y
-# CONFIG_INTEL_IDMA64 is not set
-# CONFIG_NBPFAXI_DMA is not set
-CONFIG_TI_CPPI41=y
-CONFIG_TI_DMA_CROSSBAR=y
-CONFIG_TI_EDMA=y
-CONFIG_DW_DMAC_CORE=y
-CONFIG_DW_DMAC=y
-
-#
-# DMA Clients
-#
-CONFIG_ASYNC_TX_DMA=y
-# CONFIG_DMATEST is not set
-# CONFIG_AUXDISPLAY is not set
-CONFIG_UIO=m
-CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_DMEM_GENIRQ=m
-CONFIG_UIO_PRUSS=m
-# CONFIG_VFIO is not set
-CONFIG_VIRT_DRIVERS=y
-CONFIG_VIRTIO=y
-
-#
-# Virtio drivers
-#
-CONFIG_VIRTIO_BALLOON=m
-CONFIG_VIRTIO_INPUT=m
-CONFIG_VIRTIO_MMIO=m
-# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-CONFIG_STAGING=y
-# CONFIG_PRISM2_USB is not set
-# CONFIG_COMEDI is not set
-CONFIG_RTLLIB=m
-CONFIG_RTLLIB_CRYPTO_CCMP=m
-CONFIG_RTLLIB_CRYPTO_TKIP=m
-CONFIG_RTLLIB_CRYPTO_WEP=m
-CONFIG_R8712U=m
-CONFIG_R8188EU=m
-CONFIG_88EU_AP_MODE=y
-# CONFIG_R8723AU is not set
-# CONFIG_VT6656 is not set
-
-#
-# IIO staging drivers
-#
-
-#
-# Accelerometers
-#
-CONFIG_ADIS16201=m
-CONFIG_ADIS16203=m
-CONFIG_ADIS16209=m
-CONFIG_ADIS16240=m
-CONFIG_LIS3L02DQ=m
-CONFIG_SCA3000=m
-
-#
-# Analog to digital converters
-#
-CONFIG_AD7606=m
-# CONFIG_AD7606_IFACE_PARALLEL is not set
-CONFIG_AD7606_IFACE_SPI=m
-CONFIG_AD7780=m
-CONFIG_AD7816=m
-CONFIG_AD7192=m
-CONFIG_AD7280=m
-
-#
-# Analog digital bi-direction converters
-#
-CONFIG_ADT7316=m
-CONFIG_ADT7316_SPI=m
-CONFIG_ADT7316_I2C=m
-
-#
-# Capacitance to digital converters
-#
-CONFIG_AD7150=m
-CONFIG_AD7152=m
-CONFIG_AD7746=m
-
-#
-# Direct Digital Synthesis
-#
-CONFIG_AD9832=m
-CONFIG_AD9834=m
-
-#
-# Digital gyroscope sensors
-#
-CONFIG_ADIS16060=m
-
-#
-# Network Analyzer, Impedance Converters
-#
-CONFIG_AD5933=m
-
-#
-# Light sensors
-#
-CONFIG_SENSORS_ISL29018=m
-CONFIG_SENSORS_ISL29028=m
-CONFIG_TSL2583=m
-CONFIG_TSL2x7x=m
-
-#
-# Active energy metering IC
-#
-CONFIG_ADE7753=m
-CONFIG_ADE7754=m
-CONFIG_ADE7758=m
-CONFIG_ADE7759=m
-CONFIG_ADE7854=m
-CONFIG_ADE7854_I2C=m
-CONFIG_ADE7854_SPI=m
-
-#
-# Resolver to digital converters
-#
-CONFIG_AD2S90=m
-CONFIG_AD2S1200=m
-CONFIG_AD2S1210=m
-
-#
-# Triggers - standalone
-#
-
-#
-# Speakup console speech
-#
-CONFIG_SPEAKUP=m
-CONFIG_SPEAKUP_SYNTH_ACNTSA=m
-CONFIG_SPEAKUP_SYNTH_APOLLO=m
-CONFIG_SPEAKUP_SYNTH_AUDPTR=m
-CONFIG_SPEAKUP_SYNTH_BNS=m
-CONFIG_SPEAKUP_SYNTH_DECTLK=m
-CONFIG_SPEAKUP_SYNTH_DECEXT=m
-CONFIG_SPEAKUP_SYNTH_LTLK=m
-CONFIG_SPEAKUP_SYNTH_SOFT=m
-CONFIG_SPEAKUP_SYNTH_SPKOUT=m
-CONFIG_SPEAKUP_SYNTH_TXPRT=m
-CONFIG_SPEAKUP_SYNTH_DUMMY=m
-# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
-# CONFIG_STAGING_MEDIA is not set
-
-#
-# Android
-#
-CONFIG_ASHMEM=y
-CONFIG_ANDROID_TIMED_OUTPUT=y
-CONFIG_ANDROID_TIMED_GPIO=m
-# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
-CONFIG_SYNC=y
-# CONFIG_SW_SYNC is not set
-CONFIG_ION=y
-# CONFIG_ION_TEST is not set
-# CONFIG_ION_DUMMY is not set
-# CONFIG_STAGING_BOARD is not set
-# CONFIG_WIMAX_GDM72XX is not set
-# CONFIG_LTE_GDM724X is not set
-# CONFIG_MTD_SPINAND_MT29F is not set
-# CONFIG_LUSTRE_FS is not set
-# CONFIG_DGAP is not set
-# CONFIG_GS_FPGABOOT is not set
-# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
-CONFIG_FB_TFT=m
-CONFIG_FB_TFT_AGM1264K_FL=m
-CONFIG_FB_TFT_BD663474=m
-CONFIG_FB_TFT_HX8340BN=m
-CONFIG_FB_TFT_HX8347D=m
-CONFIG_FB_TFT_HX8353D=m
-CONFIG_FB_TFT_HX8357D=m
-CONFIG_FB_TFT_ILI9163=m
-CONFIG_FB_TFT_ILI9320=m
-CONFIG_FB_TFT_ILI9325=m
-CONFIG_FB_TFT_ILI9340=m
-CONFIG_FB_TFT_ILI9341=m
-CONFIG_FB_TFT_ILI9481=m
-CONFIG_FB_TFT_ILI9486=m
-CONFIG_FB_TFT_PCD8544=m
-CONFIG_FB_TFT_RA8875=m
-CONFIG_FB_TFT_S6D02A1=m
-CONFIG_FB_TFT_S6D1121=m
-CONFIG_FB_TFT_SSD1289=m
-CONFIG_FB_TFT_SSD1305=m
-CONFIG_FB_TFT_SSD1306=m
-CONFIG_FB_TFT_SSD1325=m
-CONFIG_FB_TFT_SSD1331=m
-CONFIG_FB_TFT_SSD1351=m
-CONFIG_FB_TFT_ST7735R=m
-CONFIG_FB_TFT_ST7789V=m
-CONFIG_FB_TFT_TINYLCD=m
-CONFIG_FB_TFT_TLS8204=m
-CONFIG_FB_TFT_UC1611=m
-CONFIG_FB_TFT_UC1701=m
-CONFIG_FB_TFT_UPD161704=m
-CONFIG_FB_TFT_WATTEROTT=m
-CONFIG_FB_FLEX=m
-CONFIG_FB_TFT_FBTFT_DEVICE=m
-# CONFIG_WILC1000_DRIVER is not set
-# CONFIG_MOST is not set
-# CONFIG_CHROME_PLATFORMS is not set
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_COMMON_CLK=y
-
-#
-# Common Clock Framework
-#
-# CONFIG_COMMON_CLK_SI5351 is not set
-# CONFIG_COMMON_CLK_SI514 is not set
-# CONFIG_COMMON_CLK_SI570 is not set
-# CONFIG_COMMON_CLK_CDCE925 is not set
-CONFIG_COMMON_CLK_S2MPS11=m
-CONFIG_CLK_TWL6040=y
-# CONFIG_CLK_QORIQ is not set
-CONFIG_COMMON_CLK_PALMAS=y
-# CONFIG_COMMON_CLK_PWM is not set
-# CONFIG_COMMON_CLK_PXA is not set
-# CONFIG_COMMON_CLK_CDCE706 is not set
-CONFIG_HWSPINLOCK=y
-
-#
-# Hardware Spinlock drivers
-#
-CONFIG_HWSPINLOCK_OMAP=y
-
-#
-# Clock Source drivers
-#
-CONFIG_CLKSRC_OF=y
-CONFIG_CLKSRC_PROBE=y
-CONFIG_CLKSRC_MMIO=y
-CONFIG_CLKSRC_TI_32K=y
-CONFIG_ARM_ARCH_TIMER=y
-CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
-CONFIG_ARM_TIMER_SP804=y
-# CONFIG_ATMEL_PIT is not set
-# CONFIG_SH_TIMER_CMT is not set
-# CONFIG_SH_TIMER_MTU2 is not set
-# CONFIG_SH_TIMER_TMU is not set
-# CONFIG_EM_TIMER_STI is not set
-CONFIG_MAILBOX=y
-CONFIG_OMAP2PLUS_MBOX=y
-CONFIG_OMAP_MBOX_KFIFO_SIZE=256
-# CONFIG_ALTERA_MBOX is not set
-# CONFIG_MAILBOX_TEST is not set
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-CONFIG_IOMMU_IO_PGTABLE=y
-CONFIG_IOMMU_IO_PGTABLE_LPAE=y
-# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
-CONFIG_OF_IOMMU=y
-CONFIG_OMAP_IOMMU=y
-# CONFIG_OMAP_IOMMU_DEBUG is not set
-CONFIG_ARM_SMMU=y
-
-#
-# Remoteproc drivers
-#
-CONFIG_REMOTEPROC=y
-# CONFIG_STE_MODEM_RPROC is not set
-CONFIG_WKUP_M3_RPROC=y
-
-#
-# Rpmsg drivers
-#
-
-#
-# SOC (System On Chip) specific Drivers
-#
-# CONFIG_SOC_BRCMSTB is not set
-# CONFIG_SUNXI_SRAM is not set
-CONFIG_SOC_TI=y
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
-CONFIG_DEVFREQ_GOV_PERFORMANCE=y
-CONFIG_DEVFREQ_GOV_POWERSAVE=y
-CONFIG_DEVFREQ_GOV_USERSPACE=y
-
-#
-# DEVFREQ Drivers
-#
-# CONFIG_PM_DEVFREQ_EVENT is not set
-CONFIG_EXTCON=y
-
-#
-# Extcon Device Drivers
-#
-# CONFIG_EXTCON_ADC_JACK is not set
-# CONFIG_EXTCON_AXP288 is not set
-CONFIG_EXTCON_GPIO=y
-CONFIG_EXTCON_PALMAS=y
-# CONFIG_EXTCON_RT8973A is not set
-# CONFIG_EXTCON_SM5502 is not set
-CONFIG_EXTCON_USB_GPIO=y
-CONFIG_MEMORY=y
-CONFIG_TI_EMIF=y
-CONFIG_OMAP_GPMC=y
-# CONFIG_OMAP_GPMC_DEBUG is not set
-CONFIG_IIO=m
-CONFIG_IIO_BUFFER=y
-CONFIG_IIO_BUFFER_CB=m
-CONFIG_IIO_KFIFO_BUF=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
-CONFIG_IIO_CONFIGFS=m
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-# CONFIG_IIO_SW_TRIGGER is not set
-CONFIG_IIO_TRIGGERED_EVENT=m
-
-#
-# Accelerometers
-#
-CONFIG_BMA180=m
-CONFIG_BMC150_ACCEL=m
-CONFIG_BMC150_ACCEL_I2C=m
-CONFIG_BMC150_ACCEL_SPI=m
-CONFIG_HID_SENSOR_ACCEL_3D=m
-CONFIG_IIO_ST_ACCEL_3AXIS=m
-CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
-CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
-CONFIG_KXSD9=m
-CONFIG_KXCJK1013=m
-CONFIG_MMA7455=m
-CONFIG_MMA7455_I2C=m
-CONFIG_MMA7455_SPI=m
-CONFIG_MMA8452=m
-CONFIG_MMA9551_CORE=m
-CONFIG_MMA9551=m
-CONFIG_MMA9553=m
-CONFIG_MXC4005=m
-CONFIG_MXC6255=m
-CONFIG_STK8312=m
-CONFIG_STK8BA50=m
-
-#
-# Analog to digital converters
-#
-CONFIG_AD_SIGMA_DELTA=m
-CONFIG_AD7266=m
-CONFIG_AD7291=m
-CONFIG_AD7298=m
-CONFIG_AD7476=m
-CONFIG_AD7791=m
-CONFIG_AD7793=m
-CONFIG_AD7887=m
-CONFIG_AD7923=m
-CONFIG_AD799X=m
-CONFIG_AXP288_ADC=m
-CONFIG_CC10001_ADC=m
-CONFIG_HI8435=m
-CONFIG_INA2XX_ADC=m
-CONFIG_MAX1027=m
-CONFIG_MAX1363=m
-CONFIG_MCP320X=m
-CONFIG_MCP3422=m
-CONFIG_NAU7802=m
-CONFIG_PALMAS_GPADC=m
-CONFIG_TI_ADC081C=m
-CONFIG_TI_ADC0832=m
-CONFIG_TI_ADC128S052=m
-CONFIG_TI_ADS1015=m
-CONFIG_TI_ADS8688=m
-CONFIG_TI_AM335X_ADC=m
-CONFIG_TWL4030_MADC=m
-CONFIG_TWL6030_GPADC=m
-CONFIG_VF610_ADC=m
-CONFIG_VIPERBOARD_ADC=m
-
-#
-# Amplifiers
-#
-CONFIG_AD8366=m
-
-#
-# Chemical Sensors
-#
-CONFIG_ATLAS_PH_SENSOR=m
-CONFIG_IAQCORE=m
-CONFIG_VZ89X=m
-
-#
-# Hid Sensor IIO Common
-#
-CONFIG_HID_SENSOR_IIO_COMMON=m
-CONFIG_HID_SENSOR_IIO_TRIGGER=m
-CONFIG_IIO_MS_SENSORS_I2C=m
-
-#
-# SSP Sensor Common
-#
-# CONFIG_IIO_SSP_SENSORHUB is not set
-CONFIG_IIO_ST_SENSORS_I2C=m
-CONFIG_IIO_ST_SENSORS_SPI=m
-CONFIG_IIO_ST_SENSORS_CORE=m
-
-#
-# Digital to analog converters
-#
-CONFIG_AD5064=m
-CONFIG_AD5360=m
-CONFIG_AD5380=m
-CONFIG_AD5421=m
-CONFIG_AD5446=m
-CONFIG_AD5449=m
-# CONFIG_AD5592R is not set
-# CONFIG_AD5593R is not set
-CONFIG_AD5504=m
-CONFIG_AD5624R_SPI=m
-CONFIG_AD5686=m
-CONFIG_AD5755=m
-CONFIG_AD5761=m
-CONFIG_AD5764=m
-CONFIG_AD5791=m
-CONFIG_AD7303=m
-CONFIG_M62332=m
-CONFIG_MAX517=m
-CONFIG_MAX5821=m
-CONFIG_MCP4725=m
-CONFIG_MCP4922=m
-# CONFIG_VF610_DAC is not set
-
-#
-# IIO dummy driver
-#
-# CONFIG_IIO_SIMPLE_DUMMY is not set
-
-#
-# Frequency Synthesizers DDS/PLL
-#
-
-#
-# Clock Generator/Distribution
-#
-CONFIG_AD9523=m
-
-#
-# Phase-Locked Loop (PLL) frequency synthesizers
-#
-CONFIG_ADF4350=m
-
-#
-# Digital gyroscope sensors
-#
-CONFIG_ADIS16080=m
-CONFIG_ADIS16130=m
-CONFIG_ADIS16136=m
-CONFIG_ADIS16260=m
-CONFIG_ADXRS450=m
-CONFIG_BMG160=m
-CONFIG_BMG160_I2C=m
-CONFIG_BMG160_SPI=m
-CONFIG_HID_SENSOR_GYRO_3D=m
-CONFIG_IIO_ST_GYRO_3AXIS=m
-CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
-CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
-CONFIG_ITG3200=m
-
-#
-# Health Sensors
-#
-
-#
-# Heart Rate Monitors
-#
-CONFIG_AFE4403=m
-CONFIG_AFE4404=m
-CONFIG_MAX30100=m
-
-#
-# Humidity sensors
-#
-# CONFIG_AM2315 is not set
-CONFIG_DHT11=m
-CONFIG_HDC100X=m
-CONFIG_HTU21=m
-CONFIG_SI7005=m
-CONFIG_SI7020=m
-
-#
-# Inertial measurement units
-#
-CONFIG_ADIS16400=m
-CONFIG_ADIS16480=m
-# CONFIG_BMI160_I2C is not set
-# CONFIG_BMI160_SPI is not set
-CONFIG_KMX61=m
-CONFIG_INV_MPU6050_IIO=m
-CONFIG_INV_MPU6050_I2C=m
-CONFIG_INV_MPU6050_SPI=m
-CONFIG_IIO_ADIS_LIB=m
-CONFIG_IIO_ADIS_LIB_BUFFER=y
-
-#
-# Light sensors
-#
-CONFIG_ADJD_S311=m
-CONFIG_AL3320A=m
-CONFIG_APDS9300=m
-CONFIG_APDS9960=m
-CONFIG_BH1750=m
-# CONFIG_BH1780 is not set
-CONFIG_CM32181=m
-CONFIG_CM3232=m
-CONFIG_CM3323=m
-CONFIG_CM36651=m
-CONFIG_GP2AP020A00F=m
-CONFIG_ISL29125=m
-CONFIG_HID_SENSOR_ALS=m
-CONFIG_HID_SENSOR_PROX=m
-CONFIG_JSA1212=m
-CONFIG_RPR0521=m
-CONFIG_LTR501=m
-# CONFIG_MAX44000 is not set
-CONFIG_OPT3001=m
-CONFIG_PA12203001=m
-CONFIG_STK3310=m
-CONFIG_TCS3414=m
-CONFIG_TCS3472=m
-CONFIG_SENSORS_TSL2563=m
-CONFIG_TSL4531=m
-CONFIG_US5182D=m
-CONFIG_VCNL4000=m
-# CONFIG_VEML6070 is not set
-
-#
-# Magnetometer sensors
-#
-CONFIG_AK8975=m
-CONFIG_AK09911=m
-# CONFIG_BMC150_MAGN_I2C is not set
-# CONFIG_BMC150_MAGN_SPI is not set
-CONFIG_MAG3110=m
-CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
-CONFIG_MMC35240=m
-CONFIG_IIO_ST_MAGN_3AXIS=m
-CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
-CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
-CONFIG_SENSORS_HMC5843=m
-CONFIG_SENSORS_HMC5843_I2C=m
-CONFIG_SENSORS_HMC5843_SPI=m
-
-#
-# Inclinometer sensors
-#
-CONFIG_HID_SENSOR_INCLINOMETER_3D=m
-CONFIG_HID_SENSOR_DEVICE_ROTATION=m
-
-#
-# Triggers - standalone
-#
-CONFIG_IIO_INTERRUPT_TRIGGER=m
-CONFIG_IIO_SYSFS_TRIGGER=m
-
-#
-# Digital potentiometers
-#
-# CONFIG_DS1803 is not set
-# CONFIG_MCP4131 is not set
-CONFIG_MCP4531=m
-CONFIG_TPL0102=m
-
-#
-# Pressure sensors
-#
-CONFIG_BMP280=m
-CONFIG_HID_SENSOR_PRESS=m
-# CONFIG_HP03 is not set
-CONFIG_MPL115=m
-CONFIG_MPL115_I2C=m
-CONFIG_MPL115_SPI=m
-CONFIG_MPL3115=m
-CONFIG_MS5611=m
-CONFIG_MS5611_I2C=m
-CONFIG_MS5611_SPI=m
-CONFIG_MS5637=m
-CONFIG_IIO_ST_PRESS=m
-CONFIG_IIO_ST_PRESS_I2C=m
-CONFIG_IIO_ST_PRESS_SPI=m
-CONFIG_T5403=m
-# CONFIG_HP206C is not set
-
-#
-# Lightning sensors
-#
-CONFIG_AS3935=m
-
-#
-# Proximity sensors
-#
-CONFIG_LIDAR_LITE_V2=m
-CONFIG_SX9500=m
-
-#
-# Temperature sensors
-#
-CONFIG_MLX90614=m
-CONFIG_TMP006=m
-CONFIG_TSYS01=m
-CONFIG_TSYS02D=m
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-# CONFIG_PWM_FSL_FTM is not set
-CONFIG_PWM_OMAP_DMTIMER=m
-CONFIG_PWM_PCA9685=m
-CONFIG_PWM_TIECAP=m
-CONFIG_PWM_TIEHRPWM=m
-CONFIG_PWM_TIPWMSS=y
-CONFIG_PWM_TWL=m
-CONFIG_PWM_TWL_LED=m
-CONFIG_IRQCHIP=y
-CONFIG_OMAP_IRQCHIP=y
-# CONFIG_IPACK_BUS is not set
-# CONFIG_RESET_CONTROLLER is not set
-# CONFIG_FMC is not set
-
-#
-# PHY Subsystem
-#
-CONFIG_GENERIC_PHY=y
-# CONFIG_PHY_DM816X_USB is not set
-# CONFIG_PHY_PXA_28NM_HSIC is not set
-# CONFIG_PHY_PXA_28NM_USB2 is not set
-CONFIG_OMAP_CONTROL_PHY=y
-CONFIG_OMAP_USB2=y
-CONFIG_TI_PIPE3=m
-# CONFIG_BCM_KONA_USB2_PHY is not set
-CONFIG_PHY_SAMSUNG_USB2=m
-# CONFIG_PHY_EXYNOS4210_USB2 is not set
-# CONFIG_PHY_EXYNOS4X12_USB2 is not set
-# CONFIG_PHY_EXYNOS5250_USB2 is not set
-# CONFIG_POWERCAP is not set
-# CONFIG_MCB is not set
-
-#
-# Performance monitor support
-#
-CONFIG_ARM_PMU=y
-CONFIG_RAS=y
-
-#
-# Android
-#
-CONFIG_ANDROID=y
-CONFIG_ANDROID_BINDER_IPC=y
-CONFIG_ANDROID_BINDER_IPC_32BIT=y
-CONFIG_NVMEM=y
-# CONFIG_STM is not set
-# CONFIG_STM_DUMMY is not set
-# CONFIG_STM_SOURCE_CONSOLE is not set
-# CONFIG_INTEL_TH is not set
-
-#
-# FPGA Configuration Support
-#
-# CONFIG_FPGA is not set
-
-#
-# Firmware Drivers
-#
-CONFIG_ARM_PSCI_FW=y
-# CONFIG_FIRMWARE_MEMMAP is not set
-
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT2=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_EXT4_ENCRYPTION=y
-CONFIG_EXT4_FS_ENCRYPTION=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
-CONFIG_XFS_FS=y
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=y
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
-# CONFIG_BTRFS_DEBUG is not set
-# CONFIG_BTRFS_ASSERT is not set
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=y
-CONFIG_F2FS_STAT_FS=y
-CONFIG_F2FS_FS_XATTR=y
-CONFIG_F2FS_FS_POSIX_ACL=y
-CONFIG_F2FS_FS_SECURITY=y
-# CONFIG_F2FS_CHECK_FS is not set
-CONFIG_F2FS_FS_ENCRYPTION=y
-# CONFIG_F2FS_IO_TRACE is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-CONFIG_PRINT_QUOTA_WARNING=y
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=y
-CONFIG_CUSE=m
-CONFIG_OVERLAY_FS=y
-
-#
-# Caches
-#
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_PROC_CHILDREN=y
-CONFIG_KERNFS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_CONFIGFS_FS=y
-CONFIG_MISC_FILESYSTEMS=y
-CONFIG_ADFS_FS=m
-# CONFIG_ADFS_FS_RW is not set
-CONFIG_AFFS_FS=m
-CONFIG_ECRYPT_FS=m
-CONFIG_ECRYPT_FS_MESSAGING=y
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-# CONFIG_HFSPLUS_FS_POSIX_ACL is not set
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-CONFIG_UBIFS_FS=m
-CONFIG_UBIFS_FS_ADVANCED_COMPR=y
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-# CONFIG_UBIFS_ATIME_SUPPORT is not set
-CONFIG_LOGFS=m
-# CONFIG_CRAMFS is not set
-CONFIG_SQUASHFS=m
-CONFIG_SQUASHFS_FILE_CACHE=y
-# CONFIG_SQUASHFS_FILE_DIRECT is not set
-CONFIG_SQUASHFS_DECOMP_SINGLE=y
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-CONFIG_SQUASHFS_LZ4=y
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-# CONFIG_HPFS_FS is not set
-CONFIG_QNX4FS_FS=m
-CONFIG_QNX6FS_FS=m
-# CONFIG_QNX6FS_DEBUG is not set
-CONFIG_ROMFS_FS=m
-# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-CONFIG_ROMFS_BACKED_BY_BOTH=y
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_ROMFS_ON_MTD=y
-# CONFIG_PSTORE is not set
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_EXOFS_FS=m
-# CONFIG_EXOFS_DEBUG is not set
-CONFIG_AUFS_FS=m
-CONFIG_AUFS_BRANCH_MAX_127=y
-# CONFIG_AUFS_BRANCH_MAX_511 is not set
-# CONFIG_AUFS_BRANCH_MAX_1023 is not set
-# CONFIG_AUFS_BRANCH_MAX_32767 is not set
-CONFIG_AUFS_SBILIST=y
-# CONFIG_AUFS_HNOTIFY is not set
-CONFIG_AUFS_EXPORT=y
-CONFIG_AUFS_XATTR=y
-# CONFIG_AUFS_FHSM is not set
-# CONFIG_AUFS_RDU is not set
-# CONFIG_AUFS_SHWH is not set
-# CONFIG_AUFS_BR_RAMFS is not set
-# CONFIG_AUFS_BR_FUSE is not set
-CONFIG_AUFS_BR_HFSPLUS=y
-CONFIG_AUFS_BDEV_LOOP=y
-# CONFIG_AUFS_DEBUG is not set
-CONFIG_ORE=m
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V2=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_SWAP=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=y
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_OBJLAYOUT=m
-CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
-# CONFIG_NFS_V4_1_MIGRATION is not set
-CONFIG_NFS_V4_SECURITY_LABEL=y
-CONFIG_ROOT_NFS=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFS_DEBUG=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-# CONFIG_NFSD_PNFS is not set
-CONFIG_NFSD_V4_SECURITY_LABEL=y
-# CONFIG_NFSD_FAULT_INJECTION is not set
-CONFIG_GRACE_PERIOD=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_SUNRPC_SWAP=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_SUNRPC_DEBUG=y
-CONFIG_CEPH_FS=m
-CONFIG_CEPH_FSCACHE=y
-CONFIG_CEPH_FS_POSIX_ACL=y
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_UPCALL=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_ACL=y
-CONFIG_CIFS_DEBUG=y
-# CONFIG_CIFS_DEBUG2 is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_SMB2=y
-# CONFIG_CIFS_SMB311 is not set
-CONFIG_CIFS_FSCACHE=y
-CONFIG_NCP_FS=m
-CONFIG_NCPFS_PACKET_SIGNING=y
-CONFIG_NCPFS_IOCTL_LOCKING=y
-CONFIG_NCPFS_STRONG=y
-CONFIG_NCPFS_NFS_NS=y
-CONFIG_NCPFS_OS2_NS=y
-# CONFIG_NCPFS_SMALLDOS is not set
-CONFIG_NCPFS_NLS=y
-CONFIG_NCPFS_EXTRAS=y
-CONFIG_CODA_FS=m
-CONFIG_AFS_FS=m
-# CONFIG_AFS_DEBUG is not set
-CONFIG_AFS_FSCACHE=y
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-CONFIG_9P_FS_SECURITY=y
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-CONFIG_DLM_DEBUG=y
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-CONFIG_PRINTK_TIME=y
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-# CONFIG_BOOT_PRINTK_DELAY is not set
-CONFIG_DYNAMIC_DEBUG=y
-
-#
-# Compile-time checks and compiler options
-#
-CONFIG_DEBUG_INFO=y
-# CONFIG_DEBUG_INFO_REDUCED is not set
-CONFIG_DEBUG_INFO_SPLIT=y
-CONFIG_DEBUG_INFO_DWARF4=y
-# CONFIG_GDB_SCRIPTS is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-CONFIG_STRIP_ASM_SYMS=y
-# CONFIG_READABLE_ASM is not set
-CONFIG_UNUSED_SYMBOLS=y
-# CONFIG_PAGE_OWNER is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
-CONFIG_DEBUG_KERNEL=y
-
-#
-# Memory Debugging
-#
-# CONFIG_PAGE_EXTENSION is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_VM is not set
-CONFIG_DEBUG_MEMORY_INIT=y
-# CONFIG_DEBUG_HIGHMEM is not set
-# CONFIG_DEBUG_SHIRQ is not set
-
-#
-# Debug Lockups and Hangs
-#
-CONFIG_LOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHED_INFO=y
-CONFIG_SCHEDSTATS=y
-CONFIG_SCHED_STACK_END_CHECK=y
-# CONFIG_DEBUG_TIMEKEEPING is not set
-CONFIG_TIMER_STATS=y
-CONFIG_DEBUG_PREEMPT=y
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_LOCK_TORTURE_TEST is not set
-CONFIG_STACKTRACE=y
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-CONFIG_DEBUG_LIST=y
-# CONFIG_DEBUG_PI_LIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-
-#
-# RCU Debugging
-#
-# CONFIG_PROVE_RCU is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_TORTURE_TEST is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=21
-# CONFIG_RCU_TRACE is not set
-# CONFIG_RCU_EQS_DEBUG is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-CONFIG_NOTIFIER_ERROR_INJECTION=m
-CONFIG_PM_NOTIFIER_ERROR_INJECT=m
-# CONFIG_OF_RECONFIG_NOTIFIER_ERROR_INJECT is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACER_MAX_TRACE=y
-CONFIG_TRACE_CLOCK=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_TRACING=y
-CONFIG_GENERIC_TRACER=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-CONFIG_FUNCTION_TRACER=y
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_PREEMPT_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_MISSED_TIMER_OFFSETS_HIST is not set
-CONFIG_FTRACE_SYSCALLS=y
-CONFIG_TRACER_SNAPSHOT=y
-# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-CONFIG_STACK_TRACER=y
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_KPROBE_EVENT=y
-CONFIG_UPROBE_EVENT=y
-CONFIG_BPF_EVENTS=y
-CONFIG_PROBE_EVENTS=y
-CONFIG_DYNAMIC_FTRACE=y
-# CONFIG_FUNCTION_PROFILER is not set
-CONFIG_FTRACE_MCOUNT_RECORD=y
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_TRACEPOINT_BENCHMARK is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_RING_BUFFER_STARTUP_TEST is not set
-# CONFIG_TRACE_ENUM_MAP_FILE is not set
-CONFIG_TRACING_EVENTS_GPIO=y
-
-#
-# Runtime Testing
-#
-# CONFIG_LKDTM is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_RBTREE_TEST is not set
-# CONFIG_INTERVAL_TREE_TEST is not set
-# CONFIG_PERCPU_TEST is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_ASYNC_RAID6_TEST is not set
-# CONFIG_TEST_HEXDUMP is not set
-# CONFIG_TEST_STRING_HELPERS is not set
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_TEST_PRINTF is not set
-# CONFIG_TEST_RHASHTABLE is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_TEST_LKM is not set
-CONFIG_TEST_USER_COPY=m
-CONFIG_TEST_BPF=m
-CONFIG_TEST_FIRMWARE=m
-# CONFIG_TEST_UDELAY is not set
-# CONFIG_MEMTEST is not set
-CONFIG_TEST_STATIC_KEYS=m
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_KGDB=y
-CONFIG_KGDB_SERIAL_CONSOLE=y
-# CONFIG_KGDB_TESTS is not set
-CONFIG_KGDB_KDB=y
-CONFIG_KDB_DEFAULT_ENABLE=0x1
-CONFIG_KDB_KEYBOARD=y
-CONFIG_KDB_CONTINUE_CATASTROPHIC=0
-# CONFIG_ARM_PTDUMP is not set
-# CONFIG_STRICT_DEVMEM is not set
-CONFIG_ARM_UNWIND=y
-# CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_LL is not set
-CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
-# CONFIG_DEBUG_UART_8250 is not set
-CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
-# CONFIG_ARM_KPROBES_TEST is not set
-# CONFIG_PID_IN_CONTEXTIDR is not set
-# CONFIG_DEBUG_SET_MODULE_RONX is not set
-# CONFIG_CORESIGHT is not set
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-# CONFIG_PERSISTENT_KEYRINGS is not set
-# CONFIG_BIG_KEYS is not set
-# CONFIG_TRUSTED_KEYS is not set
-CONFIG_ENCRYPTED_KEYS=y
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_SECURITY_NETWORK_XFRM=y
-CONFIG_SECURITY_PATH=y
-CONFIG_LSM_MMAP_MIN_ADDR=32768
-CONFIG_SECURITY_SELINUX=y
-# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
-# CONFIG_SECURITY_SELINUX_DISABLE is not set
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
-# CONFIG_SECURITY_SMACK is not set
-CONFIG_SECURITY_TOMOYO=y
-CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
-CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
-# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
-CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
-CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
-CONFIG_SECURITY_APPARMOR_HASH=y
-CONFIG_SECURITY_YAMA=y
-CONFIG_INTEGRITY=y
-# CONFIG_INTEGRITY_SIGNATURE is not set
-CONFIG_INTEGRITY_AUDIT=y
-# CONFIG_IMA is not set
-# CONFIG_EVM is not set
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_DEFAULT_SECURITY=""
-CONFIG_XOR_BLOCKS=y
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=y
-CONFIG_CRYPTO_PCOMP=m
-CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_AKCIPHER2=y
-# CONFIG_CRYPTO_RSA is not set
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_USER is not set
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=y
-CONFIG_CRYPTO_NULL=y
-CONFIG_CRYPTO_NULL2=y
-CONFIG_CRYPTO_WORKQUEUE=y
-CONFIG_CRYPTO_CRYPTD=m
-# CONFIG_CRYPTO_MCRYPTD is not set
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-CONFIG_CRYPTO_ABLK_HELPER=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTR=y
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=y
-# CONFIG_CRYPTO_KEYWRAP is not set
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_CMAC=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32=m
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_POLY1305 is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST_COMMON=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
-# CONFIG_CRYPTO_CHACHA20 is not set
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_ZLIB=m
-CONFIG_CRYPTO_LZO=y
-# CONFIG_CRYPTO_842 is not set
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=y
-CONFIG_CRYPTO_DRBG_HMAC=y
-# CONFIG_CRYPTO_DRBG_HASH is not set
-# CONFIG_CRYPTO_DRBG_CTR is not set
-CONFIG_CRYPTO_DRBG=y
-CONFIG_CRYPTO_JITTERENTROPY=y
-CONFIG_CRYPTO_USER_API=m
-CONFIG_CRYPTO_USER_API_HASH=m
-CONFIG_CRYPTO_USER_API_SKCIPHER=m
-# CONFIG_CRYPTO_USER_API_RNG is not set
-# CONFIG_CRYPTO_USER_API_AEAD is not set
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_OMAP_SHAM=m
-CONFIG_CRYPTO_DEV_OMAP_AES=m
-CONFIG_CRYPTO_DEV_OMAP_DES=m
-# CONFIG_ASYMMETRIC_KEY_TYPE is not set
-
-#
-# Certificates for signature checking
-#
-# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
-CONFIG_ARM_CRYPTO=y
-CONFIG_CRYPTO_SHA1_ARM=m
-CONFIG_CRYPTO_SHA1_ARM_NEON=m
-# CONFIG_CRYPTO_SHA1_ARM_CE is not set
-# CONFIG_CRYPTO_SHA2_ARM_CE is not set
-CONFIG_CRYPTO_SHA256_ARM=m
-CONFIG_CRYPTO_SHA512_ARM=m
-CONFIG_CRYPTO_AES_ARM=m
-CONFIG_CRYPTO_AES_ARM_BS=m
-# CONFIG_CRYPTO_AES_ARM_CE is not set
-# CONFIG_CRYPTO_GHASH_ARM_CE is not set
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=y
-CONFIG_BITREVERSE=y
-CONFIG_HAVE_ARCH_BITREVERSE=y
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_IO=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-# CONFIG_CRC32_SELFTEST is not set
-CONFIG_CRC32_SLICEBY8=y
-# CONFIG_CRC32_SLICEBY4 is not set
-# CONFIG_CRC32_SARWATE is not set
-# CONFIG_CRC32_BIT is not set
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=y
-# CONFIG_CRC8 is not set
-CONFIG_AUDIT_GENERIC=y
-# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=m
-CONFIG_LZ4HC_COMPRESS=m
-CONFIG_LZ4_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-# CONFIG_XZ_DEC_X86 is not set
-# CONFIG_XZ_DEC_POWERPC is not set
-# CONFIG_XZ_DEC_IA64 is not set
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-# CONFIG_XZ_DEC_SPARC is not set
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_DECOMPRESS_LZ4=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_BCH=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAS_DMA=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
-CONFIG_LRU_CACHE=m
-CONFIG_CORDIC=m
-CONFIG_DDR=y
-CONFIG_LIBFDT=y
-CONFIG_OID_REGISTRY=y
-CONFIG_FONT_SUPPORT=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-# CONFIG_SG_SPLIT is not set
-CONFIG_ARCH_HAS_SG_CHAIN=y
-CONFIG_VIRTUALIZATION=y

+ 7955 - 0
board/GfA/Display001/SOPINEA64_defconfig

@@ -0,0 +1,7955 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm64 5.7.1 Kernel Configuration
+#
+
+#
+# Compiler: aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2020.08-git-00713-gdaf2101) 9.3.0
+#
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=90300
+CONFIG_LD_VERSION=233010000
+CONFIG_CLANG_VERSION=0
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_TABLE_SORT=y
+CONFIG_THREAD_INFO_IN_TASK=y
+
+#
+# General setup
+#
+CONFIG_INIT_ENV_ARG_LIMIT=32
+# CONFIG_COMPILE_TEST is not set
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_BUILD_SALT=""
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_USELIB is not set
+CONFIG_AUDIT=y
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+CONFIG_AUDITSYSCALL=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
+CONFIG_IRQ_MSI_IOMMU=y
+CONFIG_HANDLE_DOMAIN_IRQ=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
+# end of IRQ subsystem
+
+CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+# end of Timers subsystem
+
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
+CONFIG_PREEMPTION=y
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+CONFIG_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_SCHED_AVG_IRQ=y
+# CONFIG_SCHED_THERMAL_PRESSURE is not set
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+# CONFIG_PSI is not set
+# end of CPU/Task time and stats accounting
+
+CONFIG_CPU_ISOLATION=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_SRCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_TASKS_RCU=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_NEED_SEGCBLIST=y
+# end of RCU Subsystem
+
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+# CONFIG_IKHEADERS is not set
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+CONFIG_GENERIC_SCHED_CLOCK=y
+
+#
+# Scheduler features
+#
+# CONFIG_UCLAMP_TASK is not set
+# end of Scheduler features
+
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_CC_HAS_INT128=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_CGROUPS=y
+CONFIG_PAGE_COUNTER=y
+CONFIG_MEMCG=y
+CONFIG_MEMCG_SWAP=y
+CONFIG_MEMCG_SWAP_ENABLED=y
+CONFIG_MEMCG_KMEM=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_WRITEBACK=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_CFS_BANDWIDTH is not set
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_CGROUP_PIDS=y
+# CONFIG_CGROUP_RDMA is not set
+# CONFIG_CGROUP_FREEZER is not set
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_SCHED_AUTOGROUP=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+CONFIG_RD_LZ4=y
+# CONFIG_BOOT_CONFIG is not set
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_HAVE_UID16=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_BPF=y
+# CONFIG_EXPERT is not set
+CONFIG_UID16=y
+CONFIG_MULTIUSER=y
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_FHANDLE=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_PRINTK=y
+CONFIG_PRINTK_NMI=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_FUTEX_PI=y
+CONFIG_HAVE_FUTEX_CMPXCHG=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_IO_URING=y
+CONFIG_ADVISE_SYSCALLS=y
+CONFIG_MEMBARRIER=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+# CONFIG_BPF_SYSCALL is not set
+CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
+CONFIG_BPF_JIT_DEFAULT_ON=y
+# CONFIG_USERFAULTFD is not set
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_RSEQ=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+# end of Kernel Performance Events And Counters
+
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+CONFIG_SLAB_MERGE_DEFAULT=y
+# CONFIG_SLAB_FREELIST_RANDOM is not set
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
+CONFIG_SLUB_CPU_PARTIAL=y
+CONFIG_SYSTEM_DATA_VERIFICATION=y
+CONFIG_PROFILING=y
+# end of General setup
+
+CONFIG_ARM64=y
+CONFIG_64BIT=y
+CONFIG_MMU=y
+CONFIG_ARM64_PAGE_SHIFT=12
+CONFIG_ARM64_CONT_SHIFT=4
+CONFIG_ARCH_MMAP_RND_BITS_MIN=18
+CONFIG_ARCH_MMAP_RND_BITS_MAX=33
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ZONE_DMA=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_SMP=y
+CONFIG_KERNEL_MODE_NEON=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+
+#
+# Platform selection
+#
+# CONFIG_ARCH_ACTIONS is not set
+# CONFIG_ARCH_AGILEX is not set
+CONFIG_ARCH_SUNXI=y
+CONFIG_ARCH_ALPINE=y
+CONFIG_ARCH_BCM2835=y
+CONFIG_ARCH_BCM_IPROC=y
+CONFIG_ARCH_BERLIN=y
+# CONFIG_ARCH_BITMAIN is not set
+CONFIG_ARCH_BRCMSTB=y
+CONFIG_ARCH_EXYNOS=y
+CONFIG_ARCH_K3=y
+CONFIG_ARCH_LAYERSCAPE=y
+CONFIG_ARCH_LG1K=y
+CONFIG_ARCH_HISI=y
+CONFIG_ARCH_MEDIATEK=y
+CONFIG_ARCH_MESON=y
+CONFIG_ARCH_MVEBU=y
+# CONFIG_ARCH_MXC is not set
+CONFIG_ARCH_QCOM=y
+# CONFIG_ARCH_REALTEK is not set
+CONFIG_ARCH_RENESAS=y
+CONFIG_ARCH_ROCKCHIP=y
+# CONFIG_ARCH_S32 is not set
+CONFIG_ARCH_SEATTLE=y
+CONFIG_ARCH_STRATIX10=y
+CONFIG_ARCH_SYNQUACER=y
+CONFIG_ARCH_TEGRA=y
+CONFIG_ARCH_SPRD=y
+CONFIG_ARCH_THUNDER=y
+CONFIG_ARCH_THUNDER2=y
+CONFIG_ARCH_UNIPHIER=y
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_XGENE=y
+CONFIG_ARCH_ZX=y
+CONFIG_ARCH_ZYNQMP=y
+# end of Platform selection
+
+#
+# Kernel Features
+#
+
+#
+# ARM errata workarounds via the alternatives framework
+#
+CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y
+CONFIG_ARM64_ERRATUM_826319=y
+CONFIG_ARM64_ERRATUM_827319=y
+CONFIG_ARM64_ERRATUM_824069=y
+CONFIG_ARM64_ERRATUM_819472=y
+CONFIG_ARM64_ERRATUM_832075=y
+CONFIG_ARM64_ERRATUM_834220=y
+CONFIG_ARM64_ERRATUM_845719=y
+CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_ERRATUM_1024718=y
+CONFIG_ARM64_ERRATUM_1418040=y
+CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT_VHE=y
+CONFIG_ARM64_ERRATUM_1165522=y
+CONFIG_ARM64_ERRATUM_1530923=y
+CONFIG_ARM64_ERRATUM_1286807=y
+CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT_NVHE=y
+CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1463225=y
+CONFIG_ARM64_ERRATUM_1542419=y
+CONFIG_CAVIUM_ERRATUM_22375=y
+CONFIG_CAVIUM_ERRATUM_23144=y
+CONFIG_CAVIUM_ERRATUM_23154=y
+CONFIG_CAVIUM_ERRATUM_27456=y
+CONFIG_CAVIUM_ERRATUM_30115=y
+CONFIG_CAVIUM_TX2_ERRATUM_219=y
+CONFIG_QCOM_FALKOR_ERRATUM_1003=y
+CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
+CONFIG_QCOM_FALKOR_ERRATUM_1009=y
+CONFIG_QCOM_QDF2400_ERRATUM_0065=y
+CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
+CONFIG_HISILICON_ERRATUM_161600802=y
+CONFIG_QCOM_FALKOR_ERRATUM_E1041=y
+CONFIG_FUJITSU_ERRATUM_010001=y
+# end of ARM errata workarounds via the alternatives framework
+
+CONFIG_ARM64_4K_PAGES=y
+# CONFIG_ARM64_16K_PAGES is not set
+# CONFIG_ARM64_64K_PAGES is not set
+# CONFIG_ARM64_VA_BITS_39 is not set
+CONFIG_ARM64_VA_BITS_48=y
+CONFIG_ARM64_VA_BITS=48
+CONFIG_ARM64_PA_BITS_48=y
+CONFIG_ARM64_PA_BITS=48
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_SCHED_MC=y
+# CONFIG_SCHED_SMT is not set
+CONFIG_NR_CPUS=64
+CONFIG_HOTPLUG_CPU=y
+CONFIG_NUMA=y
+CONFIG_NODES_SHIFT=2
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_HOLES_IN_ZONE=y
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+CONFIG_SCHED_HRTICK=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HW_PERF_EVENTS=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_SECCOMP=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_KEXEC=y
+# CONFIG_KEXEC_FILE is not set
+CONFIG_CRASH_DUMP=y
+CONFIG_XEN_DOM0=y
+CONFIG_XEN=y
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_UNMAP_KERNEL_AT_EL0=y
+CONFIG_HARDEN_BRANCH_PREDICTOR=y
+CONFIG_HARDEN_EL2_VECTORS=y
+CONFIG_ARM64_SSBD=y
+CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
+# CONFIG_ARM64_SW_TTBR0_PAN is not set
+CONFIG_ARM64_TAGGED_ADDR_ABI=y
+CONFIG_COMPAT=y
+CONFIG_KUSER_HELPERS=y
+# CONFIG_ARMV8_DEPRECATED is not set
+
+#
+# ARMv8.1 architectural features
+#
+CONFIG_ARM64_HW_AFDBM=y
+CONFIG_ARM64_PAN=y
+CONFIG_ARM64_LSE_ATOMICS=y
+CONFIG_ARM64_USE_LSE_ATOMICS=y
+CONFIG_ARM64_VHE=y
+# end of ARMv8.1 architectural features
+
+#
+# ARMv8.2 architectural features
+#
+CONFIG_ARM64_UAO=y
+# CONFIG_ARM64_PMEM is not set
+CONFIG_ARM64_RAS_EXTN=y
+CONFIG_ARM64_CNP=y
+# end of ARMv8.2 architectural features
+
+#
+# ARMv8.3 architectural features
+#
+CONFIG_ARM64_PTR_AUTH=y
+CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y
+CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y
+CONFIG_AS_HAS_PAC=y
+# end of ARMv8.3 architectural features
+
+#
+# ARMv8.4 architectural features
+#
+CONFIG_ARM64_AMU_EXTN=y
+# end of ARMv8.4 architectural features
+
+#
+# ARMv8.5 architectural features
+#
+CONFIG_ARM64_E0PD=y
+CONFIG_ARCH_RANDOM=y
+# end of ARMv8.5 architectural features
+
+CONFIG_ARM64_SVE=y
+CONFIG_ARM64_MODULE_PLTS=y
+# CONFIG_ARM64_PSEUDO_NMI is not set
+# CONFIG_RANDOMIZE_BASE is not set
+CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
+CONFIG_STACKPROTECTOR_PER_TASK=y
+# end of Kernel Features
+
+#
+# Boot options
+#
+# CONFIG_ARM64_ACPI_PARKING_PROTOCOL is not set
+CONFIG_CMDLINE=""
+CONFIG_EFI_STUB=y
+CONFIG_EFI=y
+CONFIG_DMI=y
+# end of Boot options
+
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+# CONFIG_PM_AUTOSLEEP is not set
+# CONFIG_PM_WAKELOCKS is not set
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_CLK=y
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_CPU_PM=y
+# CONFIG_ENERGY_MODEL is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# end of Power management options
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Idle
+#
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
+# CONFIG_CPU_IDLE_GOV_LADDER is not set
+CONFIG_CPU_IDLE_GOV_MENU=y
+# CONFIG_CPU_IDLE_GOV_TEO is not set
+CONFIG_DT_IDLE_STATES=y
+
+#
+# ARM CPU Idle Drivers
+#
+CONFIG_ARM_CPUIDLE=y
+# CONFIG_ARM_PSCI_CPUIDLE is not set
+# end of ARM CPU Idle Drivers
+# end of CPU Idle
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+
+#
+# CPU frequency scaling drivers
+#
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_ACPI_CPPC_CPUFREQ=m
+CONFIG_ARM_ARMADA_37XX_CPUFREQ=y
+# CONFIG_ARM_ARMADA_8K_CPUFREQ is not set
+CONFIG_ARM_SCPI_CPUFREQ=y
+CONFIG_ARM_BRCMSTB_AVS_CPUFREQ=y
+# CONFIG_ARM_MEDIATEK_CPUFREQ is not set
+# CONFIG_ARM_QCOM_CPUFREQ_NVMEM is not set
+# CONFIG_ARM_QCOM_CPUFREQ_HW is not set
+CONFIG_ARM_TEGRA20_CPUFREQ=y
+CONFIG_ARM_TEGRA124_CPUFREQ=y
+CONFIG_ARM_TEGRA186_CPUFREQ=y
+# CONFIG_QORIQ_CPUFREQ is not set
+# end of CPU Frequency scaling
+# end of CPU Power Management
+
+#
+# Firmware Drivers
+#
+# CONFIG_ARM_SCMI_PROTOCOL is not set
+CONFIG_ARM_SCPI_PROTOCOL=y
+CONFIG_ARM_SCPI_POWER_DOMAIN=y
+# CONFIG_ARM_SDE_INTERFACE is not set
+CONFIG_DMIID=y
+# CONFIG_DMI_SYSFS is not set
+# CONFIG_ISCSI_IBFT is not set
+CONFIG_RASPBERRYPI_FIRMWARE=y
+# CONFIG_FW_CFG_SYSFS is not set
+# CONFIG_INTEL_STRATIX10_SERVICE is not set
+CONFIG_QCOM_SCM=y
+# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
+CONFIG_TI_SCI_PROTOCOL=y
+# CONFIG_TURRIS_MOX_RWTM is not set
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_ARM_PSCI_FW=y
+# CONFIG_ARM_PSCI_CHECKER is not set
+CONFIG_TEE_BNXT_FW=y
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+# CONFIG_EFI_VARS is not set
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_ARMSTUB=y
+CONFIG_EFI_ARMSTUB_DTB_LOADER=y
+CONFIG_EFI_CAPSULE_LOADER=y
+# CONFIG_EFI_TEST is not set
+# CONFIG_RESET_ATTACK_MITIGATION is not set
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+CONFIG_UEFI_CPER=y
+CONFIG_UEFI_CPER_ARM=y
+CONFIG_EFI_EARLYCON=y
+CONFIG_MESON_SM=y
+
+#
+# Tegra firmware driver
+#
+CONFIG_TEGRA_IVC=y
+CONFIG_TEGRA_BPMP=y
+# end of Tegra firmware driver
+
+#
+# Zynq MPSoC Firmware Drivers
+#
+CONFIG_ZYNQMP_FIRMWARE=y
+# CONFIG_ZYNQMP_FIRMWARE_DEBUG is not set
+# end of Zynq MPSoC Firmware Drivers
+# end of Firmware Drivers
+
+CONFIG_ARCH_SUPPORTS_ACPI=y
+CONFIG_ACPI=y
+CONFIG_ACPI_GENERIC_GSI=y
+CONFIG_ACPI_CCA_REQUIRED=y
+# CONFIG_ACPI_DEBUGGER is not set
+CONFIG_ACPI_SPCR_TABLE=y
+# CONFIG_ACPI_EC_DEBUGFS is not set
+CONFIG_ACPI_AC=y
+CONFIG_ACPI_BATTERY=y
+CONFIG_ACPI_BUTTON=y
+CONFIG_ACPI_FAN=y
+# CONFIG_ACPI_TAD is not set
+# CONFIG_ACPI_DOCK is not set
+CONFIG_ACPI_PROCESSOR_IDLE=y
+CONFIG_ACPI_MCFG=y
+CONFIG_ACPI_CPPC_LIB=y
+CONFIG_ACPI_PROCESSOR=y
+# CONFIG_ACPI_IPMI is not set
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_THERMAL=y
+CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
+CONFIG_ACPI_TABLE_UPGRADE=y
+# CONFIG_ACPI_DEBUG is not set
+# CONFIG_ACPI_PCI_SLOT is not set
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_HED=y
+# CONFIG_ACPI_CUSTOM_METHOD is not set
+# CONFIG_ACPI_BGRT is not set
+CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y
+CONFIG_ACPI_NUMA=y
+# CONFIG_ACPI_HMAT is not set
+CONFIG_HAVE_ACPI_APEI=y
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+# CONFIG_ACPI_APEI_PCIEAER is not set
+CONFIG_ACPI_APEI_SEA=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+CONFIG_ACPI_APEI_EINJ=y
+# CONFIG_ACPI_APEI_ERST_DEBUG is not set
+# CONFIG_PMIC_OPREGION is not set
+# CONFIG_ACPI_CONFIGFS is not set
+CONFIG_ACPI_IORT=y
+CONFIG_ACPI_GTDT=y
+CONFIG_ACPI_PPTT=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_IRQFD=y
+CONFIG_HAVE_KVM_IRQ_ROUTING=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_MMIO=y
+CONFIG_HAVE_KVM_MSI=y
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
+CONFIG_KVM_VFIO=y
+CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_HAVE_KVM_IRQ_BYPASS=y
+CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
+CONFIG_IRQ_BYPASS_MANAGER=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+CONFIG_KVM_ARM_HOST=y
+CONFIG_KVM_ARM_PMU=y
+CONFIG_KVM_INDIRECT_VECTORS=y
+CONFIG_ARM64_CRYPTO=y
+CONFIG_CRYPTO_SHA256_ARM64=y
+CONFIG_CRYPTO_SHA512_ARM64=m
+CONFIG_CRYPTO_SHA1_ARM64_CE=y
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SHA3_ARM64=m
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+# CONFIG_CRYPTO_SM4_ARM64_CE is not set
+CONFIG_CRYPTO_GHASH_ARM64_CE=y
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64=y
+CONFIG_CRYPTO_AES_ARM64_CE=y
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK=m
+CONFIG_CRYPTO_CHACHA20_NEON=m
+# CONFIG_CRYPTO_POLY1305_NEON is not set
+# CONFIG_CRYPTO_NHPOLY1305_NEON is not set
+CONFIG_CRYPTO_AES_ARM64_BS=m
+
+#
+# General architecture-dependent options
+#
+CONFIG_CRASH_CORE=y
+CONFIG_KEXEC_CORE=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_HAVE_NMI=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_KEEPINITRD=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_MMU_GATHER_TABLE_FREE=y
+CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_ARCH_MMAP_RND_BITS=18
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
+CONFIG_HAVE_COPY_THREAD_TLS=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_VMAP_STACK=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+CONFIG_HAVE_ARCH_COMPILER_H=y
+CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
+# CONFIG_LOCK_EVENT_COUNTS is not set
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+# end of GCOV-based kernel profiling
+
+CONFIG_HAVE_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGINS is not set
+# end of General architecture-dependent options
+
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_COMPRESS is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_TRIM_UNUSED_KSYMS is not set
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_BLK_SCSI_REQUEST=y
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_INTEGRITY_T10=y
+# CONFIG_BLK_DEV_ZONED is not set
+# CONFIG_BLK_DEV_THROTTLING is not set
+# CONFIG_BLK_CMDLINE_PARSER is not set
+# CONFIG_BLK_WBT is not set
+# CONFIG_BLK_CGROUP_IOLATENCY is not set
+# CONFIG_BLK_CGROUP_IOCOST is not set
+CONFIG_BLK_DEBUG_FS=y
+# CONFIG_BLK_SED_OPAL is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# end of Partition Types
+
+CONFIG_BLOCK_COMPAT=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_PM=y
+
+#
+# IO Schedulers
+#
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=y
+# CONFIG_IOSCHED_BFQ is not set
+# end of IO Schedulers
+
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_ASN1=y
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_FREEZER=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_ELFCORE=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_SCRIPT=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_COREDUMP=y
+# end of Executable file formats
+
+#
+# Memory Management options
+#
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_HAVE_FAST_GUP=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+CONFIG_MEMORY_ISOLATION=y
+# CONFIG_MEMORY_HOTPLUG is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_MEMORY_BALLOON=y
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_COMPACTION=y
+CONFIG_PAGE_REPORTING=y
+CONFIG_MIGRATION=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_BOUNCE=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+# CONFIG_HWPOISON_INJECT is not set
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+# CONFIG_CLEANCACHE is not set
+# CONFIG_FRONTSWAP is not set
+CONFIG_CMA=y
+# CONFIG_CMA_DEBUG is not set
+# CONFIG_CMA_DEBUGFS is not set
+CONFIG_CMA_AREAS=7
+# CONFIG_ZPOOL is not set
+# CONFIG_ZBUD is not set
+# CONFIG_ZSMALLOC is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_ARCH_HAS_PTE_DEVMAP=y
+CONFIG_FRAME_VECTOR=y
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_GUP_BENCHMARK is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+# end of Memory Management options
+
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_NET_INGRESS=y
+CONFIG_SKB_EXTENSIONS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_DIAG is not set
+CONFIG_UNIX=y
+CONFIG_UNIX_SCM=y
+# CONFIG_UNIX_DIAG is not set
+# CONFIG_TLS is not set
+# CONFIG_XFRM_USER is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE_DEMUX is not set
+CONFIG_NET_IP_TUNNEL=m
+# CONFIG_IP_MROUTE is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_NET_IPVTI is not set
+# CONFIG_NET_FOU is not set
+# CONFIG_NET_FOU_IP_TUNNELS is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_INET_UDP_DIAG is not set
+# CONFIG_INET_RAW_DIAG is not set
+# CONFIG_INET_DIAG_DESTROY is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_IPV6_ILA is not set
+# CONFIG_IPV6_VTI is not set
+CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_IPV6_SEG6_LWTUNNEL is not set
+# CONFIG_IPV6_SEG6_HMAC is not set
+# CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_NETLABEL is not set
+# CONFIG_MPTCP is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NET_PTP_CLASSIFY=y
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=m
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_INGRESS=y
+CONFIG_NETFILTER_FAMILY_BRIDGE=y
+# CONFIG_NETFILTER_NETLINK_ACCT is not set
+# CONFIG_NETFILTER_NETLINK_QUEUE is not set
+# CONFIG_NETFILTER_NETLINK_LOG is not set
+# CONFIG_NETFILTER_NETLINK_OSF is not set
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_LOG_COMMON=m
+# CONFIG_NF_LOG_NETDEV is not set
+# CONFIG_NF_CONNTRACK_MARK is not set
+# CONFIG_NF_CONNTRACK_ZONES is not set
+CONFIG_NF_CONNTRACK_PROCFS=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+# CONFIG_NF_CONNTRACK_TIMEOUT is not set
+# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
+# CONFIG_NF_CONNTRACK_LABELS is not set
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+# CONFIG_NF_CONNTRACK_FTP is not set
+# CONFIG_NF_CONNTRACK_H323 is not set
+# CONFIG_NF_CONNTRACK_IRC is not set
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_SNMP is not set
+# CONFIG_NF_CONNTRACK_PPTP is not set
+# CONFIG_NF_CONNTRACK_SANE is not set
+# CONFIG_NF_CONNTRACK_SIP is not set
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CT_NETLINK is not set
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_MASQUERADE=y
+# CONFIG_NF_TABLES is not set
+CONFIG_NETFILTER_XTABLES=y
+
+#
+# Xtables combined modules
+#
+# CONFIG_NETFILTER_XT_MARK is not set
+# CONFIG_NETFILTER_XT_CONNMARK is not set
+
+#
+# Xtables targets
+#
+# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+# CONFIG_NETFILTER_XT_TARGET_HL is not set
+# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+# CONFIG_NETFILTER_XT_TARGET_LED is not set
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+# CONFIG_NETFILTER_XT_TARGET_MARK is not set
+CONFIG_NETFILTER_XT_NAT=m
+# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
+CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+# CONFIG_NETFILTER_XT_MATCH_BPF is not set
+# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ECN is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
+# CONFIG_NETFILTER_XT_MATCH_HL is not set
+# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
+# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
+# CONFIG_NETFILTER_XT_MATCH_STATE is not set
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# end of Core Netfilter Configuration
+
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+# CONFIG_NF_SOCKET_IPV4 is not set
+# CONFIG_NF_TPROXY_IPV4 is not set
+# CONFIG_NF_DUP_IPV4 is not set
+# CONFIG_NF_LOG_ARP is not set
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_IP_NF_IPTABLES=y
+# CONFIG_IP_NF_MATCH_AH is not set
+# CONFIG_IP_NF_MATCH_ECN is not set
+# CONFIG_IP_NF_MATCH_RPFILTER is not set
+# CONFIG_IP_NF_MATCH_TTL is not set
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=m
+# CONFIG_IP_NF_TARGET_SYNPROXY is not set
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+# CONFIG_IP_NF_TARGET_NETMAP is not set
+# CONFIG_IP_NF_TARGET_REDIRECT is not set
+CONFIG_IP_NF_MANGLE=m
+# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
+# CONFIG_IP_NF_TARGET_ECN is not set
+# CONFIG_IP_NF_TARGET_TTL is not set
+# CONFIG_IP_NF_RAW is not set
+# CONFIG_IP_NF_SECURITY is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+# end of IP: Netfilter Configuration
+
+#
+# IPv6: Netfilter Configuration
+#
+# CONFIG_NF_SOCKET_IPV6 is not set
+# CONFIG_NF_TPROXY_IPV6 is not set
+# CONFIG_NF_DUP_IPV6 is not set
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+# CONFIG_IP6_NF_MATCH_AH is not set
+# CONFIG_IP6_NF_MATCH_EUI64 is not set
+# CONFIG_IP6_NF_MATCH_FRAG is not set
+# CONFIG_IP6_NF_MATCH_OPTS is not set
+# CONFIG_IP6_NF_MATCH_HL is not set
+# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
+# CONFIG_IP6_NF_MATCH_MH is not set
+# CONFIG_IP6_NF_MATCH_RPFILTER is not set
+# CONFIG_IP6_NF_MATCH_RT is not set
+# CONFIG_IP6_NF_MATCH_SRH is not set
+# CONFIG_IP6_NF_TARGET_HL is not set
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
+CONFIG_IP6_NF_MANGLE=m
+# CONFIG_IP6_NF_RAW is not set
+# CONFIG_IP6_NF_SECURITY is not set
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+# CONFIG_IP6_NF_TARGET_NPT is not set
+# end of IPv6: Netfilter Configuration
+
+CONFIG_NF_DEFRAG_IPV6=m
+# CONFIG_NF_CONNTRACK_BRIDGE is not set
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+# CONFIG_BPFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+CONFIG_STP=m
+CONFIG_GARP=m
+CONFIG_MRP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_HAVE_NET_DSA=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+# CONFIG_LLC2 is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_PHONET is not set
+# CONFIG_6LOWPAN is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
+# CONFIG_NETLINK_DIAG is not set
+# CONFIG_MPLS is not set
+# CONFIG_NET_NSH is not set
+# CONFIG_HSR is not set
+# CONFIG_NET_SWITCHDEV is not set
+# CONFIG_NET_L3_MASTER_DEV is not set
+CONFIG_QRTR=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
+# CONFIG_NET_NCSI is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+# CONFIG_CGROUP_NET_PRIO is not set
+# CONFIG_CGROUP_NET_CLASSID is not set
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+CONFIG_BPF_JIT=y
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# end of Network testing
+# end of Networking options
+
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_BT=m
+CONFIG_BT_BREDR=y
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_HS=y
+CONFIG_BT_LE=y
+CONFIG_BT_LEDS=y
+# CONFIG_BT_SELFTEST is not set
+# CONFIG_BT_DEBUGFS is not set
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_INTEL=m
+CONFIG_BT_BCM=m
+CONFIG_BT_RTL=m
+CONFIG_BT_HCIBTUSB=m
+# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set
+CONFIG_BT_HCIBTUSB_BCM=y
+# CONFIG_BT_HCIBTUSB_MTK is not set
+CONFIG_BT_HCIBTUSB_RTL=y
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_SERDEV=y
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_NOKIA is not set
+# CONFIG_BT_HCIUART_BCSP is not set
+# CONFIG_BT_HCIUART_ATH3K is not set
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_3WIRE=y
+# CONFIG_BT_HCIUART_INTEL is not set
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_RTL=y
+# CONFIG_BT_HCIUART_QCA is not set
+# CONFIG_BT_HCIUART_AG6XX is not set
+# CONFIG_BT_HCIUART_MRVL is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_BT_MRVL is not set
+# CONFIG_BT_ATH3K is not set
+# CONFIG_BT_MTKSDIO is not set
+# CONFIG_BT_MTKUART is not set
+CONFIG_BT_HCIRSI=m
+# end of Bluetooth device drivers
+
+# CONFIG_AF_RXRPC is not set
+# CONFIG_AF_KCM is not set
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_CFG80211_WEXT_EXPORT=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+# CONFIG_MAC80211_MESH is not set
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+# CONFIG_WIMAX is not set
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+# CONFIG_RFKILL_GPIO is not set
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+# CONFIG_NET_9P_XEN is not set
+# CONFIG_NET_9P_DEBUG is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+# CONFIG_NFC is not set
+# CONFIG_PSAMPLE is not set
+# CONFIG_NET_IFE is not set
+# CONFIG_LWTUNNEL is not set
+CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
+CONFIG_PAGE_POOL=y
+CONFIG_FAILOVER=y
+CONFIG_ETHTOOL_NETLINK=y
+CONFIG_HAVE_EBPF_JIT=y
+
+#
+# Device Drivers
+#
+CONFIG_ARM_AMBA=y
+CONFIG_TEGRA_AHB=y
+CONFIG_HAVE_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCI_SYSCALL=y
+CONFIG_PCIEPORTBUS=y
+# CONFIG_HOTPLUG_PCI_PCIE is not set
+CONFIG_PCIEAER=y
+# CONFIG_PCIEAER_INJECT is not set
+# CONFIG_PCIE_ECRC is not set
+CONFIG_PCIEASPM=y
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
+# CONFIG_PCIE_DPC is not set
+# CONFIG_PCIE_PTM is not set
+# CONFIG_PCIE_BW is not set
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
+# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_PF_STUB is not set
+CONFIG_PCI_ATS=y
+CONFIG_PCI_ECAM=y
+CONFIG_PCI_BRIDGE_EMUL=y
+CONFIG_PCI_IOV=y
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+CONFIG_PCI_LABEL=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+
+#
+# PCI controller drivers
+#
+CONFIG_PCI_AARDVARK=y
+# CONFIG_PCIE_XILINX_NWL is not set
+# CONFIG_PCI_FTPCI100 is not set
+CONFIG_PCI_TEGRA=y
+CONFIG_PCIE_RCAR=y
+CONFIG_PCI_HOST_COMMON=y
+CONFIG_PCI_HOST_GENERIC=y
+# CONFIG_PCIE_XILINX is not set
+CONFIG_PCI_XGENE=y
+CONFIG_PCI_XGENE_MSI=y
+CONFIG_PCIE_IPROC=y
+CONFIG_PCIE_IPROC_PLATFORM=y
+CONFIG_PCIE_IPROC_MSI=y
+# CONFIG_PCIE_ALTERA is not set
+CONFIG_PCI_HOST_THUNDER_PEM=y
+CONFIG_PCI_HOST_THUNDER_ECAM=y
+CONFIG_PCIE_ROCKCHIP=y
+CONFIG_PCIE_ROCKCHIP_HOST=m
+# CONFIG_PCIE_MEDIATEK is not set
+# CONFIG_PCIE_BRCMSTB is not set
+
+#
+# DesignWare PCI Core Support
+#
+CONFIG_PCIE_DW=y
+CONFIG_PCIE_DW_HOST=y
+# CONFIG_PCIE_DW_PLAT_HOST is not set
+CONFIG_PCI_KEYSTONE=y
+CONFIG_PCI_KEYSTONE_HOST=y
+CONFIG_PCI_LAYERSCAPE=y
+CONFIG_PCI_HISI=y
+CONFIG_PCIE_QCOM=y
+CONFIG_PCIE_ARMADA_8K=y
+CONFIG_PCIE_KIRIN=y
+CONFIG_PCIE_HISI_STB=y
+# CONFIG_PCI_MESON is not set
+# CONFIG_PCIE_TEGRA194_HOST is not set
+# CONFIG_PCIE_UNIPHIER is not set
+# CONFIG_PCIE_AL is not set
+# end of DesignWare PCI Core Support
+
+#
+# Mobiveil PCIe Core Support
+#
+# CONFIG_PCIE_MOBIVEIL_PLAT is not set
+# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
+# end of Mobiveil PCIe Core Support
+
+#
+# Cadence PCIe controllers support
+#
+# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
+# end of Cadence PCIe controllers support
+# end of PCI controller drivers
+
+#
+# PCI Endpoint
+#
+# CONFIG_PCI_ENDPOINT is not set
+# end of PCI Endpoint
+
+#
+# PCI switch controller drivers
+#
+# CONFIG_PCI_SW_SWITCHTEC is not set
+# end of PCI switch controller drivers
+
+# CONFIG_PCCARD is not set
+# CONFIG_RAPIDIO is not set
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+
+#
+# Firmware loader
+#
+CONFIG_FW_LOADER=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER is not set
+# CONFIG_FW_LOADER_COMPRESS is not set
+CONFIG_FW_CACHE=y
+# end of Firmware loader
+
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_SOC_BUS=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_SPMI=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_DMA_FENCE_TRACE is not set
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+# end of Generic Driver Options
+
+#
+# Bus devices
+#
+CONFIG_BRCMSTB_GISB_ARB=y
+# CONFIG_MOXTET is not set
+CONFIG_HISILICON_LPC=y
+CONFIG_QCOM_EBI2=y
+CONFIG_SIMPLE_PM_BUS=y
+CONFIG_SUN50I_DE2_BUS=y
+CONFIG_SUNXI_RSB=y
+# CONFIG_TEGRA_ACONNECT is not set
+# CONFIG_TEGRA_GMI is not set
+CONFIG_UNIPHIER_SYSTEM_BUS=y
+CONFIG_VEXPRESS_CONFIG=y
+# CONFIG_FSL_MC_BUS is not set
+# CONFIG_MHI_BUS is not set
+# end of Bus devices
+
+# CONFIG_CONNECTOR is not set
+# CONFIG_GNSS is not set
+CONFIG_MTD=y
+# CONFIG_MTD_TESTS is not set
+
+#
+# Partition parsers
+#
+# CONFIG_MTD_AR7_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+CONFIG_MTD_OF_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# end of Partition parsers
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_SM_FTL is not set
+# CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# end of RAM/ROM/Flash chip drivers
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+# CONFIG_MTD_PLATRAM is not set
+# end of Mapping drivers for chip access
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_MCHP23K256 is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOCG3 is not set
+# end of Self-contained MTD device drivers
+
+# CONFIG_MTD_ONENAND is not set
+# CONFIG_MTD_RAW_NAND is not set
+# CONFIG_MTD_SPI_NAND is not set
+
+#
+# LPDDR & LPDDR2 PCM memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+# end of LPDDR & LPDDR2 PCM memory drivers
+
+CONFIG_MTD_SPI_NOR=y
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+# CONFIG_SPI_CADENCE_QUADSPI is not set
+# CONFIG_SPI_HISI_SFC is not set
+# CONFIG_MTD_UBI is not set
+# CONFIG_MTD_HYPERBUS is not set
+CONFIG_DTC=y
+CONFIG_OF=y
+# CONFIG_OF_UNITTEST is not set
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_DYNAMIC=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OF_RESOLVE=y
+CONFIG_OF_OVERLAY=y
+CONFIG_OF_NUMA=y
+# CONFIG_PARPORT is not set
+CONFIG_PNP=y
+CONFIG_PNP_DEBUG_MESSAGES=y
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_DRBD is not set
+CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_SKD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_XEN_BLKDEV_FRONTEND=y
+# CONFIG_XEN_BLKDEV_BACKEND is not set
+CONFIG_VIRTIO_BLK=y
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_BLK_DEV_RSXX is not set
+
+#
+# NVME Support
+#
+CONFIG_NVME_CORE=m
+CONFIG_BLK_DEV_NVME=m
+# CONFIG_NVME_MULTIPATH is not set
+# CONFIG_NVME_HWMON is not set
+# CONFIG_NVME_FC is not set
+# CONFIG_NVME_TCP is not set
+# CONFIG_NVME_TARGET is not set
+# end of NVME Support
+
+#
+# Misc devices
+#
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_DUMMY_IRQ is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_QCOM_COINCELL is not set
+# CONFIG_QCOM_FASTRPC is not set
+# CONFIG_APDS9802ALS is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_LATTICE_ECP3_CONFIG is not set
+CONFIG_SRAM=y
+CONFIG_VEXPRESS_SYSCFG=y
+# CONFIG_PCI_ENDPOINT_TEST is not set
+# CONFIG_XILINX_SDFEC is not set
+# CONFIG_PVPANIC is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+CONFIG_EEPROM_AT25=m
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+CONFIG_EEPROM_93CX6=m
+# CONFIG_EEPROM_93XX46 is not set
+# CONFIG_EEPROM_IDT_89HPESX is not set
+# CONFIG_EEPROM_EE1004 is not set
+# end of EEPROM support
+
+# CONFIG_CB710_CORE is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# end of Texas Instruments shared transport line discipline
+
+# CONFIG_SENSORS_LIS3_I2C is not set
+# CONFIG_ALTERA_STAPL is not set
+
+#
+# Intel MIC & related support
+#
+# CONFIG_VOP_BUS is not set
+# end of Intel MIC & related support
+
+# CONFIG_GENWQE is not set
+# CONFIG_ECHO is not set
+# CONFIG_MISC_ALCOR_PCI is not set
+# CONFIG_MISC_RTSX_PCI is not set
+# CONFIG_MISC_RTSX_USB is not set
+# CONFIG_HABANA_AI is not set
+# CONFIG_UACCE is not set
+# end of Misc devices
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_PROC_FS is not set
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+CONFIG_SCSI_SAS_ATTRS=y
+CONFIG_SCSI_SAS_LIBSAS=y
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+# CONFIG_SCSI_SRP_ATTRS is not set
+# end of SCSI Transports
+
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_ISCSI_BOOT_SYSFS is not set
+# CONFIG_SCSI_CXGB3_ISCSI is not set
+# CONFIG_SCSI_CXGB4_ISCSI is not set
+# CONFIG_SCSI_BNX2_ISCSI is not set
+# CONFIG_BE2ISCSI is not set
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_HPSA is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_3W_SAS is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_AIC94XX is not set
+CONFIG_SCSI_HISI_SAS=y
+CONFIG_SCSI_HISI_SAS_PCI=y
+# CONFIG_SCSI_MVSAS is not set
+# CONFIG_SCSI_MVUMI is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_SCSI_ESAS2R is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+# CONFIG_SCSI_MPT3SAS is not set
+# CONFIG_SCSI_MPT2SAS is not set
+# CONFIG_SCSI_SMARTPQI is not set
+CONFIG_SCSI_UFSHCD=m
+# CONFIG_SCSI_UFSHCD_PCI is not set
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+# CONFIG_SCSI_UFS_CDNS_PLATFORM is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
+CONFIG_SCSI_UFS_QCOM=m
+# CONFIG_SCSI_UFS_MEDIATEK is not set
+CONFIG_SCSI_UFS_HISI=m
+# CONFIG_SCSI_UFS_TI_J721E is not set
+# CONFIG_SCSI_UFS_BSG is not set
+# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_SCSI_MYRB is not set
+# CONFIG_SCSI_MYRS is not set
+# CONFIG_XEN_SCSI_FRONTEND is not set
+# CONFIG_SCSI_SNIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_FDOMAIN_PCI is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLA_ISCSI is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_AM53C974 is not set
+# CONFIG_SCSI_WD719X is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_PMCRAID is not set
+# CONFIG_SCSI_PM8001 is not set
+# CONFIG_SCSI_VIRTIO is not set
+# CONFIG_SCSI_DH is not set
+# end of SCSI device support
+
+CONFIG_HAVE_PATA_PLATFORM=y
+CONFIG_ATA=y
+CONFIG_SATA_HOST=y
+CONFIG_PATA_TIMINGS=y
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_FORCE=y
+CONFIG_ATA_ACPI=y
+# CONFIG_SATA_ZPODD is not set
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=y
+CONFIG_SATA_MOBILE_LPM_POLICY=0
+CONFIG_SATA_AHCI_PLATFORM=y
+# CONFIG_AHCI_BRCM is not set
+CONFIG_AHCI_CEVA=y
+# CONFIG_AHCI_MTK is not set
+CONFIG_AHCI_MVEBU=y
+# CONFIG_AHCI_SUNXI is not set
+# CONFIG_AHCI_TEGRA is not set
+CONFIG_AHCI_XGENE=y
+CONFIG_AHCI_QORIQ=y
+# CONFIG_SATA_AHCI_SEATTLE is not set
+# CONFIG_SATA_INIC162X is not set
+# CONFIG_SATA_ACARD_AHCI is not set
+CONFIG_SATA_SIL24=y
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+# CONFIG_PDC_ADMA is not set
+# CONFIG_SATA_QSTOR is not set
+# CONFIG_SATA_SX4 is not set
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+# CONFIG_ATA_PIIX is not set
+# CONFIG_SATA_DWC is not set
+# CONFIG_SATA_MV is not set
+# CONFIG_SATA_NV is not set
+# CONFIG_SATA_PROMISE is not set
+CONFIG_SATA_RCAR=y
+# CONFIG_SATA_SIL is not set
+# CONFIG_SATA_SIS is not set
+# CONFIG_SATA_SVW is not set
+# CONFIG_SATA_ULI is not set
+# CONFIG_SATA_VIA is not set
+# CONFIG_SATA_VITESSE is not set
+
+#
+# PATA SFF controllers with BMDMA
+#
+# CONFIG_PATA_ALI is not set
+# CONFIG_PATA_AMD is not set
+# CONFIG_PATA_ARTOP is not set
+# CONFIG_PATA_ATIIXP is not set
+# CONFIG_PATA_ATP867X is not set
+# CONFIG_PATA_CMD64X is not set
+# CONFIG_PATA_CYPRESS is not set
+# CONFIG_PATA_EFAR is not set
+# CONFIG_PATA_HPT366 is not set
+# CONFIG_PATA_HPT37X is not set
+# CONFIG_PATA_HPT3X2N is not set
+# CONFIG_PATA_HPT3X3 is not set
+# CONFIG_PATA_IT8213 is not set
+# CONFIG_PATA_IT821X is not set
+# CONFIG_PATA_JMICRON is not set
+# CONFIG_PATA_MARVELL is not set
+# CONFIG_PATA_NETCELL is not set
+# CONFIG_PATA_NINJA32 is not set
+# CONFIG_PATA_NS87415 is not set
+# CONFIG_PATA_OLDPIIX is not set
+# CONFIG_PATA_OPTIDMA is not set
+# CONFIG_PATA_PDC2027X is not set
+# CONFIG_PATA_PDC_OLD is not set
+# CONFIG_PATA_RADISYS is not set
+# CONFIG_PATA_RDC is not set
+# CONFIG_PATA_SCH is not set
+# CONFIG_PATA_SERVERWORKS is not set
+# CONFIG_PATA_SIL680 is not set
+# CONFIG_PATA_SIS is not set
+# CONFIG_PATA_TOSHIBA is not set
+# CONFIG_PATA_TRIFLEX is not set
+# CONFIG_PATA_VIA is not set
+# CONFIG_PATA_WINBOND is not set
+
+#
+# PIO-only SFF controllers
+#
+# CONFIG_PATA_CMD640_PCI is not set
+# CONFIG_PATA_MPIIX is not set
+# CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_OPTI is not set
+CONFIG_PATA_PLATFORM=y
+CONFIG_PATA_OF_PLATFORM=y
+# CONFIG_PATA_RZ1000 is not set
+
+#
+# Generic fallback / legacy drivers
+#
+# CONFIG_PATA_ACPI is not set
+# CONFIG_ATA_GENERIC is not set
+# CONFIG_PATA_LEGACY is not set
+# CONFIG_MD is not set
+# CONFIG_TARGET_CORE is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+# end of IEEE 1394 (FireWire) support
+
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+CONFIG_NET_CORE=y
+# CONFIG_BONDING is not set
+# CONFIG_DUMMY is not set
+# CONFIG_WIREGUARD is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_NET_FC is not set
+# CONFIG_NET_TEAM is not set
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_IPVLAN is not set
+# CONFIG_VXLAN is not set
+# CONFIG_GENEVE is not set
+# CONFIG_BAREUDP is not set
+# CONFIG_GTP is not set
+# CONFIG_MACSEC is not set
+# CONFIG_NETCONSOLE is not set
+CONFIG_TUN=y
+CONFIG_TAP=m
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=y
+# CONFIG_NLMON is not set
+# CONFIG_ARCNET is not set
+
+#
+# Distributed Switch Architecture drivers
+#
+# end of Distributed Switch Architecture drivers
+
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_3COM=y
+# CONFIG_VORTEX is not set
+# CONFIG_TYPHOON is not set
+CONFIG_NET_VENDOR_ADAPTEC=y
+# CONFIG_ADAPTEC_STARFIRE is not set
+CONFIG_NET_VENDOR_AGERE=y
+# CONFIG_ET131X is not set
+CONFIG_NET_VENDOR_ALACRITECH=y
+# CONFIG_SLICOSS is not set
+CONFIG_NET_VENDOR_ALLWINNER=y
+# CONFIG_SUN4I_EMAC is not set
+CONFIG_NET_VENDOR_ALTEON=y
+# CONFIG_ACENIC is not set
+# CONFIG_ALTERA_TSE is not set
+CONFIG_NET_VENDOR_AMAZON=y
+# CONFIG_ENA_ETHERNET is not set
+CONFIG_NET_VENDOR_AMD=y
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_PCNET32 is not set
+CONFIG_AMD_XGBE=y
+CONFIG_NET_XGENE=y
+# CONFIG_NET_XGENE_V2 is not set
+CONFIG_NET_VENDOR_AQUANTIA=y
+# CONFIG_AQTION is not set
+CONFIG_NET_VENDOR_ARC=y
+# CONFIG_EMAC_ROCKCHIP is not set
+CONFIG_NET_VENDOR_ATHEROS=y
+# CONFIG_ATL2 is not set
+# CONFIG_ATL1 is not set
+# CONFIG_ATL1E is not set
+CONFIG_ATL1C=m
+# CONFIG_ALX is not set
+CONFIG_NET_VENDOR_AURORA=y
+# CONFIG_AURORA_NB8800 is not set
+CONFIG_NET_VENDOR_BROADCOM=y
+# CONFIG_B44 is not set
+# CONFIG_BCMGENET is not set
+# CONFIG_BNX2 is not set
+# CONFIG_CNIC is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2X is not set
+CONFIG_BGMAC=y
+CONFIG_BGMAC_PLATFORM=y
+# CONFIG_SYSTEMPORT is not set
+# CONFIG_BNXT is not set
+CONFIG_NET_VENDOR_BROCADE=y
+# CONFIG_BNA is not set
+CONFIG_NET_VENDOR_CADENCE=y
+CONFIG_MACB=y
+CONFIG_MACB_USE_HWSTAMP=y
+# CONFIG_MACB_PCI is not set
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_THUNDER_NIC_PF=y
+# CONFIG_THUNDER_NIC_VF is not set
+CONFIG_THUNDER_NIC_BGX=y
+CONFIG_THUNDER_NIC_RGX=y
+# CONFIG_CAVIUM_PTP is not set
+# CONFIG_LIQUIDIO is not set
+# CONFIG_LIQUIDIO_VF is not set
+CONFIG_NET_VENDOR_CHELSIO=y
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_CHELSIO_T4 is not set
+# CONFIG_CHELSIO_T4VF is not set
+CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_ENIC is not set
+CONFIG_NET_VENDOR_CORTINA=y
+# CONFIG_GEMINI_ETHERNET is not set
+# CONFIG_DNET is not set
+CONFIG_NET_VENDOR_DEC=y
+# CONFIG_NET_TULIP is not set
+CONFIG_NET_VENDOR_DLINK=y
+# CONFIG_DL2K is not set
+# CONFIG_SUNDANCE is not set
+CONFIG_NET_VENDOR_EMULEX=y
+# CONFIG_BE2NET is not set
+CONFIG_NET_VENDOR_EZCHIP=y
+# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
+CONFIG_NET_VENDOR_FREESCALE=y
+# CONFIG_FSL_FMAN is not set
+# CONFIG_FSL_PQ_MDIO is not set
+# CONFIG_FSL_XGMAC_MDIO is not set
+# CONFIG_GIANFAR is not set
+# CONFIG_FSL_ENETC is not set
+# CONFIG_FSL_ENETC_VF is not set
+# CONFIG_FSL_ENETC_MDIO is not set
+CONFIG_NET_VENDOR_GOOGLE=y
+# CONFIG_GVE is not set
+CONFIG_NET_VENDOR_HISILICON=y
+CONFIG_HIX5HD2_GMAC=y
+# CONFIG_HISI_FEMAC is not set
+# CONFIG_HIP04_ETH is not set
+CONFIG_HNS_MDIO=y
+CONFIG_HNS=y
+CONFIG_HNS_DSAF=y
+CONFIG_HNS_ENET=y
+CONFIG_HNS3=y
+CONFIG_HNS3_HCLGE=y
+# CONFIG_HNS3_HCLGEVF is not set
+CONFIG_HNS3_ENET=y
+CONFIG_NET_VENDOR_HUAWEI=y
+# CONFIG_HINIC is not set
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_INTEL=y
+# CONFIG_E100 is not set
+# CONFIG_E1000 is not set
+CONFIG_E1000E=y
+CONFIG_IGB=y
+CONFIG_IGB_HWMON=y
+CONFIG_IGBVF=y
+# CONFIG_IXGB is not set
+# CONFIG_IXGBE is not set
+# CONFIG_IXGBEVF is not set
+# CONFIG_I40E is not set
+# CONFIG_I40EVF is not set
+# CONFIG_ICE is not set
+# CONFIG_FM10K is not set
+# CONFIG_IGC is not set
+# CONFIG_JME is not set
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_MVMDIO=y
+CONFIG_MVNETA=y
+CONFIG_MVPP2=y
+# CONFIG_PXA168_ETH is not set
+# CONFIG_SKGE is not set
+CONFIG_SKY2=y
+# CONFIG_SKY2_DEBUG is not set
+# CONFIG_OCTEONTX2_AF is not set
+# CONFIG_OCTEONTX2_PF is not set
+# CONFIG_NET_VENDOR_MEDIATEK is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+# CONFIG_MLX4_EN is not set
+# CONFIG_MLX5_CORE is not set
+# CONFIG_MLXSW_CORE is not set
+# CONFIG_MLXFW is not set
+CONFIG_NET_VENDOR_MICREL=y
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_KSZ884X_PCI is not set
+CONFIG_NET_VENDOR_MICROCHIP=y
+# CONFIG_ENC28J60 is not set
+# CONFIG_ENCX24J600 is not set
+# CONFIG_LAN743X is not set
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MYRI=y
+# CONFIG_MYRI10GE is not set
+# CONFIG_FEALNX is not set
+CONFIG_NET_VENDOR_NATSEMI=y
+# CONFIG_NATSEMI is not set
+# CONFIG_NS83820 is not set
+CONFIG_NET_VENDOR_NETERION=y
+# CONFIG_S2IO is not set
+# CONFIG_VXGE is not set
+CONFIG_NET_VENDOR_NETRONOME=y
+# CONFIG_NFP is not set
+CONFIG_NET_VENDOR_NI=y
+# CONFIG_NI_XGE_MANAGEMENT_ENET is not set
+CONFIG_NET_VENDOR_8390=y
+# CONFIG_NE2K_PCI is not set
+CONFIG_NET_VENDOR_NVIDIA=y
+# CONFIG_FORCEDETH is not set
+CONFIG_NET_VENDOR_OKI=y
+# CONFIG_ETHOC is not set
+CONFIG_NET_VENDOR_PACKET_ENGINES=y
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+CONFIG_NET_VENDOR_PENSANDO=y
+# CONFIG_IONIC is not set
+CONFIG_NET_VENDOR_QLOGIC=y
+# CONFIG_QLA3XXX is not set
+# CONFIG_QLCNIC is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_QED is not set
+CONFIG_NET_VENDOR_QUALCOMM=y
+# CONFIG_QCA7000_SPI is not set
+# CONFIG_QCA7000_UART is not set
+CONFIG_QCOM_EMAC=m
+# CONFIG_RMNET is not set
+CONFIG_NET_VENDOR_RDC=y
+# CONFIG_R6040 is not set
+CONFIG_NET_VENDOR_REALTEK=y
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_R8169 is not set
+CONFIG_NET_VENDOR_RENESAS=y
+# CONFIG_SH_ETH is not set
+CONFIG_RAVB=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+# CONFIG_SXGBE_ETH is not set
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SOLARFLARE=y
+# CONFIG_SFC is not set
+# CONFIG_SFC_FALCON is not set
+CONFIG_NET_VENDOR_SILAN=y
+# CONFIG_SC92031 is not set
+CONFIG_NET_VENDOR_SIS=y
+# CONFIG_SIS900 is not set
+# CONFIG_SIS190 is not set
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC91X=y
+# CONFIG_EPIC100 is not set
+CONFIG_SMSC911X=y
+# CONFIG_SMSC9420 is not set
+CONFIG_NET_VENDOR_SOCIONEXT=y
+CONFIG_SNI_AVE=y
+CONFIG_SNI_NETSEC=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_SELFTESTS is not set
+CONFIG_STMMAC_PLATFORM=m
+# CONFIG_DWMAC_DWC_QOS_ETH is not set
+CONFIG_DWMAC_GENERIC=m
+CONFIG_DWMAC_IPQ806X=m
+# CONFIG_DWMAC_MEDIATEK is not set
+CONFIG_DWMAC_MESON=m
+CONFIG_DWMAC_QCOM_ETHQOS=m
+CONFIG_DWMAC_ROCKCHIP=m
+CONFIG_DWMAC_SOCFPGA=m
+CONFIG_DWMAC_SUNXI=m
+CONFIG_DWMAC_SUN8I=m
+# CONFIG_STMMAC_PCI is not set
+CONFIG_NET_VENDOR_SUN=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NIU is not set
+CONFIG_NET_VENDOR_SYNOPSYS=y
+# CONFIG_DWC_XLGMAC is not set
+CONFIG_NET_VENDOR_TEHUTI=y
+# CONFIG_TEHUTI is not set
+CONFIG_NET_VENDOR_TI=y
+# CONFIG_TI_DAVINCI_MDIO is not set
+# CONFIG_TI_CPSW_PHY_SEL is not set
+# CONFIG_TLAN is not set
+CONFIG_NET_VENDOR_VIA=y
+# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_VELOCITY is not set
+CONFIG_NET_VENDOR_WIZNET=y
+# CONFIG_WIZNET_W5100 is not set
+# CONFIG_WIZNET_W5300 is not set
+CONFIG_NET_VENDOR_XILINX=y
+# CONFIG_XILINX_AXI_EMAC is not set
+# CONFIG_XILINX_LL_TEMAC is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_NET_SB1000 is not set
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+# CONFIG_MDIO_BCM_IPROC is not set
+# CONFIG_MDIO_BCM_UNIMAC is not set
+CONFIG_MDIO_BITBANG=y
+CONFIG_MDIO_BUS_MUX=y
+CONFIG_MDIO_BUS_MUX_BCM_IPROC=y
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+CONFIG_MDIO_BUS_MUX_MESON_G12A=m
+CONFIG_MDIO_BUS_MUX_MMIOREG=y
+# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
+CONFIG_MDIO_CAVIUM=y
+# CONFIG_MDIO_GPIO is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
+# CONFIG_MDIO_IPQ8064 is not set
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_MVUSB is not set
+# CONFIG_MDIO_OCTEON is not set
+# CONFIG_MDIO_SUN4I is not set
+CONFIG_MDIO_THUNDER=y
+CONFIG_MDIO_XGENE=y
+CONFIG_MDIO_XPCS=m
+CONFIG_PHYLINK=y
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+# CONFIG_LED_TRIGGER_PHY is not set
+
+#
+# MII PHY device drivers
+#
+# CONFIG_SFP is not set
+# CONFIG_ADIN_PHY is not set
+# CONFIG_AMD_PHY is not set
+# CONFIG_AQUANTIA_PHY is not set
+# CONFIG_AX88796B_PHY is not set
+# CONFIG_BCM7XXX_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_BCM84881_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_DP83822_PHY is not set
+# CONFIG_DP83TC811_PHY is not set
+# CONFIG_DP83848_PHY is not set
+# CONFIG_DP83867_PHY is not set
+# CONFIG_DP83869_PHY is not set
+CONFIG_FIXED_PHY=y
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_INTEL_XWAY_PHY is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_LXT_PHY is not set
+CONFIG_MARVELL_PHY=m
+CONFIG_MARVELL_10G_PHY=m
+CONFIG_MESON_GXL_PHY=m
+CONFIG_MICREL_PHY=y
+CONFIG_MICROCHIP_PHY=m
+# CONFIG_MICROCHIP_T1_PHY is not set
+# CONFIG_MICROSEMI_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_NXP_TJA11XX_PHY is not set
+CONFIG_AT803X_PHY=m
+# CONFIG_QSEMI_PHY is not set
+CONFIG_REALTEK_PHY=m
+# CONFIG_RENESAS_PHY is not set
+CONFIG_ROCKCHIP_PHY=y
+# CONFIG_SMSC_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_TERANETICS_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_XILINX_GMII2RGMII is not set
+# CONFIG_MICREL_KS8995MA is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOE=m
+CONFIG_PPP_ASYNC=m
+# CONFIG_PPP_SYNC_TTY is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=m
+CONFIG_USB_NET_DRIVERS=y
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_CDCETHER=m
+# CONFIG_USB_NET_CDC_EEM is not set
+CONFIG_USB_NET_CDC_NCM=m
+# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
+# CONFIG_USB_NET_CDC_MBIM is not set
+CONFIG_USB_NET_DM9601=m
+# CONFIG_USB_NET_SR9700 is not set
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+# CONFIG_USB_NET_GL620A is not set
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+# CONFIG_USB_NET_RNDIS_HOST is not set
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
+CONFIG_USB_NET_CDC_SUBSET=m
+# CONFIG_USB_ALI_M5632 is not set
+# CONFIG_USB_AN2720 is not set
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+# CONFIG_USB_EPSON2888 is not set
+# CONFIG_USB_KC2190 is not set
+CONFIG_USB_NET_ZAURUS=m
+# CONFIG_USB_NET_CX82310_ETH is not set
+# CONFIG_USB_NET_KALMIA is not set
+# CONFIG_USB_NET_QMI_WWAN is not set
+# CONFIG_USB_HSO is not set
+# CONFIG_USB_NET_INT51X1 is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_USB_SIERRA_NET is not set
+# CONFIG_USB_VL600 is not set
+# CONFIG_USB_NET_CH9200 is not set
+# CONFIG_USB_NET_AQC111 is not set
+CONFIG_WLAN=y
+CONFIG_WLAN_VENDOR_ADMTEK=y
+# CONFIG_ADM8211 is not set
+CONFIG_ATH_COMMON=m
+CONFIG_WLAN_VENDOR_ATH=y
+# CONFIG_ATH_DEBUG is not set
+# CONFIG_ATH5K is not set
+CONFIG_ATH5K_PCI=y
+# CONFIG_ATH9K is not set
+# CONFIG_ATH9K_HTC is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
+# CONFIG_ATH6KL is not set
+# CONFIG_AR5523 is not set
+# CONFIG_WIL6210 is not set
+CONFIG_ATH10K=m
+CONFIG_ATH10K_CE=y
+CONFIG_ATH10K_PCI=m
+# CONFIG_ATH10K_AHB is not set
+CONFIG_ATH10K_SDIO=m
+CONFIG_ATH10K_USB=m
+CONFIG_ATH10K_SNOC=m
+CONFIG_ATH10K_DEBUG=y
+CONFIG_ATH10K_DEBUGFS=y
+CONFIG_ATH10K_SPECTRAL=y
+CONFIG_WCN36XX=m
+# CONFIG_WCN36XX_DEBUGFS is not set
+CONFIG_WLAN_VENDOR_ATMEL=y
+CONFIG_ATMEL=m
+# CONFIG_PCI_ATMEL is not set
+CONFIG_AT76C50X_USB=m
+CONFIG_WLAN_VENDOR_BROADCOM=y
+CONFIG_B43=m
+CONFIG_B43_BCMA=y
+CONFIG_B43_SSB=y
+CONFIG_B43_BUSES_BCMA_AND_SSB=y
+# CONFIG_B43_BUSES_BCMA is not set
+# CONFIG_B43_BUSES_SSB is not set
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_BCMA_PIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_G=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+# CONFIG_B43LEGACY is not set
+CONFIG_BRCMUTIL=m
+# CONFIG_BRCMSMAC is not set
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_SDIO=y
+CONFIG_BRCMFMAC_USB=y
+# CONFIG_BRCMFMAC_PCIE is not set
+# CONFIG_BRCM_TRACING is not set
+# CONFIG_BRCMDBG is not set
+CONFIG_WLAN_VENDOR_CISCO=y
+CONFIG_WLAN_VENDOR_INTEL=y
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_IWL4965 is not set
+# CONFIG_IWL3945 is not set
+# CONFIG_IWLWIFI is not set
+CONFIG_WLAN_VENDOR_INTERSIL=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HERMES=m
+CONFIG_HERMES_PRISM=y
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_SPI_DEFAULT_EEPROM=y
+CONFIG_P54_LEDS=y
+CONFIG_PRISM54=m
+CONFIG_WLAN_VENDOR_MARVELL=y
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+CONFIG_LIBERTAS_DEBUG=y
+CONFIG_LIBERTAS_MESH=y
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_USB=m
+CONFIG_MWL8K=m
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+CONFIG_MT7601U=m
+CONFIG_MT76_CORE=m
+CONFIG_MT76_LEDS=y
+CONFIG_MT76_USB=m
+CONFIG_MT76x02_LIB=m
+CONFIG_MT76x02_USB=m
+CONFIG_MT76x0_COMMON=m
+CONFIG_MT76x0U=m
+# CONFIG_MT76x0E is not set
+CONFIG_MT76x2_COMMON=m
+# CONFIG_MT76x2E is not set
+CONFIG_MT76x2U=m
+# CONFIG_MT7603E is not set
+# CONFIG_MT7615E is not set
+CONFIG_WLAN_VENDOR_RALINK=y
+CONFIG_RT2X00=m
+# CONFIG_RT2400PCI is not set
+# CONFIG_RT2500PCI is not set
+# CONFIG_RT61PCI is not set
+# CONFIG_RT2800PCI is not set
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_WLAN_VENDOR_REALTEK=y
+# CONFIG_RTL8180 is not set
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_RTL_CARDS=m
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8723AE=m
+CONFIG_RTL8723BE=m
+CONFIG_RTL8188EE=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8821AE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+CONFIG_RTLWIFI_PCI=m
+CONFIG_RTLWIFI_USB=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTL8192C_COMMON=m
+CONFIG_RTL8723_COMMON=m
+CONFIG_RTLBTCOEXIST=m
+CONFIG_RTL8XXXU=m
+CONFIG_RTL8XXXU_UNTESTED=y
+# CONFIG_RTW88 is not set
+CONFIG_WLAN_VENDOR_RSI=y
+CONFIG_RSI_91X=m
+CONFIG_RSI_DEBUGFS=y
+CONFIG_RSI_SDIO=m
+CONFIG_RSI_USB=m
+CONFIG_RSI_COEX=y
+CONFIG_WLAN_VENDOR_ST=y
+# CONFIG_CW1200 is not set
+CONFIG_WLAN_VENDOR_TI=y
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX is not set
+CONFIG_WL18XX=m
+CONFIG_WLCORE=m
+# CONFIG_WLCORE_SPI is not set
+CONFIG_WLCORE_SDIO=m
+CONFIG_WILINK_PLATFORM_DATA=y
+CONFIG_WLAN_VENDOR_ZYDAS=y
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_ZD1211RW is not set
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+# CONFIG_QTNFMAC_PCIE is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_VIRT_WIFI is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+CONFIG_XEN_NETDEV_FRONTEND=y
+# CONFIG_XEN_NETDEV_BACKEND is not set
+# CONFIG_VMXNET3 is not set
+# CONFIG_FUJITSU_ES is not set
+# CONFIG_NETDEVSIM is not set
+CONFIG_NET_FAILOVER=y
+# CONFIG_ISDN is not set
+# CONFIG_NVM is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_LEDS=y
+CONFIG_INPUT_FF_MEMLESS=y
+CONFIG_INPUT_POLLDEV=m
+# CONFIG_INPUT_SPARSEKMAP is not set
+CONFIG_INPUT_MATRIXKMAP=y
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADC=m
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_QT1050 is not set
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_TEGRA is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_SUN4I_LRADC is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_KEYBOARD_CROS_EC=y
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_BCM is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_SENTELIC is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_SMBUS=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_CYAPA is not set
+# CONFIG_MOUSE_ELAN_I2C is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+# CONFIG_MOUSE_SYNAPTICS_USB is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_PROPERTIES=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_ADC is not set
+# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
+# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_BU21013 is not set
+# CONFIG_TOUCHSCREEN_BU21029 is not set
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
+# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
+# CONFIG_TOUCHSCREEN_EETI is not set
+# CONFIG_TOUCHSCREEN_EGALAX is not set
+# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
+# CONFIG_TOUCHSCREEN_EXC3000 is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GOODIX is not set
+# CONFIG_TOUCHSCREEN_HIDEEP is not set
+# CONFIG_TOUCHSCREEN_ILI210X is not set
+# CONFIG_TOUCHSCREEN_IPROC is not set
+# CONFIG_TOUCHSCREEN_S6SY761 is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_EKTF2127 is not set
+# CONFIG_TOUCHSCREEN_ELAN is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
+# CONFIG_TOUCHSCREEN_MAX11801 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
+# CONFIG_TOUCHSCREEN_MMS114 is not set
+# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
+# CONFIG_TOUCHSCREEN_RASPBERRYPI_FW is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
+# CONFIG_TOUCHSCREEN_TSC2004 is not set
+# CONFIG_TOUCHSCREEN_TSC2005 is not set
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_RM_TS is not set
+# CONFIG_TOUCHSCREEN_SILEAD is not set
+# CONFIG_TOUCHSCREEN_SIS_I2C is not set
+# CONFIG_TOUCHSCREEN_ST1232 is not set
+# CONFIG_TOUCHSCREEN_STMFTS is not set
+# CONFIG_TOUCHSCREEN_SUN4I is not set
+# CONFIG_TOUCHSCREEN_SUR40 is not set
+# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
+# CONFIG_TOUCHSCREEN_SX8654 is not set
+# CONFIG_TOUCHSCREEN_TPS6507X is not set
+# CONFIG_TOUCHSCREEN_ZET6223 is not set
+# CONFIG_TOUCHSCREEN_ZFORCE is not set
+# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
+# CONFIG_TOUCHSCREEN_IQS5XX is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
+# CONFIG_INPUT_BMA150 is not set
+# CONFIG_INPUT_E3X0_BUTTON is not set
+# CONFIG_INPUT_MSM_VIBRATOR is not set
+CONFIG_INPUT_PM8941_PWRKEY=y
+# CONFIG_INPUT_PM8XXX_VIBRATOR is not set
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_GP2A is not set
+# CONFIG_INPUT_GPIO_BEEPER is not set
+# CONFIG_INPUT_GPIO_DECODER is not set
+# CONFIG_INPUT_GPIO_VIBRA is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_KXTJ9 is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+# CONFIG_INPUT_REGULATOR_HAPTIC is not set
+# CONFIG_INPUT_AXP20X_PEK is not set
+# CONFIG_INPUT_UINPUT is not set
+# CONFIG_INPUT_PCF8574 is not set
+# CONFIG_INPUT_PWM_BEEPER is not set
+# CONFIG_INPUT_PWM_VIBRA is not set
+# CONFIG_INPUT_RK805_PWRKEY is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_IMS_PCU is not set
+# CONFIG_INPUT_CMA3000 is not set
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
+# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set
+# CONFIG_INPUT_DRV260X_HAPTICS is not set
+# CONFIG_INPUT_DRV2665_HAPTICS is not set
+# CONFIG_INPUT_DRV2667_HAPTICS is not set
+CONFIG_INPUT_HISI_POWERKEY=y
+# CONFIG_RMI4_CORE is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_SERPORT is not set
+CONFIG_SERIO_AMBAKMI=y
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
+# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SERIO_SUN4I_PS2 is not set
+# CONFIG_SERIO_GPIO_PS2 is not set
+# CONFIG_USERIO is not set
+# CONFIG_GAMEPORT is not set
+# end of Hardware I/O ports
+# end of Input device support
+
+#
+# Character devices
+#
+CONFIG_TTY=y
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=16
+CONFIG_LDISC_AUTOLOAD=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_PNP=y
+# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
+# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_EXAR=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+# CONFIG_SERIAL_8250_MANY_PORTS is not set
+# CONFIG_SERIAL_8250_ASPEED_VUART is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_RSA is not set
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_BCM2835AUX=y
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_8250_DW=y
+# CONFIG_SERIAL_8250_RT288X is not set
+CONFIG_SERIAL_8250_OMAP=y
+CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y
+CONFIG_SERIAL_8250_MT6577=y
+CONFIG_SERIAL_8250_UNIPHIER=y
+CONFIG_SERIAL_8250_TEGRA=y
+CONFIG_SERIAL_OF_PLATFORM=y
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_AMBA_PL010 is not set
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set
+CONFIG_SERIAL_MESON=y
+CONFIG_SERIAL_MESON_CONSOLE=y
+CONFIG_SERIAL_SAMSUNG=y
+CONFIG_SERIAL_SAMSUNG_UARTS_4=y
+CONFIG_SERIAL_SAMSUNG_UARTS=4
+CONFIG_SERIAL_SAMSUNG_CONSOLE=y
+CONFIG_SERIAL_TEGRA=y
+# CONFIG_SERIAL_TEGRA_TCU is not set
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+# CONFIG_SERIAL_UARTLITE is not set
+CONFIG_SERIAL_SH_SCI=y
+CONFIG_SERIAL_SH_SCI_NR_UARTS=18
+CONFIG_SERIAL_SH_SCI_CONSOLE=y
+CONFIG_SERIAL_SH_SCI_EARLYCON=y
+CONFIG_SERIAL_SH_SCI_DMA=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_QCOM_GENI=y
+CONFIG_SERIAL_QCOM_GENI_CONSOLE=y
+# CONFIG_SERIAL_SIFIVE is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_IFX6X60 is not set
+CONFIG_SERIAL_XILINX_PS_UART=y
+CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+# CONFIG_SERIAL_SPRD is not set
+CONFIG_SERIAL_MVEBU_UART=y
+CONFIG_SERIAL_MVEBU_CONSOLE=y
+# end of Serial drivers
+
+CONFIG_SERIAL_MCTRL_GPIO=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_NULL_TTY is not set
+# CONFIG_TRACE_SINK is not set
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_HVC_XEN_FRONTEND=y
+# CONFIG_HVC_DCC is not set
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_DMI_DECODE=y
+CONFIG_IPMI_PLAT_DATA=y
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+# CONFIG_IPMI_SSIF is not set
+# CONFIG_IPMI_WATCHDOG is not set
+# CONFIG_IPMI_POWEROFF is not set
+# CONFIG_IPMB_DEVICE_INTERFACE is not set
+CONFIG_HW_RANDOM=m
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+CONFIG_HW_RANDOM_BCM2835=m
+CONFIG_HW_RANDOM_IPROC_RNG200=m
+CONFIG_HW_RANDOM_OMAP=m
+# CONFIG_HW_RANDOM_VIRTIO is not set
+CONFIG_HW_RANDOM_HISI=m
+CONFIG_HW_RANDOM_HISI_V2=m
+CONFIG_HW_RANDOM_XGENE=m
+CONFIG_HW_RANDOM_MESON=m
+CONFIG_HW_RANDOM_CAVIUM=m
+CONFIG_HW_RANDOM_MTK=m
+CONFIG_HW_RANDOM_EXYNOS=m
+CONFIG_HW_RANDOM_OPTEE=m
+# CONFIG_APPLICOM is not set
+CONFIG_DEVMEM=y
+# CONFIG_RAW_DRIVER is not set
+CONFIG_DEVPORT=y
+CONFIG_TCG_TPM=y
+# CONFIG_TCG_TIS is not set
+# CONFIG_TCG_TIS_SPI is not set
+# CONFIG_TCG_TIS_I2C_ATMEL is not set
+CONFIG_TCG_TIS_I2C_INFINEON=y
+# CONFIG_TCG_TIS_I2C_NUVOTON is not set
+# CONFIG_TCG_ATMEL is not set
+# CONFIG_TCG_INFINEON is not set
+# CONFIG_TCG_XEN is not set
+# CONFIG_TCG_CRB is not set
+# CONFIG_TCG_VTPM_PROXY is not set
+# CONFIG_TCG_FTPM_TEE is not set
+# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
+# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
+# CONFIG_XILLYBUS is not set
+# end of Character devices
+
+# CONFIG_RANDOM_TRUST_CPU is not set
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_ACPI_I2C_OPREGION=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+
+#
+# Multiplexer I2C Chip support
+#
+# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
+# CONFIG_I2C_MUX_GPIO is not set
+# CONFIG_I2C_MUX_GPMUX is not set
+# CONFIG_I2C_MUX_LTC4306 is not set
+# CONFIG_I2C_MUX_PCA9541 is not set
+CONFIG_I2C_MUX_PCA954x=y
+# CONFIG_I2C_MUX_PINCTRL is not set
+# CONFIG_I2C_MUX_REG is not set
+# CONFIG_I2C_DEMUX_PINCTRL is not set
+# CONFIG_I2C_MUX_MLXCPLD is not set
+# end of Multiplexer I2C Chip support
+
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_AMD_MP2 is not set
+# CONFIG_I2C_HIX5HD2 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_ISCH is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_NVIDIA_GPU is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+
+#
+# ACPI drivers
+#
+# CONFIG_I2C_SCMI is not set
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_BCM2835=m
+CONFIG_I2C_BCM_IPROC=y
+CONFIG_I2C_BRCMSTB=y
+# CONFIG_I2C_CADENCE is not set
+# CONFIG_I2C_CBUS_GPIO is not set
+CONFIG_I2C_DESIGNWARE_CORE=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_DESIGNWARE_SLAVE is not set
+# CONFIG_I2C_DESIGNWARE_PCI is not set
+# CONFIG_I2C_EMEV2 is not set
+CONFIG_I2C_EXYNOS5=y
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_IMX=y
+CONFIG_I2C_MESON=y
+# CONFIG_I2C_MT65XX is not set
+CONFIG_I2C_MV64XXX=y
+# CONFIG_I2C_NOMADIK is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_OMAP is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+CONFIG_I2C_PXA=y
+# CONFIG_I2C_PXA_SLAVE is not set
+# CONFIG_I2C_QCOM_GENI is not set
+CONFIG_I2C_QUP=y
+# CONFIG_I2C_RIIC is not set
+CONFIG_I2C_RK3X=y
+CONFIG_I2C_SH_MOBILE=y
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_SPRD is not set
+# CONFIG_I2C_SYNQUACER is not set
+CONFIG_I2C_TEGRA=y
+CONFIG_I2C_TEGRA_BPMP=y
+# CONFIG_I2C_UNIPHIER is not set
+CONFIG_I2C_UNIPHIER_F=y
+# CONFIG_I2C_VERSATILE is not set
+# CONFIG_I2C_THUNDERX is not set
+# CONFIG_I2C_XILINX is not set
+# CONFIG_I2C_XLP9XX is not set
+CONFIG_I2C_RCAR=y
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_CROS_EC_TUNNEL=y
+# CONFIG_I2C_XGENE_SLIMPRO is not set
+CONFIG_I2C_ZX2967=y
+# end of I2C Hardware Bus support
+
+# CONFIG_I2C_STUB is not set
+CONFIG_I2C_SLAVE=y
+# CONFIG_I2C_SLAVE_EEPROM is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# end of I2C support
+
+# CONFIG_I3C is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+CONFIG_SPI_ARMADA_3700=y
+# CONFIG_SPI_AXI_SPI_ENGINE is not set
+CONFIG_SPI_BCM2835=m
+CONFIG_SPI_BCM2835AUX=m
+CONFIG_SPI_BCM_QSPI=y
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_CADENCE is not set
+# CONFIG_SPI_DESIGNWARE is not set
+# CONFIG_SPI_FSL_QUADSPI is not set
+# CONFIG_SPI_HISI_SFC_V3XX is not set
+# CONFIG_SPI_NXP_FLEXSPI is not set
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_FSL_DSPI is not set
+CONFIG_SPI_MESON_SPICC=m
+CONFIG_SPI_MESON_SPIFC=m
+# CONFIG_SPI_MT65XX is not set
+# CONFIG_SPI_MTK_NOR is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_OMAP24XX is not set
+CONFIG_SPI_ORION=y
+CONFIG_SPI_PL022=y
+# CONFIG_SPI_PXA2XX is not set
+CONFIG_SPI_ROCKCHIP=y
+# CONFIG_SPI_RSPI is not set
+# CONFIG_SPI_QCOM_QSPI is not set
+CONFIG_SPI_QUP=y
+# CONFIG_SPI_QCOM_GENI is not set
+CONFIG_SPI_S3C64XX=y
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_SH_MSIOF is not set
+# CONFIG_SPI_SH_HSPI is not set
+# CONFIG_SPI_SIFIVE is not set
+# CONFIG_SPI_SPRD is not set
+# CONFIG_SPI_SPRD_ADI is not set
+# CONFIG_SPI_SUN4I is not set
+# CONFIG_SPI_SUN6I is not set
+# CONFIG_SPI_SYNQUACER is not set
+# CONFIG_SPI_MXIC is not set
+# CONFIG_SPI_TEGRA114 is not set
+# CONFIG_SPI_TEGRA20_SFLASH is not set
+# CONFIG_SPI_TEGRA20_SLINK is not set
+# CONFIG_SPI_THUNDERX is not set
+# CONFIG_SPI_UNIPHIER is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_XLP is not set
+# CONFIG_SPI_ZYNQMP_GQSPI is not set
+
+#
+# SPI Multiplexer support
+#
+# CONFIG_SPI_MUX is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+# CONFIG_SPI_LOOPBACK_TEST is not set
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_SPI_SLAVE is not set
+CONFIG_SPMI=y
+CONFIG_SPMI_MSM_PMIC_ARB=y
+# CONFIG_HSI is not set
+CONFIG_PPS=y
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_DTE=y
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set
+# CONFIG_PTP_1588_CLOCK_IDTCM is not set
+# end of PTP clock support
+
+CONFIG_PINCTRL=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_PINMUX=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_AXP209 is not set
+# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
+CONFIG_PINCTRL_ROCKCHIP=y
+CONFIG_PINCTRL_SINGLE=y
+# CONFIG_PINCTRL_SX150X is not set
+# CONFIG_PINCTRL_STMFX is not set
+CONFIG_PINCTRL_MAX77620=y
+# CONFIG_PINCTRL_RK805 is not set
+# CONFIG_PINCTRL_OCELOT is not set
+CONFIG_PINCTRL_BCM2835=y
+CONFIG_PINCTRL_IPROC_GPIO=y
+CONFIG_PINCTRL_NS2_MUX=y
+# CONFIG_PINCTRL_AS370 is not set
+# CONFIG_PINCTRL_BERLIN_BG4CT is not set
+CONFIG_PINCTRL_MVEBU=y
+CONFIG_PINCTRL_ARMADA_AP806=y
+CONFIG_PINCTRL_ARMADA_CP110=y
+CONFIG_PINCTRL_ARMADA_37XX=y
+CONFIG_PINCTRL_MSM=y
+# CONFIG_PINCTRL_APQ8064 is not set
+# CONFIG_PINCTRL_APQ8084 is not set
+# CONFIG_PINCTRL_IPQ4019 is not set
+# CONFIG_PINCTRL_IPQ8064 is not set
+CONFIG_PINCTRL_IPQ8074=y
+# CONFIG_PINCTRL_IPQ6018 is not set
+# CONFIG_PINCTRL_MSM8660 is not set
+# CONFIG_PINCTRL_MSM8960 is not set
+# CONFIG_PINCTRL_MDM9615 is not set
+# CONFIG_PINCTRL_MSM8X74 is not set
+CONFIG_PINCTRL_MSM8916=y
+# CONFIG_PINCTRL_MSM8976 is not set
+CONFIG_PINCTRL_MSM8994=y
+CONFIG_PINCTRL_MSM8996=y
+CONFIG_PINCTRL_MSM8998=y
+CONFIG_PINCTRL_QCS404=y
+CONFIG_PINCTRL_QDF2XXX=y
+CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
+# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set
+# CONFIG_PINCTRL_SC7180 is not set
+# CONFIG_PINCTRL_SDM660 is not set
+CONFIG_PINCTRL_SDM845=y
+# CONFIG_PINCTRL_SM8150 is not set
+CONFIG_PINCTRL_SAMSUNG=y
+CONFIG_PINCTRL_EXYNOS=y
+CONFIG_PINCTRL_EXYNOS_ARM64=y
+CONFIG_PINCTRL_SH_PFC=y
+CONFIG_PINCTRL_PFC_R8A774A1=y
+CONFIG_PINCTRL_PFC_R8A774C0=y
+CONFIG_PINCTRL_PFC_R8A77965=y
+CONFIG_PINCTRL_PFC_R8A77970=y
+CONFIG_PINCTRL_PFC_R8A77980=y
+CONFIG_PINCTRL_PFC_R8A77990=y
+CONFIG_PINCTRL_PFC_R8A77995=y
+# CONFIG_PINCTRL_SPRD_SC9860 is not set
+CONFIG_PINCTRL_SUNXI=y
+# CONFIG_PINCTRL_SUN4I_A10 is not set
+# CONFIG_PINCTRL_SUN5I is not set
+# CONFIG_PINCTRL_SUN6I_A31 is not set
+# CONFIG_PINCTRL_SUN6I_A31_R is not set
+# CONFIG_PINCTRL_SUN8I_A23 is not set
+# CONFIG_PINCTRL_SUN8I_A33 is not set
+# CONFIG_PINCTRL_SUN8I_A83T is not set
+# CONFIG_PINCTRL_SUN8I_A83T_R is not set
+# CONFIG_PINCTRL_SUN8I_A23_R is not set
+# CONFIG_PINCTRL_SUN8I_H3 is not set
+CONFIG_PINCTRL_SUN8I_H3_R=y
+# CONFIG_PINCTRL_SUN8I_V3S is not set
+# CONFIG_PINCTRL_SUN9I_A80 is not set
+# CONFIG_PINCTRL_SUN9I_A80_R is not set
+CONFIG_PINCTRL_SUN50I_A64=y
+CONFIG_PINCTRL_SUN50I_A64_R=y
+CONFIG_PINCTRL_SUN50I_H5=y
+CONFIG_PINCTRL_SUN50I_H6=y
+CONFIG_PINCTRL_SUN50I_H6_R=y
+CONFIG_PINCTRL_TEGRA=y
+CONFIG_PINCTRL_TEGRA124=y
+CONFIG_PINCTRL_TEGRA210=y
+CONFIG_PINCTRL_TEGRA194=y
+CONFIG_PINCTRL_TEGRA_XUSB=y
+CONFIG_PINCTRL_UNIPHIER=y
+# CONFIG_PINCTRL_UNIPHIER_LD4 is not set
+# CONFIG_PINCTRL_UNIPHIER_PRO4 is not set
+# CONFIG_PINCTRL_UNIPHIER_SLD8 is not set
+# CONFIG_PINCTRL_UNIPHIER_PRO5 is not set
+# CONFIG_PINCTRL_UNIPHIER_PXS2 is not set
+# CONFIG_PINCTRL_UNIPHIER_LD6B is not set
+CONFIG_PINCTRL_UNIPHIER_LD11=y
+CONFIG_PINCTRL_UNIPHIER_LD20=y
+CONFIG_PINCTRL_UNIPHIER_PXS3=y
+
+#
+# MediaTek pinctrl drivers
+#
+CONFIG_EINT_MTK=y
+CONFIG_PINCTRL_MTK=y
+CONFIG_PINCTRL_MTK_MOORE=y
+CONFIG_PINCTRL_MTK_PARIS=y
+CONFIG_PINCTRL_MT2712=y
+CONFIG_PINCTRL_MT6765=y
+CONFIG_PINCTRL_MT6797=y
+CONFIG_PINCTRL_MT7622=y
+CONFIG_PINCTRL_MT8173=y
+CONFIG_PINCTRL_MT8183=y
+CONFIG_PINCTRL_MT8516=y
+# end of MediaTek pinctrl drivers
+
+# CONFIG_PINCTRL_ZX296718 is not set
+CONFIG_PINCTRL_MESON=y
+CONFIG_PINCTRL_MESON_GXBB=y
+CONFIG_PINCTRL_MESON_GXL=y
+CONFIG_PINCTRL_MESON8_PMX=y
+CONFIG_PINCTRL_MESON_AXG=y
+CONFIG_PINCTRL_MESON_AXG_PMX=y
+CONFIG_PINCTRL_MESON_G12A=y
+CONFIG_PINCTRL_MESON_A1=y
+# CONFIG_PINCTRL_EQUILIBRIUM is not set
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIO_ACPI=y
+CONFIG_GPIOLIB_IRQCHIP=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+CONFIG_GPIO_GENERIC=y
+
+#
+# Memory mapped GPIO drivers
+#
+# CONFIG_GPIO_74XX_MMIO is not set
+# CONFIG_GPIO_ALTERA is not set
+# CONFIG_GPIO_AMDPT is not set
+CONFIG_GPIO_RASPBERRYPI_EXP=y
+CONFIG_GPIO_BCM_XGS_IPROC=y
+CONFIG_GPIO_BRCMSTB=y
+# CONFIG_GPIO_CADENCE is not set
+# CONFIG_GPIO_DAVINCI is not set
+CONFIG_GPIO_DWAPB=y
+# CONFIG_GPIO_EIC_SPRD is not set
+# CONFIG_GPIO_EXAR is not set
+# CONFIG_GPIO_FTGPIO010 is not set
+CONFIG_GPIO_GENERIC_PLATFORM=y
+# CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_HLWD is not set
+# CONFIG_GPIO_LOGICVC is not set
+CONFIG_GPIO_MB86S7X=y
+# CONFIG_GPIO_MPC8XXX is not set
+CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_PL061=y
+CONFIG_GPIO_RCAR=y
+# CONFIG_GPIO_SAMA5D2_PIOBU is not set
+# CONFIG_GPIO_SIFIVE is not set
+# CONFIG_GPIO_SPRD is not set
+# CONFIG_GPIO_SYSCON is not set
+CONFIG_GPIO_TEGRA=y
+CONFIG_GPIO_TEGRA186=y
+# CONFIG_GPIO_THUNDERX is not set
+CONFIG_GPIO_UNIPHIER=y
+CONFIG_GPIO_XGENE=y
+CONFIG_GPIO_XGENE_SB=y
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GPIO_XLP is not set
+# CONFIG_GPIO_ZYNQ is not set
+# CONFIG_GPIO_ZX is not set
+# CONFIG_GPIO_AMD_FCH is not set
+# end of Memory mapped GPIO drivers
+
+#
+# I2C GPIO expanders
+#
+# CONFIG_GPIO_ADP5588 is not set
+# CONFIG_GPIO_ADNP is not set
+# CONFIG_GPIO_GW_PLD is not set
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# end of I2C GPIO expanders
+
+#
+# MFD GPIO expanders
+#
+# CONFIG_GPIO_BD9571MWV is not set
+CONFIG_GPIO_MAX77620=y
+# end of MFD GPIO expanders
+
+#
+# PCI GPIO expanders
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_PCI_IDIO_16 is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
+# CONFIG_GPIO_RDC321X is not set
+# end of PCI GPIO expanders
+
+#
+# SPI GPIO expanders
+#
+# CONFIG_GPIO_74X164 is not set
+# CONFIG_GPIO_MAX3191X is not set
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_PISOSR is not set
+# CONFIG_GPIO_XRA1403 is not set
+# end of SPI GPIO expanders
+
+#
+# USB GPIO expanders
+#
+# end of USB GPIO expanders
+
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_AVS=y
+# CONFIG_QCOM_CPR is not set
+CONFIG_ROCKCHIP_IODOMAIN=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_BRCMSTB=y
+# CONFIG_POWER_RESET_GPIO is not set
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+# CONFIG_POWER_RESET_HISI is not set
+CONFIG_POWER_RESET_MSM=y
+# CONFIG_POWER_RESET_QCOM_PON is not set
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_RESTART is not set
+CONFIG_POWER_RESET_VEXPRESS=y
+CONFIG_POWER_RESET_XGENE=y
+CONFIG_POWER_RESET_SYSCON=y
+# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
+# CONFIG_POWER_RESET_ZX is not set
+CONFIG_REBOOT_MODE=y
+CONFIG_SYSCON_REBOOT_MODE=y
+# CONFIG_NVMEM_REBOOT_MODE is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_POWER_SUPPLY_HWMON=y
+# CONFIG_PDA_POWER is not set
+# CONFIG_GENERIC_ADC_BATTERY is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_CHARGER_ADP5061 is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
+CONFIG_BATTERY_SBS=m
+# CONFIG_CHARGER_SBS is not set
+# CONFIG_MANAGER_SBS is not set
+CONFIG_BATTERY_BQ27XXX=y
+CONFIG_BATTERY_BQ27XXX_I2C=y
+# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
+# CONFIG_AXP20X_POWER is not set
+# CONFIG_AXP288_FUEL_GAUGE is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_LT3651 is not set
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+# CONFIG_CHARGER_QCOM_SMBB is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24257 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_CHARGER_RT9455 is not set
+# CONFIG_CHARGER_CROS_USBPD is not set
+# CONFIG_CHARGER_UCS1002 is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+# CONFIG_SENSORS_AD7314 is not set
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM1177 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7310 is not set
+# CONFIG_SENSORS_ADT7410 is not set
+# CONFIG_SENSORS_ADT7411 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_AS370 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
+CONFIG_SENSORS_ARM_SCPI=y
+# CONFIG_SENSORS_ASPEED is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DRIVETEMP is not set
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_FTSTEUTATES is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_G762 is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_HIH6130 is not set
+# CONFIG_SENSORS_IBMAEM is not set
+# CONFIG_SENSORS_IBMPEX is not set
+# CONFIG_SENSORS_IIO_HWMON is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_JC42 is not set
+# CONFIG_SENSORS_POWR1220 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LTC2945 is not set
+# CONFIG_SENSORS_LTC2947_I2C is not set
+# CONFIG_SENSORS_LTC2947_SPI is not set
+# CONFIG_SENSORS_LTC2990 is not set
+# CONFIG_SENSORS_LTC4151 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4222 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4260 is not set
+# CONFIG_SENSORS_LTC4261 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX16065 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX1668 is not set
+# CONFIG_SENSORS_MAX197 is not set
+# CONFIG_SENSORS_MAX31722 is not set
+# CONFIG_SENSORS_MAX31730 is not set
+# CONFIG_SENSORS_MAX6621 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6642 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_MAX6697 is not set
+# CONFIG_SENSORS_MAX31790 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_TC654 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM73 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+CONFIG_SENSORS_LM90=m
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LM95234 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_LM95245 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_NTC_THERMISTOR is not set
+# CONFIG_SENSORS_NCT6683 is not set
+# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_NCT7802 is not set
+# CONFIG_SENSORS_NCT7904 is not set
+# CONFIG_SENSORS_NPCM7XX is not set
+# CONFIG_SENSORS_OCC_P8_I2C is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+# CONFIG_SENSORS_PWM_FAN is not set
+CONFIG_SENSORS_RASPBERRYPI_HWMON=m
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHT3x is not set
+# CONFIG_SENSORS_SHTC1 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC6W201 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH5627 is not set
+# CONFIG_SENSORS_SCH5636 is not set
+# CONFIG_SENSORS_STTS751 is not set
+# CONFIG_SENSORS_SMM665 is not set
+# CONFIG_SENSORS_ADC128D818 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_ADS7871 is not set
+# CONFIG_SENSORS_AMC6821 is not set
+# CONFIG_SENSORS_INA209 is not set
+CONFIG_SENSORS_INA2XX=m
+# CONFIG_SENSORS_INA3221 is not set
+# CONFIG_SENSORS_TC74 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP102 is not set
+# CONFIG_SENSORS_TMP103 is not set
+# CONFIG_SENSORS_TMP108 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+# CONFIG_SENSORS_TMP513 is not set
+# CONFIG_SENSORS_VEXPRESS is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 is not set
+# CONFIG_SENSORS_W83773G is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83795 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_SENSORS_XGENE is not set
+
+#
+# ACPI drivers
+#
+# CONFIG_SENSORS_ACPI_POWER is not set
+CONFIG_THERMAL=y
+# CONFIG_THERMAL_STATISTICS is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_OF=y
+# CONFIG_THERMAL_WRITABLE_TRIPS is not set
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
+CONFIG_THERMAL_GOV_STEP_WISE=y
+# CONFIG_THERMAL_GOV_BANG_BANG is not set
+# CONFIG_THERMAL_GOV_USER_SPACE is not set
+CONFIG_CPU_THERMAL=y
+CONFIG_CPU_FREQ_THERMAL=y
+# CONFIG_CLOCK_THERMAL is not set
+# CONFIG_DEVFREQ_THERMAL is not set
+CONFIG_THERMAL_EMULATION=y
+# CONFIG_THERMAL_MMIO is not set
+CONFIG_HISI_THERMAL=y
+# CONFIG_MAX77620_THERMAL is not set
+# CONFIG_QORIQ_THERMAL is not set
+# CONFIG_SUN8I_THERMAL is not set
+CONFIG_ROCKCHIP_THERMAL=m
+# CONFIG_RCAR_THERMAL is not set
+CONFIG_RCAR_GEN3_THERMAL=y
+CONFIG_ARMADA_THERMAL=y
+CONFIG_MTK_THERMAL=y
+CONFIG_AMLOGIC_THERMAL=y
+
+#
+# Broadcom thermal drivers
+#
+# CONFIG_BCM2711_THERMAL is not set
+CONFIG_BCM2835_THERMAL=m
+CONFIG_BRCMSTB_THERMAL=m
+CONFIG_BCM_NS_THERMAL=y
+CONFIG_BCM_SR_THERMAL=y
+# end of Broadcom thermal drivers
+
+#
+# Samsung thermal drivers
+#
+CONFIG_EXYNOS_THERMAL=y
+# end of Samsung thermal drivers
+
+#
+# NVIDIA Tegra thermal drivers
+#
+# CONFIG_TEGRA_SOCTHERM is not set
+CONFIG_TEGRA_BPMP_THERMAL=m
+# end of NVIDIA Tegra thermal drivers
+
+# CONFIG_GENERIC_ADC_THERMAL is not set
+
+#
+# Qualcomm thermal drivers
+#
+CONFIG_QCOM_TSENS=y
+# CONFIG_QCOM_SPMI_TEMP_ALARM is not set
+# end of Qualcomm thermal drivers
+
+# CONFIG_ZX2967_THERMAL is not set
+CONFIG_UNIPHIER_THERMAL=y
+# CONFIG_SPRD_THERMAL is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+# CONFIG_WATCHDOG_SYSFS is not set
+
+#
+# Watchdog Pretimeout Governors
+#
+# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_GPIO_WATCHDOG is not set
+# CONFIG_WDAT_WDT is not set
+# CONFIG_XILINX_WATCHDOG is not set
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+CONFIG_ARM_SP805_WATCHDOG=y
+# CONFIG_ARM_SBSA_WATCHDOG is not set
+# CONFIG_ARMADA_37XX_WATCHDOG is not set
+# CONFIG_CADENCE_WATCHDOG is not set
+CONFIG_HAVE_S3C2410_WATCHDOG=y
+CONFIG_S3C2410_WATCHDOG=y
+# CONFIG_DW_WATCHDOG is not set
+# CONFIG_K3_RTI_WATCHDOG is not set
+# CONFIG_SUNXI_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX77620_WATCHDOG is not set
+# CONFIG_IMX2_WDT is not set
+# CONFIG_TEGRA_WATCHDOG is not set
+# CONFIG_QCOM_WDT is not set
+CONFIG_MESON_GXBB_WATCHDOG=m
+CONFIG_MESON_WATCHDOG=m
+# CONFIG_MEDIATEK_WATCHDOG is not set
+CONFIG_RENESAS_WDT=y
+# CONFIG_RENESAS_RZAWDT is not set
+# CONFIG_ZX2967_WATCHDOG is not set
+CONFIG_UNIPHIER_WATCHDOG=y
+# CONFIG_SPRD_WATCHDOG is not set
+# CONFIG_PM8916_WATCHDOG is not set
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_I6300ESB_WDT is not set
+CONFIG_BCM2835_WDT=y
+# CONFIG_BCM7038_WDT is not set
+# CONFIG_MEN_A21_WDT is not set
+# CONFIG_XEN_WDT is not set
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+# CONFIG_SSB_DRIVER_GPIO is not set
+CONFIG_BCMA_POSSIBLE=y
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+# CONFIG_BCMA_HOST_SOC is not set
+CONFIG_BCMA_DRIVER_PCI=y
+# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
+# CONFIG_BCMA_DRIVER_GPIO is not set
+# CONFIG_BCMA_DEBUG is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+# CONFIG_MFD_ALTERA_SYSMGR is not set
+# CONFIG_MFD_ACT8945A is not set
+# CONFIG_MFD_SUN4I_GPADC is not set
+# CONFIG_MFD_AS3711 is not set
+# CONFIG_MFD_AS3722 is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_AAT2870_CORE is not set
+# CONFIG_MFD_ATMEL_FLEXCOM is not set
+# CONFIG_MFD_ATMEL_HLCDC is not set
+# CONFIG_MFD_BCM590XX is not set
+CONFIG_MFD_BD9571MWV=y
+# CONFIG_MFD_AC100 is not set
+CONFIG_MFD_AXP20X=y
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_AXP20X_RSB=y
+CONFIG_MFD_CROS_EC_DEV=y
+# CONFIG_MFD_MADERA is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_DA9052_SPI is not set
+# CONFIG_MFD_DA9052_I2C is not set
+# CONFIG_MFD_DA9055 is not set
+# CONFIG_MFD_DA9062 is not set
+# CONFIG_MFD_DA9063 is not set
+# CONFIG_MFD_DA9150 is not set
+# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_EXYNOS_LPASS=m
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+CONFIG_MFD_HI6421_PMIC=y
+CONFIG_MFD_HI655X_PMIC=y
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_IQS62X is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_MAX14577 is not set
+CONFIG_MFD_MAX77620=y
+# CONFIG_MFD_MAX77650 is not set
+# CONFIG_MFD_MAX77686 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX77843 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_CPCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_QCOM_RPM is not set
+CONFIG_MFD_SPMI_PMIC=y
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RC5T583 is not set
+CONFIG_MFD_RK808=y
+# CONFIG_MFD_RN5T618 is not set
+CONFIG_MFD_SEC_CORE=y
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_MFD_SC27XX_PMIC is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_STMPE is not set
+CONFIG_MFD_SUN6I_PRCM=y
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_TI_LMU is not set
+# CONFIG_MFD_PALMAS is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65086 is not set
+# CONFIG_MFD_TPS65090 is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TPS68470 is not set
+# CONFIG_MFD_TI_LP873X is not set
+# CONFIG_MFD_TI_LP87565 is not set
+# CONFIG_MFD_TPS65218 is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TPS80031 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_TWL6040_CORE is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_TQMX86 is not set
+# CONFIG_MFD_VX855 is not set
+# CONFIG_MFD_LOCHNAGAR is not set
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_MFD_ROHM_BD718XX is not set
+# CONFIG_MFD_ROHM_BD70528 is not set
+# CONFIG_MFD_ROHM_BD71828 is not set
+# CONFIG_MFD_STPMIC1 is not set
+# CONFIG_MFD_STMFX is not set
+CONFIG_MFD_VEXPRESS_SYSREG=y
+# CONFIG_RAVE_SP_CORE is not set
+# end of Multifunction device drivers
+
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_88PG86X is not set
+# CONFIG_REGULATOR_ACT8865 is not set
+# CONFIG_REGULATOR_AD5398 is not set
+CONFIG_REGULATOR_AXP20X=y
+CONFIG_REGULATOR_BD9571MWV=y
+# CONFIG_REGULATOR_DA9210 is not set
+# CONFIG_REGULATOR_DA9211 is not set
+CONFIG_REGULATOR_FAN53555=y
+CONFIG_REGULATOR_GPIO=y
+# CONFIG_REGULATOR_HI6421 is not set
+CONFIG_REGULATOR_HI6421V530=y
+CONFIG_REGULATOR_HI655X=y
+# CONFIG_REGULATOR_ISL9305 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8755 is not set
+# CONFIG_REGULATOR_LTC3589 is not set
+# CONFIG_REGULATOR_LTC3676 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+CONFIG_REGULATOR_MAX77620=y
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_MAX8973 is not set
+# CONFIG_REGULATOR_MCP16502 is not set
+# CONFIG_REGULATOR_MP5416 is not set
+# CONFIG_REGULATOR_MP8859 is not set
+# CONFIG_REGULATOR_MP886X is not set
+# CONFIG_REGULATOR_MPQ7920 is not set
+# CONFIG_REGULATOR_MT6311 is not set
+# CONFIG_REGULATOR_PFUZE100 is not set
+# CONFIG_REGULATOR_PV88060 is not set
+# CONFIG_REGULATOR_PV88080 is not set
+# CONFIG_REGULATOR_PV88090 is not set
+CONFIG_REGULATOR_PWM=y
+CONFIG_REGULATOR_QCOM_RPMH=y
+CONFIG_REGULATOR_QCOM_SMD_RPM=y
+CONFIG_REGULATOR_QCOM_SPMI=y
+CONFIG_REGULATOR_RK808=y
+# CONFIG_REGULATOR_S2MPA01 is not set
+CONFIG_REGULATOR_S2MPS11=y
+# CONFIG_REGULATOR_S5M8767 is not set
+# CONFIG_REGULATOR_SLG51000 is not set
+# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
+# CONFIG_REGULATOR_TPS51632 is not set
+# CONFIG_REGULATOR_TPS62360 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+# CONFIG_REGULATOR_TPS6524X is not set
+CONFIG_REGULATOR_UNIPHIER=y
+CONFIG_REGULATOR_VCTRL=m
+# CONFIG_REGULATOR_VEXPRESS is not set
+# CONFIG_REGULATOR_VQMMC_IPQ4019 is not set
+CONFIG_CEC_CORE=m
+CONFIG_RC_CORE=m
+CONFIG_RC_MAP=m
+# CONFIG_LIRC is not set
+CONFIG_RC_DECODERS=y
+# CONFIG_IR_NEC_DECODER is not set
+# CONFIG_IR_RC5_DECODER is not set
+# CONFIG_IR_RC6_DECODER is not set
+# CONFIG_IR_JVC_DECODER is not set
+# CONFIG_IR_SONY_DECODER is not set
+# CONFIG_IR_SANYO_DECODER is not set
+# CONFIG_IR_SHARP_DECODER is not set
+# CONFIG_IR_MCE_KBD_DECODER is not set
+# CONFIG_IR_XMP_DECODER is not set
+# CONFIG_IR_IMON_DECODER is not set
+# CONFIG_IR_RCMM_DECODER is not set
+CONFIG_RC_DEVICES=y
+# CONFIG_RC_ATI_REMOTE is not set
+# CONFIG_IR_ENE is not set
+# CONFIG_IR_HIX5HD2 is not set
+# CONFIG_IR_IMON is not set
+# CONFIG_IR_IMON_RAW is not set
+# CONFIG_IR_MCEUSB is not set
+# CONFIG_IR_ITE_CIR is not set
+# CONFIG_IR_FINTEK is not set
+CONFIG_IR_MESON=m
+# CONFIG_IR_MTK is not set
+# CONFIG_IR_NUVOTON is not set
+# CONFIG_IR_REDRAT3 is not set
+# CONFIG_IR_STREAMZAP is not set
+# CONFIG_IR_IGORPLUGUSB is not set
+# CONFIG_IR_IGUANA is not set
+# CONFIG_IR_TTUSBIR is not set
+# CONFIG_RC_LOOPBACK is not set
+# CONFIG_IR_GPIO_CIR is not set
+# CONFIG_IR_SUNXI is not set
+# CONFIG_IR_SERIAL is not set
+# CONFIG_IR_SIR is not set
+# CONFIG_RC_XBOX_DVD is not set
+# CONFIG_IR_ZX is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+# CONFIG_MEDIA_RADIO_SUPPORT is not set
+# CONFIG_MEDIA_SDR_SUPPORT is not set
+# CONFIG_MEDIA_CEC_SUPPORT is not set
+# CONFIG_MEDIA_CEC_RC is not set
+CONFIG_MEDIA_CONTROLLER=y
+# CONFIG_MEDIA_CONTROLLER_DVB is not set
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L2_I2C=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_DVB_CORE=m
+# CONFIG_DVB_MMAP is not set
+# CONFIG_DVB_NET is not set
+CONFIG_DVB_MAX_ADAPTERS=16
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
+# CONFIG_DVB_ULE_DEBUG is not set
+
+#
+# Media drivers
+#
+CONFIG_MEDIA_USB_SUPPORT=y
+
+#
+# Webcam devices
+#
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+# CONFIG_USB_M5602 is not set
+# CONFIG_USB_STV06XX is not set
+# CONFIG_USB_GL860 is not set
+# CONFIG_USB_GSPCA_BENQ is not set
+# CONFIG_USB_GSPCA_CONEX is not set
+# CONFIG_USB_GSPCA_CPIA1 is not set
+# CONFIG_USB_GSPCA_DTCS033 is not set
+# CONFIG_USB_GSPCA_ETOMS is not set
+# CONFIG_USB_GSPCA_FINEPIX is not set
+# CONFIG_USB_GSPCA_JEILINJ is not set
+# CONFIG_USB_GSPCA_JL2005BCD is not set
+# CONFIG_USB_GSPCA_KINECT is not set
+# CONFIG_USB_GSPCA_KONICA is not set
+# CONFIG_USB_GSPCA_MARS is not set
+# CONFIG_USB_GSPCA_MR97310A is not set
+# CONFIG_USB_GSPCA_NW80X is not set
+# CONFIG_USB_GSPCA_OV519 is not set
+# CONFIG_USB_GSPCA_OV534 is not set
+# CONFIG_USB_GSPCA_OV534_9 is not set
+# CONFIG_USB_GSPCA_PAC207 is not set
+# CONFIG_USB_GSPCA_PAC7302 is not set
+# CONFIG_USB_GSPCA_PAC7311 is not set
+# CONFIG_USB_GSPCA_SE401 is not set
+# CONFIG_USB_GSPCA_SN9C2028 is not set
+# CONFIG_USB_GSPCA_SN9C20X is not set
+# CONFIG_USB_GSPCA_SONIXB is not set
+# CONFIG_USB_GSPCA_SONIXJ is not set
+# CONFIG_USB_GSPCA_SPCA500 is not set
+# CONFIG_USB_GSPCA_SPCA501 is not set
+# CONFIG_USB_GSPCA_SPCA505 is not set
+# CONFIG_USB_GSPCA_SPCA506 is not set
+# CONFIG_USB_GSPCA_SPCA508 is not set
+# CONFIG_USB_GSPCA_SPCA561 is not set
+# CONFIG_USB_GSPCA_SPCA1528 is not set
+# CONFIG_USB_GSPCA_SQ905 is not set
+# CONFIG_USB_GSPCA_SQ905C is not set
+# CONFIG_USB_GSPCA_SQ930X is not set
+# CONFIG_USB_GSPCA_STK014 is not set
+# CONFIG_USB_GSPCA_STK1135 is not set
+# CONFIG_USB_GSPCA_STV0680 is not set
+# CONFIG_USB_GSPCA_SUNPLUS is not set
+# CONFIG_USB_GSPCA_T613 is not set
+# CONFIG_USB_GSPCA_TOPRO is not set
+# CONFIG_USB_GSPCA_TOUPTEK is not set
+# CONFIG_USB_GSPCA_TV8532 is not set
+# CONFIG_USB_GSPCA_VC032X is not set
+# CONFIG_USB_GSPCA_VICAM is not set
+# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
+# CONFIG_USB_GSPCA_ZC3XX is not set
+# CONFIG_USB_PWC is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_USB_ZR364XX is not set
+# CONFIG_USB_STKWEBCAM is not set
+# CONFIG_USB_S2255 is not set
+# CONFIG_VIDEO_USBTV is not set
+
+#
+# Analog TV USB devices
+#
+# CONFIG_VIDEO_PVRUSB2 is not set
+# CONFIG_VIDEO_HDPVR is not set
+# CONFIG_VIDEO_STK1160_COMMON is not set
+# CONFIG_VIDEO_GO7007 is not set
+
+#
+# Analog/digital TV USB devices
+#
+# CONFIG_VIDEO_AU0828 is not set
+# CONFIG_VIDEO_CX231XX is not set
+# CONFIG_VIDEO_TM6000 is not set
+
+#
+# Digital TV USB devices
+#
+# CONFIG_DVB_USB is not set
+# CONFIG_DVB_USB_V2 is not set
+# CONFIG_DVB_TTUSB_BUDGET is not set
+# CONFIG_DVB_TTUSB_DEC is not set
+# CONFIG_SMS_USB_DRV is not set
+# CONFIG_DVB_B2C2_FLEXCOP_USB is not set
+# CONFIG_DVB_AS102 is not set
+
+#
+# Webcam, TV (analog/digital) USB devices
+#
+# CONFIG_VIDEO_EM28XX is not set
+# CONFIG_MEDIA_PCI_SUPPORT is not set
+# CONFIG_V4L_PLATFORM_DRIVERS is not set
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+# CONFIG_VIDEO_MEDIATEK_VPU is not set
+# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
+# CONFIG_VIDEO_SAMSUNG_S5P_G2D is not set
+CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
+CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
+CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
+# CONFIG_VIDEO_SH_VEU is not set
+# CONFIG_VIDEO_RENESAS_FDP1 is not set
+# CONFIG_VIDEO_RENESAS_JPU is not set
+CONFIG_VIDEO_RENESAS_FCP=m
+CONFIG_VIDEO_RENESAS_VSP1=m
+# CONFIG_VIDEO_ROCKCHIP_RGA is not set
+# CONFIG_VIDEO_QCOM_VENUS is not set
+# CONFIG_VIDEO_SUN8I_DEINTERLACE is not set
+# CONFIG_VIDEO_SUN8I_ROTATE is not set
+# CONFIG_V4L_TEST_DRIVERS is not set
+# CONFIG_DVB_PLATFORM_DRIVERS is not set
+
+#
+# Supported MMC/SDIO adapters
+#
+# CONFIG_SMS_SDIO_DRV is not set
+# CONFIG_CYPRESS_FIRMWARE is not set
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_V4L2=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+
+#
+# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
+#
+CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
+CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y
+CONFIG_MEDIA_ATTACH=y
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# I2C drivers hidden by 'Autoselect ancillary drivers'
+#
+
+#
+# Audio decoders, processors and mixers
+#
+
+#
+# RDS decoders
+#
+
+#
+# Video decoders
+#
+
+#
+# Video and audio decoders
+#
+
+#
+# Video encoders
+#
+
+#
+# Camera sensor devices
+#
+
+#
+# Lens drivers
+#
+
+#
+# Flash devices
+#
+
+#
+# Video improvement chips
+#
+
+#
+# Audio/Video compression chips
+#
+
+#
+# SDR tuner chips
+#
+
+#
+# Miscellaneous helper chips
+#
+
+#
+# SPI drivers hidden by 'Autoselect ancillary drivers'
+#
+
+#
+# Media SPI Adapters
+#
+# CONFIG_CXD2880_SPI_DRV is not set
+# end of Media SPI Adapters
+
+CONFIG_MEDIA_TUNER=m
+
+#
+# Tuner drivers hidden by 'Autoselect ancillary drivers'
+#
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+
+#
+# DVB Frontend drivers hidden by 'Autoselect ancillary drivers'
+#
+
+#
+# Multistandard (satellite) frontends
+#
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+
+#
+# DVB-T (terrestrial) frontends
+#
+
+#
+# DVB-C (cable) frontends
+#
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+
+#
+# ISDB-T (terrestrial) frontends
+#
+
+#
+# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
+#
+
+#
+# Digital terrestrial only tuners/PLL
+#
+
+#
+# SEC control devices for DVB-S
+#
+
+#
+# Common Interface (EN50221) controller drivers
+#
+
+#
+# Tools to develop new frontends
+#
+
+#
+# Graphics support
+#
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_TEGRA_HOST1X=m
+CONFIG_TEGRA_HOST1X_FIREWALL=y
+CONFIG_DRM=m
+CONFIG_DRM_MIPI_DSI=y
+# CONFIG_DRM_DP_AUX_CHARDEV is not set
+# CONFIG_DRM_DEBUG_SELFTEST is not set
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_KMS_FB_HELPER=y
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=300
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+# CONFIG_DRM_DP_CEC is not set
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TTM_DMA_PAGE_POOL=y
+CONFIG_DRM_VRAM_HELPER=m
+CONFIG_DRM_TTM_HELPER=m
+CONFIG_DRM_GEM_CMA_HELPER=y
+CONFIG_DRM_KMS_CMA_HELPER=y
+CONFIG_DRM_GEM_SHMEM_HELPER=y
+CONFIG_DRM_VM=y
+CONFIG_DRM_SCHED=m
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
+# end of I2C encoder or helper chips
+
+#
+# ARM devices
+#
+# CONFIG_DRM_HDLCD is not set
+# CONFIG_DRM_MALI_DISPLAY is not set
+# CONFIG_DRM_KOMEDA is not set
+# end of ARM devices
+
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_AMDGPU is not set
+CONFIG_DRM_NOUVEAU=m
+CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT=y
+CONFIG_NOUVEAU_PLATFORM_DRIVER=y
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+# CONFIG_NOUVEAU_DEBUG_MMU is not set
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+# CONFIG_DRM_VGEM is not set
+# CONFIG_DRM_VKMS is not set
+CONFIG_DRM_EXYNOS=m
+
+#
+# CRTCs
+#
+# CONFIG_DRM_EXYNOS_FIMD is not set
+CONFIG_DRM_EXYNOS5433_DECON=y
+CONFIG_DRM_EXYNOS7_DECON=y
+# CONFIG_DRM_EXYNOS_MIXER is not set
+# CONFIG_DRM_EXYNOS_VIDI is not set
+
+#
+# Encoders and Bridges
+#
+CONFIG_DRM_EXYNOS_DSI=y
+# CONFIG_DRM_EXYNOS_DP is not set
+CONFIG_DRM_EXYNOS_HDMI=y
+CONFIG_DRM_EXYNOS_MIC=y
+
+#
+# Sub-drivers
+#
+# CONFIG_DRM_EXYNOS_G2D is not set
+# CONFIG_DRM_EXYNOS_FIMC is not set
+# CONFIG_DRM_EXYNOS_ROTATOR is not set
+# CONFIG_DRM_EXYNOS_SCALER is not set
+CONFIG_DRM_ROCKCHIP=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
+CONFIG_ROCKCHIP_INNO_HDMI=y
+# CONFIG_ROCKCHIP_LVDS is not set
+# CONFIG_ROCKCHIP_RGB is not set
+# CONFIG_ROCKCHIP_RK3066_HDMI is not set
+# CONFIG_DRM_UDL is not set
+# CONFIG_DRM_AST is not set
+# CONFIG_DRM_MGAG200 is not set
+# CONFIG_DRM_CIRRUS_QEMU is not set
+CONFIG_DRM_RCAR_DU=m
+CONFIG_DRM_RCAR_CMM=m
+# CONFIG_DRM_RCAR_DW_HDMI is not set
+CONFIG_DRM_RCAR_LVDS=m
+CONFIG_DRM_RCAR_VSP=y
+CONFIG_DRM_RCAR_WRITEBACK=y
+CONFIG_DRM_SUN4I=m
+CONFIG_DRM_SUN4I_HDMI=m
+# CONFIG_DRM_SUN4I_HDMI_CEC is not set
+CONFIG_DRM_SUN4I_BACKEND=m
+CONFIG_DRM_SUN6I_DSI=m
+CONFIG_DRM_SUN8I_DW_HDMI=m
+CONFIG_DRM_SUN8I_MIXER=m
+CONFIG_DRM_SUN8I_TCON_TOP=m
+# CONFIG_DRM_QXL is not set
+# CONFIG_DRM_BOCHS is not set
+# CONFIG_DRM_VIRTIO_GPU is not set
+CONFIG_DRM_MSM=m
+CONFIG_DRM_MSM_GPU_STATE=y
+# CONFIG_DRM_MSM_REGISTER_LOGGING is not set
+CONFIG_DRM_MSM_HDMI_HDCP=y
+CONFIG_DRM_MSM_DSI=y
+CONFIG_DRM_MSM_DSI_PLL=y
+CONFIG_DRM_MSM_DSI_28NM_PHY=y
+CONFIG_DRM_MSM_DSI_20NM_PHY=y
+CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y
+CONFIG_DRM_MSM_DSI_14NM_PHY=y
+CONFIG_DRM_MSM_DSI_10NM_PHY=y
+CONFIG_DRM_TEGRA=m
+# CONFIG_DRM_TEGRA_DEBUG is not set
+# CONFIG_DRM_TEGRA_STAGING is not set
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
+# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set
+# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_SIMPLE=m
+# CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set
+# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set
+# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
+# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
+# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
+# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
+# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
+# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
+# CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 is not set
+# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
+# CONFIG_DRM_PANEL_TPO_TPG110 is not set
+# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
+# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set
+# end of Display Panels
+
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+
+#
+# Display Interface Bridges
+#
+# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_DISPLAY_CONNECTOR is not set
+# CONFIG_DRM_LVDS_CODEC is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PARADE_PS8622 is not set
+# CONFIG_DRM_PARADE_PS8640 is not set
+# CONFIG_DRM_SIL_SII8620 is not set
+# CONFIG_DRM_SII902X is not set
+# CONFIG_DRM_SII9234 is not set
+# CONFIG_DRM_SIMPLE_BRIDGE is not set
+# CONFIG_DRM_THINE_THC63LVD1024 is not set
+# CONFIG_DRM_TOSHIBA_TC358764 is not set
+# CONFIG_DRM_TOSHIBA_TC358767 is not set
+# CONFIG_DRM_TOSHIBA_TC358768 is not set
+# CONFIG_DRM_TI_TFP410 is not set
+# CONFIG_DRM_TI_SN65DSI86 is not set
+# CONFIG_DRM_TI_TPD12S015 is not set
+# CONFIG_DRM_ANALOGIX_ANX6345 is not set
+# CONFIG_DRM_ANALOGIX_ANX78XX is not set
+CONFIG_DRM_ANALOGIX_DP=m
+CONFIG_DRM_I2C_ADV7511=m
+# CONFIG_DRM_I2C_ADV7511_AUDIO is not set
+CONFIG_DRM_I2C_ADV7511_CEC=y
+CONFIG_DRM_DW_HDMI=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_CEC is not set
+CONFIG_DRM_DW_MIPI_DSI=m
+# end of Display Interface Bridges
+
+CONFIG_DRM_VC4=m
+# CONFIG_DRM_VC4_HDMI_CEC is not set
+# CONFIG_DRM_ETNAVIV is not set
+# CONFIG_DRM_ARCPGU is not set
+CONFIG_DRM_HISI_HIBMC=m
+CONFIG_DRM_HISI_KIRIN=m
+# CONFIG_DRM_MEDIATEK is not set
+# CONFIG_DRM_ZTE is not set
+# CONFIG_DRM_MXSFB is not set
+CONFIG_DRM_MESON=m
+CONFIG_DRM_MESON_DW_HDMI=m
+# CONFIG_DRM_GM12U320 is not set
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_ILI9486 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
+# CONFIG_DRM_PL111 is not set
+# CONFIG_DRM_XEN is not set
+CONFIG_DRM_LIMA=m
+# CONFIG_DRM_PANFROST is not set
+# CONFIG_DRM_TIDSS is not set
+CONFIG_DRM_LEGACY=y
+# CONFIG_DRM_TDFX is not set
+# CONFIG_DRM_R128 is not set
+# CONFIG_DRM_MGA is not set
+# CONFIG_DRM_VIA is not set
+# CONFIG_DRM_SAVAGE is not set
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=m
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_NOTIFY=y
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=y
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+CONFIG_FB_ARMCLCD=y
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_EFI is not set
+# CONFIG_FB_OPENCORES is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_I740 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_SH_MOBILE_LCDC is not set
+# CONFIG_FB_SMSCUFX is not set
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_XILINX is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_XEN_FBDEV_FRONTEND=y
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_SIMPLE is not set
+# CONFIG_FB_SSD1307 is not set
+# CONFIG_FB_SM712 is not set
+# end of Frame buffer Devices
+
+#
+# Backlight & LCD device support
+#
+CONFIG_LCD_CLASS_DEVICE=m
+# CONFIG_LCD_L4F00242T03 is not set
+# CONFIG_LCD_LMS283GF05 is not set
+# CONFIG_LCD_LTV350QV is not set
+# CONFIG_LCD_ILI922X is not set
+# CONFIG_LCD_ILI9320 is not set
+# CONFIG_LCD_TDO24M is not set
+# CONFIG_LCD_VGG2432A4 is not set
+# CONFIG_LCD_PLATFORM is not set
+# CONFIG_LCD_AMS369FG06 is not set
+# CONFIG_LCD_LMS501KF03 is not set
+# CONFIG_LCD_HX8357 is not set
+# CONFIG_LCD_OTM3225A is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PWM=m
+# CONFIG_BACKLIGHT_QCOM_WLED is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+# CONFIG_BACKLIGHT_LM3630A is not set
+# CONFIG_BACKLIGHT_LM3639 is not set
+CONFIG_BACKLIGHT_LP855X=m
+# CONFIG_BACKLIGHT_GPIO is not set
+# CONFIG_BACKLIGHT_LV5207LP is not set
+# CONFIG_BACKLIGHT_BD6107 is not set
+# CONFIG_BACKLIGHT_ARCXCNN is not set
+# CONFIG_BACKLIGHT_LED is not set
+# end of Backlight & LCD device support
+
+CONFIG_VIDEOMODE_HELPERS=y
+CONFIG_HDMI=y
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
+# end of Console display driver support
+
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+# end of Graphics support
+
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM_IEC958=y
+CONFIG_SND_DMAENGINE_PCM=y
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+# CONFIG_SND_OSSEMUL is not set
+CONFIG_SND_PCM_TIMER=y
+# CONFIG_SND_HRTIMER is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_ALOOP is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+CONFIG_SND_PCI=y
+# CONFIG_SND_AD1889 is not set
+# CONFIG_SND_ALS300 is not set
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AW2 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_OXYGEN is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CTXFI is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
+# CONFIG_SND_INDIGOIOX is not set
+# CONFIG_SND_INDIGODJX is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_HDSPM is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_LOLA is not set
+# CONFIG_SND_LX6464ES is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_PCXHR is not set
+# CONFIG_SND_RIPTIDE is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SE6X is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VIRTUOSO is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_YMFPCI is not set
+
+#
+# HD-Audio
+#
+# CONFIG_SND_HDA_INTEL is not set
+# CONFIG_SND_HDA_TEGRA is not set
+# end of HD-Audio
+
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+# CONFIG_SND_USB_AUDIO is not set
+# CONFIG_SND_USB_UA101 is not set
+# CONFIG_SND_USB_CAIAQ is not set
+# CONFIG_SND_USB_6FIRE is not set
+# CONFIG_SND_USB_HIFACE is not set
+# CONFIG_SND_BCD2000 is not set
+# CONFIG_SND_USB_POD is not set
+# CONFIG_SND_USB_PODHD is not set
+# CONFIG_SND_USB_TONEPORT is not set
+# CONFIG_SND_USB_VARIAX is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+# CONFIG_SND_SOC_AMD_ACP is not set
+# CONFIG_SND_ATMEL_SOC is not set
+CONFIG_SND_BCM2835_SOC_I2S=m
+# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
+# CONFIG_SND_DESIGNWARE_I2S is not set
+
+#
+# SoC Audio for Freescale CPUs
+#
+
+#
+# Common SoC Audio options for Freescale CPUs:
+#
+# CONFIG_SND_SOC_FSL_ASRC is not set
+# CONFIG_SND_SOC_FSL_SAI is not set
+# CONFIG_SND_SOC_FSL_AUDMIX is not set
+# CONFIG_SND_SOC_FSL_SSI is not set
+# CONFIG_SND_SOC_FSL_SPDIF is not set
+# CONFIG_SND_SOC_FSL_ESAI is not set
+# CONFIG_SND_SOC_FSL_MICFIL is not set
+# CONFIG_SND_SOC_IMX_AUDMUX is not set
+# end of SoC Audio for Freescale CPUs
+
+# CONFIG_SND_I2S_HI6210_I2S is not set
+# CONFIG_SND_KIRKWOOD_SOC is not set
+# CONFIG_SND_SOC_IMG is not set
+# CONFIG_SND_SOC_MT2701 is not set
+# CONFIG_SND_SOC_MT6797 is not set
+# CONFIG_SND_SOC_MT8173 is not set
+# CONFIG_SND_SOC_MT8183 is not set
+# CONFIG_SND_SOC_MTK_BTCVSD is not set
+
+#
+# ASoC support for Amlogic platforms
+#
+# CONFIG_SND_MESON_AIU is not set
+CONFIG_SND_MESON_AXG_FIFO=m
+CONFIG_SND_MESON_AXG_FRDDR=m
+CONFIG_SND_MESON_AXG_TODDR=m
+CONFIG_SND_MESON_AXG_TDM_FORMATTER=m
+CONFIG_SND_MESON_AXG_TDM_INTERFACE=m
+CONFIG_SND_MESON_AXG_TDMIN=m
+CONFIG_SND_MESON_AXG_TDMOUT=m
+CONFIG_SND_MESON_AXG_SOUND_CARD=m
+CONFIG_SND_MESON_AXG_SPDIFOUT=m
+CONFIG_SND_MESON_AXG_SPDIFIN=m
+CONFIG_SND_MESON_AXG_PDM=m
+CONFIG_SND_MESON_CARD_UTILS=m
+CONFIG_SND_MESON_CODEC_GLUE=m
+# CONFIG_SND_MESON_GX_SOUND_CARD is not set
+# CONFIG_SND_MESON_G12A_TOACODEC is not set
+CONFIG_SND_MESON_G12A_TOHDMITX=m
+# CONFIG_SND_SOC_MESON_T9015 is not set
+# end of ASoC support for Amlogic platforms
+
+# CONFIG_SND_SOC_QCOM is not set
+CONFIG_SND_SOC_ROCKCHIP=m
+CONFIG_SND_SOC_ROCKCHIP_I2S=m
+# CONFIG_SND_SOC_ROCKCHIP_PDM is not set
+CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
+# CONFIG_SND_SOC_ROCKCHIP_MAX98090 is not set
+CONFIG_SND_SOC_ROCKCHIP_RT5645=m
+# CONFIG_SND_SOC_RK3288_HDMI_ANALOG is not set
+CONFIG_SND_SOC_RK3399_GRU_SOUND=m
+CONFIG_SND_SOC_SAMSUNG=y
+# CONFIG_SND_SAMSUNG_PCM is not set
+# CONFIG_SND_SAMSUNG_SPDIF is not set
+# CONFIG_SND_SAMSUNG_I2S is not set
+# CONFIG_SND_SOC_SAMSUNG_SMDK_WM8994 is not set
+# CONFIG_SND_SOC_SAMSUNG_SMDK_SPDIF is not set
+# CONFIG_SND_SOC_SMDK_WM8994_PCM is not set
+# CONFIG_SND_SOC_SNOW is not set
+# CONFIG_SND_SOC_ODROID is not set
+# CONFIG_SND_SOC_ARNDALE is not set
+
+#
+# SoC Audio support for Renesas SoCs
+#
+# CONFIG_SND_SOC_SH4_FSI is not set
+CONFIG_SND_SOC_RCAR=m
+# end of SoC Audio support for Renesas SoCs
+
+# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
+# CONFIG_SND_SOC_SPRD is not set
+
+#
+# STMicroelectronics STM32 SOC audio support
+#
+# end of STMicroelectronics STM32 SOC audio support
+
+#
+# Allwinner SoC Audio support
+#
+# CONFIG_SND_SUN4I_CODEC is not set
+# CONFIG_SND_SUN8I_CODEC is not set
+# CONFIG_SND_SUN8I_CODEC_ANALOG is not set
+# CONFIG_SND_SUN50I_CODEC_ANALOG is not set
+# CONFIG_SND_SUN4I_I2S is not set
+# CONFIG_SND_SUN4I_SPDIF is not set
+# end of Allwinner SoC Audio support
+
+# CONFIG_SND_SOC_TEGRA is not set
+# CONFIG_SND_SOC_UNIPHIER is not set
+# CONFIG_SND_SOC_XILINX_I2S is not set
+# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
+# CONFIG_SND_SOC_XILINX_SPDIF is not set
+# CONFIG_SND_SOC_XTFPGA_I2S is not set
+# CONFIG_ZX_SPDIF is not set
+# CONFIG_ZX_I2S is not set
+# CONFIG_ZX_TDM is not set
+CONFIG_SND_SOC_I2C_AND_SPI=y
+
+#
+# CODEC drivers
+#
+# CONFIG_SND_SOC_AC97_CODEC is not set
+# CONFIG_SND_SOC_ADAU1701 is not set
+# CONFIG_SND_SOC_ADAU1761_I2C is not set
+# CONFIG_SND_SOC_ADAU1761_SPI is not set
+# CONFIG_SND_SOC_ADAU7002 is not set
+# CONFIG_SND_SOC_ADAU7118_HW is not set
+# CONFIG_SND_SOC_ADAU7118_I2C is not set
+# CONFIG_SND_SOC_AK4104 is not set
+# CONFIG_SND_SOC_AK4118 is not set
+# CONFIG_SND_SOC_AK4458 is not set
+# CONFIG_SND_SOC_AK4554 is not set
+CONFIG_SND_SOC_AK4613=m
+# CONFIG_SND_SOC_AK4642 is not set
+# CONFIG_SND_SOC_AK5386 is not set
+# CONFIG_SND_SOC_AK5558 is not set
+# CONFIG_SND_SOC_ALC5623 is not set
+# CONFIG_SND_SOC_BD28623 is not set
+# CONFIG_SND_SOC_BT_SCO is not set
+# CONFIG_SND_SOC_CROS_EC_CODEC is not set
+# CONFIG_SND_SOC_CS35L32 is not set
+# CONFIG_SND_SOC_CS35L33 is not set
+# CONFIG_SND_SOC_CS35L34 is not set
+# CONFIG_SND_SOC_CS35L35 is not set
+# CONFIG_SND_SOC_CS35L36 is not set
+# CONFIG_SND_SOC_CS42L42 is not set
+# CONFIG_SND_SOC_CS42L51_I2C is not set
+# CONFIG_SND_SOC_CS42L52 is not set
+# CONFIG_SND_SOC_CS42L56 is not set
+# CONFIG_SND_SOC_CS42L73 is not set
+# CONFIG_SND_SOC_CS4265 is not set
+# CONFIG_SND_SOC_CS4270 is not set
+# CONFIG_SND_SOC_CS4271_I2C is not set
+# CONFIG_SND_SOC_CS4271_SPI is not set
+# CONFIG_SND_SOC_CS42XX8_I2C is not set
+# CONFIG_SND_SOC_CS43130 is not set
+# CONFIG_SND_SOC_CS4341 is not set
+# CONFIG_SND_SOC_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+# CONFIG_SND_SOC_CX2072X is not set
+# CONFIG_SND_SOC_DA7213 is not set
+CONFIG_SND_SOC_DA7219=m
+CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_ES7134=m
+CONFIG_SND_SOC_ES7241=m
+# CONFIG_SND_SOC_ES8316 is not set
+# CONFIG_SND_SOC_ES8328_I2C is not set
+# CONFIG_SND_SOC_ES8328_SPI is not set
+# CONFIG_SND_SOC_GTM601 is not set
+# CONFIG_SND_SOC_INNO_RK3036 is not set
+# CONFIG_SND_SOC_MAX98088 is not set
+CONFIG_SND_SOC_MAX98357A=m
+# CONFIG_SND_SOC_MAX98504 is not set
+# CONFIG_SND_SOC_MAX9867 is not set
+# CONFIG_SND_SOC_MAX98927 is not set
+# CONFIG_SND_SOC_MAX98373 is not set
+# CONFIG_SND_SOC_MAX9860 is not set
+# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
+# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
+# CONFIG_SND_SOC_PCM1681 is not set
+# CONFIG_SND_SOC_PCM1789_I2C is not set
+# CONFIG_SND_SOC_PCM179X_I2C is not set
+# CONFIG_SND_SOC_PCM179X_SPI is not set
+# CONFIG_SND_SOC_PCM186X_I2C is not set
+# CONFIG_SND_SOC_PCM186X_SPI is not set
+# CONFIG_SND_SOC_PCM3060_I2C is not set
+# CONFIG_SND_SOC_PCM3060_SPI is not set
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
+# CONFIG_SND_SOC_PCM512x_I2C is not set
+# CONFIG_SND_SOC_PCM512x_SPI is not set
+# CONFIG_SND_SOC_RK3328 is not set
+CONFIG_SND_SOC_RL6231=m
+CONFIG_SND_SOC_RT5514=m
+CONFIG_SND_SOC_RT5514_SPI=m
+# CONFIG_SND_SOC_RT5616 is not set
+# CONFIG_SND_SOC_RT5631 is not set
+CONFIG_SND_SOC_RT5645=m
+# CONFIG_SND_SOC_SGTL5000 is not set
+# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
+# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
+CONFIG_SND_SOC_SPDIF=m
+# CONFIG_SND_SOC_SSM2305 is not set
+# CONFIG_SND_SOC_SSM2602_SPI is not set
+# CONFIG_SND_SOC_SSM2602_I2C is not set
+# CONFIG_SND_SOC_SSM4567 is not set
+# CONFIG_SND_SOC_STA32X is not set
+# CONFIG_SND_SOC_STA350 is not set
+# CONFIG_SND_SOC_STI_SAS is not set
+# CONFIG_SND_SOC_TAS2552 is not set
+# CONFIG_SND_SOC_TAS2562 is not set
+# CONFIG_SND_SOC_TAS2770 is not set
+# CONFIG_SND_SOC_TAS5086 is not set
+CONFIG_SND_SOC_TAS571X=m
+# CONFIG_SND_SOC_TAS5720 is not set
+# CONFIG_SND_SOC_TAS6424 is not set
+# CONFIG_SND_SOC_TDA7419 is not set
+# CONFIG_SND_SOC_TFA9879 is not set
+# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC31XX is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC3X is not set
+# CONFIG_SND_SOC_TLV320ADCX140 is not set
+# CONFIG_SND_SOC_TS3A227E is not set
+# CONFIG_SND_SOC_TSCS42XX is not set
+# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
+# CONFIG_SND_SOC_WM8510 is not set
+# CONFIG_SND_SOC_WM8523 is not set
+# CONFIG_SND_SOC_WM8524 is not set
+# CONFIG_SND_SOC_WM8580 is not set
+# CONFIG_SND_SOC_WM8711 is not set
+# CONFIG_SND_SOC_WM8728 is not set
+# CONFIG_SND_SOC_WM8731 is not set
+# CONFIG_SND_SOC_WM8737 is not set
+# CONFIG_SND_SOC_WM8741 is not set
+# CONFIG_SND_SOC_WM8750 is not set
+# CONFIG_SND_SOC_WM8753 is not set
+# CONFIG_SND_SOC_WM8770 is not set
+# CONFIG_SND_SOC_WM8776 is not set
+# CONFIG_SND_SOC_WM8782 is not set
+# CONFIG_SND_SOC_WM8804_I2C is not set
+# CONFIG_SND_SOC_WM8804_SPI is not set
+# CONFIG_SND_SOC_WM8903 is not set
+# CONFIG_SND_SOC_WM8904 is not set
+# CONFIG_SND_SOC_WM8960 is not set
+# CONFIG_SND_SOC_WM8962 is not set
+# CONFIG_SND_SOC_WM8974 is not set
+# CONFIG_SND_SOC_WM8978 is not set
+# CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_ZX_AUD96P22 is not set
+# CONFIG_SND_SOC_MAX9759 is not set
+# CONFIG_SND_SOC_MT6351 is not set
+# CONFIG_SND_SOC_MT6358 is not set
+# CONFIG_SND_SOC_MT6660 is not set
+# CONFIG_SND_SOC_NAU8540 is not set
+# CONFIG_SND_SOC_NAU8810 is not set
+# CONFIG_SND_SOC_NAU8822 is not set
+# CONFIG_SND_SOC_NAU8824 is not set
+# CONFIG_SND_SOC_TPA6130A2 is not set
+# end of CODEC drivers
+
+CONFIG_SND_SIMPLE_CARD_UTILS=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_SND_AUDIO_GRAPH_CARD=m
+# CONFIG_SND_XEN_FRONTEND is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+# CONFIG_HID_BATTERY_STRENGTH is not set
+# CONFIG_HIDRAW is not set
+# CONFIG_UHID is not set
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=y
+# CONFIG_HID_ACCUTOUCH is not set
+# CONFIG_HID_ACRUX is not set
+CONFIG_HID_APPLE=y
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_ASUS is not set
+# CONFIG_HID_AUREAL is not set
+CONFIG_HID_BELKIN=y
+# CONFIG_HID_BETOP_FF is not set
+# CONFIG_HID_BIGBEN_FF is not set
+CONFIG_HID_CHERRY=y
+CONFIG_HID_CHICONY=y
+# CONFIG_HID_CORSAIR is not set
+# CONFIG_HID_COUGAR is not set
+# CONFIG_HID_MACALLY is not set
+# CONFIG_HID_PRODIKEYS is not set
+# CONFIG_HID_CMEDIA is not set
+# CONFIG_HID_CREATIVE_SB0540 is not set
+CONFIG_HID_CYPRESS=y
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELAN is not set
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_ELO is not set
+CONFIG_HID_EZKEY=y
+# CONFIG_HID_GEMBIRD is not set
+# CONFIG_HID_GFRM is not set
+# CONFIG_HID_GLORIOUS is not set
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_GOOGLE_HAMMER is not set
+# CONFIG_HID_GT683R is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_VIEWSONIC is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+CONFIG_HID_ITE=y
+# CONFIG_HID_JABRA is not set
+# CONFIG_HID_TWINHAN is not set
+CONFIG_HID_KENSINGTON=y
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LED is not set
+# CONFIG_HID_LENOVO is not set
+CONFIG_HID_LOGITECH=y
+# CONFIG_HID_LOGITECH_HIDPP is not set
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MALTRON is not set
+# CONFIG_HID_MAYFLASH is not set
+CONFIG_HID_REDRAGON=y
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MONTEREY=y
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NTI is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PLANTRONICS is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEAM is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_UDRAW_PS3 is not set
+# CONFIG_HID_U2FZERO is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_WIIMOTE is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+# CONFIG_HID_ALPS is not set
+# CONFIG_HID_MCP2221 is not set
+# end of Special HID drivers
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+# end of USB HID support
+
+#
+# I2C HID support
+#
+CONFIG_I2C_HID=m
+# end of I2C HID support
+# end of HID support
+
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+# CONFIG_USB_LED_TRIG is not set
+CONFIG_USB_ULPI_BUS=y
+CONFIG_USB_CONN_GPIO=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_PCI=y
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_OTG=y
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_OTG_FSM is not set
+# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+# CONFIG_USB_MON is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+CONFIG_USB_XHCI_HCD=y
+# CONFIG_USB_XHCI_DBGCAP is not set
+CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_XHCI_PLATFORM=y
+# CONFIG_USB_XHCI_HISTB is not set
+# CONFIG_USB_XHCI_MTK is not set
+# CONFIG_USB_XHCI_MVEBU is not set
+CONFIG_USB_XHCI_RCAR=y
+CONFIG_USB_XHCI_TEGRA=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_PCI=y
+# CONFIG_USB_EHCI_FSL is not set
+CONFIG_USB_EHCI_HCD_ORION=y
+# CONFIG_USB_EHCI_TEGRA is not set
+CONFIG_USB_EHCI_EXYNOS=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_FOTG210_HCD is not set
+# CONFIG_USB_MAX3421_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PCI=y
+CONFIG_USB_OHCI_EXYNOS=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_RENESAS_USBHS_HCD is not set
+# CONFIG_USB_HCD_BCMA is not set
+# CONFIG_USB_HCD_SSB is not set
+# CONFIG_USB_HCD_TEST_MODE is not set
+CONFIG_USB_RENESAS_USBHS=m
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_REALTEK is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_STORAGE_ENE_UB6250 is not set
+# CONFIG_USB_UAS is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USBIP_CORE is not set
+# CONFIG_USB_CDNS3 is not set
+# CONFIG_USB_MTU3 is not set
+CONFIG_USB_MUSB_HDRC=y
+# CONFIG_USB_MUSB_HOST is not set
+# CONFIG_USB_MUSB_GADGET is not set
+CONFIG_USB_MUSB_DUAL_ROLE=y
+
+#
+# Platform Glue Layer
+#
+CONFIG_USB_MUSB_SUNXI=y
+# CONFIG_USB_MUSB_MEDIATEK is not set
+
+#
+# MUSB DMA mode
+#
+# CONFIG_MUSB_PIO_ONLY is not set
+CONFIG_USB_DWC3=y
+# CONFIG_USB_DWC3_ULPI is not set
+# CONFIG_USB_DWC3_HOST is not set
+# CONFIG_USB_DWC3_GADGET is not set
+CONFIG_USB_DWC3_DUAL_ROLE=y
+
+#
+# Platform Glue Driver Support
+#
+CONFIG_USB_DWC3_EXYNOS=y
+CONFIG_USB_DWC3_PCI=y
+CONFIG_USB_DWC3_HAPS=y
+CONFIG_USB_DWC3_KEYSTONE=y
+CONFIG_USB_DWC3_MESON_G12A=y
+CONFIG_USB_DWC3_OF_SIMPLE=y
+CONFIG_USB_DWC3_QCOM=y
+CONFIG_USB_DWC2=y
+# CONFIG_USB_DWC2_HOST is not set
+
+#
+# Gadget/Dual-role mode requires USB Gadget support to be enabled
+#
+# CONFIG_USB_DWC2_PERIPHERAL is not set
+CONFIG_USB_DWC2_DUAL_ROLE=y
+# CONFIG_USB_DWC2_PCI is not set
+# CONFIG_USB_DWC2_DEBUG is not set
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_OF=y
+CONFIG_USB_CHIPIDEA_PCI=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_ISP1760=y
+CONFIG_USB_ISP1760_HCD=y
+CONFIG_USB_ISP1761_UDC=y
+# CONFIG_USB_ISP1760_HOST_ROLE is not set
+# CONFIG_USB_ISP1760_GADGET_ROLE is not set
+CONFIG_USB_ISP1760_DUAL_ROLE=y
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_APPLE_MFI_FASTCHARGE is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_EHSET_TEST_FIXTURE is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+# CONFIG_USB_EZUSB_FX2 is not set
+# CONFIG_USB_HUB_USB251XB is not set
+CONFIG_USB_HSIC_USB3503=y
+# CONFIG_USB_HSIC_USB4604 is not set
+# CONFIG_USB_LINK_LAYER_TEST is not set
+# CONFIG_USB_CHAOSKEY is not set
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=y
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ISP1301 is not set
+CONFIG_USB_TEGRA_PHY=y
+CONFIG_USB_ULPI=y
+CONFIG_USB_ULPI_VIEWPORT=y
+# end of USB Physical Layer drivers
+
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+
+#
+# USB Peripheral Controller
+#
+# CONFIG_USB_FOTG210_UDC is not set
+# CONFIG_USB_GR_UDC is not set
+# CONFIG_USB_R8A66597 is not set
+CONFIG_USB_RENESAS_USBHS_UDC=m
+CONFIG_USB_RENESAS_USB3=m
+# CONFIG_USB_PXA27X is not set
+# CONFIG_USB_MV_UDC is not set
+# CONFIG_USB_MV_U3D is not set
+CONFIG_USB_SNP_CORE=y
+CONFIG_USB_SNP_UDC_PLAT=y
+# CONFIG_USB_M66592 is not set
+CONFIG_USB_BDC_UDC=y
+
+#
+# Platform Support
+#
+CONFIG_USB_BDC_PCI=y
+# CONFIG_USB_AMD5536UDC is not set
+# CONFIG_USB_NET2272 is not set
+# CONFIG_USB_NET2280 is not set
+# CONFIG_USB_GOKU is not set
+# CONFIG_USB_EG20T is not set
+# CONFIG_USB_GADGET_XILINX is not set
+# CONFIG_USB_MAX3420_UDC is not set
+# CONFIG_USB_TEGRA_XUDC is not set
+# CONFIG_USB_DUMMY_HCD is not set
+# end of USB Peripheral Controller
+
+# CONFIG_USB_CONFIGFS is not set
+
+#
+# USB Gadget precomposed configurations
+#
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_ETH is not set
+# CONFIG_USB_G_NCM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FUNCTIONFS is not set
+# CONFIG_USB_MASS_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_ACM_MS is not set
+# CONFIG_USB_G_MULTI is not set
+# CONFIG_USB_G_HID is not set
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_G_WEBCAM is not set
+# CONFIG_USB_RAW_GADGET is not set
+# end of USB Gadget precomposed configurations
+
+# CONFIG_TYPEC is not set
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_MMC=y
+CONFIG_PWRSEQ_EMMC=y
+# CONFIG_PWRSEQ_SD8787 is not set
+CONFIG_PWRSEQ_SIMPLE=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=32
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_ARMMMCI=y
+CONFIG_MMC_QCOM_DML=y
+CONFIG_MMC_STM32_SDMMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+# CONFIG_MMC_SDHCI_PCI is not set
+CONFIG_MMC_SDHCI_ACPI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_OF_ARASAN=y
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
+# CONFIG_MMC_SDHCI_OF_AT91 is not set
+CONFIG_MMC_SDHCI_OF_ESDHC=y
+# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
+CONFIG_MMC_SDHCI_CADENCE=y
+CONFIG_MMC_SDHCI_TEGRA=y
+# CONFIG_MMC_SDHCI_PXAV3 is not set
+CONFIG_MMC_SDHCI_F_SDH30=y
+# CONFIG_MMC_SDHCI_MILBEAUT is not set
+CONFIG_MMC_SDHCI_IPROC=y
+CONFIG_MMC_MESON_GX=y
+# CONFIG_MMC_MESON_MX_SDIO is not set
+CONFIG_MMC_SDHCI_MSM=y
+# CONFIG_MMC_TIFM_SD is not set
+CONFIG_MMC_SPI=y
+# CONFIG_MMC_SDHCI_SPRD is not set
+CONFIG_MMC_TMIO_CORE=y
+CONFIG_MMC_SDHI=y
+# CONFIG_MMC_SDHI_SYS_DMAC is not set
+CONFIG_MMC_SDHI_INTERNAL_DMAC=y
+CONFIG_MMC_UNIPHIER=y
+# CONFIG_MMC_CB710 is not set
+# CONFIG_MMC_VIA_SDMMC is not set
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_PLTFM=y
+# CONFIG_MMC_DW_BLUEFIELD is not set
+CONFIG_MMC_DW_EXYNOS=y
+CONFIG_MMC_DW_HI3798CV200=y
+CONFIG_MMC_DW_K3=y
+# CONFIG_MMC_DW_PCI is not set
+CONFIG_MMC_DW_ROCKCHIP=y
+# CONFIG_MMC_DW_ZX is not set
+# CONFIG_MMC_SH_MMCIF is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MMC_USDHI6ROL0 is not set
+CONFIG_MMC_SUNXI=y
+CONFIG_MMC_CQHCI=y
+# CONFIG_MMC_HSQ is not set
+# CONFIG_MMC_TOSHIBA_PCI is not set
+CONFIG_MMC_BCM2835=y
+# CONFIG_MMC_MTK is not set
+CONFIG_MMC_SDHCI_BRCMSTB=y
+CONFIG_MMC_SDHCI_XENON=y
+# CONFIG_MMC_SDHCI_OMAP is not set
+# CONFIG_MMC_SDHCI_AM654 is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+# CONFIG_LEDS_CLASS_FLASH is not set
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_AN30259A is not set
+# CONFIG_LEDS_BCM6328 is not set
+# CONFIG_LEDS_BCM6358 is not set
+# CONFIG_LEDS_CR0014114 is not set
+# CONFIG_LEDS_EL15203000 is not set
+# CONFIG_LEDS_LM3530 is not set
+# CONFIG_LEDS_LM3532 is not set
+# CONFIG_LEDS_LM3642 is not set
+# CONFIG_LEDS_LM3692X is not set
+# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_GPIO=y
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP3952 is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_LP5562 is not set
+# CONFIG_LEDS_LP8501 is not set
+# CONFIG_LEDS_LP8860 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+CONFIG_LEDS_PWM=y
+# CONFIG_LEDS_REGULATOR is not set
+# CONFIG_LEDS_BD2802 is not set
+# CONFIG_LEDS_LT3593 is not set
+# CONFIG_LEDS_TCA6507 is not set
+# CONFIG_LEDS_TLC591XX is not set
+# CONFIG_LEDS_LM355x is not set
+# CONFIG_LEDS_IS31FL319X is not set
+# CONFIG_LEDS_IS31FL32XX is not set
+
+#
+# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
+#
+# CONFIG_LEDS_BLINKM is not set
+CONFIG_LEDS_SYSCON=y
+# CONFIG_LEDS_MLXREG is not set
+# CONFIG_LEDS_USER is not set
+# CONFIG_LEDS_SPI_BYTE is not set
+# CONFIG_LEDS_TI_LMU_COMMON is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+# CONFIG_LEDS_TRIGGER_TIMER is not set
+# CONFIG_LEDS_TRIGGER_ONESHOT is not set
+CONFIG_LEDS_TRIGGER_DISK=y
+# CONFIG_LEDS_TRIGGER_MTD is not set
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+CONFIG_LEDS_TRIGGER_CPU=y
+# CONFIG_LEDS_TRIGGER_ACTIVITY is not set
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+CONFIG_LEDS_TRIGGER_PANIC=y
+# CONFIG_LEDS_TRIGGER_NETDEV is not set
+# CONFIG_LEDS_TRIGGER_PATTERN is not set
+# CONFIG_LEDS_TRIGGER_AUDIO is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC_SUPPORT=y
+CONFIG_EDAC=y
+CONFIG_EDAC_LEGACY_SYSFS=y
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
+# CONFIG_EDAC_LAYERSCAPE is not set
+# CONFIG_EDAC_THUNDERX is not set
+# CONFIG_EDAC_ALTERA is not set
+# CONFIG_EDAC_SYNOPSYS is not set
+# CONFIG_EDAC_XGENE is not set
+# CONFIG_EDAC_DMC520 is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_NVMEM=y
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_ABB5ZES3 is not set
+# CONFIG_RTC_DRV_ABEOZ9 is not set
+# CONFIG_RTC_DRV_ABX80X is not set
+CONFIG_RTC_DRV_BRCMSTB=y
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_HYM8563 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+CONFIG_RTC_DRV_MAX77686=y
+CONFIG_RTC_DRV_RK808=m
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_ISL12026 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8523 is not set
+# CONFIG_RTC_DRV_PCF85063 is not set
+# CONFIG_RTC_DRV_PCF85363 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8010 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3028 is not set
+# CONFIG_RTC_DRV_RV8803 is not set
+CONFIG_RTC_DRV_S5M=y
+# CONFIG_RTC_DRV_SD3078 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1302 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1343 is not set
+# CONFIG_RTC_DRV_DS1347 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6916 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+# CONFIG_RTC_DRV_RX6110 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+# CONFIG_RTC_DRV_MCP795 is not set
+CONFIG_RTC_I2C_AND_SPI=y
+
+#
+# SPI and I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS3232=y
+CONFIG_RTC_DRV_DS3232_HWMON=y
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1685_FAMILY is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+CONFIG_RTC_DRV_EFI=y
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_ZYNQMP is not set
+CONFIG_RTC_DRV_CROS_EC=y
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_FSL_FTM_ALARM is not set
+CONFIG_RTC_DRV_MESON_VRTC=m
+CONFIG_HAVE_S3C_RTC=y
+CONFIG_RTC_DRV_S3C=y
+# CONFIG_RTC_DRV_SH is not set
+# CONFIG_RTC_DRV_PL030 is not set
+CONFIG_RTC_DRV_PL031=y
+CONFIG_RTC_DRV_SUN6I=y
+# CONFIG_RTC_DRV_MV is not set
+CONFIG_RTC_DRV_ARMADA38X=y
+# CONFIG_RTC_DRV_CADENCE is not set
+# CONFIG_RTC_DRV_FTRTC010 is not set
+# CONFIG_RTC_DRV_PM8XXX is not set
+CONFIG_RTC_DRV_TEGRA=y
+# CONFIG_RTC_DRV_MT2712 is not set
+# CONFIG_RTC_DRV_MT7622 is not set
+CONFIG_RTC_DRV_XGENE=y
+# CONFIG_RTC_DRV_R7301 is not set
+
+#
+# HID Sensor RTC drivers
+#
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DMA_ACPI=y
+CONFIG_DMA_OF=y
+# CONFIG_ALTERA_MSGDMA is not set
+# CONFIG_AMBA_PL08X is not set
+# CONFIG_AXI_DMAC is not set
+CONFIG_BCM_SBA_RAID=m
+CONFIG_DMA_BCM2835=m
+# CONFIG_DMA_SUN6I is not set
+# CONFIG_DW_AXI_DMAC is not set
+# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_QDMA is not set
+# CONFIG_HISI_DMA is not set
+# CONFIG_INTEL_IDMA64 is not set
+CONFIG_K3_DMA=y
+# CONFIG_MV_XOR is not set
+CONFIG_MV_XOR_V2=y
+CONFIG_PL330_DMA=y
+# CONFIG_PLX_DMA is not set
+# CONFIG_SPRD_DMA is not set
+CONFIG_TEGRA20_APB_DMA=y
+# CONFIG_TEGRA210_ADMA is not set
+# CONFIG_UNIPHIER_MDMAC is not set
+# CONFIG_UNIPHIER_XDMAC is not set
+# CONFIG_XGENE_DMA is not set
+# CONFIG_XILINX_DMA is not set
+# CONFIG_XILINX_ZYNQMP_DMA is not set
+# CONFIG_ZX_DMA is not set
+# CONFIG_MTK_HSDMA is not set
+# CONFIG_MTK_CQDMA is not set
+# CONFIG_MTK_UART_APDMA is not set
+CONFIG_QCOM_BAM_DMA=y
+CONFIG_QCOM_HIDMA_MGMT=y
+CONFIG_QCOM_HIDMA=y
+# CONFIG_DW_DMAC is not set
+# CONFIG_DW_DMAC_PCI is not set
+# CONFIG_DW_EDMA is not set
+# CONFIG_DW_EDMA_PCIE is not set
+# CONFIG_SF_PDMA is not set
+CONFIG_RENESAS_DMA=y
+CONFIG_RCAR_DMAC=y
+CONFIG_RENESAS_USB_DMAC=m
+# CONFIG_TI_K3_UDMA is not set
+
+#
+# DMA Clients
+#
+# CONFIG_ASYNC_TX_DMA is not set
+# CONFIG_DMATEST is not set
+CONFIG_DMA_ENGINE_RAID=y
+
+#
+# DMABUF options
+#
+CONFIG_SYNC_FILE=y
+# CONFIG_SW_SYNC is not set
+# CONFIG_UDMABUF is not set
+# CONFIG_DMABUF_MOVE_NOTIFY is not set
+# CONFIG_DMABUF_SELFTESTS is not set
+# CONFIG_DMABUF_HEAPS is not set
+# end of DMABUF options
+
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+CONFIG_VFIO_IOMMU_TYPE1=y
+CONFIG_VFIO_VIRQFD=y
+CONFIG_VFIO=y
+# CONFIG_VFIO_NOIOMMU is not set
+CONFIG_VFIO_PCI=y
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_INTX=y
+# CONFIG_VFIO_PLATFORM is not set
+# CONFIG_VFIO_MDEV is not set
+# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_BALLOON=y
+# CONFIG_VIRTIO_INPUT is not set
+CONFIG_VIRTIO_MMIO=y
+# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
+# CONFIG_VDPA is not set
+CONFIG_VHOST_DPN=y
+CONFIG_VHOST_MENU=y
+# CONFIG_VHOST_NET is not set
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# end of Microsoft Hyper-V guest support
+
+#
+# Xen driver support
+#
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
+CONFIG_XEN_DEV_EVTCHN=y
+CONFIG_XEN_BACKEND=y
+CONFIG_XENFS=y
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XEN_GNTDEV=y
+CONFIG_XEN_GRANT_DEV_ALLOC=y
+# CONFIG_XEN_GRANT_DMA_ALLOC is not set
+CONFIG_SWIOTLB_XEN=y
+# CONFIG_XEN_PVCALLS_FRONTEND is not set
+# CONFIG_XEN_PVCALLS_BACKEND is not set
+CONFIG_XEN_PRIVCMD=y
+CONFIG_XEN_EFI=y
+CONFIG_XEN_AUTO_XLATE=y
+# end of Xen driver support
+
+# CONFIG_GREYBUS is not set
+CONFIG_STAGING=y
+# CONFIG_PRISM2_USB is not set
+# CONFIG_COMEDI is not set
+# CONFIG_RTL8192U is not set
+# CONFIG_RTLLIB is not set
+CONFIG_RTL8723BS=m
+# CONFIG_R8712U is not set
+# CONFIG_R8188EU is not set
+# CONFIG_RTS5208 is not set
+# CONFIG_VT6655 is not set
+# CONFIG_VT6656 is not set
+
+#
+# IIO staging drivers
+#
+
+#
+# Accelerometers
+#
+# CONFIG_ADIS16203 is not set
+# CONFIG_ADIS16240 is not set
+# end of Accelerometers
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7816 is not set
+# CONFIG_AD7280 is not set
+# end of Analog to digital converters
+
+#
+# Analog digital bi-direction converters
+#
+# CONFIG_ADT7316 is not set
+# end of Analog digital bi-direction converters
+
+#
+# Capacitance to digital converters
+#
+# CONFIG_AD7150 is not set
+# CONFIG_AD7746 is not set
+# end of Capacitance to digital converters
+
+#
+# Direct Digital Synthesis
+#
+# CONFIG_AD9832 is not set
+# CONFIG_AD9834 is not set
+# end of Direct Digital Synthesis
+
+#
+# Network Analyzer, Impedance Converters
+#
+# CONFIG_AD5933 is not set
+# end of Network Analyzer, Impedance Converters
+
+#
+# Active energy metering IC
+#
+# CONFIG_ADE7854 is not set
+# end of Active energy metering IC
+
+#
+# Resolver to digital converters
+#
+# CONFIG_AD2S1210 is not set
+# end of Resolver to digital converters
+# end of IIO staging drivers
+
+# CONFIG_FB_SM750 is not set
+# CONFIG_USB_EMXX is not set
+
+#
+# Speakup console speech
+#
+# CONFIG_SPEAKUP is not set
+# end of Speakup console speech
+
+# CONFIG_MFD_NVEC is not set
+# CONFIG_STAGING_MEDIA is not set
+
+#
+# Android
+#
+# end of Android
+
+# CONFIG_STAGING_BOARD is not set
+# CONFIG_LTE_GDM724X is not set
+# CONFIG_GS_FPGABOOT is not set
+# CONFIG_UNISYSSPAR is not set
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
+# CONFIG_FB_TFT is not set
+# CONFIG_WILC1000_SDIO is not set
+# CONFIG_WILC1000_SPI is not set
+# CONFIG_KS7010 is not set
+# CONFIG_BCM_VIDEOCORE is not set
+# CONFIG_PI433 is not set
+
+#
+# Gasket devices
+#
+# CONFIG_STAGING_GASKET_FRAMEWORK is not set
+# end of Gasket devices
+
+# CONFIG_XIL_AXIS_FIFO is not set
+# CONFIG_FIELDBUS_DEV is not set
+# CONFIG_QLGE is not set
+# CONFIG_WFX is not set
+# CONFIG_GOLDFISH is not set
+CONFIG_MFD_CROS_EC=y
+CONFIG_CHROME_PLATFORMS=y
+# CONFIG_CHROMEOS_TBMC is not set
+CONFIG_CROS_EC=y
+CONFIG_CROS_EC_I2C=y
+# CONFIG_CROS_EC_RPMSG is not set
+CONFIG_CROS_EC_SPI=y
+CONFIG_CROS_EC_PROTO=y
+# CONFIG_CROS_KBD_LED_BACKLIGHT is not set
+CONFIG_CROS_EC_CHARDEV=y
+CONFIG_CROS_EC_LIGHTBAR=y
+CONFIG_CROS_EC_VBC=y
+CONFIG_CROS_EC_DEBUGFS=y
+CONFIG_CROS_EC_SENSORHUB=y
+CONFIG_CROS_EC_SYSFS=y
+CONFIG_CROS_USBPD_NOTIFY=y
+# CONFIG_MELLANOX_PLATFORM is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+#
+# Common Clock Framework
+#
+CONFIG_COMMON_CLK_VERSATILE=y
+CONFIG_CLK_SP810=y
+CONFIG_CLK_VEXPRESS_OSC=y
+# CONFIG_CLK_HSDK is not set
+# CONFIG_COMMON_CLK_MAX77686 is not set
+# CONFIG_COMMON_CLK_MAX9485 is not set
+CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_HI655X=y
+CONFIG_COMMON_CLK_SCPI=y
+# CONFIG_COMMON_CLK_SI5341 is not set
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI544 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CDCE925 is not set
+CONFIG_COMMON_CLK_CS2000_CP=y
+# CONFIG_COMMON_CLK_FSL_SAI is not set
+CONFIG_COMMON_CLK_S2MPS11=y
+CONFIG_CLK_QORIQ=y
+CONFIG_CLK_LS1028A_PLLDIG=y
+CONFIG_COMMON_CLK_XGENE=y
+CONFIG_COMMON_CLK_PWM=y
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_COMMON_CLK_FIXED_MMIO is not set
+CONFIG_CLK_BCM2835=y
+CONFIG_COMMON_CLK_IPROC=y
+CONFIG_CLK_BCM_NS2=y
+CONFIG_CLK_BCM_SR=y
+# CONFIG_CLK_RASPBERRYPI is not set
+CONFIG_COMMON_CLK_HI3516CV300=y
+CONFIG_COMMON_CLK_HI3519=y
+CONFIG_COMMON_CLK_HI3660=y
+CONFIG_COMMON_CLK_HI3670=y
+CONFIG_COMMON_CLK_HI3798CV200=y
+CONFIG_COMMON_CLK_HI6220=y
+CONFIG_RESET_HISI=y
+CONFIG_STUB_CLK_HI6220=y
+CONFIG_STUB_CLK_HI3660=y
+CONFIG_TI_SCI_CLK=y
+# CONFIG_TI_SCI_CLK_PROBE_FROM_FW is not set
+CONFIG_TI_SYSCON_CLK=y
+
+#
+# Clock driver for MediaTek SoC
+#
+CONFIG_COMMON_CLK_MEDIATEK=y
+CONFIG_COMMON_CLK_MT2712=y
+# CONFIG_COMMON_CLK_MT2712_BDPSYS is not set
+# CONFIG_COMMON_CLK_MT2712_IMGSYS is not set
+# CONFIG_COMMON_CLK_MT2712_JPGDECSYS is not set
+# CONFIG_COMMON_CLK_MT2712_MFGCFG is not set
+# CONFIG_COMMON_CLK_MT2712_MMSYS is not set
+# CONFIG_COMMON_CLK_MT2712_VDECSYS is not set
+# CONFIG_COMMON_CLK_MT2712_VENCSYS is not set
+CONFIG_COMMON_CLK_MT6779=y
+# CONFIG_COMMON_CLK_MT6779_MMSYS is not set
+# CONFIG_COMMON_CLK_MT6779_IMGSYS is not set
+# CONFIG_COMMON_CLK_MT6779_IPESYS is not set
+# CONFIG_COMMON_CLK_MT6779_CAMSYS is not set
+# CONFIG_COMMON_CLK_MT6779_VDECSYS is not set
+# CONFIG_COMMON_CLK_MT6779_VENCSYS is not set
+# CONFIG_COMMON_CLK_MT6779_MFGCFG is not set
+# CONFIG_COMMON_CLK_MT6779_AUDSYS is not set
+CONFIG_COMMON_CLK_MT6797=y
+# CONFIG_COMMON_CLK_MT6797_MMSYS is not set
+# CONFIG_COMMON_CLK_MT6797_IMGSYS is not set
+# CONFIG_COMMON_CLK_MT6797_VDECSYS is not set
+# CONFIG_COMMON_CLK_MT6797_VENCSYS is not set
+CONFIG_COMMON_CLK_MT7622=y
+# CONFIG_COMMON_CLK_MT7622_ETHSYS is not set
+# CONFIG_COMMON_CLK_MT7622_HIFSYS is not set
+# CONFIG_COMMON_CLK_MT7622_AUDSYS is not set
+CONFIG_COMMON_CLK_MT8173=y
+CONFIG_COMMON_CLK_MT8183=y
+# CONFIG_COMMON_CLK_MT8183_AUDIOSYS is not set
+# CONFIG_COMMON_CLK_MT8183_CAMSYS is not set
+# CONFIG_COMMON_CLK_MT8183_IMGSYS is not set
+# CONFIG_COMMON_CLK_MT8183_IPU_CORE0 is not set
+# CONFIG_COMMON_CLK_MT8183_IPU_CORE1 is not set
+# CONFIG_COMMON_CLK_MT8183_IPU_ADL is not set
+# CONFIG_COMMON_CLK_MT8183_IPU_CONN is not set
+# CONFIG_COMMON_CLK_MT8183_MFGCFG is not set
+# CONFIG_COMMON_CLK_MT8183_MMSYS is not set
+# CONFIG_COMMON_CLK_MT8183_VDECSYS is not set
+# CONFIG_COMMON_CLK_MT8183_VENCSYS is not set
+CONFIG_COMMON_CLK_MT8516=y
+# CONFIG_COMMON_CLK_MT8516_AUDSYS is not set
+# end of Clock driver for MediaTek SoC
+
+CONFIG_COMMON_CLK_MESON_REGMAP=y
+CONFIG_COMMON_CLK_MESON_DUALDIV=y
+CONFIG_COMMON_CLK_MESON_MPLL=y
+CONFIG_COMMON_CLK_MESON_PHASE=m
+CONFIG_COMMON_CLK_MESON_PLL=y
+CONFIG_COMMON_CLK_MESON_SCLK_DIV=m
+CONFIG_COMMON_CLK_MESON_VID_PLL_DIV=y
+CONFIG_COMMON_CLK_MESON_AO_CLKC=y
+CONFIG_COMMON_CLK_MESON_EE_CLKC=y
+CONFIG_COMMON_CLK_MESON_CPU_DYNDIV=y
+CONFIG_COMMON_CLK_GXBB=y
+CONFIG_COMMON_CLK_AXG=y
+CONFIG_COMMON_CLK_AXG_AUDIO=m
+CONFIG_COMMON_CLK_G12A=y
+CONFIG_ARMADA_AP_CP_HELPER=y
+CONFIG_ARMADA_37XX_CLK=y
+CONFIG_ARMADA_AP806_SYSCON=y
+CONFIG_ARMADA_CP110_SYSCON=y
+CONFIG_QCOM_GDSC=y
+CONFIG_QCOM_RPMCC=y
+CONFIG_COMMON_CLK_QCOM=y
+CONFIG_QCOM_A53PLL=y
+CONFIG_QCOM_CLK_APCS_MSM8916=y
+CONFIG_QCOM_CLK_SMD_RPM=y
+CONFIG_QCOM_CLK_RPMH=y
+# CONFIG_APQ_GCC_8084 is not set
+# CONFIG_APQ_MMCC_8084 is not set
+# CONFIG_IPQ_GCC_4019 is not set
+# CONFIG_IPQ_GCC_6018 is not set
+# CONFIG_IPQ_GCC_806X is not set
+# CONFIG_IPQ_LCC_806X is not set
+CONFIG_IPQ_GCC_8074=y
+# CONFIG_MSM_GCC_8660 is not set
+CONFIG_MSM_GCC_8916=y
+# CONFIG_MSM_GCC_8960 is not set
+# CONFIG_MSM_LCC_8960 is not set
+# CONFIG_MDM_GCC_9615 is not set
+# CONFIG_MDM_LCC_9615 is not set
+# CONFIG_MSM_MMCC_8960 is not set
+# CONFIG_MSM_GCC_8974 is not set
+# CONFIG_MSM_MMCC_8974 is not set
+CONFIG_MSM_GCC_8994=y
+CONFIG_MSM_GCC_8996=y
+CONFIG_MSM_MMCC_8996=y
+CONFIG_MSM_GCC_8998=y
+# CONFIG_MSM_GPUCC_8998 is not set
+# CONFIG_MSM_MMCC_8998 is not set
+CONFIG_QCS_GCC_404=y
+# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SC_GCC_7180 is not set
+# CONFIG_SC_GPUCC_7180 is not set
+# CONFIG_SC_MSS_7180 is not set
+# CONFIG_SC_VIDEOCC_7180 is not set
+# CONFIG_SDM_CAMCC_845 is not set
+# CONFIG_SDM_GCC_660 is not set
+# CONFIG_QCS_TURING_404 is not set
+# CONFIG_QCS_Q6SSTOP_404 is not set
+CONFIG_SDM_GCC_845=y
+# CONFIG_SDM_GPUCC_845 is not set
+# CONFIG_SDM_VIDEOCC_845 is not set
+# CONFIG_SDM_DISPCC_845 is not set
+# CONFIG_SDM_LPASSCC_845 is not set
+# CONFIG_SM_GCC_8150 is not set
+# CONFIG_SM_GCC_8250 is not set
+# CONFIG_SPMI_PMIC_CLKDIV is not set
+# CONFIG_QCOM_HFPLL is not set
+# CONFIG_KPSS_XCC is not set
+CONFIG_CLK_RENESAS=y
+CONFIG_CLK_R8A774A1=y
+CONFIG_CLK_R8A774C0=y
+CONFIG_CLK_R8A77965=y
+CONFIG_CLK_R8A77970=y
+CONFIG_CLK_R8A77980=y
+CONFIG_CLK_R8A77990=y
+CONFIG_CLK_R8A77995=y
+# CONFIG_CLK_R9A06G032 is not set
+CONFIG_CLK_RCAR_GEN3_CPG=y
+# CONFIG_CLK_RCAR_USB2_CLOCK_SEL is not set
+CONFIG_CLK_RENESAS_CPG_MSSR=y
+CONFIG_CLK_RENESAS_DIV6=y
+CONFIG_COMMON_CLK_SAMSUNG=y
+CONFIG_EXYNOS_ARM64_COMMON_CLK=y
+CONFIG_EXYNOS_AUDSS_CLK_CON=y
+CONFIG_SPRD_COMMON_CLK=y
+CONFIG_SPRD_SC9860_CLK=y
+CONFIG_SPRD_SC9863A_CLK=y
+CONFIG_CLK_SUNXI=y
+CONFIG_CLK_SUNXI_CLOCKS=y
+CONFIG_CLK_SUNXI_PRCM_SUN6I=y
+CONFIG_CLK_SUNXI_PRCM_SUN8I=y
+CONFIG_CLK_SUNXI_PRCM_SUN9I=y
+CONFIG_SUNXI_CCU=y
+CONFIG_SUN50I_A64_CCU=y
+CONFIG_SUN50I_H6_CCU=y
+CONFIG_SUN50I_H6_R_CCU=y
+# CONFIG_SUN8I_A83T_CCU is not set
+CONFIG_SUN8I_H3_CCU=y
+CONFIG_SUN8I_DE2_CCU=y
+CONFIG_SUN8I_R_CCU=y
+CONFIG_CLK_TEGRA_BPMP=y
+CONFIG_TEGRA_CLK_DFLL=y
+CONFIG_CLK_UNIPHIER=y
+# CONFIG_COMMON_CLK_ZYNQMP is not set
+# end of Common Clock Framework
+
+CONFIG_HWSPINLOCK=y
+# CONFIG_HWSPINLOCK_OMAP is not set
+CONFIG_HWSPINLOCK_QCOM=y
+# CONFIG_HWSPINLOCK_SPRD is not set
+
+#
+# Clock Source drivers
+#
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_ACPI=y
+CONFIG_TIMER_PROBE=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_ROCKCHIP_TIMER=y
+CONFIG_TEGRA_TIMER=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
+CONFIG_FSL_ERRATUM_A008585=y
+CONFIG_HISILICON_ERRATUM_161010101=y
+CONFIG_ARM64_ERRATUM_858921=y
+CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
+CONFIG_ARM_TIMER_SP804=y
+CONFIG_SYS_SUPPORTS_SH_CMT=y
+CONFIG_MTK_TIMER=y
+CONFIG_SPRD_TIMER=y
+CONFIG_SYS_SUPPORTS_SH_TMU=y
+CONFIG_SH_TIMER_CMT=y
+CONFIG_SH_TIMER_TMU=y
+CONFIG_CLKSRC_VERSATILE=y
+# CONFIG_MICROCHIP_PIT64B is not set
+# end of Clock Source drivers
+
+CONFIG_MAILBOX=y
+CONFIG_ARM_MHU=y
+CONFIG_PLATFORM_MHU=y
+# CONFIG_PL320_MBOX is not set
+# CONFIG_ARMADA_37XX_RWTM_MBOX is not set
+# CONFIG_OMAP2PLUS_MBOX is not set
+# CONFIG_ROCKCHIP_MBOX is not set
+CONFIG_PCC=y
+# CONFIG_ALTERA_MBOX is not set
+CONFIG_BCM2835_MBOX=y
+CONFIG_TI_MESSAGE_MANAGER=y
+CONFIG_HI3660_MBOX=y
+CONFIG_HI6220_MBOX=y
+# CONFIG_MAILBOX_TEST is not set
+CONFIG_QCOM_APCS_IPC=y
+CONFIG_TEGRA_HSP_MBOX=y
+# CONFIG_XGENE_SLIMPRO_MBOX is not set
+# CONFIG_BCM_PDC_MBOX is not set
+CONFIG_BCM_FLEXRM_MBOX=m
+# CONFIG_MTK_CMDQ_MBOX is not set
+CONFIG_ZYNQMP_IPI_MBOX=y
+CONFIG_SUN6I_MSGBOX=y
+CONFIG_IOMMU_IOVA=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+CONFIG_IOMMU_IO_PGTABLE=y
+CONFIG_IOMMU_IO_PGTABLE_LPAE=y
+# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
+# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
+# end of Generic IOMMU Pagetable Support
+
+# CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_OF_IOMMU=y
+CONFIG_IOMMU_DMA=y
+CONFIG_ROCKCHIP_IOMMU=y
+CONFIG_TEGRA_IOMMU_SMMU=y
+# CONFIG_EXYNOS_IOMMU is not set
+# CONFIG_IPMMU_VMSA is not set
+CONFIG_ARM_SMMU=y
+# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
+CONFIG_ARM_SMMU_V3=y
+# CONFIG_MTK_IOMMU is not set
+CONFIG_QCOM_IOMMU=y
+# CONFIG_VIRTIO_IOMMU is not set
+
+#
+# Remoteproc drivers
+#
+# CONFIG_REMOTEPROC is not set
+# end of Remoteproc drivers
+
+#
+# Rpmsg drivers
+#
+CONFIG_RPMSG=y
+# CONFIG_RPMSG_CHAR is not set
+CONFIG_RPMSG_QCOM_GLINK_NATIVE=y
+CONFIG_RPMSG_QCOM_GLINK_RPM=y
+CONFIG_RPMSG_QCOM_GLINK_SMEM=m
+CONFIG_RPMSG_QCOM_SMD=y
+# CONFIG_RPMSG_VIRTIO is not set
+# end of Rpmsg drivers
+
+# CONFIG_SOUNDWIRE is not set
+
+#
+# SOC (System On Chip) specific Drivers
+#
+
+#
+# Amlogic SoC drivers
+#
+CONFIG_MESON_CANVAS=m
+CONFIG_MESON_CLK_MEASURE=y
+CONFIG_MESON_GX_SOCINFO=y
+CONFIG_MESON_GX_PM_DOMAINS=y
+CONFIG_MESON_EE_PM_DOMAINS=y
+CONFIG_MESON_SECURE_PM_DOMAINS=y
+CONFIG_MESON_MX_SOCINFO=y
+# end of Amlogic SoC drivers
+
+#
+# Aspeed SoC drivers
+#
+# end of Aspeed SoC drivers
+
+#
+# Broadcom SoC drivers
+#
+CONFIG_BCM2835_POWER=y
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_SOC_BRCMSTB=y
+CONFIG_BRCMSTB_PM=y
+# end of Broadcom SoC drivers
+
+#
+# NXP/Freescale QorIQ SoC drivers
+#
+# CONFIG_FSL_DPAA is not set
+# CONFIG_QUICC_ENGINE is not set
+CONFIG_FSL_GUTS=y
+CONFIG_DPAA2_CONSOLE=y
+# CONFIG_FSL_RCPM is not set
+# end of NXP/Freescale QorIQ SoC drivers
+
+#
+# i.MX SoC drivers
+#
+# end of i.MX SoC drivers
+
+#
+# MediaTek SoC drivers
+#
+# CONFIG_MTK_CMDQ is not set
+CONFIG_MTK_INFRACFG=y
+# CONFIG_MTK_PMIC_WRAP is not set
+CONFIG_MTK_SCPSYS=y
+# end of MediaTek SoC drivers
+
+#
+# Qualcomm SoC drivers
+#
+# CONFIG_QCOM_AOSS_QMP is not set
+CONFIG_QCOM_COMMAND_DB=y
+CONFIG_QCOM_GENI_SE=y
+# CONFIG_QCOM_GSBI is not set
+# CONFIG_QCOM_LLCC is not set
+CONFIG_QCOM_MDT_LOADER=m
+# CONFIG_QCOM_OCMEM is not set
+CONFIG_QCOM_QMI_HELPERS=m
+# CONFIG_QCOM_RMTFS_MEM is not set
+CONFIG_QCOM_RPMH=y
+# CONFIG_QCOM_RPMHPD is not set
+# CONFIG_QCOM_RPMPD is not set
+CONFIG_QCOM_SMEM=y
+CONFIG_QCOM_SMD_RPM=y
+CONFIG_QCOM_SMEM_STATE=y
+CONFIG_QCOM_SMP2P=y
+CONFIG_QCOM_SMSM=y
+# CONFIG_QCOM_SOCINFO is not set
+# CONFIG_QCOM_WCNSS_CTRL is not set
+# CONFIG_QCOM_APR is not set
+# end of Qualcomm SoC drivers
+
+CONFIG_SOC_RENESAS=y
+CONFIG_ARCH_RCAR_GEN3=y
+CONFIG_ARCH_R8A774A1=y
+# CONFIG_ARCH_R8A774B1 is not set
+CONFIG_ARCH_R8A774C0=y
+# CONFIG_ARCH_R8A77950 is not set
+# CONFIG_ARCH_R8A77951 is not set
+# CONFIG_ARCH_R8A77960 is not set
+# CONFIG_ARCH_R8A77961 is not set
+CONFIG_ARCH_R8A77965=y
+CONFIG_ARCH_R8A77970=y
+CONFIG_ARCH_R8A77980=y
+CONFIG_ARCH_R8A77990=y
+CONFIG_ARCH_R8A77995=y
+CONFIG_SYSC_R8A774A1=y
+CONFIG_SYSC_R8A774C0=y
+CONFIG_SYSC_R8A77965=y
+CONFIG_SYSC_R8A77970=y
+CONFIG_SYSC_R8A77980=y
+CONFIG_SYSC_R8A77990=y
+CONFIG_SYSC_R8A77995=y
+CONFIG_RST_RCAR=y
+CONFIG_SYSC_RCAR=y
+CONFIG_ROCKCHIP_GRF=y
+CONFIG_ROCKCHIP_PM_DOMAINS=y
+CONFIG_SOC_SAMSUNG=y
+CONFIG_EXYNOS_CHIPID=y
+CONFIG_EXYNOS_PMU=y
+CONFIG_EXYNOS_PM_DOMAINS=y
+CONFIG_SUNXI_SRAM=y
+CONFIG_ARCH_TEGRA_132_SOC=y
+CONFIG_ARCH_TEGRA_210_SOC=y
+CONFIG_ARCH_TEGRA_186_SOC=y
+CONFIG_ARCH_TEGRA_194_SOC=y
+CONFIG_SOC_TEGRA_FUSE=y
+CONFIG_SOC_TEGRA_FLOWCTRL=y
+CONFIG_SOC_TEGRA_PMC=y
+CONFIG_SOC_TEGRA_POWERGATE_BPMP=y
+CONFIG_ARCH_K3_AM6_SOC=y
+# CONFIG_ARCH_K3_J721E_SOC is not set
+CONFIG_SOC_TI=y
+CONFIG_TI_SCI_PM_DOMAINS=y
+# CONFIG_TI_K3_RINGACC is not set
+CONFIG_TI_SCI_INTA_MSI_DOMAIN=y
+
+#
+# Xilinx SoC drivers
+#
+# CONFIG_XILINX_VCU is not set
+CONFIG_ZYNQMP_POWER=y
+CONFIG_ZYNQMP_PM_DOMAINS=y
+# end of Xilinx SoC drivers
+
+# CONFIG_SOC_ZTE is not set
+# end of SOC (System On Chip) specific Drivers
+
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
+# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
+# CONFIG_DEVFREQ_GOV_USERSPACE is not set
+# CONFIG_DEVFREQ_GOV_PASSIVE is not set
+
+#
+# DEVFREQ Drivers
+#
+# CONFIG_ARM_EXYNOS_BUS_DEVFREQ is not set
+# CONFIG_ARM_TEGRA_DEVFREQ is not set
+# CONFIG_ARM_RK3399_DMC_DEVFREQ is not set
+# CONFIG_PM_DEVFREQ_EVENT is not set
+CONFIG_EXTCON=y
+
+#
+# Extcon Device Drivers
+#
+# CONFIG_EXTCON_ADC_JACK is not set
+# CONFIG_EXTCON_FSA9480 is not set
+# CONFIG_EXTCON_GPIO is not set
+# CONFIG_EXTCON_MAX3355 is not set
+# CONFIG_EXTCON_PTN5150 is not set
+# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
+# CONFIG_EXTCON_RT8973A is not set
+# CONFIG_EXTCON_SM5502 is not set
+CONFIG_EXTCON_USB_GPIO=y
+CONFIG_EXTCON_USBC_CROS_EC=y
+CONFIG_MEMORY=y
+# CONFIG_ARM_PL172_MPMC is not set
+CONFIG_TEGRA_MC=y
+CONFIG_IIO=y
+CONFIG_IIO_BUFFER=y
+# CONFIG_IIO_BUFFER_CB is not set
+# CONFIG_IIO_BUFFER_HW_CONSUMER is not set
+CONFIG_IIO_KFIFO_BUF=m
+CONFIG_IIO_TRIGGERED_BUFFER=m
+# CONFIG_IIO_CONFIGFS is not set
+CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+# CONFIG_IIO_SW_DEVICE is not set
+# CONFIG_IIO_SW_TRIGGER is not set
+
+#
+# Accelerometers
+#
+# CONFIG_ADIS16201 is not set
+# CONFIG_ADIS16209 is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
+# CONFIG_ADXL372_SPI is not set
+# CONFIG_ADXL372_I2C is not set
+# CONFIG_BMA180 is not set
+# CONFIG_BMA220 is not set
+# CONFIG_BMA400 is not set
+# CONFIG_BMC150_ACCEL is not set
+# CONFIG_DA280 is not set
+# CONFIG_DA311 is not set
+# CONFIG_DMARD06 is not set
+# CONFIG_DMARD09 is not set
+# CONFIG_DMARD10 is not set
+# CONFIG_IIO_CROS_EC_ACCEL_LEGACY is not set
+# CONFIG_IIO_ST_ACCEL_3AXIS is not set
+# CONFIG_KXSD9 is not set
+# CONFIG_KXCJK1013 is not set
+# CONFIG_MC3230 is not set
+# CONFIG_MMA7455_I2C is not set
+# CONFIG_MMA7455_SPI is not set
+# CONFIG_MMA7660 is not set
+# CONFIG_MMA8452 is not set
+# CONFIG_MMA9551 is not set
+# CONFIG_MMA9553 is not set
+# CONFIG_MXC4005 is not set
+# CONFIG_MXC6255 is not set
+# CONFIG_SCA3000 is not set
+# CONFIG_STK8312 is not set
+# CONFIG_STK8BA50 is not set
+# end of Accelerometers
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7091R5 is not set
+# CONFIG_AD7124 is not set
+# CONFIG_AD7192 is not set
+# CONFIG_AD7266 is not set
+# CONFIG_AD7291 is not set
+# CONFIG_AD7292 is not set
+# CONFIG_AD7298 is not set
+# CONFIG_AD7476 is not set
+# CONFIG_AD7606_IFACE_PARALLEL is not set
+# CONFIG_AD7606_IFACE_SPI is not set
+# CONFIG_AD7766 is not set
+# CONFIG_AD7768_1 is not set
+# CONFIG_AD7780 is not set
+# CONFIG_AD7791 is not set
+# CONFIG_AD7793 is not set
+# CONFIG_AD7887 is not set
+# CONFIG_AD7923 is not set
+# CONFIG_AD7949 is not set
+# CONFIG_AD799X is not set
+# CONFIG_AXP20X_ADC is not set
+# CONFIG_AXP288_ADC is not set
+# CONFIG_BCM_IPROC_ADC is not set
+# CONFIG_BERLIN2_ADC is not set
+# CONFIG_CC10001_ADC is not set
+# CONFIG_ENVELOPE_DETECTOR is not set
+CONFIG_EXYNOS_ADC=y
+# CONFIG_HI8435 is not set
+# CONFIG_HX711 is not set
+# CONFIG_INA2XX_ADC is not set
+# CONFIG_LTC2471 is not set
+# CONFIG_LTC2485 is not set
+# CONFIG_LTC2496 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_MAX1027 is not set
+# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
+# CONFIG_MAX1363 is not set
+# CONFIG_MAX9611 is not set
+# CONFIG_MCP320X is not set
+# CONFIG_MCP3422 is not set
+# CONFIG_MCP3911 is not set
+# CONFIG_MEDIATEK_MT6577_AUXADC is not set
+CONFIG_MESON_SARADC=y
+# CONFIG_NAU7802 is not set
+# CONFIG_QCOM_SPMI_IADC is not set
+# CONFIG_QCOM_SPMI_VADC is not set
+# CONFIG_QCOM_SPMI_ADC5 is not set
+CONFIG_ROCKCHIP_SARADC=m
+# CONFIG_SD_ADC_MODULATOR is not set
+# CONFIG_TI_ADC081C is not set
+# CONFIG_TI_ADC0832 is not set
+# CONFIG_TI_ADC084S021 is not set
+# CONFIG_TI_ADC12138 is not set
+# CONFIG_TI_ADC108S102 is not set
+# CONFIG_TI_ADC128S052 is not set
+# CONFIG_TI_ADC161S626 is not set
+# CONFIG_TI_ADS1015 is not set
+# CONFIG_TI_ADS7950 is not set
+# CONFIG_TI_ADS8344 is not set
+# CONFIG_TI_ADS8688 is not set
+# CONFIG_TI_ADS124S08 is not set
+# CONFIG_TI_TLC4541 is not set
+# CONFIG_VF610_ADC is not set
+# CONFIG_XILINX_XADC is not set
+# end of Analog to digital converters
+
+#
+# Analog Front Ends
+#
+# CONFIG_IIO_RESCALE is not set
+# end of Analog Front Ends
+
+#
+# Amplifiers
+#
+# CONFIG_AD8366 is not set
+# CONFIG_HMC425 is not set
+# end of Amplifiers
+
+#
+# Chemical Sensors
+#
+# CONFIG_ATLAS_PH_SENSOR is not set
+# CONFIG_BME680 is not set
+# CONFIG_CCS811 is not set
+# CONFIG_IAQCORE is not set
+# CONFIG_PMS7003 is not set
+# CONFIG_SENSIRION_SGP30 is not set
+# CONFIG_SPS30 is not set
+# CONFIG_VZ89X is not set
+# end of Chemical Sensors
+
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+# CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE is not set
+
+#
+# Hid Sensor IIO Common
+#
+# end of Hid Sensor IIO Common
+
+#
+# SSP Sensor Common
+#
+# CONFIG_IIO_SSP_SENSORHUB is not set
+# end of SSP Sensor Common
+
+#
+# Digital to analog converters
+#
+# CONFIG_AD5064 is not set
+# CONFIG_AD5360 is not set
+# CONFIG_AD5380 is not set
+# CONFIG_AD5421 is not set
+# CONFIG_AD5446 is not set
+# CONFIG_AD5449 is not set
+# CONFIG_AD5592R is not set
+# CONFIG_AD5593R is not set
+# CONFIG_AD5504 is not set
+# CONFIG_AD5624R_SPI is not set
+# CONFIG_AD5686_SPI is not set
+# CONFIG_AD5696_I2C is not set
+# CONFIG_AD5755 is not set
+# CONFIG_AD5758 is not set
+# CONFIG_AD5761 is not set
+# CONFIG_AD5764 is not set
+# CONFIG_AD5770R is not set
+# CONFIG_AD5791 is not set
+# CONFIG_AD7303 is not set
+# CONFIG_AD8801 is not set
+# CONFIG_DPOT_DAC is not set
+# CONFIG_DS4424 is not set
+# CONFIG_LTC1660 is not set
+# CONFIG_LTC2632 is not set
+# CONFIG_M62332 is not set
+# CONFIG_MAX517 is not set
+# CONFIG_MAX5821 is not set
+# CONFIG_MCP4725 is not set
+# CONFIG_MCP4922 is not set
+# CONFIG_TI_DAC082S085 is not set
+# CONFIG_TI_DAC5571 is not set
+# CONFIG_TI_DAC7311 is not set
+# CONFIG_TI_DAC7612 is not set
+# CONFIG_VF610_DAC is not set
+# end of Digital to analog converters
+
+#
+# IIO dummy driver
+#
+# end of IIO dummy driver
+
+#
+# Frequency Synthesizers DDS/PLL
+#
+
+#
+# Clock Generator/Distribution
+#
+# CONFIG_AD9523 is not set
+# end of Clock Generator/Distribution
+
+#
+# Phase-Locked Loop (PLL) frequency synthesizers
+#
+# CONFIG_ADF4350 is not set
+# CONFIG_ADF4371 is not set
+# end of Phase-Locked Loop (PLL) frequency synthesizers
+# end of Frequency Synthesizers DDS/PLL
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16080 is not set
+# CONFIG_ADIS16130 is not set
+# CONFIG_ADIS16136 is not set
+# CONFIG_ADIS16260 is not set
+# CONFIG_ADXRS450 is not set
+# CONFIG_BMG160 is not set
+# CONFIG_FXAS21002C is not set
+# CONFIG_MPU3050_I2C is not set
+# CONFIG_IIO_ST_GYRO_3AXIS is not set
+# CONFIG_ITG3200 is not set
+# end of Digital gyroscope sensors
+
+#
+# Health Sensors
+#
+
+#
+# Heart Rate Monitors
+#
+# CONFIG_AFE4403 is not set
+# CONFIG_AFE4404 is not set
+# CONFIG_MAX30100 is not set
+# CONFIG_MAX30102 is not set
+# end of Heart Rate Monitors
+# end of Health Sensors
+
+#
+# Humidity sensors
+#
+# CONFIG_AM2315 is not set
+# CONFIG_DHT11 is not set
+# CONFIG_HDC100X is not set
+# CONFIG_HTS221 is not set
+# CONFIG_HTU21 is not set
+# CONFIG_SI7005 is not set
+# CONFIG_SI7020 is not set
+# end of Humidity sensors
+
+#
+# Inertial measurement units
+#
+# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
+# CONFIG_ADIS16480 is not set
+# CONFIG_BMI160_I2C is not set
+# CONFIG_BMI160_SPI is not set
+# CONFIG_FXOS8700_I2C is not set
+# CONFIG_FXOS8700_SPI is not set
+# CONFIG_KMX61 is not set
+# CONFIG_INV_MPU6050_I2C is not set
+# CONFIG_INV_MPU6050_SPI is not set
+# CONFIG_IIO_ST_LSM6DSX is not set
+# end of Inertial measurement units
+
+#
+# Light sensors
+#
+# CONFIG_ACPI_ALS is not set
+# CONFIG_ADJD_S311 is not set
+# CONFIG_ADUX1020 is not set
+# CONFIG_AL3010 is not set
+# CONFIG_AL3320A is not set
+# CONFIG_APDS9300 is not set
+# CONFIG_APDS9960 is not set
+# CONFIG_BH1750 is not set
+# CONFIG_BH1780 is not set
+# CONFIG_CM32181 is not set
+# CONFIG_CM3232 is not set
+# CONFIG_CM3323 is not set
+# CONFIG_CM3605 is not set
+# CONFIG_CM36651 is not set
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
+# CONFIG_GP2AP002 is not set
+# CONFIG_GP2AP020A00F is not set
+# CONFIG_SENSORS_ISL29018 is not set
+# CONFIG_SENSORS_ISL29028 is not set
+# CONFIG_ISL29125 is not set
+# CONFIG_JSA1212 is not set
+# CONFIG_RPR0521 is not set
+# CONFIG_LTR501 is not set
+# CONFIG_LV0104CS is not set
+# CONFIG_MAX44000 is not set
+# CONFIG_MAX44009 is not set
+# CONFIG_NOA1305 is not set
+# CONFIG_OPT3001 is not set
+# CONFIG_PA12203001 is not set
+# CONFIG_SI1133 is not set
+# CONFIG_SI1145 is not set
+# CONFIG_STK3310 is not set
+# CONFIG_ST_UVIS25 is not set
+# CONFIG_TCS3414 is not set
+# CONFIG_TCS3472 is not set
+# CONFIG_SENSORS_TSL2563 is not set
+# CONFIG_TSL2583 is not set
+# CONFIG_TSL2772 is not set
+# CONFIG_TSL4531 is not set
+# CONFIG_US5182D is not set
+# CONFIG_VCNL4000 is not set
+# CONFIG_VCNL4035 is not set
+# CONFIG_VEML6030 is not set
+# CONFIG_VEML6070 is not set
+# CONFIG_VL6180 is not set
+# CONFIG_ZOPT2201 is not set
+# end of Light sensors
+
+#
+# Magnetometer sensors
+#
+# CONFIG_AK8974 is not set
+# CONFIG_AK8975 is not set
+# CONFIG_AK09911 is not set
+# CONFIG_BMC150_MAGN_I2C is not set
+# CONFIG_BMC150_MAGN_SPI is not set
+# CONFIG_MAG3110 is not set
+# CONFIG_MMC35240 is not set
+# CONFIG_IIO_ST_MAGN_3AXIS is not set
+# CONFIG_SENSORS_HMC5843_I2C is not set
+# CONFIG_SENSORS_HMC5843_SPI is not set
+# CONFIG_SENSORS_RM3100_I2C is not set
+# CONFIG_SENSORS_RM3100_SPI is not set
+# end of Magnetometer sensors
+
+#
+# Multiplexers
+#
+# CONFIG_IIO_MUX is not set
+# end of Multiplexers
+
+#
+# Inclinometer sensors
+#
+# end of Inclinometer sensors
+
+#
+# Triggers - standalone
+#
+# CONFIG_IIO_INTERRUPT_TRIGGER is not set
+# CONFIG_IIO_SYSFS_TRIGGER is not set
+# end of Triggers - standalone
+
+#
+# Linear and angular position sensors
+#
+# end of Linear and angular position sensors
+
+#
+# Digital potentiometers
+#
+# CONFIG_AD5272 is not set
+# CONFIG_DS1803 is not set
+# CONFIG_MAX5432 is not set
+# CONFIG_MAX5481 is not set
+# CONFIG_MAX5487 is not set
+# CONFIG_MCP4018 is not set
+# CONFIG_MCP4131 is not set
+# CONFIG_MCP4531 is not set
+# CONFIG_MCP41010 is not set
+# CONFIG_TPL0102 is not set
+# end of Digital potentiometers
+
+#
+# Digital potentiostats
+#
+# CONFIG_LMP91000 is not set
+# end of Digital potentiostats
+
+#
+# Pressure sensors
+#
+# CONFIG_ABP060MG is not set
+# CONFIG_BMP280 is not set
+CONFIG_IIO_CROS_EC_BARO=m
+# CONFIG_DLHL60D is not set
+# CONFIG_DPS310 is not set
+# CONFIG_HP03 is not set
+# CONFIG_ICP10100 is not set
+# CONFIG_MPL115_I2C is not set
+# CONFIG_MPL115_SPI is not set
+# CONFIG_MPL3115 is not set
+# CONFIG_MS5611 is not set
+# CONFIG_MS5637 is not set
+# CONFIG_IIO_ST_PRESS is not set
+# CONFIG_T5403 is not set
+# CONFIG_HP206C is not set
+# CONFIG_ZPA2326 is not set
+# end of Pressure sensors
+
+#
+# Lightning sensors
+#
+# CONFIG_AS3935 is not set
+# end of Lightning sensors
+
+#
+# Proximity and distance sensors
+#
+# CONFIG_ISL29501 is not set
+# CONFIG_LIDAR_LITE_V2 is not set
+# CONFIG_MB1232 is not set
+# CONFIG_PING is not set
+# CONFIG_RFD77402 is not set
+# CONFIG_SRF04 is not set
+# CONFIG_SX9500 is not set
+# CONFIG_SRF08 is not set
+# CONFIG_VL53L0X_I2C is not set
+# end of Proximity and distance sensors
+
+#
+# Resolver to digital converters
+#
+# CONFIG_AD2S90 is not set
+# CONFIG_AD2S1200 is not set
+# end of Resolver to digital converters
+
+#
+# Temperature sensors
+#
+# CONFIG_LTC2983 is not set
+# CONFIG_MAXIM_THERMOCOUPLE is not set
+# CONFIG_MLX90614 is not set
+# CONFIG_MLX90632 is not set
+# CONFIG_TMP006 is not set
+# CONFIG_TMP007 is not set
+# CONFIG_TSYS01 is not set
+# CONFIG_TSYS02D is not set
+# CONFIG_MAX31856 is not set
+# end of Temperature sensors
+
+# CONFIG_NTB is not set
+# CONFIG_VME_BUS is not set
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+# CONFIG_PWM_DEBUG is not set
+CONFIG_PWM_BCM_IPROC=y
+CONFIG_PWM_BCM2835=m
+# CONFIG_PWM_BERLIN is not set
+# CONFIG_PWM_BRCMSTB is not set
+CONFIG_PWM_CROS_EC=m
+# CONFIG_PWM_FSL_FTM is not set
+# CONFIG_PWM_HIBVT is not set
+CONFIG_PWM_MESON=m
+# CONFIG_PWM_MTK_DISP is not set
+# CONFIG_PWM_MEDIATEK is not set
+# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_RCAR=m
+# CONFIG_PWM_RENESAS_TPU is not set
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_PWM_SAMSUNG=y
+# CONFIG_PWM_SPRD is not set
+CONFIG_PWM_SUN4I=m
+CONFIG_PWM_TEGRA=m
+# CONFIG_PWM_TIECAP is not set
+# CONFIG_PWM_TIEHRPWM is not set
+# CONFIG_PWM_ZX is not set
+
+#
+# IRQ chip support
+#
+CONFIG_IRQCHIP=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_PM=y
+CONFIG_ARM_GIC_MAX_NR=1
+CONFIG_ARM_GIC_V2M=y
+CONFIG_ARM_GIC_V3=y
+CONFIG_ARM_GIC_V3_ITS=y
+CONFIG_ARM_GIC_V3_ITS_PCI=y
+CONFIG_ALPINE_MSI=y
+# CONFIG_AL_FIC is not set
+CONFIG_BCM7038_L1_IRQ=y
+CONFIG_BRCMSTB_L2_IRQ=y
+CONFIG_DW_APB_ICTL=y
+CONFIG_HISILICON_IRQ_MBIGEN=y
+CONFIG_RENESAS_IRQC=y
+CONFIG_MVEBU_GICP=y
+CONFIG_MVEBU_ICU=y
+CONFIG_MVEBU_ODMI=y
+CONFIG_MVEBU_PIC=y
+CONFIG_MVEBU_SEI=y
+CONFIG_LS_EXTIRQ=y
+CONFIG_LS_SCFG_MSI=y
+CONFIG_PARTITION_PERCPU=y
+CONFIG_QCOM_IRQ_COMBINER=y
+CONFIG_IRQ_UNIPHIER_AIDET=y
+CONFIG_MESON_IRQ_GPIO=y
+# CONFIG_QCOM_PDC is not set
+CONFIG_TI_SCI_INTR_IRQCHIP=y
+CONFIG_TI_SCI_INTA_IRQCHIP=y
+# end of IRQ chip support
+
+# CONFIG_IPACK_BUS is not set
+CONFIG_ARCH_HAS_RESET_CONTROLLER=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_BERLIN=y
+CONFIG_RESET_BRCMSTB=y
+CONFIG_RESET_BRCMSTB_RESCAL=y
+# CONFIG_RESET_INTEL_GW is not set
+CONFIG_RESET_MESON=y
+CONFIG_RESET_MESON_AUDIO_ARB=m
+# CONFIG_RESET_QCOM_AOSS is not set
+# CONFIG_RESET_QCOM_PDC is not set
+CONFIG_RESET_SIMPLE=y
+CONFIG_RESET_SUNXI=y
+CONFIG_RESET_TI_SCI=y
+# CONFIG_RESET_TI_SYSCON is not set
+CONFIG_RESET_UNIPHIER=y
+CONFIG_RESET_UNIPHIER_GLUE=y
+CONFIG_COMMON_RESET_HI3660=y
+CONFIG_COMMON_RESET_HI6220=y
+CONFIG_RESET_TEGRA_BPMP=y
+
+#
+# PHY Subsystem
+#
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PHY_MIPI_DPHY=y
+CONFIG_PHY_XGENE=y
+CONFIG_PHY_SUN4I_USB=y
+CONFIG_PHY_SUN6I_MIPI_DPHY=m
+# CONFIG_PHY_SUN9I_USB is not set
+# CONFIG_PHY_SUN50I_USB3 is not set
+CONFIG_PHY_MESON8B_USB2=y
+CONFIG_PHY_MESON_GXL_USB2=y
+CONFIG_PHY_MESON_GXL_USB3=y
+CONFIG_PHY_MESON_G12A_USB2=y
+CONFIG_PHY_MESON_G12A_USB3_PCIE=y
+CONFIG_PHY_MESON_AXG_PCIE=y
+CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y
+CONFIG_PHY_BCM_SR_USB=y
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_PHY_BCM_NS_USB2 is not set
+# CONFIG_PHY_BCM_NS_USB3 is not set
+CONFIG_PHY_NS2_PCIE=y
+CONFIG_PHY_NS2_USB_DRD=y
+CONFIG_PHY_BRCM_SATA=y
+CONFIG_PHY_BRCM_USB=y
+CONFIG_PHY_BCM_SR_PCIE=y
+# CONFIG_PHY_CADENCE_TORRENT is not set
+# CONFIG_PHY_CADENCE_DPHY is not set
+# CONFIG_PHY_CADENCE_SIERRA is not set
+# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_MIXEL_MIPI_DPHY is not set
+CONFIG_PHY_HI6220_USB=y
+# CONFIG_PHY_HI3660_USB is not set
+CONFIG_PHY_HISTB_COMBPHY=y
+CONFIG_PHY_HISI_INNO_USB2=y
+# CONFIG_PHY_BERLIN_SATA is not set
+# CONFIG_PHY_BERLIN_USB is not set
+CONFIG_PHY_MVEBU_A3700_COMPHY=y
+CONFIG_PHY_MVEBU_A3700_UTMI=y
+# CONFIG_PHY_MVEBU_A38X_COMPHY is not set
+CONFIG_PHY_MVEBU_CP110_COMPHY=y
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_MTK_TPHY is not set
+# CONFIG_PHY_MTK_UFS is not set
+# CONFIG_PHY_MTK_XSPHY is not set
+# CONFIG_PHY_CPCAP_USB is not set
+# CONFIG_PHY_MAPPHONE_MDM6600 is not set
+# CONFIG_PHY_OCELOT_SERDES is not set
+# CONFIG_PHY_QCOM_APQ8064_SATA is not set
+# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
+# CONFIG_PHY_QCOM_PCIE2 is not set
+CONFIG_PHY_QCOM_QMP=m
+# CONFIG_PHY_QCOM_QUSB2 is not set
+CONFIG_PHY_QCOM_UFS=m
+CONFIG_PHY_QCOM_UFS_14NM=m
+CONFIG_PHY_QCOM_USB_HS=y
+# CONFIG_PHY_QCOM_USB_HSIC is not set
+# CONFIG_PHY_QCOM_USB_HS_28NM is not set
+# CONFIG_PHY_QCOM_USB_SS is not set
+# CONFIG_PHY_RCAR_GEN2 is not set
+# CONFIG_PHY_RCAR_GEN3_PCIE is not set
+CONFIG_PHY_RCAR_GEN3_USB2=y
+CONFIG_PHY_RCAR_GEN3_USB3=m
+# CONFIG_PHY_ROCKCHIP_DP is not set
+CONFIG_PHY_ROCKCHIP_EMMC=y
+CONFIG_PHY_ROCKCHIP_INNO_HDMI=m
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set
+CONFIG_PHY_ROCKCHIP_PCIE=m
+CONFIG_PHY_ROCKCHIP_TYPEC=y
+# CONFIG_PHY_ROCKCHIP_USB is not set
+CONFIG_PHY_EXYNOS_DP_VIDEO=y
+CONFIG_PHY_EXYNOS_MIPI_VIDEO=y
+# CONFIG_PHY_EXYNOS_PCIE is not set
+CONFIG_PHY_SAMSUNG_USB2=y
+CONFIG_PHY_EXYNOS5_USBDRD=y
+CONFIG_PHY_UNIPHIER_USB2=y
+CONFIG_PHY_UNIPHIER_USB3=y
+# CONFIG_PHY_UNIPHIER_PCIE is not set
+CONFIG_PHY_TEGRA_XUSB=y
+# CONFIG_PHY_TEGRA194_P2U is not set
+# CONFIG_PHY_AM654_SERDES is not set
+# CONFIG_PHY_J721E_WIZ is not set
+# CONFIG_OMAP_USB2 is not set
+# CONFIG_PHY_TUSB1210 is not set
+# CONFIG_PHY_INTEL_EMMC is not set
+# end of PHY Subsystem
+
+# CONFIG_POWERCAP is not set
+# CONFIG_MCB is not set
+
+#
+# Performance monitor support
+#
+# CONFIG_ARM_CCI_PMU is not set
+# CONFIG_ARM_CCN is not set
+CONFIG_ARM_PMU=y
+CONFIG_ARM_PMU_ACPI=y
+# CONFIG_ARM_SMMU_V3_PMU is not set
+# CONFIG_ARM_DSU_PMU is not set
+CONFIG_HISI_PMU=y
+CONFIG_QCOM_L2_PMU=y
+CONFIG_QCOM_L3_PMU=y
+CONFIG_THUNDERX2_PMU=m
+# CONFIG_XGENE_PMU is not set
+# CONFIG_ARM_SPE_PMU is not set
+# end of Performance monitor support
+
+CONFIG_RAS=y
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# end of Android
+
+# CONFIG_LIBNVDIMM is not set
+# CONFIG_DAX is not set
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+# CONFIG_MTK_EFUSE is not set
+CONFIG_QCOM_QFPROM=y
+# CONFIG_NVMEM_SPMI_SDAM is not set
+CONFIG_ROCKCHIP_EFUSE=y
+# CONFIG_ROCKCHIP_OTP is not set
+CONFIG_NVMEM_BCM_OCOTP=y
+# CONFIG_NVMEM_SUNXI_SID is not set
+CONFIG_UNIPHIER_EFUSE=y
+CONFIG_MESON_EFUSE=m
+# CONFIG_MESON_MX_EFUSE is not set
+# CONFIG_NVMEM_ZYNQMP is not set
+# CONFIG_SPRD_EFUSE is not set
+
+#
+# HW tracing support
+#
+# CONFIG_STM is not set
+# CONFIG_INTEL_TH is not set
+# end of HW tracing support
+
+# CONFIG_FPGA is not set
+# CONFIG_FSI is not set
+CONFIG_TEE=y
+
+#
+# TEE drivers
+#
+CONFIG_OPTEE=y
+CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1
+# end of TEE drivers
+
+CONFIG_PM_OPP=y
+# CONFIG_SIOX is not set
+# CONFIG_SLIMBUS is not set
+# CONFIG_INTERCONNECT is not set
+# CONFIG_COUNTER is not set
+# CONFIG_MOST is not set
+# end of Device Drivers
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+# CONFIG_VALIDATE_FS_PARSER is not set
+CONFIG_FS_IOMAP=y
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+# CONFIG_EXT4_FS_SECURITY is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_ASSERT is not set
+# CONFIG_BTRFS_FS_REF_VERIFY is not set
+# CONFIG_NILFS2_FS is not set
+# CONFIG_F2FS_FS is not set
+# CONFIG_FS_DAX is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+# CONFIG_EXPORTFS_BLOCK_OPS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_MANDATORY_FILE_LOCKING=y
+# CONFIG_FS_ENCRYPTION is not set
+# CONFIG_FS_VERITY is not set
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_QUOTA=y
+# CONFIG_QUOTA_NETLINK_INTERFACE is not set
+CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QUOTA_DEBUG is not set
+# CONFIG_QFMT_V1 is not set
+# CONFIG_QFMT_V2 is not set
+CONFIG_QUOTACTL=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_AUTOFS_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+# CONFIG_VIRTIO_FS is not set
+CONFIG_OVERLAY_FS=m
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+# CONFIG_OVERLAY_FS_INDEX is not set
+# CONFIG_OVERLAY_FS_XINO_AUTO is not set
+# CONFIG_OVERLAY_FS_METACOPY is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+# end of Caches
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+# end of CD-ROM/DVD Filesystems
+
+#
+# DOS/FAT/EXFAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
+# CONFIG_EXFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+# end of DOS/FAT/EXFAT/NT Filesystems
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_VMCORE=y
+# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+# CONFIG_PROC_CHILDREN is not set
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_TMPFS_XATTR is not set
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_EFIVAR_FS=y
+# end of Pseudo filesystems
+
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ORANGEFS_FS is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ECRYPT_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+CONFIG_SQUASHFS=y
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
+# CONFIG_SQUASHFS_XATTR is not set
+CONFIG_SQUASHFS_ZLIB=y
+# CONFIG_SQUASHFS_LZ4 is not set
+# CONFIG_SQUASHFS_LZO is not set
+# CONFIG_SQUASHFS_XZ is not set
+# CONFIG_SQUASHFS_ZSTD is not set
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_PSTORE=y
+CONFIG_PSTORE_DEFLATE_COMPRESS=y
+# CONFIG_PSTORE_LZO_COMPRESS is not set
+# CONFIG_PSTORE_LZ4_COMPRESS is not set
+# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
+# CONFIG_PSTORE_842_COMPRESS is not set
+# CONFIG_PSTORE_ZSTD_COMPRESS is not set
+CONFIG_PSTORE_COMPRESS=y
+CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
+CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
+# CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_PMSG is not set
+# CONFIG_PSTORE_RAM is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_EROFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V4=y
+# CONFIG_NFS_SWAP is not set
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_PNFS_FILE_LAYOUT=y
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+# CONFIG_NFS_V4_1_MIGRATION is not set
+CONFIG_NFS_V4_SECURITY_LABEL=y
+CONFIG_ROOT_NFS=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFS_DISABLE_UDP_SUPPORT=y
+# CONFIG_NFSD is not set
+CONFIG_GRACE_PERIOD=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_SUNRPC_BACKCHANNEL=y
+# CONFIG_SUNRPC_DEBUG is not set
+# CONFIG_CEPH_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_9P_FS=y
+# CONFIG_9P_FS_POSIX_ACL is not set
+# CONFIG_9P_FS_SECURITY is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_MAC_ROMAN is not set
+# CONFIG_NLS_MAC_CELTIC is not set
+# CONFIG_NLS_MAC_CENTEURO is not set
+# CONFIG_NLS_MAC_CROATIAN is not set
+# CONFIG_NLS_MAC_CYRILLIC is not set
+# CONFIG_NLS_MAC_GAELIC is not set
+# CONFIG_NLS_MAC_GREEK is not set
+# CONFIG_NLS_MAC_ICELAND is not set
+# CONFIG_NLS_MAC_INUIT is not set
+# CONFIG_NLS_MAC_ROMANIAN is not set
+# CONFIG_NLS_MAC_TURKISH is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+# CONFIG_UNICODE is not set
+CONFIG_IO_WQ=y
+# end of File systems
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_REQUEST_CACHE is not set
+# CONFIG_PERSISTENT_KEYRINGS is not set
+# CONFIG_BIG_KEYS is not set
+# CONFIG_TRUSTED_KEYS is not set
+# CONFIG_ENCRYPTED_KEYS is not set
+# CONFIG_KEY_DH_OPERATIONS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+# CONFIG_SECURITY_NETWORK is not set
+# CONFIG_SECURITY_PATH is not set
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+# CONFIG_HARDENED_USERCOPY is not set
+# CONFIG_FORTIFY_SOURCE is not set
+# CONFIG_STATIC_USERMODEHELPER is not set
+# CONFIG_SECURITY_SMACK is not set
+# CONFIG_SECURITY_TOMOYO is not set
+# CONFIG_SECURITY_APPARMOR is not set
+# CONFIG_SECURITY_LOADPIN is not set
+# CONFIG_SECURITY_YAMA is not set
+# CONFIG_SECURITY_SAFESETID is not set
+# CONFIG_SECURITY_LOCKDOWN_LSM is not set
+CONFIG_INTEGRITY=y
+# CONFIG_INTEGRITY_SIGNATURE is not set
+CONFIG_INTEGRITY_AUDIT=y
+# CONFIG_IMA is not set
+# CONFIG_EVM is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,bpf"
+
+#
+# Kernel hardening options
+#
+
+#
+# Memory initialization
+#
+CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# end of Memory initialization
+# end of Kernel hardening options
+# end of Security options
+
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_SKCIPHER=y
+CONFIG_CRYPTO_SKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_KPP=m
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_USER is not set
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_NULL2=y
+# CONFIG_CRYPTO_PCRYPT is not set
+CONFIG_CRYPTO_CRYPTD=y
+CONFIG_CRYPTO_AUTHENC=m
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_ENGINE=y
+
+#
+# Public-key cryptography
+#
+CONFIG_CRYPTO_RSA=y
+# CONFIG_CRYPTO_DH is not set
+CONFIG_CRYPTO_ECC=m
+CONFIG_CRYPTO_ECDH=m
+# CONFIG_CRYPTO_ECRDSA is not set
+# CONFIG_CRYPTO_CURVE25519 is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
+# CONFIG_CRYPTO_AEGIS128 is not set
+CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_ECHAINIV=y
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CFB is not set
+CONFIG_CRYPTO_CTR=m
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_OFB is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+# CONFIG_CRYPTO_KEYWRAP is not set
+# CONFIG_CRYPTO_ADIANTUM is not set
+# CONFIG_CRYPTO_ESSIV is not set
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_HMAC=y
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_CRC32 is not set
+CONFIG_CRYPTO_XXHASH=m
+CONFIG_CRYPTO_BLAKE2B=m
+# CONFIG_CRYPTO_BLAKE2S is not set
+CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_GHASH=m
+# CONFIG_CRYPTO_POLY1305 is not set
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SM3=m
+# CONFIG_CRYPTO_STREEBOG is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_AES_TI is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=m
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+CONFIG_CRYPTO_CHACHA20=m
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_SM4 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_LZO is not set
+# CONFIG_CRYPTO_842 is not set
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+# CONFIG_CRYPTO_ZSTD is not set
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=y
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+# CONFIG_CRYPTO_DRBG_HASH is not set
+# CONFIG_CRYPTO_DRBG_CTR is not set
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+# CONFIG_CRYPTO_USER_API_RNG is not set
+# CONFIG_CRYPTO_USER_API_AEAD is not set
+CONFIG_CRYPTO_HASH_INFO=y
+
+#
+# Crypto library routines
+#
+CONFIG_CRYPTO_LIB_AES=y
+CONFIG_CRYPTO_LIB_ARC4=m
+# CONFIG_CRYPTO_LIB_BLAKE2S is not set
+CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
+# CONFIG_CRYPTO_LIB_CHACHA is not set
+# CONFIG_CRYPTO_LIB_CURVE25519 is not set
+CONFIG_CRYPTO_LIB_DES=m
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
+# CONFIG_CRYPTO_LIB_POLY1305 is not set
+# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set
+CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_ALLWINNER=y
+# CONFIG_CRYPTO_DEV_SUN4I_SS is not set
+# CONFIG_CRYPTO_DEV_SUN8I_CE is not set
+# CONFIG_CRYPTO_DEV_SUN8I_SS is not set
+# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
+# CONFIG_CRYPTO_DEV_EXYNOS_RNG is not set
+# CONFIG_CRYPTO_DEV_S5P is not set
+# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_CCP is not set
+# CONFIG_CAVIUM_CPT is not set
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+# CONFIG_CRYPTO_DEV_MARVELL_CESA is not set
+# CONFIG_CRYPTO_DEV_OCTEONTX_CPT is not set
+# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set
+# CONFIG_CRYPTO_DEV_QCE is not set
+# CONFIG_CRYPTO_DEV_QCOM_RNG is not set
+# CONFIG_CRYPTO_DEV_ROCKCHIP is not set
+# CONFIG_CRYPTO_DEV_ZYNQMP_AES is not set
+CONFIG_CRYPTO_DEV_VIRTIO=m
+CONFIG_CRYPTO_DEV_BCM_SPU=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
+# CONFIG_CRYPTO_DEV_CCREE is not set
+# CONFIG_CRYPTO_DEV_HISI_SEC is not set
+# CONFIG_CRYPTO_DEV_HISI_SEC2 is not set
+# CONFIG_CRYPTO_DEV_HISI_ZIP is not set
+# CONFIG_CRYPTO_DEV_HISI_HPRE is not set
+CONFIG_CRYPTO_DEV_AMLOGIC_GXL=y
+# CONFIG_CRYPTO_DEV_AMLOGIC_GXL_DEBUG is not set
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_X509_CERTIFICATE_PARSER=y
+# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set
+CONFIG_PKCS7_MESSAGE_PARSER=y
+# CONFIG_PKCS7_TEST_KEY is not set
+# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
+
+#
+# Certificates for signature checking
+#
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_TRUSTED_KEYS=""
+# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
+# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
+# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
+# end of Certificates for signature checking
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_RAID6_PQ_BENCHMARK=y
+# CONFIG_PACKING is not set
+CONFIG_BITREVERSE=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_CORDIC=m
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_INDIRECT_PIO=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC_ITU_T=y
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC64 is not set
+# CONFIG_CRC4 is not set
+CONFIG_CRC7=y
+CONFIG_LIBCRC32C=m
+# CONFIG_CRC8 is not set
+CONFIG_XXHASH=y
+CONFIG_AUDIT_GENERIC=y
+CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
+CONFIG_AUDIT_COMPAT_GENERIC=y
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_ZSTD_COMPRESS=m
+CONFIG_ZSTD_DECOMPRESS=m
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_INTERVAL_TREE=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DMA_DECLARE_COHERENT=y
+CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
+CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
+CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
+CONFIG_SWIOTLB=y
+CONFIG_DMA_NONCOHERENT_MMAP=y
+CONFIG_DMA_REMAP=y
+CONFIG_DMA_DIRECT_REMAP=y
+CONFIG_DMA_CMA=y
+
+#
+# Default contiguous memory area size:
+#
+CONFIG_CMA_SIZE_MBYTES=32
+CONFIG_CMA_SIZE_SEL_MBYTES=y
+# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
+# CONFIG_CMA_SIZE_SEL_MIN is not set
+# CONFIG_CMA_SIZE_SEL_MAX is not set
+CONFIG_CMA_ALIGNMENT=8
+# CONFIG_DMA_API_DEBUG is not set
+CONFIG_SGL_ALLOC=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+CONFIG_CLZ_TAB=y
+# CONFIG_IRQ_POLL is not set
+CONFIG_MPILIB=y
+CONFIG_LIBFDT=y
+CONFIG_OID_REGISTRY=y
+CONFIG_UCS2_STRING=y
+CONFIG_HAVE_GENERIC_VDSO=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_FONT_SUPPORT=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_SG_POOL=y
+CONFIG_SBITMAP=y
+# CONFIG_STRING_SELFTEST is not set
+# end of Library routines
+
+#
+# Kernel hacking
+#
+
+#
+# printk and dmesg options
+#
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINTK_CALLER is not set
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+CONFIG_SYMBOLIC_ERRNAME=y
+CONFIG_DEBUG_BUGVERBOSE=y
+# end of printk and dmesg options
+
+#
+# Compile-time checks and compiler options
+#
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_INFO_SPLIT is not set
+# CONFIG_DEBUG_INFO_DWARF4 is not set
+# CONFIG_DEBUG_INFO_BTF is not set
+# CONFIG_GDB_SCRIPTS is not set
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=2048
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_READABLE_ASM is not set
+# CONFIG_HEADERS_INSTALL is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# end of Compile-time checks and compiler options
+
+#
+# Generic Kernel Debugging Instruments
+#
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
+CONFIG_DEBUG_FS=y
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+# CONFIG_UBSAN is not set
+# end of Generic Kernel Debugging Instruments
+
+CONFIG_DEBUG_KERNEL=y
+CONFIG_DEBUG_MISC=y
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_PAGE_OWNER is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+CONFIG_GENERIC_PTDUMP=y
+# CONFIG_PTDUMP_DEBUGFS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_SCHED_STACK_END_CHECK is not set
+# CONFIG_DEBUG_VM is not set
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+# CONFIG_DEBUG_VIRTUAL is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
+# CONFIG_KASAN is not set
+CONFIG_KASAN_STACK=1
+# end of Memory Debugging
+
+# CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Oops, Lockups and Hangs
+#
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+# CONFIG_SOFTLOCKUP_DETECTOR is not set
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_WQ_WATCHDOG is not set
+# CONFIG_TEST_LOCKUP is not set
+# end of Debug Oops, Lockups and Hangs
+
+#
+# Scheduler Debugging
+#
+# CONFIG_SCHED_DEBUG is not set
+CONFIG_SCHED_INFO=y
+# CONFIG_SCHEDSTATS is not set
+# end of Scheduler Debugging
+
+# CONFIG_DEBUG_TIMEKEEPING is not set
+# CONFIG_DEBUG_PREEMPT is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_RWSEMS is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+# CONFIG_WW_MUTEX_SELFTEST is not set
+# end of Lock Debugging (spinlocks, mutexes, etc...)
+
+# CONFIG_STACKTRACE is not set
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_HAVE_DEBUG_BUGVERBOSE=y
+
+#
+# Debug kernel data structures
+#
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_PLIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+# end of Debug kernel data structures
+
+# CONFIG_DEBUG_CREDENTIALS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_RCU_PERF_TEST is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+# CONFIG_RCU_TRACE is not set
+# CONFIG_RCU_EQS_DEBUG is not set
+# end of RCU Debugging
+
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_SAMPLES is not set
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+CONFIG_STRICT_DEVMEM=y
+# CONFIG_IO_STRICT_DEVMEM is not set
+
+#
+# arm64 Debugging
+#
+# CONFIG_PID_IN_CONTEXTIDR is not set
+# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
+# CONFIG_DEBUG_WX is not set
+# CONFIG_DEBUG_EFI is not set
+# CONFIG_ARM64_RELOC_TEST is not set
+# CONFIG_CORESIGHT is not set
+# end of arm64 Debugging
+
+#
+# Kernel Testing and Coverage
+#
+# CONFIG_KUNIT is not set
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+# CONFIG_KCOV is not set
+CONFIG_RUNTIME_TESTING_MENU=y
+# CONFIG_LKDTM is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_MIN_HEAP is not set
+# CONFIG_TEST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_REED_SOLOMON_TEST is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_PERCPU_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_STRSCPY is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_BITMAP is not set
+# CONFIG_TEST_BITFIELD is not set
+# CONFIG_TEST_UUID is not set
+# CONFIG_TEST_XARRAY is not set
+# CONFIG_TEST_OVERFLOW is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_HASH is not set
+# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_VMALLOC is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_TEST_BLACKHOLE_DEV is not set
+# CONFIG_FIND_BIT_BENCHMARK is not set
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_SYSCTL is not set
+# CONFIG_TEST_UDELAY is not set
+# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_TEST_KMOD is not set
+# CONFIG_TEST_MEMCAT_P is not set
+# CONFIG_TEST_STACKINIT is not set
+# CONFIG_TEST_MEMINIT is not set
+CONFIG_MEMTEST=y
+# end of Kernel Testing and Coverage
+# end of Kernel hacking

+ 0 - 21
board/GfA/Display001/linux/linux-001-am33xx-dtsi_no-otg.patch

@@ -1,21 +0,0 @@
-diff -Naur linux-orig/arch/arm/boot/dts/am33xx.dtsi linux-7f280334068b7c875ade51f8f3921ab311f0c824/arch/arm/boot/dts/am33xx.dtsi
---- linux-orig/arch/arm/boot/dts/am33xx.dtsi	2014-02-07 00:05:20.000000000 +0100
-+++ linux-7f280334068b7c875ade51f8f3921ab311f0c824/arch/arm/boot/dts/am33xx.dtsi	2015-07-07 23:48:27.436000000 +0200
-@@ -526,7 +526,7 @@
- 
- 				interrupts = <18>;
- 				interrupt-names = "mc";
--				dr_mode = "otg";
-+				dr_mode = "peripheral";
- 				mentor,multipoint = <1>;
- 				mentor,num-eps = <16>;
- 				mentor,ram-bits = <12>;
-@@ -573,7 +573,7 @@
- 				reg-names = "mc", "control";
- 				interrupts = <19>;
- 				interrupt-names = "mc";
--				dr_mode = "otg";
-+				dr_mode = "host";
- 				mentor,multipoint = <1>;
- 				mentor,num-eps = <16>;
- 				mentor,ram-bits = <12>;

+ 0 - 916
board/GfA/Display001/linux/linux-002-edt-touch.patch

@@ -1,916 +0,0 @@
-diff -ur -x '*.o.*' -x '*.o' -x '*.builtin' -x '*.order' -x '*.ko' -x '*.ko.cmd' -x '*~' -x '*mod.c' linux-7f280334068b7c875ade51f8f3921ab311f0c824/drivers/input/touchscreen/edt-ft5x06.c linux-change/drivers/input/touchscreen/edt-ft5x06.c
---- linux-7f280334068b7c875ade51f8f3921ab311f0c824/drivers/input/touchscreen/edt-ft5x06.c	2014-02-07 00:05:20.000000000 +0100
-+++ linux-change/drivers/input/touchscreen/edt-ft5x06.c	2014-07-27 00:23:49.000000000 +0200
-@@ -1,5 +1,7 @@
- /*
-  * Copyright (C) 2012 Simon Budig, <simon.budig@kernelconcepts.de>
-+ * Daniel Wagener <daniel.wagener@kernelconcepts.de> (M09 firmware support)
-+ * Lothar Waßmann <LW@KARO-electronics.de> (DT support)
-  *
-  * This software is licensed under the terms of the GNU General Public
-  * License version 2, as published by the Free Software Foundation, and
-@@ -33,6 +35,7 @@
- #include <linux/debugfs.h>
- #include <linux/slab.h>
- #include <linux/gpio.h>
-+#include <linux/of_gpio.h>
- #include <linux/input/mt.h>
- #include <linux/input/edt-ft5x06.h>
- 
-@@ -45,6 +48,14 @@
- #define WORK_REGISTER_NUM_X		0x33
- #define WORK_REGISTER_NUM_Y		0x34
- 
-+#define M09_REGISTER_THRESHOLD		0x80
-+#define M09_REGISTER_GAIN		0x92
-+#define M09_REGISTER_OFFSET		0x93
-+#define M09_REGISTER_NUM_X		0x94
-+#define M09_REGISTER_NUM_Y		0x95
-+
-+#define NO_REGISTER			0xff
-+
- #define WORK_REGISTER_OPMODE		0x3c
- #define FACTORY_REGISTER_OPMODE		0x01
- 
-@@ -59,12 +70,30 @@
- #define EDT_RAW_DATA_RETRIES		100
- #define EDT_RAW_DATA_DELAY		1 /* msec */
- 
-+enum edt_ver {
-+	M06,
-+	M09,
-+};
-+
-+struct edt_reg_addr {
-+	int reg_threshold;
-+	int reg_report_rate;
-+	int reg_gain;
-+	int reg_offset;
-+	int reg_num_x;
-+	int reg_num_y;
-+};
-+
- struct edt_ft5x06_ts_data {
- 	struct i2c_client *client;
- 	struct input_dev *input;
- 	u16 num_x;
- 	u16 num_y;
- 
-+	int reset_pin;
-+	int irq_pin;
-+	int wake_pin;
-+
- #if defined(CONFIG_DEBUG_FS)
- 	struct dentry *debug_dir;
- 	u8 *raw_buffer;
-@@ -79,6 +108,9 @@
- 	int report_rate;
- 
- 	char name[EDT_NAME_LEN];
-+
-+	struct edt_reg_addr reg_addr;
-+	enum edt_ver version;
- };
- 
- static int edt_ft5x06_ts_readwrite(struct i2c_client *client,
-@@ -136,33 +168,58 @@
- {
- 	struct edt_ft5x06_ts_data *tsdata = dev_id;
- 	struct device *dev = &tsdata->client->dev;
--	u8 cmd = 0xf9;
--	u8 rdbuf[26];
-+	u8 cmd;
-+	u8 rdbuf[29];
- 	int i, type, x, y, id;
-+	int offset, tplen, datalen;
- 	int error;
- 
-+	switch (tsdata->version) {
-+	case M06:
-+		cmd = 0xf9; /* tell the controller to send touch data */
-+		offset = 5; /* where the actual touch data starts */
-+		tplen = 4;  /* data comes in so called frames */
-+		datalen = 26; /* how much bytes to listen for */
-+		break;
-+
-+	case M09:
-+		cmd = 0x02;
-+		offset = 1;
-+		tplen = 6;
-+		datalen = 29;
-+		break;
-+
-+	default:
-+		goto out;
-+	}
-+
- 	memset(rdbuf, 0, sizeof(rdbuf));
- 
- 	error = edt_ft5x06_ts_readwrite(tsdata->client,
- 					sizeof(cmd), &cmd,
--					sizeof(rdbuf), rdbuf);
-+					datalen, rdbuf);
- 	if (error) {
- 		dev_err_ratelimited(dev, "Unable to fetch data, error: %d\n",
- 				    error);
- 		goto out;
- 	}
- 
--	if (rdbuf[0] != 0xaa || rdbuf[1] != 0xaa || rdbuf[2] != 26) {
--		dev_err_ratelimited(dev, "Unexpected header: %02x%02x%02x!\n",
--				    rdbuf[0], rdbuf[1], rdbuf[2]);
--		goto out;
--	}
-+	/* M09 does not send header or CRC */
-+	if (tsdata->version == M06) {
-+		if (rdbuf[0] != 0xaa || rdbuf[1] != 0xaa ||
-+			rdbuf[2] != datalen) {
-+			dev_err_ratelimited(dev,
-+					"Unexpected header: %02x%02x%02x!\n",
-+					rdbuf[0], rdbuf[1], rdbuf[2]);
-+			goto out;
-+		}
- 
--	if (!edt_ft5x06_ts_check_crc(tsdata, rdbuf, 26))
--		goto out;
-+		if (!edt_ft5x06_ts_check_crc(tsdata, rdbuf, datalen))
-+			goto out;
-+	}
- 
- 	for (i = 0; i < MAX_SUPPORT_POINTS; i++) {
--		u8 *buf = &rdbuf[i * 4 + 5];
-+		u8 *buf = &rdbuf[i * tplen + offset];
- 		bool down;
- 
- 		type = buf[0] >> 6;
-@@ -170,10 +227,14 @@
- 		if (type == TOUCH_EVENT_RESERVED)
- 			continue;
- 
-+		/* M06 sometimes sends bogus coordinates in TOUCH_DOWN */
-+		if (tsdata->version == M06 && type == TOUCH_EVENT_DOWN)
-+			continue;
-+
- 		x = ((buf[0] << 8) | buf[1]) & 0x0fff;
- 		y = ((buf[2] << 8) | buf[3]) & 0x0fff;
- 		id = (buf[2] >> 4) & 0x0f;
--		down = (type != TOUCH_EVENT_UP);
-+		down = type != TOUCH_EVENT_UP;
- 
- 		input_mt_slot(tsdata->input, id);
- 		input_mt_report_slot_state(tsdata->input, MT_TOOL_FINGER, down);
-@@ -197,12 +258,25 @@
- {
- 	u8 wrbuf[4];
- 
--	wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc;
--	wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
--	wrbuf[2] = value;
--	wrbuf[3] = wrbuf[0] ^ wrbuf[1] ^ wrbuf[2];
-+	switch (tsdata->version) {
-+	case M06:
-+		wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc;
-+		wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
-+		wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
-+		wrbuf[2] = value;
-+		wrbuf[3] = wrbuf[0] ^ wrbuf[1] ^ wrbuf[2];
-+		return edt_ft5x06_ts_readwrite(tsdata->client, 4,
-+					wrbuf, 0, NULL);
-+	case M09:
-+		wrbuf[0] = addr;
-+		wrbuf[1] = value;
-+
-+		return edt_ft5x06_ts_readwrite(tsdata->client, 3,
-+					wrbuf, 0, NULL);
- 
--	return edt_ft5x06_ts_readwrite(tsdata->client, 4, wrbuf, 0, NULL);
-+	default:
-+		return -EINVAL;
-+	}
- }
- 
- static int edt_ft5x06_register_read(struct edt_ft5x06_ts_data *tsdata,
-@@ -211,19 +285,36 @@
- 	u8 wrbuf[2], rdbuf[2];
- 	int error;
- 
--	wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc;
--	wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
--	wrbuf[1] |= tsdata->factory_mode ? 0x80 : 0x40;
-+	switch (tsdata->version) {
-+	case M06:
-+		wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc;
-+		wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
-+		wrbuf[1] |= tsdata->factory_mode ? 0x80 : 0x40;
- 
--	error = edt_ft5x06_ts_readwrite(tsdata->client, 2, wrbuf, 2, rdbuf);
--	if (error)
--		return error;
-+		error = edt_ft5x06_ts_readwrite(tsdata->client, 2, wrbuf, 2,
-+						rdbuf);
-+		if (error)
-+			return error;
- 
--	if ((wrbuf[0] ^ wrbuf[1] ^ rdbuf[0]) != rdbuf[1]) {
--		dev_err(&tsdata->client->dev,
--			"crc error: 0x%02x expected, got 0x%02x\n",
--			wrbuf[0] ^ wrbuf[1] ^ rdbuf[0], rdbuf[1]);
--		return -EIO;
-+		if ((wrbuf[0] ^ wrbuf[1] ^ rdbuf[0]) != rdbuf[1]) {
-+			dev_err(&tsdata->client->dev,
-+				"crc error: 0x%02x expected, got 0x%02x\n",
-+				wrbuf[0] ^ wrbuf[1] ^ rdbuf[0],
-+				rdbuf[1]);
-+			return -EIO;
-+		}
-+		break;
-+
-+	case M09:
-+		wrbuf[0] = addr;
-+		error = edt_ft5x06_ts_readwrite(tsdata->client, 1,
-+						wrbuf, 1, rdbuf);
-+		if (error)
-+			return error;
-+		break;
-+
-+	default:
-+		return -EINVAL;
- 	}
- 
- 	return rdbuf[0];
-@@ -234,19 +325,21 @@
- 	size_t field_offset;
- 	u8 limit_low;
- 	u8 limit_high;
--	u8 addr;
-+	u8 addr_m06;
-+	u8 addr_m09;
- };
- 
--#define EDT_ATTR(_field, _mode, _addr, _limit_low, _limit_high)		\
-+#define EDT_ATTR(_field, _mode, _addr_m06, _addr_m09,			\
-+		_limit_low, _limit_high)				\
- 	struct edt_ft5x06_attribute edt_ft5x06_attr_##_field = {	\
- 		.dattr = __ATTR(_field, _mode,				\
- 				edt_ft5x06_setting_show,		\
- 				edt_ft5x06_setting_store),		\
--		.field_offset =						\
--			offsetof(struct edt_ft5x06_ts_data, _field),	\
-+		.field_offset = offsetof(struct edt_ft5x06_ts_data, _field), \
-+		.addr_m06 = _addr_m06,					\
-+		.addr_m09 = _addr_m09,					\
- 		.limit_low = _limit_low,				\
- 		.limit_high = _limit_high,				\
--		.addr = _addr,						\
- 	}
- 
- static ssize_t edt_ft5x06_setting_show(struct device *dev,
-@@ -257,10 +350,11 @@
- 	struct edt_ft5x06_ts_data *tsdata = i2c_get_clientdata(client);
- 	struct edt_ft5x06_attribute *attr =
- 			container_of(dattr, struct edt_ft5x06_attribute, dattr);
--	u8 *field = (u8 *)((char *)tsdata + attr->field_offset);
-+	u8 *field = (u8 *)tsdata + attr->field_offset;
- 	int val;
- 	size_t count = 0;
- 	int error = 0;
-+	u8 addr;
- 
- 	mutex_lock(&tsdata->mutex);
- 
-@@ -269,15 +363,33 @@
- 		goto out;
- 	}
- 
--	val = edt_ft5x06_register_read(tsdata, attr->addr);
--	if (val < 0) {
--		error = val;
--		dev_err(&tsdata->client->dev,
--			"Failed to fetch attribute %s, error %d\n",
--			dattr->attr.name, error);
-+	switch (tsdata->version) {
-+	case M06:
-+		addr = attr->addr_m06;
-+		break;
-+
-+	case M09:
-+		addr = attr->addr_m09;
-+		break;
-+
-+	default:
-+		error = -ENODEV;
- 		goto out;
- 	}
- 
-+	if (addr != NO_REGISTER) {
-+		val = edt_ft5x06_register_read(tsdata, addr);
-+		if (val < 0) {
-+			error = val;
-+			dev_err(&tsdata->client->dev,
-+				"Failed to fetch attribute %s, error %d\n",
-+				dattr->attr.name, error);
-+			goto out;
-+		}
-+	} else {
-+		val = *field;
-+	}
-+
- 	if (val != *field) {
- 		dev_warn(&tsdata->client->dev,
- 			 "%s: read (%d) and stored value (%d) differ\n",
-@@ -299,9 +411,10 @@
- 	struct edt_ft5x06_ts_data *tsdata = i2c_get_clientdata(client);
- 	struct edt_ft5x06_attribute *attr =
- 			container_of(dattr, struct edt_ft5x06_attribute, dattr);
--	u8 *field = (u8 *)((char *)tsdata + attr->field_offset);
-+	u8 *field = (u8 *)tsdata + attr->field_offset;
- 	unsigned int val;
- 	int error;
-+	u8 addr;
- 
- 	mutex_lock(&tsdata->mutex);
- 
-@@ -319,14 +432,29 @@
- 		goto out;
- 	}
- 
--	error = edt_ft5x06_register_write(tsdata, attr->addr, val);
--	if (error) {
--		dev_err(&tsdata->client->dev,
--			"Failed to update attribute %s, error: %d\n",
--			dattr->attr.name, error);
-+	switch (tsdata->version) {
-+	case M06:
-+		addr = attr->addr_m06;
-+		break;
-+
-+	case M09:
-+		addr = attr->addr_m09;
-+		break;
-+
-+	default:
-+		error = -ENODEV;
- 		goto out;
- 	}
- 
-+	if (addr != NO_REGISTER) {
-+		error = edt_ft5x06_register_write(tsdata, addr, val);
-+		if (error) {
-+			dev_err(&tsdata->client->dev,
-+				"Failed to update attribute %s, error: %d\n",
-+				dattr->attr.name, error);
-+			goto out;
-+		}
-+	}
- 	*field = val;
- 
- out:
-@@ -334,12 +462,14 @@
- 	return error ?: count;
- }
- 
--static EDT_ATTR(gain, S_IWUSR | S_IRUGO, WORK_REGISTER_GAIN, 0, 31);
--static EDT_ATTR(offset, S_IWUSR | S_IRUGO, WORK_REGISTER_OFFSET, 0, 31);
--static EDT_ATTR(threshold, S_IWUSR | S_IRUGO,
--		WORK_REGISTER_THRESHOLD, 20, 80);
--static EDT_ATTR(report_rate, S_IWUSR | S_IRUGO,
--		WORK_REGISTER_REPORT_RATE, 3, 14);
-+static EDT_ATTR(gain, S_IWUSR | S_IRUGO, WORK_REGISTER_GAIN,
-+		M09_REGISTER_GAIN, 0, 31);
-+static EDT_ATTR(offset, S_IWUSR | S_IRUGO, WORK_REGISTER_OFFSET,
-+		M09_REGISTER_OFFSET, 0, 31);
-+static EDT_ATTR(threshold, S_IWUSR | S_IRUGO, WORK_REGISTER_THRESHOLD,
-+		M09_REGISTER_THRESHOLD, 20, 80);
-+static EDT_ATTR(report_rate, S_IWUSR | S_IRUGO, WORK_REGISTER_REPORT_RATE,
-+		NO_REGISTER, 3, 14);
- 
- static struct attribute *edt_ft5x06_attrs[] = {
- 	&edt_ft5x06_attr_gain.dattr.attr,
-@@ -374,6 +504,9 @@
- 	}
- 
- 	/* mode register is 0x3c when in the work mode */
-+	if (tsdata->version == M09)
-+		goto m09_out;
-+
- 	error = edt_ft5x06_register_write(tsdata, WORK_REGISTER_OPMODE, 0x03);
- 	if (error) {
- 		dev_err(&client->dev,
-@@ -406,12 +539,18 @@
- 	enable_irq(client->irq);
- 
- 	return error;
-+
-+m09_out:
-+	dev_err(&client->dev, "No factory mode support for M09\n");
-+	return -EINVAL;
-+
- }
- 
- static int edt_ft5x06_work_mode(struct edt_ft5x06_ts_data *tsdata)
- {
- 	struct i2c_client *client = tsdata->client;
- 	int retries = EDT_SWITCH_MODE_RETRIES;
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
- 	int ret;
- 	int error;
- 
-@@ -444,13 +583,14 @@
- 	tsdata->raw_buffer = NULL;
- 
- 	/* restore parameters */
--	edt_ft5x06_register_write(tsdata, WORK_REGISTER_THRESHOLD,
-+	edt_ft5x06_register_write(tsdata, reg_addr->reg_threshold,
- 				  tsdata->threshold);
--	edt_ft5x06_register_write(tsdata, WORK_REGISTER_GAIN,
-+	edt_ft5x06_register_write(tsdata, reg_addr->reg_gain,
- 				  tsdata->gain);
--	edt_ft5x06_register_write(tsdata, WORK_REGISTER_OFFSET,
-+	edt_ft5x06_register_write(tsdata, reg_addr->reg_offset,
- 				  tsdata->offset);
--	edt_ft5x06_register_write(tsdata, WORK_REGISTER_REPORT_RATE,
-+	if (reg_addr->reg_report_rate)
-+		edt_ft5x06_register_write(tsdata, reg_addr->reg_report_rate,
- 				  tsdata->report_rate);
- 
- 	enable_irq(client->irq);
-@@ -479,7 +619,7 @@
- 
- 	if (mode != tsdata->factory_mode) {
- 		retval = mode ? edt_ft5x06_factory_mode(tsdata) :
--			        edt_ft5x06_work_mode(tsdata);
-+				edt_ft5x06_work_mode(tsdata);
- 	}
- 
- 	mutex_unlock(&tsdata->mutex);
-@@ -568,7 +708,6 @@
- 	return error ?: read;
- };
- 
--
- static const struct file_operations debugfs_raw_data_fops = {
- 	.open = simple_open,
- 	.read = edt_ft5x06_debugfs_raw_data_read,
-@@ -614,57 +753,100 @@
- 
- #endif /* CONFIG_DEBUGFS */
- 
--
--
- static int edt_ft5x06_ts_reset(struct i2c_client *client,
--					 int reset_pin)
-+			struct edt_ft5x06_ts_data *tsdata)
- {
- 	int error;
- 
--	if (gpio_is_valid(reset_pin)) {
-+	if (gpio_is_valid(tsdata->wake_pin)) {
-+		error = devm_gpio_request_one(&client->dev,
-+					tsdata->wake_pin, GPIOF_OUT_INIT_LOW,
-+					"edt-ft5x06 wake");
-+		if (error) {
-+			dev_err(&client->dev,
-+				"Failed to request GPIO %d as wake pin, error %d\n",
-+				tsdata->wake_pin, error);
-+			return error;
-+		}
-+
-+		msleep(5);
-+		gpio_set_value(tsdata->wake_pin, 1);
-+	}
-+	if (gpio_is_valid(tsdata->reset_pin)) {
- 		/* this pulls reset down, enabling the low active reset */
--		error = gpio_request_one(reset_pin, GPIOF_OUT_INIT_LOW,
--					 "edt-ft5x06 reset");
-+		error = devm_gpio_request_one(&client->dev,
-+					tsdata->reset_pin, GPIOF_OUT_INIT_LOW,
-+					"edt-ft5x06 reset");
- 		if (error) {
- 			dev_err(&client->dev,
- 				"Failed to request GPIO %d as reset pin, error %d\n",
--				reset_pin, error);
-+				tsdata->reset_pin, error);
- 			return error;
- 		}
- 
--		mdelay(50);
--		gpio_set_value(reset_pin, 1);
--		mdelay(100);
-+		msleep(5);
-+		gpio_set_value(tsdata->reset_pin, 1);
-+		msleep(300);
- 	}
- 
- 	return 0;
- }
- 
- static int edt_ft5x06_ts_identify(struct i2c_client *client,
--					    char *model_name,
--					    char *fw_version)
-+					struct edt_ft5x06_ts_data *tsdata,
-+					char *fw_version)
- {
- 	u8 rdbuf[EDT_NAME_LEN];
- 	char *p;
- 	int error;
-+	char *model_name = tsdata->name;
- 
-+	/* see what we find if we assume it is a M06 *
-+	 * if we get less than EDT_NAME_LEN, we don't want
-+	 * to have garbage in there
-+	 */
-+	memset(rdbuf, 0, sizeof(rdbuf));
- 	error = edt_ft5x06_ts_readwrite(client, 1, "\xbb",
- 					EDT_NAME_LEN - 1, rdbuf);
- 	if (error)
- 		return error;
- 
--	/* remove last '$' end marker */
--	rdbuf[EDT_NAME_LEN - 1] = '\0';
--	if (rdbuf[EDT_NAME_LEN - 2] == '$')
--		rdbuf[EDT_NAME_LEN - 2] = '\0';
--
--	/* look for Model/Version separator */
--	p = strchr(rdbuf, '*');
--	if (p)
--		*p++ = '\0';
-+	/* if we find something consistent, stay with that assumption
-+	 * at least M09 won't send 3 bytes here
-+	 */
-+	if (!(strnicmp(rdbuf + 1, "EP0", 3))) {
-+		tsdata->version = M06;
-+
-+		/* remove last '$' end marker */
-+		rdbuf[EDT_NAME_LEN - 1] = '\0';
-+		if (rdbuf[EDT_NAME_LEN - 2] == '$')
-+			rdbuf[EDT_NAME_LEN - 2] = '\0';
-+
-+		/* look for Model/Version separator */
-+		p = strchr(rdbuf, '*');
-+		if (p)
-+			*p++ = '\0';
-+		strlcpy(model_name, rdbuf + 1, EDT_NAME_LEN);
-+		strlcpy(fw_version, p ? p : "", EDT_NAME_LEN);
-+	} else {
-+		/* since there are only two versions around (M06, M09) */
-+		tsdata->version = M09;
-+
-+		error = edt_ft5x06_ts_readwrite(client, 1, "\xA6",
-+						2, rdbuf);
-+		if (error)
-+			return error;
-+
-+		strlcpy(fw_version, rdbuf, 2);
-+
-+		error = edt_ft5x06_ts_readwrite(client, 1, "\xA8",
-+						1, rdbuf);
-+		if (error)
-+			return error;
- 
--	strlcpy(model_name, rdbuf + 1, EDT_NAME_LEN);
--	strlcpy(fw_version, p ? p : "", EDT_NAME_LEN);
-+		snprintf(model_name, EDT_NAME_LEN, "EP0%i%i0M09",
-+			rdbuf[0] >> 4, rdbuf[0] & 0x0F);
-+	}
- 
- 	return 0;
- }
-@@ -674,71 +856,157 @@
- 	    pdata->name <= edt_ft5x06_attr_##name.limit_high)		\
- 		edt_ft5x06_register_write(tsdata, reg, pdata->name)
- 
-+#define EDT_GET_PROP(name, reg) {				\
-+	u32 val;						\
-+	if (of_property_read_u32(np, #name, &val) == 0)		\
-+		edt_ft5x06_register_write(tsdata, reg, val);	\
-+}
-+
-+static void edt_ft5x06_ts_get_dt_defaults(struct device_node *np,
-+					struct edt_ft5x06_ts_data *tsdata)
-+{
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+
-+	EDT_GET_PROP(threshold, reg_addr->reg_threshold);
-+	EDT_GET_PROP(gain, reg_addr->reg_gain);
-+	EDT_GET_PROP(offset, reg_addr->reg_offset);
-+}
-+
- static void
- edt_ft5x06_ts_get_defaults(struct edt_ft5x06_ts_data *tsdata,
- 			   const struct edt_ft5x06_platform_data *pdata)
- {
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+
- 	if (!pdata->use_parameters)
- 		return;
- 
- 	/* pick up defaults from the platform data */
--	EDT_ATTR_CHECKSET(threshold, WORK_REGISTER_THRESHOLD);
--	EDT_ATTR_CHECKSET(gain, WORK_REGISTER_GAIN);
--	EDT_ATTR_CHECKSET(offset, WORK_REGISTER_OFFSET);
--	EDT_ATTR_CHECKSET(report_rate, WORK_REGISTER_REPORT_RATE);
-+	EDT_ATTR_CHECKSET(threshold, reg_addr->reg_threshold);
-+	EDT_ATTR_CHECKSET(gain, reg_addr->reg_gain);
-+	EDT_ATTR_CHECKSET(offset, reg_addr->reg_offset);
-+	if (reg_addr->reg_report_rate != NO_REGISTER)
-+		EDT_ATTR_CHECKSET(report_rate, reg_addr->reg_report_rate);
- }
- 
- static void
- edt_ft5x06_ts_get_parameters(struct edt_ft5x06_ts_data *tsdata)
- {
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+
- 	tsdata->threshold = edt_ft5x06_register_read(tsdata,
--						     WORK_REGISTER_THRESHOLD);
--	tsdata->gain = edt_ft5x06_register_read(tsdata, WORK_REGISTER_GAIN);
--	tsdata->offset = edt_ft5x06_register_read(tsdata, WORK_REGISTER_OFFSET);
--	tsdata->report_rate = edt_ft5x06_register_read(tsdata,
--						WORK_REGISTER_REPORT_RATE);
--	tsdata->num_x = edt_ft5x06_register_read(tsdata, WORK_REGISTER_NUM_X);
--	tsdata->num_y = edt_ft5x06_register_read(tsdata, WORK_REGISTER_NUM_Y);
-+						     reg_addr->reg_threshold);
-+	tsdata->gain = edt_ft5x06_register_read(tsdata, reg_addr->reg_gain);
-+	tsdata->offset = edt_ft5x06_register_read(tsdata, reg_addr->reg_offset);
-+	if (reg_addr->reg_report_rate != NO_REGISTER)
-+		tsdata->report_rate = edt_ft5x06_register_read(tsdata,
-+						reg_addr->reg_report_rate);
-+	tsdata->num_x = edt_ft5x06_register_read(tsdata, reg_addr->reg_num_x);
-+	tsdata->num_y = edt_ft5x06_register_read(tsdata, reg_addr->reg_num_y);
- }
- 
-+static void
-+edt_ft5x06_ts_set_regs(struct edt_ft5x06_ts_data *tsdata)
-+{
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+
-+	switch (tsdata->version) {
-+	case M06:
-+		reg_addr->reg_threshold = WORK_REGISTER_THRESHOLD;
-+		reg_addr->reg_report_rate = WORK_REGISTER_REPORT_RATE;
-+		reg_addr->reg_gain = WORK_REGISTER_GAIN;
-+		reg_addr->reg_offset = WORK_REGISTER_OFFSET;
-+		reg_addr->reg_num_x = WORK_REGISTER_NUM_X;
-+		reg_addr->reg_num_y = WORK_REGISTER_NUM_Y;
-+		break;
-+
-+	case M09:
-+		reg_addr->reg_threshold = M09_REGISTER_THRESHOLD;
-+		reg_addr->reg_gain = M09_REGISTER_GAIN;
-+		reg_addr->reg_offset = M09_REGISTER_OFFSET;
-+		reg_addr->reg_num_x = M09_REGISTER_NUM_X;
-+		reg_addr->reg_num_y = M09_REGISTER_NUM_Y;
-+		break;
-+	}
-+}
-+
-+#ifdef CONFIG_OF
-+static int edt_ft5x06_i2c_ts_probe_dt(struct device *dev,
-+				struct edt_ft5x06_ts_data *tsdata)
-+{
-+	struct device_node *np = dev->of_node;
-+
-+	/*
-+	 * irq_pin is not needed for DT setup.
-+	 * irq is associated via 'interrupts' property in DT
-+	 */
-+	tsdata->irq_pin = -EINVAL;
-+	tsdata->reset_pin = of_get_named_gpio(np, "reset-gpios", 0);
-+	tsdata->wake_pin = of_get_named_gpio(np, "wake-gpios", 0);
-+
-+	return 0;
-+}
-+#else
-+static inline int edt_ft5x06_i2c_ts_probe_dt(struct device *dev,
-+					struct edt_ft5x06_ts_data *tsdata)
-+{
-+	return -ENODEV;
-+}
-+#endif
-+
- static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 					 const struct i2c_device_id *id)
- {
- 	const struct edt_ft5x06_platform_data *pdata =
--						client->dev.platform_data;
-+						dev_get_platdata(&client->dev);
- 	struct edt_ft5x06_ts_data *tsdata;
- 	struct input_dev *input;
- 	int error;
- 	char fw_version[EDT_NAME_LEN];
- 
-+
-+	printk(KERN_INFO "EDT-TC:: %s ::-----\n", __func__);
-+
- 	dev_dbg(&client->dev, "probing for EDT FT5x06 I2C\n");
- 
-+	tsdata = devm_kzalloc(&client->dev, sizeof(*tsdata), GFP_KERNEL);
-+	if (!tsdata) {
-+		dev_err(&client->dev, "failed to allocate driver data.\n");
-+		return -ENOMEM;
-+	}
-+
- 	if (!pdata) {
--		dev_err(&client->dev, "no platform data?\n");
--		return -EINVAL;
-+		error = edt_ft5x06_i2c_ts_probe_dt(&client->dev, tsdata);
-+		if (error) {
-+			dev_err(&client->dev,
-+				"DT probe failed and no platform data present\n");
-+			return error;
-+		}
-+	} else {
-+		tsdata->reset_pin = pdata->reset_pin;
-+		tsdata->irq_pin = pdata->irq_pin;
-+		tsdata->wake_pin = -EINVAL;
- 	}
- 
--	error = edt_ft5x06_ts_reset(client, pdata->reset_pin);
-+	error = edt_ft5x06_ts_reset(client, tsdata);
- 	if (error)
- 		return error;
- 
--	if (gpio_is_valid(pdata->irq_pin)) {
--		error = gpio_request_one(pdata->irq_pin,
--					 GPIOF_IN, "edt-ft5x06 irq");
-+	if (gpio_is_valid(tsdata->irq_pin)) {
-+		error = devm_gpio_request_one(&client->dev, tsdata->irq_pin,
-+					GPIOF_IN, "edt-ft5x06 irq");
- 		if (error) {
- 			dev_err(&client->dev,
- 				"Failed to request GPIO %d, error %d\n",
--				pdata->irq_pin, error);
-+				tsdata->irq_pin, error);
- 			return error;
- 		}
- 	}
- 
--	tsdata = kzalloc(sizeof(*tsdata), GFP_KERNEL);
--	input = input_allocate_device();
--	if (!tsdata || !input) {
--		dev_err(&client->dev, "failed to allocate driver data.\n");
--		error = -ENOMEM;
--		goto err_free_mem;
-+	input = devm_input_allocate_device(&client->dev);
-+	if (!input) {
-+		dev_err(&client->dev, "failed to allocate input device.\n");
-+		return -ENOMEM;
- 	}
- 
- 	mutex_init(&tsdata->mutex);
-@@ -746,13 +1014,19 @@
- 	tsdata->input = input;
- 	tsdata->factory_mode = false;
- 
--	error = edt_ft5x06_ts_identify(client, tsdata->name, fw_version);
-+	error = edt_ft5x06_ts_identify(client, tsdata, fw_version);
- 	if (error) {
- 		dev_err(&client->dev, "touchscreen probe failed\n");
--		goto err_free_mem;
-+		return error;
- 	}
- 
--	edt_ft5x06_ts_get_defaults(tsdata, pdata);
-+	edt_ft5x06_ts_set_regs(tsdata);
-+
-+	if (!pdata)
-+		edt_ft5x06_ts_get_dt_defaults(client->dev.of_node, tsdata);
-+	else
-+		edt_ft5x06_ts_get_defaults(tsdata, pdata);
-+
- 	edt_ft5x06_ts_get_parameters(tsdata);
- 
- 	dev_dbg(&client->dev,
-@@ -776,23 +1050,24 @@
- 	error = input_mt_init_slots(input, MAX_SUPPORT_POINTS, 0);
- 	if (error) {
- 		dev_err(&client->dev, "Unable to init MT slots.\n");
--		goto err_free_mem;
-+		return error;
- 	}
- 
- 	input_set_drvdata(input, tsdata);
- 	i2c_set_clientdata(client, tsdata);
- 
--	error = request_threaded_irq(client->irq, NULL, edt_ft5x06_ts_isr,
--				     IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
--				     client->name, tsdata);
-+	error = devm_request_threaded_irq(&client->dev, client->irq, NULL,
-+					edt_ft5x06_ts_isr,
-+					IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
-+					client->name, tsdata);
- 	if (error) {
- 		dev_err(&client->dev, "Unable to request touchscreen IRQ.\n");
--		goto err_free_mem;
-+		return error;
- 	}
- 
- 	error = sysfs_create_group(&client->dev.kobj, &edt_ft5x06_attr_group);
- 	if (error)
--		goto err_free_irq;
-+		return error;
- 
- 	error = input_register_device(input);
- 	if (error)
-@@ -802,44 +1077,23 @@
- 	device_init_wakeup(&client->dev, 1);
- 
- 	dev_dbg(&client->dev,
--		"EDT FT5x06 initialized: IRQ pin %d, Reset pin %d.\n",
--		pdata->irq_pin, pdata->reset_pin);
-+		"EDT FT5x06 initialized: IRQ %d, WAKE pin %d, Reset pin %d.\n",
-+		client->irq, tsdata->wake_pin, tsdata->reset_pin);
- 
- 	return 0;
- 
- err_remove_attrs:
- 	sysfs_remove_group(&client->dev.kobj, &edt_ft5x06_attr_group);
--err_free_irq:
--	free_irq(client->irq, tsdata);
--err_free_mem:
--	input_free_device(input);
--	kfree(tsdata);
--
--	if (gpio_is_valid(pdata->irq_pin))
--		gpio_free(pdata->irq_pin);
--
- 	return error;
- }
- 
- static int edt_ft5x06_ts_remove(struct i2c_client *client)
- {
--	const struct edt_ft5x06_platform_data *pdata =
--						dev_get_platdata(&client->dev);
- 	struct edt_ft5x06_ts_data *tsdata = i2c_get_clientdata(client);
- 
- 	edt_ft5x06_ts_teardown_debugfs(tsdata);
- 	sysfs_remove_group(&client->dev.kobj, &edt_ft5x06_attr_group);
- 
--	free_irq(client->irq, tsdata);
--	input_unregister_device(tsdata->input);
--
--	if (gpio_is_valid(pdata->irq_pin))
--		gpio_free(pdata->irq_pin);
--	if (gpio_is_valid(pdata->reset_pin))
--		gpio_free(pdata->reset_pin);
--
--	kfree(tsdata);
--
- 	return 0;
- }
- 
-@@ -869,15 +1123,26 @@
- 			 edt_ft5x06_ts_suspend, edt_ft5x06_ts_resume);
- 
- static const struct i2c_device_id edt_ft5x06_ts_id[] = {
--	{ "edt-ft5x06", 0 },
--	{ }
-+	{ "edt-ft5x06", 0, },
-+	{ /* sentinel */ }
- };
- MODULE_DEVICE_TABLE(i2c, edt_ft5x06_ts_id);
- 
-+#ifdef CONFIG_OF
-+static const struct of_device_id edt_ft5x06_of_match[] = {
-+	{ .compatible = "edt,edt-ft5206", },
-+	{ .compatible = "edt,edt-ft5306", },
-+	{ .compatible = "edt,edt-ft5406", },
-+	{ /* sentinel */ }
-+};
-+MODULE_DEVICE_TABLE(of, edt_ft5x06_of_match);
-+#endif
-+
- static struct i2c_driver edt_ft5x06_ts_driver = {
- 	.driver = {
- 		.owner = THIS_MODULE,
- 		.name = "edt_ft5x06",
-+		.of_match_table = of_match_ptr(edt_ft5x06_of_match),
- 		.pm = &edt_ft5x06_ts_pm_ops,
- 	},
- 	.id_table = edt_ft5x06_ts_id,
-diff -ur -x '*.o.*' -x '*.o' -x '*.builtin' -x '*.order' -x '*.ko' -x '*.ko.cmd' -x '*~' -x '*mod.c' linux-7f280334068b7c875ade51f8f3921ab311f0c824/drivers/input/touchscreen/pixcir_i2c_ts.c linux-change/drivers/input/touchscreen/pixcir_i2c_ts.c
---- linux-7f280334068b7c875ade51f8f3921ab311f0c824/drivers/input/touchscreen/pixcir_i2c_ts.c	2014-02-07 00:05:20.000000000 +0100
-+++ linux-change/drivers/input/touchscreen/pixcir_i2c_ts.c	2014-03-31 03:41:37.000000000 +0200
-@@ -480,7 +480,8 @@
- 	}
- 
- 	error = devm_request_threaded_irq(dev, client->irq, NULL, pixcir_ts_isr,
--				     IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
-+				     IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING
-+				     | IRQF_ONESHOT,
- 				     client->name, tsdata);
- 	if (error) {
- 		dev_err(dev, "failed to request irq %d\n", client->irq);
-diff -ur -x '*.o.*' -x '*.o' -x '*.builtin' -x '*.order' -x '*.ko' -x '*.ko.cmd' -x '*~' -x '*mod.c' linux-7f280334068b7c875ade51f8f3921ab311f0c824/drivers/input/touchscreen/ti_am335x_tsc.c linux-change/drivers/input/touchscreen/ti_am335x_tsc.c
---- linux-7f280334068b7c875ade51f8f3921ab311f0c824/drivers/input/touchscreen/ti_am335x_tsc.c	2014-02-07 00:05:20.000000000 +0100
-+++ linux-change/drivers/input/touchscreen/ti_am335x_tsc.c	2014-03-31 03:41:37.000000000 +0200
-@@ -465,6 +465,9 @@
- 
- 	tscadc_dev = ti_tscadc_dev_get(to_platform_device(dev));
- 	if (device_may_wakeup(tscadc_dev->dev)) {
-+		/* Flush any pending interrupts */
-+		titsc_writel(ts_dev, REG_IRQSTATUS, 0xffffffff);
-+
- 		idle = titsc_readl(ts_dev, REG_IRQENABLE);
- 		titsc_writel(ts_dev, REG_IRQENABLE,
- 				(idle | IRQENB_HW_PEN));

+ 0 - 24
board/GfA/Display001/linux/linux-003-da8xx-videotiming.patch

@@ -1,24 +0,0 @@
---- a/drivers/video/fbmon.c	2014-02-07 00:05:20.000000000 +0100
-+++ b/drivers/video/fbmon.c	2015-01-11 22:23:39.721375753 +0100
-@@ -38,7 +38,9 @@
- #include <asm/pci-bridge.h>
- #endif
- #include "edid.h"
--
-+#ifdef CONFIG_FB_DA8XX
-+#include <video/da8xx-fb.h>
-+#endif
- /*
-  * EDID parser
-  */
-@@ -1400,6 +1402,10 @@
- 	fbmode->vmode = 0;
- 	if (vm->flags & DISPLAY_FLAGS_HSYNC_HIGH)
- 		fbmode->sync |= FB_SYNC_HOR_HIGH_ACT;
-+#ifdef CONFIG_FB_DA8XX		
-+	if (vm->flags & DISPLAY_FLAGS_PIXDATA_POSEDGE)
-+		fbmode->sync |= FB_SYNC_CLK_INVERT;
-+#endif		
- 	if (vm->flags & DISPLAY_FLAGS_VSYNC_HIGH)
- 		fbmode->sync |= FB_SYNC_VERT_HIGH_ACT;
- 	if (vm->flags & DISPLAY_FLAGS_INTERLACED)

+ 0 - 61
board/GfA/Display001/linux/linux-004-mmc-enum.patch

@@ -1,61 +0,0 @@
---- linux-org/drivers/mmc/card/Kconfig	2014-02-07 00:05:20.000000000 +0100
-+++ linux-7f280334068b7c875ade51f8f3921ab311f0c824/drivers/mmc/card/Kconfig	2015-09-29 23:12:27.205337449 +0200
-@@ -50,6 +50,33 @@
- 
- 	  If unsure, say Y here.
- 
-+config MMC_SLOTINDEX
-+	bool "Use host index for enumerating mmxblkN"
-+	depends on MMC_BLOCK
-+	default n
-+	help
-+	  On embedded devices, often there is a combination of
-+	  removable mmc devices (e.g. MMC/SD cards) and hard
-+	  wired ones (e.g. eMMC). Depending on the hardware
-+	  configuration, the 'mmcblkN' node might change if
-+	  the removable device is available or not at boot time.
-+
-+	  E.g. if the removable device is attached at boot time,
-+	  it might become mmxblk0. And the hard wired one mmcblk1.
-+	  But if the removable device isn't there at boot time,
-+	  the hard wired one will become mmcblk0. This makes it
-+	  somehow difficult to hard code the root device to the
-+	  non-removable device and boot fast.
-+
-+	  Enabling this option will simply associating 'N' of
-+	  'mmcblkN' with the slot index instead of the dynamic
-+	  name index. The slot index is always the same, ensuring
-+	  that the non-removable mmc device is associated always
-+	  with the same mmcblkN. Independent of the availability of
-+	  the removable one.
-+
-+	  If unsure, say N here.
-+
- config SDIO_UART
- 	tristate "SDIO UART/GPS class support"
- 	depends on TTY
---- linux-org/drivers/mmc/card/block.c	2014-02-07 00:05:20.000000000 +0100
-+++ linux-7f280334068b7c875ade51f8f3921ab311f0c824/drivers/mmc/card/block.c	2015-09-29 23:15:11.545345811 +0200
-@@ -2098,7 +2098,7 @@
- 	 */
- 
- 	snprintf(md->disk->disk_name, sizeof(md->disk->disk_name),
--		 "mmcblk%d%s", md->name_idx, subname ? subname : "");
-+		 "mmcblk%d%s", NAMEIDX, subname ? subname : "");
- 
- 	if (mmc_card_mmc(card))
- 		blk_queue_logical_block_size(md->queue.queue,
---- linux-org/include/linux/mmc/host.h	2014-02-07 00:05:20.000000000 +0100
-+++ linux-7f280334068b7c875ade51f8f3921ab311f0c824/include/linux/mmc/host.h	2015-09-29 23:22:48.889369085 +0200
-@@ -487,4 +487,11 @@
- 	return host->ios.clock;
- }
- #endif
-+
-+#ifdef CONFIG_MMC_SLOTINDEX
-+#define NAMEIDX (card->host->index)
-+#else
-+#define NAMEIDX (md->name_idx)
-+#endif
-+
- #endif /* LINUX_MMC_HOST_H */

+ 0 - 1104
board/GfA/Display001/linux/linux-005-egalax-i2c.patch

@@ -1,1104 +0,0 @@
---- a/drivers/input/touchscreen/Makefile	2014-02-07 00:05:20.000000000 +0100
-+++ b/drivers/input/touchscreen/Makefile	2015-10-12 18:55:04.861031192 +0200
-@@ -32,6 +32,7 @@
- obj-$(CONFIG_TOUCHSCREEN_EETI)		+= eeti_ts.o
- obj-$(CONFIG_TOUCHSCREEN_ELO)		+= elo.o
- obj-$(CONFIG_TOUCHSCREEN_EGALAX)	+= egalax_ts.o
-+obj-$(CONFIG_TOUCHSCREEN_EGALAX_I2C)	+= egalax_i2c.o
- obj-$(CONFIG_TOUCHSCREEN_FUJITSU)	+= fujitsu_ts.o
- obj-$(CONFIG_TOUCHSCREEN_ILI210X)	+= ili210x.o
- obj-$(CONFIG_TOUCHSCREEN_INEXIO)	+= inexio.o
---- a/drivers/input/touchscreen/Kconfig	2014-02-07 00:05:20.000000000 +0100
-+++ b/drivers/input/touchscreen/Kconfig	2015-10-12 18:54:15.585025690 +0200
-@@ -265,6 +265,16 @@
- 	  To compile this driver as a module, choose M here: the
- 	  module will be called egalax_ts.
- 
-+config TOUCHSCREEN_EGALAX_I2C
-+	tristate "EETI eGalax (egalax_i2c) multi-touch panel support for i2C"
-+	depends on I2C && OF
-+	help
-+	  Say Y here to enable support for I2C connected EETI
-+	  eGalax multi-touch panels.
-+
-+	  To compile this driver as a module, choose M here: the
-+	  module will be called egalax_i2c.
-+
- config TOUCHSCREEN_FUJITSU
- 	tristate "Fujitsu serial touchscreen"
- 	select SERIO
---- a/drivers/input/touchscreen/egalax_i2c.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/drivers/input/touchscreen/egalax_i2c.c	2015-10-12 18:56:02.573037587 +0200
-@@ -0,0 +1,1072 @@
-+/*
-+ *
-+ * Touch Screen I2C Driver for EETI Controller
-+ *
-+ * Copyright (C) 2000-2015  eGalax_eMPIA Technology Inc.
-+ * All Rights Reserved.
-+ *
-+ * 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.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ */
-+
-+#define RELEASE_DATE "2015/04/23"
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/interrupt.h>
-+#include <linux/wait.h>
-+#include <linux/delay.h>
-+#include <linux/i2c.h>
-+#include <linux/gpio.h>
-+#include <linux/device.h>
-+#include <asm/uaccess.h>
-+#include <linux/kfifo.h>
-+#include <linux/version.h>
-+#include <linux/input.h>
-+#include <linux/irq.h>
-+#include <linux/timer.h>
-+#include <linux/proc_fs.h>
-+#include <linux/seq_file.h>
-+#include <linux/miscdevice.h>
-+#include <linux/slab.h>
-+#include <linux/poll.h>
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
-+#include <linux/input/mt.h>
-+#endif
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+#include <linux/of_gpio.h>
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)
-+	#define __devinit 
-+	#define __devexit 
-+	#define __devexit_p(x) x
-+#endif
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+	#include <linux/earlysuspend.h>
-+	static struct early_suspend egalax_early_suspend;
-+#endif
-+
-+// Global define to enable function
-+//#define _SWITCH_XY
-+//#define _CONVERT_Y
-+
-+#define MAX_EVENTS		600
-+#define MAX_I2C_LEN		64
-+#define FIFO_SIZE		8192 //(PAGE_SIZE*2)
-+#define MAX_SUPPORT_POINT	16
-+#define REPORTID_MOUSE		0x01
-+#define REPORTID_VENDOR		0x03
-+#define REPORTID_MTOUCH		0x06//0x04
-+#define MAX_RESOLUTION		4095
-+
-+// running mode
-+#define MODE_STOP	0
-+#define MODE_WORKING	1
-+#define MODE_IDLE	2
-+#define MODE_SUSPEND	3
-+
-+struct tagMTContacts {
-+	unsigned char ID;
-+	signed char Status;
-+	unsigned short X;
-+	unsigned short Y;
-+};
-+
-+struct _egalax_i2c {
-+	struct workqueue_struct *ktouch_wq;
-+	struct work_struct work_irq;
-+	struct delayed_work delay_work_ioctl;
-+	struct mutex mutex_wq;
-+	struct i2c_client *client;
-+	unsigned char work_state;
-+	unsigned char skip_packet;
-+	unsigned int ioctl_cmd;
-+	int interrupt_gpio;
-+};
-+
-+struct egalax_char_dev
-+{
-+	int OpenCnts;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	struct kfifo* pDataKFiFo;
-+#else
-+	struct kfifo DataKFiFo;
-+#endif
-+	unsigned char *pFiFoBuf;
-+	spinlock_t FiFoLock;
-+	struct semaphore sem;
-+	wait_queue_head_t fifo_inq;
-+};
-+
-+static struct _egalax_i2c *p_egalax_i2c_dev = NULL;	// allocated in egalax_i2c_probe
-+static struct egalax_char_dev *p_char_dev = NULL;	// allocated in init_module
-+static atomic_t egalax_char_available = ATOMIC_INIT(1);
-+static atomic_t wait_command_ack = ATOMIC_INIT(0);
-+static struct input_dev *input_dev = NULL;
-+static struct tagMTContacts pContactBuf[MAX_SUPPORT_POINT];
-+static unsigned char input_report_buf[MAX_I2C_LEN+2];
-+
-+#define DBG_MODULE	0x00000001
-+#define DBG_CDEV	0x00000002
-+#define DBG_PROC	0x00000004
-+#define DBG_POINT	0x00000008
-+#define DBG_INT		0x00000010
-+#define DBG_I2C		0x00000020
-+#define DBG_SUSP	0x00000040
-+#define DBG_INPUT	0x00000080
-+#define DBG_CONST	0x00000100
-+#define DBG_IDLE	0x00000200
-+#define DBG_WAKEUP	0x00000400
-+#define DBG_BUTTON	0x00000800
-+static unsigned int DbgLevel = DBG_MODULE|DBG_SUSP;
-+
-+#define PROC_FS_NAME	"egalax_dbg"
-+#define PROC_FS_MAX_LEN	8
-+static struct proc_dir_entry *dbgProcFile;
-+
-+#define EGALAX_DBG(level, fmt, args...)  do{ if( (level&DbgLevel)>0 ) \
-+					printk( KERN_DEBUG "[egalax_i2c]: " fmt, ## args); }while(0)
-+
-+static int egalax_I2C_read(unsigned char *pBuf, unsigned short len)
-+{
-+	struct i2c_msg xfer;
-+	unsigned char cmdbuf[2]={0x27, 0x00};
-+
-+	if(pBuf==NULL)
-+		return -1;
-+
-+	// Write register first
-+	xfer.addr = p_egalax_i2c_dev->client->addr;
-+	xfer.flags = 0;
-+	xfer.len = 2;
-+	xfer.buf = cmdbuf;
-+	i2c_transfer(p_egalax_i2c_dev->client->adapter, &xfer, 1);
-+
-+	// Read device data
-+	xfer.addr = p_egalax_i2c_dev->client->addr;
-+	xfer.flags = I2C_M_RD;
-+	xfer.len = len;
-+	xfer.buf = pBuf;
-+
-+	if(i2c_transfer(p_egalax_i2c_dev->client->adapter, &xfer, 1) != 1) 
-+	{
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer fail\n", __func__);
-+		return -EIO;
-+	}
-+	else
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer success\n", __func__);
-+
-+	return 0;
-+}
-+
-+static int egalax_I2C_write(unsigned short reg, unsigned char *pBuf, unsigned short len)
-+{
-+	unsigned char cmdbuf[4+len];
-+	struct i2c_msg xfer;
-+
-+	if(pBuf==NULL)
-+		return -1;
-+
-+	cmdbuf[0] = reg & 0x00FF;
-+	cmdbuf[1] = (reg >> 8) & 0x00FF;
-+	cmdbuf[2] = (len+2) & 0x00FF;
-+	cmdbuf[3] = ((len+2) >> 8) & 0x00FF;
-+	memcpy(cmdbuf+4, pBuf, len);
-+
-+	// Write data to device
-+	xfer.addr = p_egalax_i2c_dev->client->addr;
-+	xfer.flags = 0;
-+	xfer.len = sizeof(cmdbuf);
-+	xfer.buf = cmdbuf;
-+
-+	if(i2c_transfer(p_egalax_i2c_dev->client->adapter, &xfer, 1) != 1) 
-+	{
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer fail\n", __func__);
-+		return -EIO;
-+	}
-+	else
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer success\n", __func__);
-+
-+	return 0;
-+}
-+
-+static int wakeup_controller(int irq)
-+{
-+	int ret = 0;
-+
-+	disable_irq(irq);
-+	
-+	gpio_direction_output(p_egalax_i2c_dev->interrupt_gpio, 0);
-+	udelay(200);
-+	gpio_direction_input(p_egalax_i2c_dev->interrupt_gpio); //return to high level
-+	
-+	enable_irq(irq);
-+	
-+	EGALAX_DBG(DBG_WAKEUP, " INT wakeup touch controller done\n");
-+	
-+	return ret;
-+}
-+
-+static int egalax_cdev_open(struct inode *inode, struct file *filp)
-+{
-+	if( !atomic_dec_and_test(&egalax_char_available) )
-+	{
-+		atomic_inc(&egalax_char_available);
-+		return -EBUSY; // already open
-+	}
-+
-+	p_char_dev->OpenCnts++;
-+	filp->private_data = p_char_dev;// Used by the read and write metheds
-+
-+	EGALAX_DBG(DBG_CDEV, " CDev open done!\n");
-+	try_module_get(THIS_MODULE);
-+	return 0;
-+}
-+
-+static int egalax_cdev_release(struct inode *inode, struct file *filp)
-+{
-+	struct egalax_char_dev *cdev = filp->private_data;
-+
-+	atomic_inc(&egalax_char_available); // release the device
-+
-+	cdev->OpenCnts--;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	kfifo_reset( cdev->pDataKFiFo );
-+#else
-+	kfifo_reset( &cdev->DataKFiFo );
-+#endif
-+
-+	EGALAX_DBG(DBG_CDEV, " CDev release done!\n");
-+	module_put(THIS_MODULE);
-+	return 0;
-+}
-+
-+static char fifo_read_buf[MAX_I2C_LEN];
-+static ssize_t egalax_cdev_read(struct file *file, char __user *buf, size_t count, loff_t *offset)
-+{
-+	int read_cnt, ret, fifoLen;
-+	struct egalax_char_dev *cdev = file->private_data;
-+	
-+	if( down_interruptible(&cdev->sem) )
-+		return -ERESTARTSYS;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	fifoLen = kfifo_len(cdev->pDataKFiFo);
-+#else
-+	fifoLen = kfifo_len(&cdev->DataKFiFo);
-+#endif
-+
-+	while( fifoLen<1 ) // nothing to read
-+	{
-+		up(&cdev->sem); // release the lock
-+		if( file->f_flags & O_NONBLOCK )
-+			return -EAGAIN;
-+
-+	#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+		if( wait_event_interruptible(cdev->fifo_inq, kfifo_len( cdev->pDataKFiFo )>0) )
-+	#else
-+		if( wait_event_interruptible(cdev->fifo_inq, kfifo_len( &cdev->DataKFiFo )>0) )
-+	#endif
-+		{
-+			return -ERESTARTSYS; // signal: tell the fs layer to handle it
-+		}
-+
-+		if( down_interruptible(&cdev->sem) )
-+			return -ERESTARTSYS;
-+	}
-+
-+	if(count > MAX_I2C_LEN)
-+		count = MAX_I2C_LEN;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	read_cnt = kfifo_get(cdev->pDataKFiFo, fifo_read_buf, count);
-+#else
-+	read_cnt = kfifo_out_locked(&cdev->DataKFiFo, fifo_read_buf, count, &cdev->FiFoLock);
-+#endif
-+	EGALAX_DBG(DBG_CDEV, " \"%s\" reading fifo data count=%d\n", current->comm, read_cnt);
-+
-+	ret = copy_to_user(buf, fifo_read_buf, read_cnt)?-EFAULT:read_cnt;
-+
-+	up(&cdev->sem);
-+	
-+	return ret;
-+}
-+
-+static ssize_t egalax_cdev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset)
-+{
-+	struct egalax_char_dev *cdev = file->private_data;
-+	int ret=0;
-+	char *tmp;
-+
-+	if( down_interruptible(&cdev->sem) )
-+		return -ERESTARTSYS;
-+
-+	if (count > MAX_I2C_LEN)
-+		count = MAX_I2C_LEN;
-+
-+	tmp = kzalloc(MAX_I2C_LEN, GFP_KERNEL);
-+	if(tmp==NULL)
-+	{
-+		up(&cdev->sem);
-+		return -ENOMEM;
-+	}
-+
-+	if(copy_from_user(tmp, buf, count))
-+	{
-+		up(&cdev->sem);
-+		kfree(tmp);
-+		return -EFAULT;
-+	}
-+	
-+	ret = egalax_I2C_write(0x0067, tmp, MAX_I2C_LEN);
-+
-+	up(&cdev->sem);
-+	EGALAX_DBG(DBG_CDEV, " I2C writing %zu bytes.\n", count);
-+	kfree(tmp);
-+
-+	return (ret==0?count:-1);
-+}
-+
-+static unsigned int egalax_cdev_poll(struct file *filp, struct poll_table_struct *wait)
-+{
-+	struct egalax_char_dev *cdev = filp->private_data;
-+	unsigned int mask = 0;
-+	int fifoLen;
-+	
-+	down(&cdev->sem);
-+	poll_wait(filp, &cdev->fifo_inq,  wait);
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	fifoLen = kfifo_len(cdev->pDataKFiFo);
-+#else
-+	fifoLen = kfifo_len(&cdev->DataKFiFo);
-+#endif
-+
-+	if( fifoLen > 0 )
-+		mask |= POLLIN | POLLRDNORM;    /* readable */
-+	if( (FIFO_SIZE - fifoLen) > MAX_I2C_LEN )
-+		mask |= POLLOUT | POLLWRNORM;   /* writable */
-+
-+	up(&cdev->sem);
-+	return mask;
-+}
-+
-+static int egalax_proc_show(struct seq_file* seqfilp, void *v)
-+{
-+	seq_printf(seqfilp, "EETI I2C for All Points.\nDebug Level: 0x%08X\nRelease Date: %s\n", DbgLevel, RELEASE_DATE);
-+	return 0;
-+}
-+
-+static int egalax_proc_open(struct inode *inode, struct file *filp)
-+{
-+	EGALAX_DBG(DBG_PROC, " \"%s\" call proc_open\n", current->comm);
-+	return single_open(filp, egalax_proc_show, NULL);
-+}
-+
-+static ssize_t egalax_proc_write(struct file *file, const char __user *buf, size_t count, loff_t *offset)
-+{
-+	char procfs_buffer_size = 0; 
-+	unsigned char procfs_buf[PROC_FS_MAX_LEN+1] = {0};
-+
-+	EGALAX_DBG(DBG_PROC, " \"%s\" call proc_write\n", current->comm);
-+
-+	procfs_buffer_size = count;
-+	if(procfs_buffer_size > PROC_FS_MAX_LEN ) 
-+		procfs_buffer_size = PROC_FS_MAX_LEN+1;
-+	
-+	if( copy_from_user(procfs_buf, buf, procfs_buffer_size) ) 
-+	{
-+		EGALAX_DBG(DBG_PROC, " proc_write faied at copy_from_user\n");
-+		return -EFAULT;
-+	}
-+
-+	sscanf(procfs_buf, "%x", &DbgLevel);
-+	EGALAX_DBG(DBG_PROC, " Switch Debug Level to 0x%08X\n", DbgLevel);
-+
-+	return procfs_buffer_size;
-+}
-+
-+#define MAX_POINT_PER_PACKET	5
-+#define POINT_STRUCT_SIZE	10
-+static int TotalPtsCnt=0, RecvPtsCnt=0;
-+static void ProcessReport(unsigned char *buf, struct _egalax_i2c *p_egalax_i2c)
-+{
-+	unsigned char i, index=0, cnt_down=0, cnt_up=0, shift=0;
-+	unsigned char status=0;
-+	unsigned short contactID=0, x=0, y=0;
-+
-+	if(TotalPtsCnt<=0)
-+	{
-+		if(buf[1]==0 || buf[1]>MAX_SUPPORT_POINT)
-+		{
-+			EGALAX_DBG(DBG_POINT, " NumsofContacts mismatch, skip packet\n");
-+			return;
-+		}
-+
-+		TotalPtsCnt = buf[1];
-+		RecvPtsCnt = 0;
-+	}
-+	else if(buf[1]>0)
-+	{
-+		TotalPtsCnt = RecvPtsCnt = 0;
-+		EGALAX_DBG(DBG_POINT, " NumsofContacts mismatch, skip packet\n");
-+		return;
-+	}
-+
-+	while(index<MAX_POINT_PER_PACKET)
-+	{
-+		shift = index * POINT_STRUCT_SIZE + 2;
-+		status = buf[shift] & 0x01;
-+		contactID = buf[shift+1];
-+		x = ((buf[shift+3]<<8) + buf[shift+2]);
-+		y = ((buf[shift+5]<<8) + buf[shift+4]);
-+
-+		if( contactID>=MAX_SUPPORT_POINT )
-+		{
-+			TotalPtsCnt = RecvPtsCnt = 0;
-+			EGALAX_DBG(DBG_POINT, " Get error ContactID.\n");
-+			return;
-+		}
-+
-+		EGALAX_DBG(DBG_POINT, " Get Point[%d] Update: Status=%d X=%d Y=%d\n", contactID, status, x, y);
-+
-+	#ifdef _SWITCH_XY
-+		short tmp = x;
-+		x = y;
-+		y = tmp;
-+	#endif
-+	#ifdef _CONVERT_X
-+		x = MAX_RESOLUTION-x;
-+	#endif
-+
-+	#ifdef _CONVERT_Y
-+		y = MAX_RESOLUTION-y;
-+	#endif
-+
-+		pContactBuf[RecvPtsCnt].ID = contactID;
-+		pContactBuf[RecvPtsCnt].Status = status;
-+		pContactBuf[RecvPtsCnt].X = x;
-+		pContactBuf[RecvPtsCnt].Y = y;
-+
-+		RecvPtsCnt++;
-+		index++;
-+
-+		// Recv all points, send input report
-+		if(RecvPtsCnt==TotalPtsCnt)
-+		{
-+			for(i=0; i<RecvPtsCnt; i++)
-+			{
-+			#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0)
-+				input_mt_slot(input_dev, pContactBuf[i].ID);
-+				input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, pContactBuf[i].Status);
-+				if(pContactBuf[i].Status)
-+				{
-+					input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, pContactBuf[i].Status);
-+					input_report_abs(input_dev, ABS_MT_POSITION_X, pContactBuf[i].X);
-+					input_report_abs(input_dev, ABS_MT_POSITION_Y, pContactBuf[i].Y);
-+				}
-+			#else
-+				input_report_abs(input_dev, ABS_MT_TRACKING_ID, pContactBuf[i].ID);
-+				input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, pContactBuf[i].Status);
-+				input_report_abs(input_dev, ABS_MT_POSITION_X, pContactBuf[i].X);
-+				input_report_abs(input_dev, ABS_MT_POSITION_Y, pContactBuf[i].Y);
-+				input_report_abs(input_dev, ABS_MT_WIDTH_MAJOR, 0);
-+				input_mt_sync(input_dev);
-+			#endif
-+
-+				if(pContactBuf[i].Status)
-+					cnt_down++;
-+				else
-+					cnt_up++;
-+			}
-+		#ifndef CONFIG_HAS_EARLYSUSPEND //We use this config to distinguish Linux and Android
-+			#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
-+			input_mt_report_pointer_emulation(input_dev, true);
-+			#endif
-+		#endif
-+			input_sync(input_dev);
-+			EGALAX_DBG(DBG_POINT, " Input sync point data done! (Down:%d Up:%d)\n", cnt_down, cnt_up);
-+			
-+			TotalPtsCnt = RecvPtsCnt = 0;
-+			return;
-+		}
-+	}
-+}
-+
-+static struct input_dev * allocate_Input_Dev(void)
-+{
-+	int ret;
-+	struct input_dev *pInputDev=NULL;
-+
-+	pInputDev = input_allocate_device();
-+	if(pInputDev == NULL)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Failed to allocate input device\n");
-+		return NULL;//-ENOMEM;
-+	}
-+
-+	pInputDev->name = "eGalax_Touch_Screen";
-+	pInputDev->phys = "I2C";
-+	pInputDev->id.bustype = BUS_I2C;
-+	pInputDev->id.vendor = 0x0EEF;
-+	pInputDev->id.product = 0x0020;
-+	pInputDev->id.version = 0x0001;
-+	
-+	set_bit(EV_ABS, pInputDev->evbit);
-+#ifndef CONFIG_HAS_EARLYSUSPEND //We use this config to distinguish Linux and Android
-+	set_bit(EV_KEY, pInputDev->evbit);
-+	__set_bit(BTN_TOUCH, pInputDev->keybit);
-+	input_set_abs_params(pInputDev, ABS_X, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_Y, 0, MAX_RESOLUTION, 0, 0);
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0)
-+	__set_bit(INPUT_PROP_DIRECT, pInputDev->propbit);
-+	#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
-+		input_mt_init_slots(pInputDev, MAX_SUPPORT_POINT, 0);
-+	#else
-+		input_mt_init_slots(pInputDev, MAX_SUPPORT_POINT);
-+	#endif
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_X, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_Y, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0);
-+#else
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_X, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_Y, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_WIDTH_MAJOR, 0, MAX_RESOLUTION, 0, 0); //Size
-+	input_set_abs_params(pInputDev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); //Pressure
-+	input_set_abs_params(pInputDev, ABS_MT_TRACKING_ID, 0, MAX_SUPPORT_POINT, 0, 0);
-+#endif // #if LINUX_VERSION_CODE > KERNEL_VERSION(3,0,0)
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
-+	input_set_events_per_packet(pInputDev, MAX_EVENTS);
-+#endif
-+
-+	ret = input_register_device(pInputDev);
-+	if(ret) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Unable to register input device.\n");
-+		input_free_device(pInputDev);
-+		pInputDev = NULL;
-+	}
-+	
-+	return pInputDev;
-+}
-+
-+static int egalax_i2c_measure(struct _egalax_i2c *egalax_i2c)
-+{
-+	int ret=0, frameLen=0, loop=3, i;
-+
-+	EGALAX_DBG(DBG_INT, " egalax_i2c_measure\n");
-+
-+	if( egalax_I2C_read(input_report_buf, MAX_I2C_LEN+2) < 0)
-+	{
-+		EGALAX_DBG(DBG_I2C, " I2C read input report fail!\n");
-+		return -1;
-+	}
-+	
-+	if( DbgLevel&DBG_I2C )
-+	{
-+		char dbgmsg[(MAX_I2C_LEN+2)*4];
-+		for(i=0; i<MAX_I2C_LEN+2; i++)
-+			sprintf(dbgmsg+i*4, "[%02X]", input_report_buf[i]);
-+		EGALAX_DBG(DBG_I2C, " Buf=%s\n", dbgmsg);
-+	}
-+
-+	frameLen = input_report_buf[0] + (input_report_buf[1]<<8);
-+	EGALAX_DBG(DBG_I2C, " I2C read data with Len=%d\n", frameLen);
-+
-+	if(frameLen==0)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Device reset\n");
-+		return -1;
-+	}
-+
-+	switch(input_report_buf[2])
-+	{
-+		case REPORTID_MTOUCH:
-+			if( !egalax_i2c->skip_packet && egalax_i2c->work_state==MODE_WORKING )
-+				ProcessReport(input_report_buf+2, egalax_i2c);
-+			ret = 0;
-+			break;
-+		case REPORTID_VENDOR:
-+			atomic_set(&wait_command_ack, 1);
-+			EGALAX_DBG(DBG_I2C, " I2C get vendor command packet\n");
-+
-+			if( p_char_dev->OpenCnts>0 ) // If someone reading now! put the data into the buffer!
-+			{
-+				loop=3;
-+				do {
-+				#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+					ret = wait_event_timeout(p_char_dev->fifo_inq, (FIFO_SIZE-kfifo_len(p_char_dev->pDataKFiFo))>=MAX_I2C_LEN, HZ);
-+				#else
-+					ret = wait_event_timeout(p_char_dev->fifo_inq, kfifo_avail(&p_char_dev->DataKFiFo)>=MAX_I2C_LEN, HZ);
-+				#endif
-+				}while(ret<=0 && --loop);
-+
-+				if(ret>0) // fifo size is ready
-+				{
-+				#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+					ret = kfifo_put(p_char_dev->pDataKFiFo, input_report_buf+2, MAX_I2C_LEN);
-+				#else
-+					ret = kfifo_in_locked(&p_char_dev->DataKFiFo, input_report_buf+2, MAX_I2C_LEN, &p_char_dev->FiFoLock);
-+				#endif
-+
-+					wake_up_interruptible( &p_char_dev->fifo_inq );
-+				}
-+				else
-+					EGALAX_DBG(DBG_CDEV, " [Warning] Can't write data because fifo size is overflow.\n");
-+			}
-+
-+			break;
-+		default:
-+			EGALAX_DBG(DBG_I2C, " I2C read error data with hedaer=%d\n", input_report_buf[2]);
-+			ret = -1;
-+			break;
-+	}
-+
-+	return ret;
-+}
-+
-+static void egalax_i2c_wq_irq(struct work_struct *work)
-+{
-+	struct _egalax_i2c *egalax_i2c = container_of(work, struct _egalax_i2c, work_irq);
-+	struct i2c_client *client = egalax_i2c->client;
-+
-+	EGALAX_DBG(DBG_INT, " egalax_i2c_wq run\n");
-+
-+	/*continue recv data*/
-+	while( !gpio_get_value(egalax_i2c->interrupt_gpio) )
-+	{
-+		egalax_i2c_measure(egalax_i2c);
-+		schedule();
-+	}
-+		
-+	if( egalax_i2c->skip_packet > 0 )
-+		egalax_i2c->skip_packet = 0;
-+
-+	enable_irq(client->irq);
-+
-+	EGALAX_DBG(DBG_INT, " egalax_i2c_wq leave\n");
-+}
-+
-+static irqreturn_t egalax_i2c_interrupt(int irq, void *dev_id)
-+{
-+	struct _egalax_i2c *egalax_i2c = (struct _egalax_i2c *)dev_id;
-+
-+	EGALAX_DBG(DBG_INT, " INT with irq:%d\n", irq);
-+
-+	disable_irq_nosync(irq);
-+
-+	queue_work(egalax_i2c->ktouch_wq, &egalax_i2c->work_irq);
-+
-+	return IRQ_HANDLED;
-+}
-+
-+static void egalax_i2c_senduppoint(void) 
-+{
-+	int i=0;
-+	
-+	EGALAX_DBG(DBG_SUSP, " %s\n", __func__);
-+
-+	for(i=0; i<MAX_SUPPORT_POINT; i++)
-+	{
-+	#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0)
-+		input_mt_slot(input_dev, pContactBuf[i].ID);
-+		input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, 0);
-+	#else
-+		input_report_abs(input_dev, ABS_MT_TRACKING_ID, pContactBuf[i].ID);
-+		input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, 0);
-+		input_mt_sync(input_dev);
-+	#endif
-+	
-+		if(pContactBuf[i].Status)
-+			pContactBuf[i].Status = 0;
-+	}
-+
-+#ifndef CONFIG_HAS_EARLYSUSPEND //We use this config to distinguish Linux and Android
-+	input_mt_report_pointer_emulation(input_dev, true);
-+#endif
-+	input_sync(input_dev);
-+	EGALAX_DBG(DBG_POINT, " Sent up point data done!\n");
-+}
-+
-+static int egalax_i2c_pm_suspend(struct i2c_client *client, pm_message_t mesg)
-+{
-+	unsigned char cmdbuf[4];
-+	struct i2c_msg xfer;
-+
-+	EGALAX_DBG(DBG_SUSP, " Enter early_suspend state:%d\n", p_egalax_i2c_dev->work_state);
-+	
-+	if(!p_egalax_i2c_dev) 
-+		goto fail_suspend;
-+
-+	//Power sleep command
-+	cmdbuf[0] = 0xA7;	cmdbuf[1] = 0x00;
-+	cmdbuf[2] = 0x01;	cmdbuf[3] = 0x08;
-+	
-+	// Write data to device
-+	xfer.addr = p_egalax_i2c_dev->client->addr;
-+	xfer.flags = 0;
-+	xfer.len = sizeof(cmdbuf);
-+	xfer.buf = cmdbuf;
-+
-+	if(i2c_transfer(p_egalax_i2c_dev->client->adapter, &xfer, 1) != 1) 
-+	{
-+		EGALAX_DBG(DBG_I2C, " %s: i2c send Power command fail\n", __func__);
-+		goto fail_suspend2;
-+	}
-+
-+	p_egalax_i2c_dev->work_state = MODE_SUSPEND;
-+
-+	EGALAX_DBG(DBG_SUSP, " Early_suspend done!!\n");
-+	return 0;
-+
-+fail_suspend2:
-+	p_egalax_i2c_dev->work_state = MODE_SUSPEND;
-+fail_suspend:
-+	EGALAX_DBG(DBG_SUSP, " Early_suspend failed!!\n");
-+	return -1;
-+}
-+
-+static int egalax_i2c_pm_resume(struct i2c_client *client)
-+{
-+	EGALAX_DBG(DBG_SUSP, " Enter early_resume state:%d\n", p_egalax_i2c_dev->work_state);
-+
-+	if(!p_egalax_i2c_dev) 
-+		goto fail_resume;
-+
-+	if( wakeup_controller(p_egalax_i2c_dev->client->irq)==0 )
-+		p_egalax_i2c_dev->work_state = MODE_WORKING;
-+	else
-+		goto fail_resume2;
-+
-+	egalax_i2c_senduppoint();
-+
-+	EGALAX_DBG(DBG_SUSP, " Early_resume done!!\n");
-+	return 0;
-+
-+fail_resume2:
-+	p_egalax_i2c_dev->work_state = MODE_WORKING;
-+fail_resume:
-+	EGALAX_DBG(DBG_SUSP, " Early_resume failed!!\n");
-+	return -1;
-+}
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+static void egalax_i2c_early_suspend(struct early_suspend *handler)
-+{
-+	pm_message_t state;
-+	state.event = PM_EVENT_SUSPEND;
-+
-+	EGALAX_DBG(DBG_SUSP, " %s\n", __func__);
-+	egalax_i2c_pm_suspend(p_egalax_i2c_dev->client, state);
-+}
-+
-+static void egalax_i2c_early_resume(struct early_suspend *handler)
-+{
-+	EGALAX_DBG(DBG_SUSP, " %s\n", __func__);
-+	egalax_i2c_pm_resume(p_egalax_i2c_dev->client);
-+}
-+#endif // #ifdef CONFIG_HAS_EARLYSUSPEND
-+
-+static int __devinit egalax_i2c_probe(struct i2c_client *client, const struct i2c_device_id *idp)
-+{
-+	int ret;
-+	struct device_node *devnode;
-+	
-+	EGALAX_DBG(DBG_MODULE, " Start probe\n");
-+
-+	p_egalax_i2c_dev = (struct _egalax_i2c *)kzalloc(sizeof(struct _egalax_i2c), GFP_KERNEL);
-+	if (!p_egalax_i2c_dev) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Request memory failed\n");
-+		ret = -ENOMEM;
-+		goto fail1;
-+	}
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+	devnode = client->dev.of_node;
-+	if(devnode) //if use the device tree config
-+	{
-+		p_egalax_i2c_dev->interrupt_gpio = of_get_named_gpio(devnode, "int-gpios", 0);
-+	}
-+#else
-+	{
-+		p_egalax_i2c_dev->interrupt_gpio = irq_to_gpio(client->irq);
-+	}
-+#endif
-+
-+	if( !gpio_is_valid(p_egalax_i2c_dev->interrupt_gpio) )
-+	{
-+		ret = -ENODEV;
-+		goto fail1;
-+	}
-+	ret = gpio_request(p_egalax_i2c_dev->interrupt_gpio, "Touch IRQ");
-+	if(ret<0)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " gpio_request[%d] failed: %d\n", p_egalax_i2c_dev->interrupt_gpio, ret);
-+		if(ret!=-EBUSY)
-+			goto fail1;
-+	}
-+	gpio_direction_input(p_egalax_i2c_dev->interrupt_gpio);
-+
-+	input_dev = allocate_Input_Dev();
-+	if(input_dev==NULL)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " allocate_Input_Dev failed\n");
-+		ret = -EINVAL; 
-+		goto fail2;
-+	}
-+	EGALAX_DBG(DBG_MODULE, " Register input device done\n");
-+
-+	p_egalax_i2c_dev->client = client;
-+	mutex_init(&p_egalax_i2c_dev->mutex_wq);
-+
-+	p_egalax_i2c_dev->ktouch_wq = create_singlethread_workqueue("egalax_touch_wq");
-+	INIT_WORK(&p_egalax_i2c_dev->work_irq, egalax_i2c_wq_irq);
-+
-+	i2c_set_clientdata(client, p_egalax_i2c_dev);
-+
-+	if( gpio_get_value(p_egalax_i2c_dev->interrupt_gpio) )
-+		p_egalax_i2c_dev->skip_packet = 0;
-+	else
-+		p_egalax_i2c_dev->skip_packet = 1;
-+
-+	p_egalax_i2c_dev->work_state = MODE_WORKING;
-+
-+	ret = request_irq(client->irq, egalax_i2c_interrupt, IRQF_DISABLED | IRQF_TRIGGER_LOW, client->name, p_egalax_i2c_dev);
-+	if( ret ) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Request irq(%d) failed\n", client->irq);
-+		goto fail3;
-+	}
-+	EGALAX_DBG(DBG_MODULE, " Request irq(%d) gpio(%d) with result:%d\n", client->irq, p_egalax_i2c_dev->interrupt_gpio, ret);
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+	egalax_early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN;
-+	egalax_early_suspend.suspend = egalax_i2c_early_suspend;
-+	egalax_early_suspend.resume = egalax_i2c_early_resume;
-+	register_early_suspend(&egalax_early_suspend);
-+	EGALAX_DBG(DBG_MODULE, " Register early_suspend done\n");
-+#endif
-+
-+	EGALAX_DBG(DBG_MODULE, " I2C probe done\n");
-+	return 0;
-+
-+fail3:
-+	i2c_set_clientdata(client, NULL);
-+	destroy_workqueue(p_egalax_i2c_dev->ktouch_wq); 
-+	free_irq(client->irq, p_egalax_i2c_dev);
-+	input_unregister_device(input_dev);
-+	input_dev = NULL;
-+fail2:
-+	gpio_free(p_egalax_i2c_dev->interrupt_gpio);
-+fail1:
-+	kfree(p_egalax_i2c_dev);
-+	p_egalax_i2c_dev = NULL;
-+
-+	EGALAX_DBG(DBG_MODULE, " I2C probe failed\n");
-+	return ret;
-+}
-+
-+static int __devexit egalax_i2c_remove(struct i2c_client *client)
-+{
-+	struct _egalax_i2c *egalax_i2c = i2c_get_clientdata(client);
-+
-+	egalax_i2c->work_state = MODE_STOP;
-+
-+	cancel_work_sync(&egalax_i2c->work_irq);
-+
-+	if(client->irq)
-+	{
-+		disable_irq(client->irq);
-+		free_irq(client->irq, egalax_i2c);
-+	}
-+
-+	gpio_free(egalax_i2c->interrupt_gpio);
-+	
-+	if(egalax_i2c->ktouch_wq) 
-+		destroy_workqueue(egalax_i2c->ktouch_wq); 
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+	unregister_early_suspend(&egalax_early_suspend);
-+#endif
-+
-+	if(input_dev)
-+	{
-+		EGALAX_DBG(DBG_MODULE,  " Unregister input device\n");
-+		input_unregister_device(input_dev);
-+		input_dev = NULL;
-+	}
-+
-+	i2c_set_clientdata(client, NULL);
-+	kfree(egalax_i2c);
-+	p_egalax_i2c_dev = NULL;
-+
-+	return 0;
-+}
-+
-+static const struct i2c_device_id egalax_i2c_idtable[] = { 
-+	{ "egalax_i2c", 0 }, 
-+	{ } 
-+};
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+static const struct of_device_id egalax_i2c_dt_ids[] = { 
-+	{ .compatible = "eeti,egalax_i2c" }, 
-+	{ } 
-+};
-+#endif
-+
-+MODULE_DEVICE_TABLE(i2c, egalax_i2c_idtable);
-+
-+static struct i2c_driver egalax_i2c_driver = {
-+	.driver = {
-+		.name 	= "egalax_i2c",
-+		.owner	= THIS_MODULE,
-+	#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+		.of_match_table = egalax_i2c_dt_ids,
-+	#endif
-+	},
-+	.id_table	= egalax_i2c_idtable,
-+	.probe		= egalax_i2c_probe,
-+	.remove		= __devexit_p(egalax_i2c_remove),
-+#ifndef CONFIG_HAS_EARLYSUSPEND
-+	.suspend 	= egalax_i2c_pm_suspend,
-+	.resume 	= egalax_i2c_pm_resume,
-+#endif
-+};
-+
-+static const struct file_operations egalax_cdev_fops = {
-+	.owner	= THIS_MODULE,
-+	.read	= egalax_cdev_read,
-+	.write	= egalax_cdev_write,
-+	.open	= egalax_cdev_open,
-+	.release= egalax_cdev_release,
-+	.poll	= egalax_cdev_poll,
-+};
-+
-+static const struct file_operations egalax_proc_fops = {
-+	.owner		= THIS_MODULE,
-+        .open           = egalax_proc_open,
-+        .read           = seq_read,
-+        .write          = egalax_proc_write,
-+        .llseek         = seq_lseek,
-+	.release	= single_release,
-+};
-+
-+static struct miscdevice egalax_misc_dev = {
-+	.minor = MISC_DYNAMIC_MINOR,
-+	.name = "egalax_i2c",
-+	.fops = &egalax_cdev_fops,
-+};
-+
-+static void egalax_i2c_ts_exit(void)
-+{
-+	if(p_char_dev)
-+	{
-+		if( p_char_dev->pFiFoBuf )
-+			kfree(p_char_dev->pFiFoBuf);
-+
-+		kfree(p_char_dev);
-+		p_char_dev = NULL;
-+	}
-+
-+	misc_deregister(&egalax_misc_dev);
-+
-+	i2c_del_driver(&egalax_i2c_driver);
-+
-+	remove_proc_entry(PROC_FS_NAME, NULL);
-+
-+	EGALAX_DBG(DBG_MODULE, " Exit driver done!\n");
-+}
-+
-+static struct egalax_char_dev* setup_chardev(void)
-+{
-+	struct egalax_char_dev *pCharDev;
-+
-+	pCharDev = kzalloc(1*sizeof(struct egalax_char_dev), GFP_KERNEL);
-+	if(!pCharDev) 
-+		goto fail_cdev;
-+
-+	spin_lock_init( &pCharDev->FiFoLock );
-+	pCharDev->pFiFoBuf = kzalloc(sizeof(unsigned char)*FIFO_SIZE, GFP_KERNEL);
-+	if(!pCharDev->pFiFoBuf)
-+		goto fail_fifobuf;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	pCharDev->pDataKFiFo = kfifo_init(pCharDev->pFiFoBuf, FIFO_SIZE, GFP_KERNEL, &pCharDev->FiFoLock);
-+	if( pCharDev->pDataKFiFo==NULL )
-+		goto fail_kfifo;
-+#else
-+	kfifo_init(&pCharDev->DataKFiFo, pCharDev->pFiFoBuf, FIFO_SIZE);
-+	if( !kfifo_initialized(&pCharDev->DataKFiFo) )
-+		goto fail_kfifo;
-+#endif
-+	
-+	pCharDev->OpenCnts = 0;
-+	sema_init(&pCharDev->sem, 1);
-+	init_waitqueue_head(&pCharDev->fifo_inq);
-+
-+	return pCharDev; 
-+
-+fail_kfifo:
-+	kfree(pCharDev->pFiFoBuf);
-+fail_fifobuf:
-+	kfree(pCharDev);
-+fail_cdev:
-+	return NULL;
-+}
-+
-+static int egalax_i2c_ts_init(void)
-+{
-+	int result;
-+
-+	result = misc_register(&egalax_misc_dev);
-+	if(result) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " misc device register failed\n");
-+		goto fail;
-+	}
-+
-+	p_char_dev = setup_chardev(); // allocate the character device
-+	if(!p_char_dev) 
-+	{
-+		result = -ENOMEM;
-+		goto fail;
-+	}
-+
-+	dbgProcFile = proc_create(PROC_FS_NAME, S_IRUGO|S_IWUGO, NULL, &egalax_proc_fops);
-+	if (dbgProcFile == NULL) 
-+	{
-+		remove_proc_entry(PROC_FS_NAME, NULL);
-+		EGALAX_DBG(DBG_MODULE, " Could not initialize /proc/%s\n", PROC_FS_NAME);
-+	}
-+
-+	EGALAX_DBG(DBG_MODULE, " Driver init done!\n");
-+	return i2c_add_driver(&egalax_i2c_driver);
-+
-+fail:	
-+	egalax_i2c_ts_exit();
-+	return result;
-+}
-+
-+module_init(egalax_i2c_ts_init);
-+module_exit(egalax_i2c_ts_exit);
-+
-+MODULE_AUTHOR("EETI <touch_fae@eeti.com>");
-+MODULE_DESCRIPTION("egalax all points controller i2c driver");
-+MODULE_LICENSE("GPL");

+ 0 - 48
board/GfA/Display001/linux/linux-006-custom-bootlogo.patch

@@ -1,48 +0,0 @@
-diff -Naurp linux-orig/drivers/video/logo/Kconfig linux-new/drivers/video/logo/Kconfig
---- linux-orig/drivers/video/logo/Kconfig	2014-02-07 00:05:20.000000000 +0100
-+++ linux-new/drivers/video/logo/Kconfig	2015-10-30 11:26:05.982804832 +0100
-@@ -15,6 +15,10 @@ config FB_LOGO_EXTRA
- 	depends on FB=y
- 	default y if SPU_BASE
- 
-+config FB_LOGO_CUSTOM
-+	bool "Custom Linux Logo"
-+	default n
-+
- config LOGO_LINUX_MONO
- 	bool "Standard black and white Linux logo"
- 	default y
-diff -Naurp linux-orig/drivers/video/logo/logo.c linux-new/drivers/video/logo/logo.c
---- linux-orig/drivers/video/logo/logo.c	2014-02-07 00:05:20.000000000 +0100
-+++ linux-new/drivers/video/logo/logo.c	2015-10-30 11:42:22.566239197 +0100
-@@ -31,6 +31,8 @@ MODULE_PARM_DESC(nologo, "Disables start
-  */
- const struct linux_logo * __init_refok fb_find_logo(int depth)
- {
-+	extern const struct linux_logo logo_custom_clut224;
-+	
- 	const struct linux_logo *logo = NULL;
- 
- 	if (nologo)
-@@ -100,6 +102,10 @@ const struct linux_logo * __init_refok f
- 		/* M32R Linux logo */
- 		logo = &logo_m32r_clut224;
- #endif
-+#ifdef CONFIG_FB_LOGO_CUSTOM
-+		/* Custom Linux logo */
-+		logo = &logo_custom_clut224;
-+#endif
- 	}
- 	return logo;
- }
-diff -Naurp linux-orig/drivers/video/logo/Makefile linux-new/drivers/video/logo/Makefile
---- linux-orig/drivers/video/logo/Makefile	2014-02-07 00:05:20.000000000 +0100
-+++ linux-new/drivers/video/logo/Makefile	2015-10-30 11:16:38.303156003 +0100
-@@ -15,6 +15,7 @@ obj-$(CONFIG_LOGO_SUPERH_MONO)		+= logo_
- obj-$(CONFIG_LOGO_SUPERH_VGA16)		+= logo_superh_vga16.o
- obj-$(CONFIG_LOGO_SUPERH_CLUT224)	+= logo_superh_clut224.o
- obj-$(CONFIG_LOGO_M32R_CLUT224)		+= logo_m32r_clut224.o
-+obj-$(CONFIG_FB_LOGO_CUSTOM)		+= logo_custom_clut224.o
- 
- obj-$(CONFIG_SPU_BASE)			+= logo_spe_clut224.o
- 

+ 0 - 2887
board/GfA/Display001/linux/linux-006-custom-bootlogo_ppm.patch

@@ -1,2887 +0,0 @@
-diff -Naurp a/drivers/video/logo/logo_custom_clut224.ppm b/drivers/video/logo/logo_custom_clut224.ppm
---- a/drivers/video/logo/logo_custom_clut224.ppm	1970-01-01 01:00:00.000000000 +0100
-+++ b/drivers/video/logo/logo_custom_clut224.ppm	2015-11-17 16:04:14.418518831 +0100
-@@ -0,0 +1,2883 @@
-+P3
-+179 96
-+255
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  24 24 24  39 39 39
-+57 57 57  72 72 72  87 87 87  87 87 87  87 87 87  87 87 87
-+87 87 87  87 87 87  87 87 87  72 72 72  72 72 72  57 57 57
-+39 39 39  24 24 24  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 72 72
-+0 88 88  0 103 103  0 122 122  0 128 128  0 128 128  0 122 122
-+0 103 103  0 103 103  0 72 72  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+39 39 39  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  39 39 39
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 55 55  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 103 103
-+0 40 40  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 72 72
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 55 55  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 40 40  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 103 103  0 40 40  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 72 72  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 88 88  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 103 103  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 103 103  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  57 57 57  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+72 72 72  0 0 0  0 0 0  0 0 0  0 0 0  0 103 103
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 103 103  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 88 88  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 55 55  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 55 55  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 21 21  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  57 57 57  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 103 103
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+72 72 72  57 57 57  39 39 39  39 39 39  39 39 39  24 24 24
-+39 39 39  39 39 39  39 39 39  39 39 39  57 57 57  72 72 72
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 88 88  0 55 55  0 21 21  0 21 21  0 21 21  0 40 40
-+0 55 55  0 88 88  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  57 57 57  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  57 57 57  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 72 72  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 72 72  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 88 88  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 55 55
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  57 57 57
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 40 40
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 88 88  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  72 72 72  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 21 21  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 55 55
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 103 103  0 0 0  0 0 0
-+0 0 0  0 0 0  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  57 57 57
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 55 55  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 55 55  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 21 21  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 88 88  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 88 88  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 88 88  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 40 40  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  57 57 57  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 55 55  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 103 103
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 72 72  0 0 0  0 0 0  0 0 0  0 21 21
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  57 57 57  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 128 128  0 128 128  0 122 122
-+0 103 103  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 40 40  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 55 55  0 128 128  0 122 122
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 88 88  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 72 72  0 21 21
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 72 72
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 103 103  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 40 40  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 122 122  0 122 122  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 21 21  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 40 40  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 103 103  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 55 55  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 72 72  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 88 88
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+72 72 72  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 40 40  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 21 21  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 103 103  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 55 55  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  57 57 57  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 88 88
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 88 88  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  72 72 72
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 103 103  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 21 21  0 122 122  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 122 122  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 40 40  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  72 72 72  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 72 72  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 40 40  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 103 103
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 55 55  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  57 57 57
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 72 72  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 88 88  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  57 57 57  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 55 55  0 122 122  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 103 103  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 55 55
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 88 88  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 55 55  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 103 103  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 21 21  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 21 21  0 103 103
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 40 40  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 72 72  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 103 103  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 40 40  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 40 40
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 122 122  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 55 55  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  57 57 57  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 72 72  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 55 55
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 21 21  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 88 88  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  57 57 57  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 21 21  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 55 55  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 40 40  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 103 103  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 72 72
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 40 40  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  57 57 57  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 21 21  0 122 122  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 103 103  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 55 55  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 88 88  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 88 88
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  72 72 72  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 55 55  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 21 21  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  39 39 39  39 39 39  39 39 39  39 39 39  39 39 39
-+39 39 39  39 39 39  39 39 39  39 39 39  39 39 39  39 39 39
-+39 39 39  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 103 103  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 55 55  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  57 57 57
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 88 88
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  72 72 72
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 128 128  0 103 103  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 40 40  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 122 122  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 122 122  0 122 122  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 40 40  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 103 103  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  57 57 57  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 72 72  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 103 103  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  36 120 120  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  61 115 115  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 55 55  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  57 57 57  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  57 57 57
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 109 109  24 123 123
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 88 88  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  57 57 57  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 109 109  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 103 103  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  72 72 72
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  69 113 113  0 128 128  0 128 128  0 122 122
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 109 109  38 67 67
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  39 39 39  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  39 39 39  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+57 57 57  39 39 39  24 24 24  24 24 24  24 24 24  24 24 24
-+0 0 0  24 24 24  24 24 24  39 39 39  39 39 39  57 57 57
-+87 87 87  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 123 123
-+87 109 109  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  69 113 113  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 72 72  0 128 128  0 128 128
-+0 128 128  0 128 128  36 120 120  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  57 57 57  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 40 40  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  69 113 113  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  36 120 120
-+87 109 109  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  36 120 120  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  57 57 57  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 88 88  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  43 92 92  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 55 55
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 103 103  0 0 0  0 0 0  39 39 39
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 40 40  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  39 39 39  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 122 122  0 55 55  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+72 72 72  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 103 103  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 72 72  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  24 24 24  39 39 39  57 57 57
-+72 72 72  87 87 87  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  87 87 87  72 72 72
-+72 72 72  39 39 39  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72

+ 0 - 453
board/GfA/Display001/linux/linux-007-gpio-helper.patch

@@ -1,453 +0,0 @@
-diff -Naurp a/drivers/gpio/gpio-of-helper.c b/drivers/gpio/gpio-of-helper.c
---- a/drivers/gpio/gpio-of-helper.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/drivers/gpio/gpio-of-helper.c	2015-10-30 21:13:09.834705182 +0100
-@@ -0,0 +1,414 @@
-+/*
-+ * GPIO OF based helper
-+ *
-+ * A simple DT based driver to provide access to GPIO functionality
-+ * to user-space via sysfs.
-+ *
-+ * Copyright (C) 2013 Pantelis Antoniou <panto@antoniou-consulting.com>
-+ *
-+ * 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.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/string.h>
-+#include <linux/timer.h>
-+#include <linux/errno.h>
-+#include <linux/init.h>
-+#include <linux/delay.h>
-+#include <linux/bitops.h>
-+#include <linux/err.h>
-+#include <linux/of.h>
-+#include <linux/of_device.h>
-+#include <linux/of_gpio.h>
-+#include <linux/pinctrl/pinctrl.h>
-+#include <linux/pinctrl/pinmux.h>
-+#include <linux/pinctrl/consumer.h>
-+#include <linux/atomic.h>
-+#include <linux/clk.h>
-+#include <linux/interrupt.h>
-+#include <linux/math64.h>
-+#include <linux/atomic.h>
-+#include <linux/idr.h>
-+
-+/* fwd decl. */
-+struct gpio_of_helper_info;
-+
-+enum gpio_type {
-+	GPIO_TYPE_INPUT = 0,
-+	GPIO_TYPE_OUTPUT = 1,
-+};
-+
-+struct gpio_of_entry {
-+	int id;
-+	struct gpio_of_helper_info *info;
-+	struct device_node *node;
-+	enum gpio_type type;
-+	int gpio;
-+	enum of_gpio_flags gpio_flags;
-+	int irq;
-+	const char *name;
-+	atomic64_t counter;
-+	unsigned int count_flags;
-+#define COUNT_RISING_EDGE	(1 << 0)
-+#define COUNT_FALLING_EDGE	(1 << 1)
-+};
-+
-+struct gpio_of_helper_info {
-+	struct platform_device *pdev;
-+	struct idr idr;
-+};
-+
-+static const struct of_device_id gpio_of_helper_of_match[] = {
-+	{
-+		.compatible = "gpio-of-helper",
-+	},
-+	{ },
-+};
-+MODULE_DEVICE_TABLE(of, gpio_of_helper_of_match);
-+
-+static ssize_t gpio_of_helper_show_status(struct device *dev,
-+				struct device_attribute *attr, char *buf)
-+{
-+	struct platform_device *pdev = to_platform_device(dev);
-+	struct gpio_of_helper_info *info = platform_get_drvdata(pdev);
-+	struct gpio_of_entry *entry;
-+	char *p, *e;
-+	int id, n;
-+
-+	p = buf;
-+	e = p + PAGE_SIZE;
-+	n = 0;
-+	idr_for_each_entry(&info->idr, entry, id) {
-+		switch (entry->type) {
-+		case GPIO_TYPE_INPUT:
-+			n = snprintf(p, e - p, "%2d %-24s %3d %-3s %llu\n",
-+				entry->id, entry->name, entry->gpio, "IN",
-+				(unsigned long long)
-+					atomic64_read(&entry->counter));
-+			break;
-+		case GPIO_TYPE_OUTPUT:
-+			n = snprintf(p, e - p, "%2d %-24s %3d %-3s\n",
-+				entry->id, entry->name, entry->gpio, "OUT");
-+			break;
-+		}
-+		p += n;
-+	}
-+
-+	return p - buf;
-+}
-+
-+static DEVICE_ATTR(status, S_IRUGO,
-+		gpio_of_helper_show_status, NULL);
-+
-+static irqreturn_t gpio_of_helper_handler(int irq, void *ptr)
-+{
-+	struct gpio_of_entry *entry = ptr;
-+
-+	/* caution - low speed interfaces only! */
-+	atomic64_inc(&entry->counter);
-+
-+	return IRQ_HANDLED;
-+}
-+
-+static struct gpio_of_entry *
-+gpio_of_entry_create(struct gpio_of_helper_info *info,
-+		struct device_node *node)
-+{
-+	struct platform_device *pdev = info->pdev;
-+	struct device *dev = &pdev->dev;
-+	struct gpio_of_entry *entry;
-+	int err, gpio, irq;
-+	unsigned int req_flags, count_flags, irq_flags;
-+	enum gpio_type type;
-+	enum of_gpio_flags gpio_flags;
-+	const char *name;
-+
-+	/* get the type of the node first */
-+	if (of_property_read_bool(node, "input"))
-+		type = GPIO_TYPE_INPUT;
-+	else if (of_property_read_bool(node, "output"))
-+		type = GPIO_TYPE_OUTPUT;
-+	else {
-+		dev_err(dev, "Not valid gpio node type\n");
-+		err = -EINVAL;
-+		goto err_bad_node;
-+	}
-+
-+	/* get the name */
-+	err = of_property_read_string(node, "gpio-name", &name);
-+	if (err != 0) {
-+		dev_err(dev, "Failed to get name property\n");
-+		goto err_bad_node;
-+	}
-+
-+	err = of_get_named_gpio_flags(node, "gpio", 0, &gpio_flags);
-+	if (IS_ERR_VALUE(err)) {
-+		dev_err(dev, "Failed to get gpio property of '%s'\n", name);
-+		goto err_bad_node;
-+	}
-+	gpio = err;
-+
-+	req_flags = 0;
-+	count_flags = 0;
-+
-+	/* set the request flags */
-+	switch (type) {
-+		case GPIO_TYPE_INPUT:
-+			req_flags = GPIOF_DIR_IN | GPIOF_EXPORT;
-+			if (of_property_read_bool(node, "count-falling-edge"))
-+				count_flags |= COUNT_FALLING_EDGE;
-+			if (of_property_read_bool(node, "count-rising-edge"))
-+				count_flags |= COUNT_RISING_EDGE;
-+			break;
-+		case GPIO_TYPE_OUTPUT:
-+			req_flags = GPIOF_DIR_OUT | GPIOF_EXPORT;
-+			if (of_property_read_bool(node, "init-high"))
-+				req_flags |= GPIOF_OUT_INIT_HIGH;
-+			else if (of_property_read_bool(node, "init-low"))
-+				req_flags |= GPIOF_OUT_INIT_LOW;
-+			break;
-+	}
-+
-+	/* request the gpio */
-+	err = devm_gpio_request_one(dev, gpio, req_flags, name);
-+	if (err != 0) {
-+		dev_err(dev, "Failed to request gpio '%s'\n", name);
-+		goto err_bad_node;
-+	}
-+
-+	irq = -1;
-+	irq_flags = 0;
-+
-+	/* counter mode requested - need an interrupt */
-+	if (count_flags != 0) {
-+		irq = gpio_to_irq(gpio);
-+		if (IS_ERR_VALUE(irq)) {
-+			dev_err(dev, "Failed to request gpio '%s'\n", name);
-+			goto err_bad_node;
-+		}
-+
-+		if (count_flags & COUNT_RISING_EDGE)
-+			irq_flags |= IRQF_TRIGGER_RISING;
-+		if (count_flags & COUNT_FALLING_EDGE)
-+			irq_flags |= IRQF_TRIGGER_FALLING;
-+	}
-+
-+	if (!idr_pre_get(&info->idr, GFP_KERNEL)) {
-+		dev_err(dev, "Failed on idr_pre_get of '%s'\n", name);
-+		err = -ENOMEM;
-+		goto err_no_mem;
-+	}
-+
-+	entry = devm_kzalloc(dev, sizeof(*entry), GFP_KERNEL);
-+	if (entry == NULL) {
-+		dev_err(dev, "Failed to allocate gpio entry of '%s'\n", name);
-+		err = -ENOMEM;
-+		goto err_no_mem;
-+	}
-+
-+	entry->id = -1;
-+	entry->info = info;
-+	entry->node = of_node_get(node);	/* get node reference */
-+	entry->type = type;
-+	entry->gpio = gpio;
-+	entry->gpio_flags = gpio_flags;
-+	entry->irq = irq;
-+	entry->name = name;
-+
-+	/* interrupt enable is last thing done */
-+	if (irq >= 0) {
-+		atomic64_set(&entry->counter, 0);
-+		entry->count_flags = count_flags;
-+		err = devm_request_irq(dev, irq, gpio_of_helper_handler,
-+				irq_flags, name, entry);
-+		if (err != 0) {
-+			dev_err(dev, "Failed to request irq of '%s'\n", name);
-+			goto err_no_irq;
-+		}
-+	}
-+
-+	/* all done; insert */
-+	err = idr_get_new(&info->idr, entry, &entry->id);
-+	if (IS_ERR_VALUE(err)) {
-+		dev_err(dev, "Failed to idr_get_new  of '%s'\n", name);
-+		goto err_fail_idr;
-+	}
-+
-+	dev_info(dev, "Allocated GPIO id=%d\n", entry->id);
-+
-+	return entry;
-+
-+err_fail_idr:
-+	/* nothing to do */
-+err_no_irq:
-+	/* release node ref */
-+	of_node_put(node);
-+	/* nothing else needs to be done, devres handles it */
-+err_no_mem:
-+err_bad_node:
-+	return ERR_PTR(err);
-+}
-+
-+static int gpio_of_entry_destroy(struct gpio_of_entry *entry)
-+{
-+	struct gpio_of_helper_info *info = entry->info;
-+	struct platform_device *pdev = info->pdev;
-+	struct device *dev = &pdev->dev;
-+
-+	dev_info(dev, "Destroying GPIO id=%d\n", entry->id);
-+
-+	/* remove from the IDR */
-+	idr_remove(&info->idr, entry->id);
-+
-+	/* remove node ref */
-+	of_node_put(entry->node);
-+
-+	/* free gpio */
-+	devm_gpio_free(dev, entry->gpio);
-+
-+	/* gree irq */
-+	if (entry->irq >= 0)
-+		devm_free_irq(dev, entry->irq, entry);
-+
-+	/* and free */
-+	devm_kfree(dev, entry);
-+
-+	return 0;
-+}
-+
-+static int gpio_of_helper_probe(struct platform_device *pdev)
-+{
-+	struct device *dev = &pdev->dev;
-+	struct gpio_of_helper_info *info;
-+	struct gpio_of_entry *entry;
-+	struct device_node *pnode = pdev->dev.of_node;
-+	struct device_node *cnode;
-+	struct pinctrl *pinctrl;
-+	int err;
-+
-+	/* we only support OF */
-+	if (pnode == NULL) {
-+		dev_err(&pdev->dev, "No platform of_node!\n");
-+		return -ENODEV;
-+	}
-+
-+	pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
-+	if (IS_ERR(pinctrl)) {
-+		/* special handling for probe defer */
-+		if (PTR_ERR(pinctrl) == -EPROBE_DEFER)
-+			return -EPROBE_DEFER;
-+
-+		dev_warn(&pdev->dev,
-+			"pins are not configured from the driver\n");
-+	}
-+
-+	info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL);
-+	if (info == NULL) {
-+		dev_err(&pdev->dev, "Failed to allocate info\n");
-+		err = -ENOMEM;
-+		goto err_no_mem;
-+	}
-+	platform_set_drvdata(pdev, info);
-+	info->pdev = pdev;
-+
-+	idr_init(&info->idr);
-+
-+	err = device_create_file(dev, &dev_attr_status);
-+	if (err != 0) {
-+		dev_err(dev, "Failed to create status sysfs attribute\n");
-+		goto err_no_sysfs;
-+	}
-+
-+	for_each_child_of_node(pnode, cnode) {
-+
-+		entry = gpio_of_entry_create(info, cnode);
-+		if (IS_ERR_OR_NULL(entry)) {
-+			dev_err(dev, "Failed to create gpio entry\n");
-+			err = PTR_ERR(entry);
-+			goto err_fail_entry;
-+		}
-+	}
-+
-+	dev_info(&pdev->dev, "ready\n");
-+
-+	return 0;
-+err_fail_entry:
-+	device_remove_file(&pdev->dev, &dev_attr_status);
-+err_no_sysfs:
-+err_no_mem:
-+	return err;
-+}
-+
-+static int gpio_of_helper_remove(struct platform_device *pdev)
-+{
-+	struct gpio_of_helper_info *info = platform_get_drvdata(pdev);
-+	struct gpio_of_entry *entry;
-+	int id;
-+
-+	dev_info(&pdev->dev, "removing\n");
-+
-+	device_remove_file(&pdev->dev, &dev_attr_status);
-+
-+	id = 0;
-+	idr_for_each_entry(&info->idr, entry, id) {
-+		/* destroy each and every one */
-+		gpio_of_entry_destroy(entry);
-+	}
-+
-+	return 0;
-+}
-+
-+#ifdef CONFIG_PM
-+#ifdef CONFIG_PM_RUNTIME
-+static int gpio_of_helper_runtime_suspend(struct device *dev)
-+{
-+	/* place holder */
-+	return 0;
-+}
-+
-+static int gpio_of_helper_runtime_resume(struct device *dev)
-+{
-+	/* place holder */
-+	return 0;
-+}
-+#endif /* CONFIG_PM_RUNTIME */
-+
-+static struct dev_pm_ops gpio_of_helper_pm_ops = {
-+	SET_RUNTIME_PM_OPS(gpio_of_helper_runtime_suspend,
-+			   gpio_of_helper_runtime_resume, NULL)
-+};
-+#define GPIO_OF_HELPER_PM_OPS (&gpio_of_helper_pm_ops)
-+#else
-+#define GPIO_OF_HELPER_PM_OPS NULL
-+#endif /* CONFIG_PM */
-+
-+struct platform_driver gpio_of_helper_driver = {
-+	.probe		= gpio_of_helper_probe,
-+	.remove		= gpio_of_helper_remove,
-+	.driver = {
-+		.name		= "gpio-of-helper",
-+		.owner		= THIS_MODULE,
-+		.pm		= GPIO_OF_HELPER_PM_OPS,
-+		.of_match_table	= gpio_of_helper_of_match,
-+	},
-+};
-+
-+module_platform_driver(gpio_of_helper_driver);
-+
-+MODULE_AUTHOR("Pantelis Antoniou <panto@antoniou-consulting.com>");
-+MODULE_DESCRIPTION("GPIO OF Helper driver");
-+MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:gpio-of-helper");
-diff -Naurp a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
---- a/drivers/gpio/Kconfig	2014-02-07 00:05:20.000000000 +0100
-+++ b/drivers/gpio/Kconfig	2015-10-30 21:13:09.826705188 +0100
-@@ -81,6 +81,20 @@ config GPIO_SYSFS
- 	  Kernel drivers may also request that a particular GPIO be
- 	  exported to userspace; this can be useful when debugging.
- 
-+config GPIO_OF_HELPER
-+	bool "GPIO OF helper device"
-+	depends on OF_GPIO 
-+	help
-+	  Say Y here to add an GPIO OF helper driver
-+
-+	  Allows you specify a GPIO helper based on OF
-+	  which allows simple export of GPIO functionality
-+	  in user-space.
-+
-+	  Features include, value set/get, direction control,
-+	  interrupt/value change poll support, event counting
-+	  and others.
-+
- config GPIO_GENERIC
- 	tristate
- 
-diff -Naurp a/drivers/gpio/Makefile b/drivers/gpio/Makefile
---- a/drivers/gpio/Makefile	2014-02-07 00:05:20.000000000 +0100
-+++ b/drivers/gpio/Makefile	2015-10-30 21:13:09.826705188 +0100
-@@ -6,6 +6,7 @@ obj-$(CONFIG_GPIO_DEVRES)	+= devres.o
- obj-$(CONFIG_GPIOLIB)		+= gpiolib.o
- obj-$(CONFIG_OF_GPIO)		+= gpiolib-of.o
- obj-$(CONFIG_GPIO_ACPI)		+= gpiolib-acpi.o
-+obj-$(CONFIG_GPIO_OF_HELPER)	+= gpio-of-helper.o
- 
- # Device drivers. Generally keep list sorted alphabetically
- obj-$(CONFIG_GPIO_GENERIC)	+= gpio-generic.o

+ 0 - 271
board/GfA/Display001/linux/linux-009-pru.patch

@@ -1,271 +0,0 @@
-From e6720081e390bd1014edf00a800c24d6dfb0abbf Mon Sep 17 00:00:00 2001
-From: Elias <elias@iagent.no>
-Date: Tue, 14 Jan 2014 11:10:17 +0100
-Subject: [PATCH] These are the patches necessary for enabling the PRU with
- kernel 3.12. Most of this has been taken form the 3.9-patchset and updated.
-
----
- arch/arm/boot/dts/am33xx.dtsi |  11 +++++
- drivers/uio/Kconfig           |   4 +-
- drivers/uio/uio_pruss.c       | 105 ++++++++++++++++++++++++++++++++++++++++--
- 3 files changed, 115 insertions(+), 5 deletions(-)
-
-diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
-index 3dd2af6..d9fd58b 100644
---- a/arch/arm/boot/dts/am33xx.dtsi
-+++ b/arch/arm/boot/dts/am33xx.dtsi
-@@ -368,6 +368,17 @@
- 			ti,timer-pwm;
- 		};
- 
-+		pruss: pruss@4a300000 {
-+			compatible = "ti,pruss-v2";
-+			ti,hwmods = "pruss";
-+			ti,deassert-hard-reset = "pruss", "pruss";
-+			reg = <0x4a300000 0x080000>;
-+			ti,pintc-offset = <0x20000>;
-+			interrupt-parent = <&intc>;
-+			status = "disabled";
-+			interrupts = <20 21 22 23 24 25 26 27>;
-+		};
-+
- 		rtc@44e3e000 {
- 			compatible = "ti,da830-rtc";
- 			reg = <0x44e3e000 0x1000>;
-diff --git a/drivers/uio/Kconfig b/drivers/uio/Kconfig
-index 5a90914..6c5abe9 100644
---- a/drivers/uio/Kconfig
-+++ b/drivers/uio/Kconfig
-@@ -106,10 +106,10 @@ config UIO_NETX
- 
- config UIO_PRUSS
- 	tristate "Texas Instruments PRUSS driver"
--	depends on ARCH_DAVINCI_DA850
-+	depends on ARCH_DAVINCI_DA850 || SOC_AM33XX
- 	select GENERIC_ALLOCATOR
- 	help
--	  PRUSS driver for OMAPL138/DA850/AM18XX devices
-+	  PRUSS driver for OMAPL138/DA850/AM18XX and AM33XX devices
- 	  PRUSS driver requires user space components, examples and user space
- 	  driver is available from below SVN repo - you may use anonymous login
- 
-diff --git a/drivers/uio/uio_pruss.c b/drivers/uio/uio_pruss.c
-index f519da9..d99a772 100644
---- a/drivers/uio/uio_pruss.c
-+++ b/drivers/uio/uio_pruss.c
-@@ -19,6 +19,7 @@
- #include <linux/module.h>
- #include <linux/moduleparam.h>
- #include <linux/platform_device.h>
-+#include <linux/of_gpio.h>
- #include <linux/uio_driver.h>
- #include <linux/platform_data/uio_pruss.h>
- #include <linux/io.h>
-@@ -26,6 +27,11 @@
- #include <linux/dma-mapping.h>
- #include <linux/slab.h>
- #include <linux/genalloc.h>
-+#include <linux/of_address.h>
-+#include <linux/of_device.h>
-+#include <linux/pinctrl/consumer.h>
-+#include <linux/err.h>
-+#include <linux/pm_runtime.h>
- 
- #define DRV_NAME "pruss_uio"
- #define DRV_VERSION "1.0"
-@@ -106,10 +112,12 @@ static void pruss_cleanup(struct platform_device *dev,
- 		dma_free_coherent(&dev->dev, extram_pool_sz, gdev->ddr_vaddr,
- 			gdev->ddr_paddr);
- 	}
-+#ifdef CONFIG_ARCH_DAVINCI_DA850
- 	if (gdev->sram_vaddr)
- 		gen_pool_free(gdev->sram_pool,
- 			      gdev->sram_vaddr,
- 			      sram_pool_sz);
-+#endif
- 	kfree(gdev->info);
- 	clk_put(gdev->pruss_clk);
- 	kfree(gdev);
-@@ -120,8 +128,14 @@ static int pruss_probe(struct platform_device *dev)
- 	struct uio_info *p;
- 	struct uio_pruss_dev *gdev;
- 	struct resource *regs_prussio;
-+	struct resource res;
- 	int ret = -ENODEV, cnt = 0, len;
- 	struct uio_pruss_pdata *pdata = dev_get_platdata(&dev->dev);
-+    struct pinctrl *pinctrl;
-+
-+	int count;
-+	struct device_node *child;
-+	const char *pin_name;
- 
- 	gdev = kzalloc(sizeof(struct uio_pruss_dev), GFP_KERNEL);
- 	if (!gdev)
-@@ -132,6 +146,7 @@ static int pruss_probe(struct platform_device *dev)
- 		kfree(gdev);
- 		return -ENOMEM;
- 	}
-+#ifdef CONFIG_ARCH_DAVINCI_DA850
- 	/* Power on PRU in case its not done as part of boot-loader */
- 	gdev->pruss_clk = clk_get(&dev->dev, "pruss");
- 	if (IS_ERR(gdev->pruss_clk)) {
-@@ -143,6 +158,63 @@ static int pruss_probe(struct platform_device *dev)
- 	} else {
- 		clk_enable(gdev->pruss_clk);
- 	}
-+#endif
-+
-+	if (dev->dev.of_node) {
-+		pm_runtime_enable(&dev->dev);
-+		ret = pm_runtime_get_sync(&dev->dev);
-+		if (IS_ERR_VALUE(ret)) {
-+			dev_err(&dev->dev, "pm_runtime_get_sync() failed\n");
-+			return ret;
-+		}
-+
-+		ret = of_address_to_resource(dev->dev.of_node, 0, &res);
-+		if (IS_ERR_VALUE(ret)) {
-+			dev_err(&dev->dev, "failed to parse DT reg\n");
-+			return ret;
-+		}
-+		regs_prussio = &res;
-+	}
-+
-+	pinctrl = devm_pinctrl_get_select_default(&dev->dev);
-+	if (IS_ERR(pinctrl))
-+		dev_warn(&dev->dev,
-+			"pins are not configured from the driver\n");
-+	else{
-+		count = of_get_child_count(dev->dev.of_node);
-+		if (!count){
-+			dev_info(&dev->dev, "No children\n");
-+			return -ENODEV;
-+		}
-+		// Run through all children. They have lables for easy reference.
-+		for_each_child_of_node(dev->dev.of_node, child){
-+			enum of_gpio_flags flags;
-+			unsigned gpio;
-+
-+			count = of_gpio_count(child);
-+
-+			ret = of_property_count_strings(child, "pin-names");
-+			if (ret < 0) {
-+				dev_err(&dev->dev, "Failed to get pin-names\n");
-+				continue;
-+			}
-+			if(count != ret){
-+				dev_err(&dev->dev, "The number of gpios (%d) does not match"\
-+					" the number of pin names (%d)\n", count, ret);
-+				continue;
-+			}
-+
-+			dev_err(&dev->dev, "Child has %u gpios\n", count);
-+			for(cnt=0; cnt<count; cnt++){
-+				ret = of_property_read_string_index(child,
-+					"pin-names", cnt, &pin_name);
-+				if (ret != 0)
-+					dev_err(&dev->dev, "Error on pin-name #%d\n", cnt);
-+				gpio = of_get_gpio_flags(child, cnt, &flags);
-+				ret = devm_gpio_request_one(&dev->dev, gpio, flags, pin_name);
-+			}
-+		}
-+	}
- 
- 	regs_prussio = platform_get_resource(dev, IORESOURCE_MEM, 0);
- 	if (!regs_prussio) {
-@@ -150,19 +222,23 @@ static int pruss_probe(struct platform_device *dev)
- 		goto out_free;
- 	}
- 
-+    dev_err(&dev->dev,"pruss_probe() get_resource ok\n");
-+
- 	if (!regs_prussio->start) {
- 		dev_err(&dev->dev, "Invalid memory resource\n");
- 		goto out_free;
- 	}
- 
--	if (pdata->sram_pool) {
-+	if (pdata && pdata->sram_pool) {
- 		gdev->sram_pool = pdata->sram_pool;
-+#ifdef CONFIG_ARCH_DAVINCI_DA850
- 		gdev->sram_vaddr =
- 			gen_pool_alloc(gdev->sram_pool, sram_pool_sz);
- 		if (!gdev->sram_vaddr) {
- 			dev_err(&dev->dev, "Could not allocate SRAM pool\n");
- 			goto out_free;
- 		}
-+#endif
- 		gdev->sram_paddr =
- 			gen_pool_virt_to_phys(gdev->sram_pool,
- 					      gdev->sram_vaddr);
-@@ -182,7 +258,17 @@ static int pruss_probe(struct platform_device *dev)
- 		goto out_free;
- 	}
- 
--	gdev->pintc_base = pdata->pintc_base;
-+	if (dev->dev.of_node) {
-+		ret = of_property_read_u32(dev->dev.of_node,
-+					   "ti,pintc-offset",
-+					   &gdev->pintc_base);
-+		if (ret < 0) {
-+			dev_err(&dev->dev,
-+				"Can't parse ti,pintc-offset property\n");
-+			goto out_free;
-+		}
-+	} else
-+		gdev->pintc_base = pdata->pintc_base;
- 	gdev->hostirq_start = platform_get_irq(dev, 0);
- 
- 	for (cnt = 0, p = gdev->info; cnt < MAX_PRUSS_EVT; cnt++, p++) {
-@@ -190,6 +276,7 @@ static int pruss_probe(struct platform_device *dev)
- 		p->mem[0].size = resource_size(regs_prussio);
- 		p->mem[0].memtype = UIO_MEM_PHYS;
- 
-+#ifdef CONFIG_ARCH_DAVINCI_DA850
- 		p->mem[1].addr = gdev->sram_paddr;
- 		p->mem[1].size = sram_pool_sz;
- 		p->mem[1].memtype = UIO_MEM_PHYS;
-@@ -197,6 +284,11 @@ static int pruss_probe(struct platform_device *dev)
- 		p->mem[2].addr = gdev->ddr_paddr;
- 		p->mem[2].size = extram_pool_sz;
- 		p->mem[2].memtype = UIO_MEM_PHYS;
-+#else
-+		p->mem[1].addr = gdev->ddr_paddr;
-+		p->mem[1].size = extram_pool_sz;
-+		p->mem[1].memtype = UIO_MEM_PHYS;
-+#endif
- 
- 		p->name = kasprintf(GFP_KERNEL, "pruss_evt%d", cnt);
- 		p->version = DRV_VERSION;
-@@ -210,7 +302,6 @@ static int pruss_probe(struct platform_device *dev)
- 		if (ret < 0)
- 			goto out_free;
- 	}
--
- 	platform_set_drvdata(dev, gdev);
- 	return 0;
- 
-@@ -227,12 +318,20 @@ static int pruss_remove(struct platform_device *dev)
- 	return 0;
- }
- 
-+static const struct of_device_id pruss_dt_ids[] = {
-+	{ .compatible = "ti,pruss-v1", .data = NULL, },
-+	{ .compatible = "ti,pruss-v2", .data = NULL, },
-+	{},
-+};
-+MODULE_DEVICE_TABLE(of, pruss_dt_ids);
-+
- static struct platform_driver pruss_driver = {
- 	.probe = pruss_probe,
- 	.remove = pruss_remove,
- 	.driver = {
- 		   .name = DRV_NAME,
- 		   .owner = THIS_MODULE,
-+		   .of_match_table = pruss_dt_ids,
- 		   },
- };
- 
--- 
-1.8.5.2
-

+ 0 - 55
board/GfA/Display001/linux/linux-010-pru_ena.patch

@@ -1,55 +0,0 @@
-diff -Nur -x '*.S' -x '*.lds' a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
---- a/arch/arm/mach-omap2/omap_device.c	2014-02-07 00:05:20.000000000 +0100
-+++ b/arch/arm/mach-omap2/omap_device.c	2016-01-10 20:05:46.923487984 +0100
-@@ -123,8 +123,8 @@
- 	struct omap_device *od;
- 	struct omap_hwmod *oh;
- 	struct device_node *node = pdev->dev.of_node;
--	const char *oh_name;
--	int oh_cnt, i, ret = 0;
-+	const char *oh_name, *rst_name;
-+	int oh_cnt, dstr_cnt, i, ret = 0;
- 	bool device_active = false;
- 
- 	oh_cnt = of_property_count_strings(node, "ti,hwmods");
-@@ -176,6 +176,26 @@
- 		pm_runtime_set_active(&pdev->dev);
- 	}
- 
-+       dstr_cnt =
-+               of_property_count_strings(node, "ti,deassert-hard-reset");
-+       if (dstr_cnt > 0) {
-+               for (i = 0; i < dstr_cnt; i += 2) {
-+                       of_property_read_string_index(
-+                               node, "ti,deassert-hard-reset", i,
-+                               &oh_name);
-+                       of_property_read_string_index(
-+                               node, "ti,deassert-hard-reset", i+1,
-+                               &rst_name);
-+                       oh = omap_hwmod_lookup(oh_name);
-+                       if (!oh) {
-+                               dev_warn(&pdev->dev,
-+                               "Cannot parse deassert property for '%s'\n",
-+                               oh_name);
-+                               break;
-+                       }
-+                       omap_hwmod_deassert_hardreset(oh, rst_name);
-+               }
-+       }
- odbfd_exit1:
- 	kfree(hwmods);
- odbfd_exit:
-diff -Nur -x '*.S' -x '*.lds' a/drivers/uio/uio_pruss.c b/drivers/uio/uio_pruss.c
---- a/drivers/uio/uio_pruss.c	2016-01-10 22:06:02.731071925 +0100
-+++ b/drivers/uio/uio_pruss.c	2016-01-10 22:04:52.011075216 +0100
-@@ -182,10 +182,6 @@
- 			"pins are not configured from the driver\n");
- 	else{
- 		count = of_get_child_count(dev->dev.of_node);
--		if (!count){
--			dev_info(&dev->dev, "No children\n");
--			return -ENODEV;
--		}
- 		// Run through all children. They have lables for easy reference.
- 		for_each_child_of_node(dev->dev.of_node, child){
- 			enum of_gpio_flags flags;

+ 0 - 24
board/GfA/Display001/linux/linux-011-bootlogo_move.patch

@@ -1,24 +0,0 @@
---- linux-7f280334068b7c875ade51f8f3921ab311f0c824/drivers/video/fbmem.c	2014-02-07 00:05:20.000000000 +0100
-+++ b/drivers/video/fbmem.c	2016-01-11 23:12:12.522516459 +0100
-@@ -498,8 +498,8 @@
- 		fb_set_logo(info, logo, logo_new, fb_logo.depth);
- 	}
- 
--	image.dx = 0;
--	image.dy = y;
-+	image.dx = 0 + 5;
-+	image.dy = y + 5;
- 	image.width = logo->width;
- 	image.height = logo->height;
- 
---- linux-7f280334068b7c875ade51f8f3921ab311f0c824/drivers/video/console/fbcon.c	2014-02-07 00:05:20.000000000 +0100
-+++ b/drivers/video/console/fbcon.c	2016-01-12 08:39:57.850085691 +0100
-@@ -584,6 +584,8 @@
- 	if (fb_get_color_depth(&info->var, &info->fix) == 1)
- 		erase &= ~0x400;
- 	logo_height = fb_prepare_logo(info, ops->rotate);
-+	logo_height += 5;
-+	
- 	logo_lines = DIV_ROUND_UP(logo_height, vc->vc_font.height);
- 	q = (unsigned short *) (vc->vc_origin +
- 				vc->vc_size_row * rows);

+ 0 - 521
board/GfA/Display001/linux/linux-012-omap-dmtimer.patch

@@ -1,521 +0,0 @@
-diff -Naur a/Documentation/devicetree/bindings/pwm/pwm-omap-dmtimer.txt b/Documentation/devicetree/bindings/pwm/pwm-omap-dmtimer.txt
---- a/Documentation/devicetree/bindings/pwm/pwm-omap-dmtimer.txt	1970-01-01 01:00:00.000000000 +0100
-+++ b/Documentation/devicetree/bindings/pwm/pwm-omap-dmtimer.txt	2016-11-09 00:03:50.775305324 +0100
-@@ -0,0 +1,18 @@
-+* OMAP PWM for dual-mode timers
-+
-+Required properties:
-+- compatible: Shall contain "ti,omap-dmtimer-pwm".
-+- ti,timers: phandle to PWM capable OMAP timer. See arm/omap/timer.txt for info
-+  about these timers.
-+- #pwm-cells: Should be 3. See pwm.txt in this directory for a description of
-+  the cells format.
-+
-+Optional properties:
-+- ti,prescaler: Should be a value between 0 and 7, see the timers datasheet
-+
-+Example:
-+	pwm9: dmtimer-pwm@9 {
-+		compatible = "ti,omap-dmtimer-pwm";
-+		ti,timers = <&timer9>;
-+		#pwm-cells = <3>;
-+	};
-diff -Naur a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
---- a/drivers/pwm/Kconfig	2014-02-07 00:05:20.000000000 +0100
-+++ b/drivers/pwm/Kconfig	2016-11-09 00:03:50.795305503 +0100
-@@ -101,6 +101,15 @@
- 	  To compile this driver as a module, choose M here: the module
- 	  will be called pwm-mxs.
- 
-+config PWM_OMAP_DMTIMER
-+	tristate "OMAP Dual-Mode Timer PWM support"
-+	depends on OF && ARCH_OMAP && OMAP_DM_TIMER
-+	help
-+	  Generic PWM framework driver for OMAP Dual-Mode Timer PWM output
-+
-+	  To compile this driver as a module, choose M here: the module
-+	  will be called pwm-omap-dmtimer
-+
- config PWM_PCA9685
- 	tristate "NXP PCA9685 PWM driver"
- 	depends on OF && REGMAP_I2C
-diff -Naur a/drivers/pwm/Makefile b/drivers/pwm/Makefile
---- a/drivers/pwm/Makefile	2014-02-07 00:05:20.000000000 +0100
-+++ b/drivers/pwm/Makefile	2016-11-09 00:03:50.795305503 +0100
-@@ -7,6 +7,7 @@
- obj-$(CONFIG_PWM_JZ4740)	+= pwm-jz4740.o
- obj-$(CONFIG_PWM_LPC32XX)	+= pwm-lpc32xx.o
- obj-$(CONFIG_PWM_MXS)		+= pwm-mxs.o
-+obj-$(CONFIG_PWM_OMAP_DMTIMER)	+= pwm-omap-dmtimer.o
- obj-$(CONFIG_PWM_PCA9685)	+= pwm-pca9685.o
- obj-$(CONFIG_PWM_PUV3)		+= pwm-puv3.o
- obj-$(CONFIG_PWM_PXA)		+= pwm-pxa.o
-diff -Naur a/drivers/pwm/pwm-omap-dmtimer.c b/drivers/pwm/pwm-omap-dmtimer.c
---- a/drivers/pwm/pwm-omap-dmtimer.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/drivers/pwm/pwm-omap-dmtimer.c	2016-11-09 00:05:19.484095652 +0100
-@@ -0,0 +1,369 @@
-+/*
-+ * Copyright (c) 2015 Neil Armstrong <narmstrong@baylibre.com>
-+ * Copyright (c) 2014 Joachim Eastwood <manabian@gmail.com>
-+ * Copyright (c) 2012 NeilBrown <neilb@suse.de>
-+ * Heavily based on earlier code which is:
-+ * Copyright (c) 2010 Grant Erickson <marathon96@gmail.com>
-+ *
-+ * Also based on pwm-samsung.c
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * version 2 as published by the Free Software Foundation.
-+ *
-+ * Description:
-+ *   This file is the core OMAP support for the generic, Linux
-+ *   PWM driver / controller, using the OMAP's dual-mode timers.
-+ */
-+
-+#include <linux/clk.h>
-+#include <linux/err.h>
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/mutex.h>
-+#include <linux/of.h>
-+#include <linux/of_platform.h>
-+#include <linux/platform_data/pwm_omap_dmtimer.h>
-+#include <linux/platform_device.h>
-+#include <linux/pm_runtime.h>
-+#include <linux/pwm.h>
-+#include <linux/slab.h>
-+#include <linux/time.h>
-+
-+#define DM_TIMER_LOAD_MIN 0xfffffffe
-+#define DM_TIMER_MAX      0xffffffff
-+
-+struct pwm_omap_dmtimer_chip {
-+	struct pwm_chip chip;
-+	struct mutex mutex;
-+	pwm_omap_dmtimer *dm_timer;
-+	struct pwm_omap_dmtimer_pdata *pdata;
-+	struct platform_device *dm_timer_pdev;
-+};
-+
-+static inline struct pwm_omap_dmtimer_chip *
-+to_pwm_omap_dmtimer_chip(struct pwm_chip *chip)
-+{
-+	return container_of(chip, struct pwm_omap_dmtimer_chip, chip);
-+}
-+
-+static u32 pwm_omap_dmtimer_get_clock_cycles(unsigned long clk_rate, int ns)
-+{
-+	return DIV_ROUND_CLOSEST_ULL((u64)clk_rate * ns, NSEC_PER_SEC);
-+}
-+
-+static void pwm_omap_dmtimer_start(struct pwm_omap_dmtimer_chip *omap)
-+{
-+	/*
-+	 * According to OMAP 4 TRM section 22.2.4.10 the counter should be
-+	 * started at 0xFFFFFFFE when overflow and match is used to ensure
-+	 * that the PWM line is toggled on the first event.
-+	 *
-+	 * Note that omap_dm_timer_enable/disable is for register access and
-+	 * not the timer counter itself.
-+	 */
-+	omap->pdata->enable(omap->dm_timer);
-+	omap->pdata->write_counter(omap->dm_timer, DM_TIMER_LOAD_MIN);
-+	omap->pdata->disable(omap->dm_timer);
-+
-+	omap->pdata->start(omap->dm_timer);
-+}
-+
-+static int pwm_omap_dmtimer_enable(struct pwm_chip *chip,
-+				   struct pwm_device *pwm)
-+{
-+	struct pwm_omap_dmtimer_chip *omap = to_pwm_omap_dmtimer_chip(chip);
-+
-+	mutex_lock(&omap->mutex);
-+	pwm_omap_dmtimer_start(omap);
-+	mutex_unlock(&omap->mutex);
-+
-+	return 0;
-+}
-+
-+static void pwm_omap_dmtimer_disable(struct pwm_chip *chip,
-+				     struct pwm_device *pwm)
-+{
-+	struct pwm_omap_dmtimer_chip *omap = to_pwm_omap_dmtimer_chip(chip);
-+
-+	mutex_lock(&omap->mutex);
-+	omap->pdata->stop(omap->dm_timer);
-+	mutex_unlock(&omap->mutex);
-+}
-+
-+static int pwm_omap_dmtimer_config(struct pwm_chip *chip,
-+				   struct pwm_device *pwm,
-+				   int duty_ns, int period_ns)
-+{
-+	struct pwm_omap_dmtimer_chip *omap = to_pwm_omap_dmtimer_chip(chip);
-+	u32 period_cycles, duty_cycles;
-+	u32 load_value, match_value;
-+	struct clk *fclk;
-+	unsigned long clk_rate;
-+	bool timer_active;
-+
-+	dev_dbg(chip->dev, "requested duty cycle: %d ns, period: %d ns\n",
-+		duty_ns, period_ns);
-+
-+	mutex_lock(&omap->mutex);
-+	if (duty_ns == pwm_get_duty_cycle(pwm) &&
-+	    period_ns == pwm_get_period(pwm)) {
-+		/* No change - don't cause any transients. */
-+		mutex_unlock(&omap->mutex);
-+		return 0;
-+	}
-+
-+	fclk = omap->pdata->get_fclk(omap->dm_timer);
-+	if (!fclk) {
-+		dev_err(chip->dev, "invalid pmtimer fclk\n");
-+		goto err_einval;
-+	}
-+
-+	clk_rate = clk_get_rate(fclk);
-+	if (!clk_rate) {
-+		dev_err(chip->dev, "invalid pmtimer fclk rate\n");
-+		goto err_einval;
-+	}
-+
-+	dev_dbg(chip->dev, "clk rate: %luHz\n", clk_rate);
-+
-+	/*
-+	 * Calculate the appropriate load and match values based on the
-+	 * specified period and duty cycle. The load value determines the
-+	 * period time and the match value determines the duty time.
-+	 *
-+	 * The period lasts for (DM_TIMER_MAX-load_value+1) clock cycles.
-+	 * Similarly, the active time lasts (match_value-load_value+1) cycles.
-+	 * The non-active time is the remainder: (DM_TIMER_MAX-match_value)
-+	 * clock cycles.
-+	 *
-+	 * NOTE: It is required that: load_value <= match_value < DM_TIMER_MAX
-+	 *
-+	 * References:
-+	 *   OMAP4430/60/70 TRM sections 22.2.4.10 and 22.2.4.11
-+	 *   AM335x Sitara TRM sections 20.1.3.5 and 20.1.3.6
-+	 */
-+	period_cycles = pwm_omap_dmtimer_get_clock_cycles(clk_rate, period_ns);
-+	duty_cycles = pwm_omap_dmtimer_get_clock_cycles(clk_rate, duty_ns);
-+
-+	if (period_cycles < 2) {
-+		dev_info(chip->dev,
-+			 "period %d ns too short for clock rate %lu Hz\n",
-+			 period_ns, clk_rate);
-+		goto err_einval;
-+	}
-+
-+	if (duty_cycles < 1) {
-+		dev_dbg(chip->dev,
-+			"duty cycle %d ns is too short for clock rate %lu Hz\n",
-+			duty_ns, clk_rate);
-+		dev_dbg(chip->dev, "using minimum of 1 clock cycle\n");
-+		duty_cycles = 1;
-+	} else if (duty_cycles >= period_cycles) {
-+		dev_dbg(chip->dev,
-+			"duty cycle %d ns is too long for period %d ns at clock rate %lu Hz\n",
-+			duty_ns, period_ns, clk_rate);
-+		dev_dbg(chip->dev, "using maximum of 1 clock cycle less than period\n");
-+		duty_cycles = period_cycles - 1;
-+	}
-+
-+	dev_dbg(chip->dev, "effective duty cycle: %lld ns, period: %lld ns\n",
-+		DIV_ROUND_CLOSEST_ULL((u64)NSEC_PER_SEC * duty_cycles,
-+				      clk_rate),
-+		DIV_ROUND_CLOSEST_ULL((u64)NSEC_PER_SEC * period_cycles,
-+				      clk_rate));
-+
-+	load_value = (DM_TIMER_MAX - period_cycles) + 1;
-+	match_value = load_value + duty_cycles - 1;
-+
-+	/*
-+	 * We MUST stop the associated dual-mode timer before attempting to
-+	 * write its registers, but calls to omap_dm_timer_start/stop must
-+	 * be balanced so check if timer is active before calling timer_stop.
-+	 */
-+	timer_active = pm_runtime_active(&omap->dm_timer_pdev->dev);
-+	if (timer_active)
-+		omap->pdata->stop(omap->dm_timer);
-+
-+	omap->pdata->set_load(omap->dm_timer, true, load_value);
-+	omap->pdata->set_match(omap->dm_timer, true, match_value);
-+
-+	dev_dbg(chip->dev, "load value: %#08x (%d), match value: %#08x (%d)\n",
-+		load_value, load_value,	match_value, match_value);
-+
-+	omap->pdata->set_pwm(omap->dm_timer,
-+			      pwm->polarity == PWM_POLARITY_INVERSED,
-+			      true,
-+			      PWM_OMAP_DMTIMER_TRIGGER_OVERFLOW_AND_COMPARE);
-+
-+	/* If config was called while timer was running it must be reenabled. */
-+	if (timer_active)
-+		pwm_omap_dmtimer_start(omap);
-+
-+	mutex_unlock(&omap->mutex);
-+
-+	return 0;
-+
-+err_einval:
-+	mutex_unlock(&omap->mutex);
-+
-+	return -EINVAL;
-+}
-+
-+static int pwm_omap_dmtimer_set_polarity(struct pwm_chip *chip,
-+					 struct pwm_device *pwm,
-+					 enum pwm_polarity polarity)
-+{
-+	struct pwm_omap_dmtimer_chip *omap = to_pwm_omap_dmtimer_chip(chip);
-+
-+	/*
-+	 * PWM core will not call set_polarity while PWM is enabled so it's
-+	 * safe to reconfigure the timer here without stopping it first.
-+	 */
-+	mutex_lock(&omap->mutex);
-+	omap->pdata->set_pwm(omap->dm_timer,
-+			      polarity == PWM_POLARITY_INVERSED,
-+			      true,
-+			      PWM_OMAP_DMTIMER_TRIGGER_OVERFLOW_AND_COMPARE);
-+	mutex_unlock(&omap->mutex);
-+
-+	return 0;
-+}
-+
-+static const struct pwm_ops pwm_omap_dmtimer_ops = {
-+	.enable	= pwm_omap_dmtimer_enable,
-+	.disable = pwm_omap_dmtimer_disable,
-+	.config	= pwm_omap_dmtimer_config,
-+	.set_polarity = pwm_omap_dmtimer_set_polarity,
-+	.owner = THIS_MODULE,
-+};
-+
-+static int pwm_omap_dmtimer_probe(struct platform_device *pdev)
-+{
-+	struct device_node *np = pdev->dev.of_node;
-+	struct device_node *timer;
-+	struct pwm_omap_dmtimer_chip *omap;
-+	struct pwm_omap_dmtimer_pdata *pdata;
-+	pwm_omap_dmtimer *dm_timer;
-+	u32 prescaler;
-+	int status;
-+
-+	pdata = dev_get_platdata(&pdev->dev);
-+	if (!pdata) {
-+		dev_err(&pdev->dev, "Missing dmtimer platform data\n");
-+		return -EINVAL;
-+	}
-+
-+	if (!pdata->request_by_node ||
-+	    !pdata->free ||
-+	    !pdata->enable ||
-+	    !pdata->disable ||
-+	    !pdata->get_fclk ||
-+	    !pdata->start ||
-+	    !pdata->stop ||
-+	    !pdata->set_load ||
-+	    !pdata->set_match ||
-+	    !pdata->set_pwm ||
-+	    !pdata->set_prescaler ||
-+	    !pdata->write_counter) {
-+		dev_err(&pdev->dev, "Incomplete dmtimer pdata structure\n");
-+		return -EINVAL;
-+	}
-+
-+	timer = of_parse_phandle(np, "ti,timers", 0);
-+	if (!timer)
-+		return -ENODEV;
-+
-+	if (!of_get_property(timer, "ti,timer-pwm", NULL)) {
-+		dev_err(&pdev->dev, "Missing ti,timer-pwm capability\n");
-+		return -ENODEV;
-+	}
-+
-+	dm_timer = pdata->request_by_node(timer);
-+	if (!dm_timer)
-+		return -EPROBE_DEFER;
-+
-+	omap = devm_kzalloc(&pdev->dev, sizeof(*omap), GFP_KERNEL);
-+	if (!omap) {
-+		pdata->free(dm_timer);
-+		return -ENOMEM;
-+	}
-+
-+	omap->pdata = pdata;
-+	omap->dm_timer = dm_timer;
-+
-+	omap->dm_timer_pdev = of_find_device_by_node(timer);
-+	if (!omap->dm_timer_pdev) {
-+		dev_err(&pdev->dev, "Unable to find timer pdev\n");
-+		omap->pdata->free(dm_timer);
-+		return -EINVAL;
-+	}
-+
-+	/*
-+	 * Ensure that the timer is stopped before we allow PWM core to call
-+	 * pwm_enable.
-+	 */
-+	if (pm_runtime_active(&omap->dm_timer_pdev->dev))
-+		omap->pdata->stop(omap->dm_timer);
-+
-+	/* setup dmtimer prescaler */
-+	if (!of_property_read_u32(pdev->dev.of_node, "ti,prescaler",
-+				&prescaler))
-+		omap->pdata->set_prescaler(omap->dm_timer, prescaler);
-+
-+	omap->chip.dev = &pdev->dev;
-+	omap->chip.ops = &pwm_omap_dmtimer_ops;
-+	omap->chip.base = -1;
-+	omap->chip.npwm = 1;
-+	omap->chip.of_xlate = of_pwm_xlate_with_flags;
-+	omap->chip.of_pwm_n_cells = 3;
-+
-+	mutex_init(&omap->mutex);
-+
-+	status = pwmchip_add(&omap->chip);
-+	if (status < 0) {
-+		dev_err(&pdev->dev, "failed to register PWM\n");
-+		omap->pdata->free(omap->dm_timer);
-+		return status;
-+	}
-+
-+	platform_set_drvdata(pdev, omap);
-+
-+	return 0;
-+}
-+
-+static int pwm_omap_dmtimer_remove(struct platform_device *pdev)
-+{
-+	struct pwm_omap_dmtimer_chip *omap = platform_get_drvdata(pdev);
-+
-+	if (pm_runtime_active(&omap->dm_timer_pdev->dev))
-+		omap->pdata->stop(omap->dm_timer);
-+
-+	omap->pdata->free(omap->dm_timer);
-+
-+	mutex_destroy(&omap->mutex);
-+
-+	return pwmchip_remove(&omap->chip);
-+}
-+
-+static const struct of_device_id pwm_omap_dmtimer_of_match[] = {
-+	{.compatible = "ti,omap-dmtimer-pwm"},
-+	{}
-+};
-+MODULE_DEVICE_TABLE(of, pwm_omap_dmtimer_of_match);
-+
-+static struct platform_driver pwm_omap_dmtimer_driver = {
-+	.driver = {
-+		.name = "omap-dmtimer-pwm",
-+		.of_match_table = of_match_ptr(pwm_omap_dmtimer_of_match),
-+	},
-+	.probe = pwm_omap_dmtimer_probe,
-+	.remove	= pwm_omap_dmtimer_remove,
-+};
-+module_platform_driver(pwm_omap_dmtimer_driver);
-+
-+MODULE_AUTHOR("Grant Erickson <marathon96@gmail.com>");
-+MODULE_AUTHOR("NeilBrown <neilb@suse.de>");
-+MODULE_AUTHOR("Neil Armstrong <narmstrong@baylibre.com>");
-+MODULE_LICENSE("GPL v2");
-+MODULE_DESCRIPTION("OMAP PWM Driver using Dual-mode Timers");
-diff -Naur a/include/linux/kernel.h b/include/linux/kernel.h
---- a/include/linux/kernel.h	2014-02-07 00:05:20.000000000 +0100
-+++ b/include/linux/kernel.h	2016-11-09 00:21:01.364470364 +0100
-@@ -92,6 +92,19 @@
- )
- 
- /*
-+ * Same as above but for u64 dividends. divisor must be a 32-bit
-+ * number.
-+ */
-+#define DIV_ROUND_CLOSEST_ULL(x, divisor)(		\
-+{							\
-+	typeof(divisor) __d = divisor;			\
-+	unsigned long long _tmp = (x) + (__d) / 2;	\
-+	do_div(_tmp, __d);				\
-+	_tmp;						\
-+}							\
-+)
-+                                   
-+/*
-  * Multiplies an integer by a fraction, while avoiding unnecessary
-  * overflow or loss of precision.
-  */
-diff -Naur a/include/linux/platform_data/pwm_omap_dmtimer.h b/include/linux/platform_data/pwm_omap_dmtimer.h
---- a/include/linux/platform_data/pwm_omap_dmtimer.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/include/linux/platform_data/pwm_omap_dmtimer.h	2016-11-09 00:03:50.807305610 +0100
-@@ -0,0 +1,69 @@
-+/*
-+ * include/linux/platform_data/pwm_omap_dmtimer.h
-+ *
-+ * OMAP Dual-Mode Timer PWM platform data
-+ *
-+ * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
-+ * Tarun Kanti DebBarma <tarun.kanti@ti.com>
-+ * Thara Gopinath <thara@ti.com>
-+ *
-+ * Platform device conversion and hwmod support.
-+ *
-+ * Copyright (C) 2005 Nokia Corporation
-+ * Author: Lauri Leukkunen <lauri.leukkunen@nokia.com>
-+ * PWM and clock framework support by Timo Teras.
-+ *
-+ * 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.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
-+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
-+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ * You should have received a copy of the  GNU General Public License along
-+ * with this program; if not, write  to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#ifndef __PWM_OMAP_DMTIMER_PDATA_H
-+#define __PWM_OMAP_DMTIMER_PDATA_H
-+
-+/* trigger types */
-+#define PWM_OMAP_DMTIMER_TRIGGER_NONE			0x00
-+#define PWM_OMAP_DMTIMER_TRIGGER_OVERFLOW		0x01
-+#define PWM_OMAP_DMTIMER_TRIGGER_OVERFLOW_AND_COMPARE	0x02
-+
-+struct omap_dm_timer;
-+typedef struct omap_dm_timer pwm_omap_dmtimer;
-+
-+struct pwm_omap_dmtimer_pdata {
-+	pwm_omap_dmtimer *(*request_by_node)(struct device_node *np);
-+	int	(*free)(pwm_omap_dmtimer *timer);
-+
-+	void	(*enable)(pwm_omap_dmtimer *timer);
-+	void	(*disable)(pwm_omap_dmtimer *timer);
-+
-+	struct clk *(*get_fclk)(pwm_omap_dmtimer *timer);
-+
-+	int	(*start)(pwm_omap_dmtimer *timer);
-+	int	(*stop)(pwm_omap_dmtimer *timer);
-+
-+	int	(*set_load)(pwm_omap_dmtimer *timer, int autoreload,
-+			unsigned int value);
-+	int	(*set_match)(pwm_omap_dmtimer *timer, int enable,
-+			unsigned int match);
-+	int	(*set_pwm)(pwm_omap_dmtimer *timer, int def_on,
-+			int toggle, int trigger);
-+	int	(*set_prescaler)(pwm_omap_dmtimer *timer, int prescaler);
-+
-+	int	(*write_counter)(pwm_omap_dmtimer *timer, unsigned int value);
-+};
-+
-+#endif /* __PWM_OMAP_DMTIMER_PDATA_H */

+ 0 - 114
board/GfA/Display001/linux/linux-013-omap-dmtimer-quirks.patch

@@ -1,114 +0,0 @@
-diff -Naur a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
---- a/arch/arm/mach-omap2/board-generic.c	2014-02-07 00:05:20.000000000 +0100
-+++ b/arch/arm/mach-omap2/board-generic.c	2016-11-16 23:18:42.813852792 +0100
-@@ -38,7 +38,8 @@
- {
- 	omap_sdrc_init(NULL, NULL);
- 
--	of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
-+	pdata_quirks_init(omap_dt_match_table);
-+	//of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
- 
- 	omapdss_init_of();
- }
-diff -Naur a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
---- a/arch/arm/mach-omap2/common.h	2014-02-07 00:05:20.000000000 +0100
-+++ b/arch/arm/mach-omap2/common.h	2016-11-16 23:21:11.115162076 +0100
-@@ -321,6 +321,7 @@
- 
- #endif
- 
-+void pdata_quirks_init(const struct of_device_id *);
- struct omap_sdrc_params;
- extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
- 				      struct omap_sdrc_params *sdrc_cs1);
-diff -Naur a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
---- a/arch/arm/mach-omap2/Makefile	2014-02-07 00:05:20.000000000 +0100
-+++ b/arch/arm/mach-omap2/Makefile	2016-11-16 22:30:30.400328507 +0100
-@@ -238,7 +238,7 @@
- obj-$(CONFIG_SOC_OMAP2420)		+= msdi.o
- 
- # Specific board support
--obj-$(CONFIG_MACH_OMAP_GENERIC)		+= board-generic.o
-+obj-$(CONFIG_MACH_OMAP_GENERIC)		+= board-generic.o pdata-quirks.o
- obj-$(CONFIG_MACH_OMAP_H4)		+= board-h4.o
- obj-$(CONFIG_MACH_OMAP_2430SDP)		+= board-2430sdp.o
- obj-$(CONFIG_MACH_OMAP3_BEAGLE)		+= board-omap3beagle.o
-diff -Naur a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
---- a/arch/arm/mach-omap2/pdata-quirks.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/arch/arm/mach-omap2/pdata-quirks.c	2016-11-16 23:06:44.195509881 +0100
-@@ -0,0 +1,74 @@
-+/*
-+ * Legacy platform_data quirks
-+ *
-+ * Copyright (C) 2013 Texas Instruments
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+#include <linux/clk.h>
-+#include <linux/davinci_emac.h>
-+#include <linux/gpio.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/of_platform.h>
-+#include <linux/ti_wilink_st.h>
-+#include <linux/wl12xx.h>
-+#include <linux/mmc/card.h>
-+#include <linux/mmc/host.h>
-+#include <linux/regulator/machine.h>
-+#include <linux/regulator/fixed.h>
-+
-+#include <linux/platform_data/iommu-omap.h>
-+#include <linux/platform_data/pwm_omap_dmtimer.h>
-+#include <plat/dmtimer.h>
-+
-+#include "common.h"
-+#include "common-board-devices.h"
-+#include "control.h"
-+#include "omap_device.h"
-+#include "omap-secure.h"
-+#include "soc.h"
-+#include "hsmmc.h"
-+
-+
-+struct pdata_init {
-+	const char *compatible;
-+	void (*fn)(void);
-+};
-+
-+static struct of_dev_auxdata omap_auxdata_lookup[];
-+
-+/* Dual mode timer PWM callbacks platdata */
-+#if IS_ENABLED(CONFIG_OMAP_DM_TIMER)
-+struct pwm_omap_dmtimer_pdata pwm_dmtimer_pdata = {
-+	.request_by_node = omap_dm_timer_request_by_node,
-+	.free = omap_dm_timer_free,
-+	.enable = omap_dm_timer_enable,
-+	.disable = omap_dm_timer_disable,
-+	.get_fclk = omap_dm_timer_get_fclk,
-+	.start = omap_dm_timer_start,
-+	.stop = omap_dm_timer_stop,
-+	.set_load = omap_dm_timer_set_load,
-+	.set_match = omap_dm_timer_set_match,
-+	.set_pwm = omap_dm_timer_set_pwm,
-+	.set_prescaler = omap_dm_timer_set_prescaler,
-+	.write_counter = omap_dm_timer_write_counter,
-+};
-+#endif
-+
-+static struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
-+#if IS_ENABLED(CONFIG_OMAP_DM_TIMER)
-+	OF_DEV_AUXDATA("ti,omap-dmtimer-pwm", 0, NULL, &pwm_dmtimer_pdata),
-+#endif
-+	{ /* sentinel */ },
-+};
-+
-+void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table)
-+{
-+
-+        of_platform_populate(NULL, omap_dt_match_table,
-+                             omap_auxdata_lookup, NULL);
-+}
-+

+ 0 - 1
board/GfA/Display001/linux_4.4.104_rt21

@@ -1 +0,0 @@
-linux_4.4.94_rt19/

+ 0 - 2967
board/GfA/Display001/linux_4.4.145_bone23/linux-001-Bootlogo-GfA.patch

@@ -1,2967 +0,0 @@
-diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
-index 6e92917..1302223 100644
---- a/drivers/video/console/fbcon.c
-+++ b/drivers/video/console/fbcon.c
-@@ -580,6 +580,7 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info,
- 	if (fb_get_color_depth(&info->var, &info->fix) == 1)
- 		erase &= ~0x400;
- 	logo_height = fb_prepare_logo(info, ops->rotate);
-+	logo_height += 5;
- 	logo_lines = DIV_ROUND_UP(logo_height, vc->vc_font.height);
- 	q = (unsigned short *) (vc->vc_origin +
- 				vc->vc_size_row * rows);
-diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
-index 0705d88..6a60d1ef 100644
---- a/drivers/video/fbdev/core/fbmem.c
-+++ b/drivers/video/fbdev/core/fbmem.c
-@@ -498,8 +498,8 @@ static int fb_show_logo_line(struct fb_info *info, int rotate,
- 		fb_set_logo(info, logo, logo_new, fb_logo.depth);
- 	}
- 
--	image.dx = 0;
--	image.dy = y;
-+	image.dx = 0 + 5;
-+	image.dy = y + 5;
- 	image.width = logo->width;
- 	image.height = logo->height;
- 
-diff --git a/drivers/video/logo/Kconfig b/drivers/video/logo/Kconfig
-index 0037104..fa2c4b9 100644
---- a/drivers/video/logo/Kconfig
-+++ b/drivers/video/logo/Kconfig
-@@ -15,6 +15,10 @@ config FB_LOGO_EXTRA
- 	depends on FB=y
- 	default y if SPU_BASE
- 
-+config FB_LOGO_CUSTOM
-+	bool "Custom Linux Logo"
-+	default n
-+
- config LOGO_LINUX_MONO
- 	bool "Standard black and white Linux logo"
- 	default y
-diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile
-index 3b43781..e31313d 100644
---- a/drivers/video/logo/Makefile
-+++ b/drivers/video/logo/Makefile
-@@ -15,6 +15,7 @@ obj-$(CONFIG_LOGO_SUPERH_MONO)		+= logo_superh_mono.o
- obj-$(CONFIG_LOGO_SUPERH_VGA16)		+= logo_superh_vga16.o
- obj-$(CONFIG_LOGO_SUPERH_CLUT224)	+= logo_superh_clut224.o
- obj-$(CONFIG_LOGO_M32R_CLUT224)		+= logo_m32r_clut224.o
-+obj-$(CONFIG_FB_LOGO_CUSTOM)		+= logo_custom_clut224.o
- 
- obj-$(CONFIG_SPU_BASE)			+= logo_spe_clut224.o
- 
-diff --git a/drivers/video/logo/logo.c b/drivers/video/logo/logo.c
-index 10fbfd8..2c8dfc6 100644
---- a/drivers/video/logo/logo.c
-+++ b/drivers/video/logo/logo.c
-@@ -42,6 +42,8 @@ late_initcall(fb_logo_late_init);
-  */
- const struct linux_logo * __init_refok fb_find_logo(int depth)
- {
-+	extern const struct linux_logo logo_custom_clut224;
-+	
- 	const struct linux_logo *logo = NULL;
- 
- 	if (nologo || logos_freed)
-@@ -111,6 +113,10 @@ const struct linux_logo * __init_refok fb_find_logo(int depth)
- 		/* M32R Linux logo */
- 		logo = &logo_m32r_clut224;
- #endif
-+#ifdef CONFIG_FB_LOGO_CUSTOM
-+		/* Custom Linux logo */
-+		logo = &logo_custom_clut224;
-+#endif
- 	}
- 	return logo;
- }
-diff --git a/drivers/video/logo/logo_custom_clut224.ppm b/drivers/video/logo/logo_custom_clut224.ppm
-new file mode 100644
-index 0000000..f46e5de
---- /dev/null
-+++ b/drivers/video/logo/logo_custom_clut224.ppm
-@@ -0,0 +1,2883 @@
-+P3
-+179 96
-+255
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  24 24 24  39 39 39
-+57 57 57  72 72 72  87 87 87  87 87 87  87 87 87  87 87 87
-+87 87 87  87 87 87  87 87 87  72 72 72  72 72 72  57 57 57
-+39 39 39  24 24 24  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 72 72
-+0 88 88  0 103 103  0 122 122  0 128 128  0 128 128  0 122 122
-+0 103 103  0 103 103  0 72 72  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+39 39 39  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  39 39 39
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 55 55  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 103 103
-+0 40 40  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 72 72
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 55 55  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 40 40  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 103 103  0 40 40  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 72 72  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 88 88  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 103 103  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 103 103  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  57 57 57  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+72 72 72  0 0 0  0 0 0  0 0 0  0 0 0  0 103 103
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 103 103  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 88 88  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 55 55  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 55 55  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 21 21  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  57 57 57  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 103 103
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+72 72 72  57 57 57  39 39 39  39 39 39  39 39 39  24 24 24
-+39 39 39  39 39 39  39 39 39  39 39 39  57 57 57  72 72 72
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 88 88  0 55 55  0 21 21  0 21 21  0 21 21  0 40 40
-+0 55 55  0 88 88  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  57 57 57  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  57 57 57  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 72 72  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 72 72  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 88 88  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 55 55
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  57 57 57
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 40 40
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 88 88  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  72 72 72  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 21 21  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 55 55
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 103 103  0 0 0  0 0 0
-+0 0 0  0 0 0  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  57 57 57
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 55 55  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 55 55  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 21 21  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 88 88  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 88 88  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 88 88  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 40 40  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  57 57 57  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 55 55  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 103 103
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 72 72  0 0 0  0 0 0  0 0 0  0 21 21
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  57 57 57  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 128 128  0 128 128  0 122 122
-+0 103 103  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 40 40  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 55 55  0 128 128  0 122 122
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 88 88  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 72 72  0 21 21
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 72 72
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 103 103  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 40 40  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 122 122  0 122 122  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 21 21  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 40 40  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 103 103  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 55 55  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 72 72  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 88 88
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+72 72 72  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 40 40  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 21 21  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 103 103  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 55 55  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  57 57 57  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 88 88
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 88 88  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  72 72 72
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 103 103  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 21 21  0 122 122  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 122 122  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 40 40  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  72 72 72  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 72 72  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 40 40  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 103 103
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 55 55  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  57 57 57
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 72 72  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 88 88  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  57 57 57  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 55 55  0 122 122  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 103 103  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 55 55
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 88 88  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 55 55  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 103 103  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 21 21  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 21 21  0 103 103
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 40 40  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 72 72  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 103 103  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 40 40  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 40 40
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 122 122  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 55 55  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  57 57 57  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 72 72  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 55 55
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 21 21  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 88 88  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  57 57 57  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 21 21  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 55 55  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 40 40  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 103 103  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 72 72
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 40 40  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  57 57 57  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 21 21  0 122 122  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 103 103  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 55 55  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 88 88  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 88 88
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  72 72 72  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 55 55  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 21 21  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  39 39 39  39 39 39  39 39 39  39 39 39  39 39 39
-+39 39 39  39 39 39  39 39 39  39 39 39  39 39 39  39 39 39
-+39 39 39  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 103 103  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 55 55  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  57 57 57
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 88 88
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  72 72 72
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 128 128  0 103 103  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 40 40  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 122 122  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 122 122  0 122 122  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 40 40  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 103 103  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  57 57 57  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 72 72  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 103 103  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  36 120 120  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  61 115 115  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 55 55  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  57 57 57  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  57 57 57
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 109 109  24 123 123
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 88 88  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  57 57 57  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 109 109  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 103 103  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  72 72 72
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  69 113 113  0 128 128  0 128 128  0 122 122
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 109 109  38 67 67
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  39 39 39  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  39 39 39  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+57 57 57  39 39 39  24 24 24  24 24 24  24 24 24  24 24 24
-+0 0 0  24 24 24  24 24 24  39 39 39  39 39 39  57 57 57
-+87 87 87  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 123 123
-+87 109 109  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  69 113 113  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 72 72  0 128 128  0 128 128
-+0 128 128  0 128 128  36 120 120  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  57 57 57  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 40 40  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  69 113 113  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  36 120 120
-+87 109 109  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  36 120 120  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  57 57 57  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 88 88  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  43 92 92  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 55 55
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 103 103  0 0 0  0 0 0  39 39 39
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 40 40  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  39 39 39  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 122 122  0 55 55  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+72 72 72  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 103 103  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 72 72  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  24 24 24  39 39 39  57 57 57
-+72 72 72  87 87 87  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  87 87 87  72 72 72
-+72 72 72  39 39 39  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72

+ 0 - 17
board/GfA/Display001/linux_4.4.145_bone23/linux-002-disa_pru_no_cild_msg.patch

@@ -1,17 +0,0 @@
-diff --git a/drivers/uio/uio_pruss.c b/drivers/uio/uio_pruss.c
-index 6559752..9e263b5 100644
---- a/drivers/uio/uio_pruss.c
-+++ b/drivers/uio/uio_pruss.c
-@@ -195,10 +195,10 @@ static int pruss_probe(struct platform_device *pdev)
- 			"pins are not configured from the driver\n");
- 	else{
- 		count = of_get_child_count(pdev->dev.of_node);
--		if (!count){
-+/*		if (!count){
- 			dev_info(&pdev->dev, "No children\n");
- 			return -ENODEV;
--		}
-+		}*/
- 		// Run through all children. They have lables for easy reference.
- 		for_each_child_of_node(pdev->dev.of_node, child){
- 			enum of_gpio_flags flags;

+ 0 - 1015
board/GfA/Display001/linux_4.4.145_bone23/linux-004-egalax_i2c_touchcontroller.patch

@@ -1,1015 +0,0 @@
-From a12a55f6571c5992f5a88e8bbbaabf442c0be88c Mon Sep 17 00:00:00 2001
-From: Reinhard Russinger <reinhard@russinger.at>
-Date: Wed, 3 May 2017 08:25:31 +0200
-Subject: [PATCH 1/1] add egalax i2c touchcontroller driver
-
----
- drivers/input/touchscreen/Kconfig      |  10 +
- drivers/input/touchscreen/Makefile     |   1 +
- drivers/input/touchscreen/egalax_i2c.c | 961 +++++++++++++++++++++++++++++++++
- 3 files changed, 972 insertions(+)
- create mode 100644 drivers/input/touchscreen/egalax_i2c.c
-
-diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
-index 2fb1f43..01f4776 100644
---- a/drivers/input/touchscreen/Kconfig
-+++ b/drivers/input/touchscreen/Kconfig
-@@ -318,6 +318,16 @@ config TOUCHSCREEN_FT6236
- 	  To compile this driver as a module, choose M here: the
- 	  module will be called ft6236.
- 
-+config TOUCHSCREEN_EGALAX_I2C
-+	tristate "EETI eGalax (egalax_i2c) multi-touch panel support for i2C"
-+	depends on I2C && OF
-+	help
-+	  Say Y here to enable support for I2C connected EETI
-+	  eGalax multi-touch panels.
-+
-+	  To compile this driver as a module, choose M here: the
-+	  module will be called egalax_i2c.
-+
- config TOUCHSCREEN_FUJITSU
- 	tristate "Fujitsu serial touchscreen"
- 	select SERIO
-diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
-index b4373d6..67ed603 100644
---- a/drivers/input/touchscreen/Makefile
-+++ b/drivers/input/touchscreen/Makefile
-@@ -34,6 +34,7 @@ obj-$(CONFIG_TOUCHSCREEN_GUNZE)		+= gunze.o
- obj-$(CONFIG_TOUCHSCREEN_EETI)		+= eeti_ts.o
- obj-$(CONFIG_TOUCHSCREEN_ELAN)		+= elants_i2c.o
- obj-$(CONFIG_TOUCHSCREEN_ELO)		+= elo.o
-+obj-$(CONFIG_TOUCHSCREEN_EGALAX_I2C)	+= egalax_i2c.o
- obj-$(CONFIG_TOUCHSCREEN_EGALAX)	+= egalax_ts.o
- obj-$(CONFIG_TOUCHSCREEN_EGALAX_SERIAL)	+= egalax_ts_serial.o
- obj-$(CONFIG_TOUCHSCREEN_FT6236)	+= ft6236.o
-diff --git a/drivers/input/touchscreen/egalax_i2c.c b/drivers/input/touchscreen/egalax_i2c.c
-new file mode 100644
-index 0000000..9ee5566
---- /dev/null
-+++ b/drivers/input/touchscreen/egalax_i2c.c
-@@ -0,0 +1,961 @@
-+/*
-+ *
-+ * Touch Screen I2C Driver for EETI Controller
-+ *
-+ * Copyright (C) 2000-2015  eGalax_eMPIA Technology Inc.
-+ * All Rights Reserved.
-+ *
-+ * 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.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ */
-+
-+#define RELEASE_DATE "2015/04/23"
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/interrupt.h>
-+#include <linux/wait.h>
-+#include <linux/delay.h>
-+#include <linux/i2c.h>
-+#include <linux/gpio.h>
-+#include <linux/device.h>
-+#include <asm/uaccess.h>
-+#include <linux/kfifo.h>
-+#include <linux/version.h>
-+#include <linux/input.h>
-+#include <linux/irq.h>
-+#include <linux/timer.h>
-+#include <linux/proc_fs.h>
-+#include <linux/seq_file.h>
-+#include <linux/miscdevice.h>
-+#include <linux/slab.h>
-+#include <linux/poll.h>
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
-+#include <linux/input/mt.h>
-+#endif
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+#include <linux/of_gpio.h>
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)
-+	#define __devinit 
-+	#define __devexit 
-+	#define __devexit_p(x) x
-+#endif
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+	#include <linux/earlysuspend.h>
-+	static struct early_suspend egalax_early_suspend;
-+#endif
-+
-+// Global define to enable function
-+//#define _SWITCH_XY
-+//#define _CONVERT_Y
-+
-+#define MAX_EVENTS		600
-+#define MAX_I2C_LEN		64
-+#define FIFO_SIZE		8192 //(PAGE_SIZE*2)
-+#define MAX_SUPPORT_POINT	16
-+#define REPORTID_MOUSE		0x01
-+#define REPORTID_VENDOR		0x03
-+#define REPORTID_MTOUCH		0x06//0x04
-+#define MAX_RESOLUTION		4095
-+
-+// running mode
-+#define MODE_STOP	0
-+#define MODE_WORKING	1
-+#define MODE_IDLE	2
-+#define MODE_SUSPEND	3
-+
-+struct tagMTContacts {
-+	unsigned char ID;
-+	signed char Status;
-+	unsigned short X;
-+	unsigned short Y;
-+};
-+
-+struct _egalax_i2c {
-+	struct workqueue_struct *ktouch_wq;
-+	struct work_struct work_irq;
-+	struct delayed_work delay_work_ioctl;
-+	struct mutex mutex_wq;
-+	struct i2c_client *client;
-+	unsigned char work_state;
-+	unsigned char skip_packet;
-+	unsigned int ioctl_cmd;
-+	int interrupt_gpio;
-+};
-+
-+struct egalax_char_dev
-+{
-+	int OpenCnts;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	struct kfifo* pDataKFiFo;
-+#else
-+	struct kfifo DataKFiFo;
-+#endif
-+	unsigned char *pFiFoBuf;
-+	spinlock_t FiFoLock;
-+	struct semaphore sem;
-+	wait_queue_head_t fifo_inq;
-+};
-+
-+static struct _egalax_i2c *p_egalax_i2c_dev = NULL;	// allocated in egalax_i2c_probe
-+static struct egalax_char_dev *p_char_dev = NULL;	// allocated in init_module
-+static atomic_t egalax_char_available = ATOMIC_INIT(1);
-+static atomic_t wait_command_ack = ATOMIC_INIT(0);
-+static struct input_dev *input_dev = NULL;
-+static struct tagMTContacts pContactBuf[MAX_SUPPORT_POINT];
-+static unsigned char input_report_buf[MAX_I2C_LEN+2];
-+
-+#define DBG_MODULE	0x00000001
-+#define DBG_CDEV	0x00000002
-+#define DBG_PROC	0x00000004
-+#define DBG_POINT	0x00000008
-+#define DBG_INT		0x00000010
-+#define DBG_I2C		0x00000020
-+#define DBG_SUSP	0x00000040
-+#define DBG_INPUT	0x00000080
-+#define DBG_CONST	0x00000100
-+#define DBG_IDLE	0x00000200
-+#define DBG_WAKEUP	0x00000400
-+#define DBG_BUTTON	0x00000800
-+static unsigned int DbgLevel = DBG_MODULE|DBG_SUSP;
-+
-+#define PROC_FS_NAME	"egalax_dbg"
-+#define PROC_FS_MAX_LEN	8
-+static struct proc_dir_entry *dbgProcFile;
-+
-+#define EGALAX_DBG(level, fmt, args...)  do{ if( (level&DbgLevel)>0 ) \
-+					printk( KERN_DEBUG "[egalax_i2c]: " fmt, ## args); }while(0)
-+
-+static int egalax_I2C_read(unsigned char *pBuf, unsigned short len)
-+{
-+	struct i2c_msg xfer;
-+	unsigned char cmdbuf[2]={0x27, 0x00};
-+
-+	if(pBuf==NULL)
-+		return -1;
-+
-+	// Write register first
-+	xfer.addr = p_egalax_i2c_dev->client->addr;
-+	xfer.flags = 0;
-+	xfer.len = 2;
-+	xfer.buf = cmdbuf;
-+	i2c_transfer(p_egalax_i2c_dev->client->adapter, &xfer, 1);
-+
-+	// Read device data
-+	xfer.addr = p_egalax_i2c_dev->client->addr;
-+	xfer.flags = I2C_M_RD;
-+	xfer.len = len;
-+	xfer.buf = pBuf;
-+
-+	if(i2c_transfer(p_egalax_i2c_dev->client->adapter, &xfer, 1) != 1) 
-+	{
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer fail\n", __func__);
-+		return -EIO;
-+	}
-+	else
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer success\n", __func__);
-+
-+	return 0;
-+}
-+
-+static int egalax_I2C_write(unsigned short reg, unsigned char *pBuf, unsigned short len)
-+{
-+	unsigned char cmdbuf[4+len];
-+	struct i2c_msg xfer;
-+
-+	if(pBuf==NULL)
-+		return -1;
-+
-+	cmdbuf[0] = reg & 0x00FF;
-+	cmdbuf[1] = (reg >> 8) & 0x00FF;
-+	cmdbuf[2] = (len+2) & 0x00FF;
-+	cmdbuf[3] = ((len+2) >> 8) & 0x00FF;
-+	memcpy(cmdbuf+4, pBuf, len);
-+
-+	// Write data to device
-+	xfer.addr = p_egalax_i2c_dev->client->addr;
-+	xfer.flags = 0;
-+	xfer.len = sizeof(cmdbuf);
-+	xfer.buf = cmdbuf;
-+
-+	if(i2c_transfer(p_egalax_i2c_dev->client->adapter, &xfer, 1) != 1) 
-+	{
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer fail\n", __func__);
-+		return -EIO;
-+	}
-+	else
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer success\n", __func__);
-+
-+	return 0;
-+}
-+
-+static int egalax_cdev_open(struct inode *inode, struct file *filp)
-+{
-+	if( !atomic_dec_and_test(&egalax_char_available) )
-+	{
-+		atomic_inc(&egalax_char_available);
-+		return -EBUSY; // already open
-+	}
-+
-+	p_char_dev->OpenCnts++;
-+	filp->private_data = p_char_dev;// Used by the read and write metheds
-+
-+	EGALAX_DBG(DBG_CDEV, " CDev open done!\n");
-+	try_module_get(THIS_MODULE);
-+	return 0;
-+}
-+
-+static int egalax_cdev_release(struct inode *inode, struct file *filp)
-+{
-+	struct egalax_char_dev *cdev = filp->private_data;
-+
-+	atomic_inc(&egalax_char_available); // release the device
-+
-+	cdev->OpenCnts--;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	kfifo_reset( cdev->pDataKFiFo );
-+#else
-+	kfifo_reset( &cdev->DataKFiFo );
-+#endif
-+
-+	EGALAX_DBG(DBG_CDEV, " CDev release done!\n");
-+	module_put(THIS_MODULE);
-+	return 0;
-+}
-+
-+static char fifo_read_buf[MAX_I2C_LEN];
-+static ssize_t egalax_cdev_read(struct file *file, char __user *buf, size_t count, loff_t *offset)
-+{
-+	int read_cnt, ret, fifoLen;
-+	struct egalax_char_dev *cdev = file->private_data;
-+	
-+	if( down_interruptible(&cdev->sem) )
-+		return -ERESTARTSYS;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	fifoLen = kfifo_len(cdev->pDataKFiFo);
-+#else
-+	fifoLen = kfifo_len(&cdev->DataKFiFo);
-+#endif
-+
-+	while( fifoLen<1 ) // nothing to read
-+	{
-+		up(&cdev->sem); // release the lock
-+		if( file->f_flags & O_NONBLOCK )
-+			return -EAGAIN;
-+
-+	#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+		if( wait_event_interruptible(cdev->fifo_inq, kfifo_len( cdev->pDataKFiFo )>0) )
-+	#else
-+		if( wait_event_interruptible(cdev->fifo_inq, kfifo_len( &cdev->DataKFiFo )>0) )
-+	#endif
-+		{
-+			return -ERESTARTSYS; // signal: tell the fs layer to handle it
-+		}
-+
-+		if( down_interruptible(&cdev->sem) )
-+			return -ERESTARTSYS;
-+	}
-+
-+	if(count > MAX_I2C_LEN)
-+		count = MAX_I2C_LEN;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	read_cnt = kfifo_get(cdev->pDataKFiFo, fifo_read_buf, count);
-+#else
-+	read_cnt = kfifo_out_locked(&cdev->DataKFiFo, fifo_read_buf, count, &cdev->FiFoLock);
-+#endif
-+	EGALAX_DBG(DBG_CDEV, " \"%s\" reading fifo data count=%d\n", current->comm, read_cnt);
-+
-+	ret = copy_to_user(buf, fifo_read_buf, read_cnt)?-EFAULT:read_cnt;
-+
-+	up(&cdev->sem);
-+	
-+	return ret;
-+}
-+
-+static ssize_t egalax_cdev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset)
-+{
-+	struct egalax_char_dev *cdev = file->private_data;
-+	int ret=0;
-+	char *tmp;
-+
-+	if( down_interruptible(&cdev->sem) )
-+		return -ERESTARTSYS;
-+
-+	if (count > MAX_I2C_LEN)
-+		count = MAX_I2C_LEN;
-+
-+	tmp = kzalloc(MAX_I2C_LEN, GFP_KERNEL);
-+	if(tmp==NULL)
-+	{
-+		up(&cdev->sem);
-+		return -ENOMEM;
-+	}
-+
-+	if(copy_from_user(tmp, buf, count))
-+	{
-+		up(&cdev->sem);
-+		kfree(tmp);
-+		return -EFAULT;
-+	}
-+	
-+	ret = egalax_I2C_write(0x0067, tmp, MAX_I2C_LEN);
-+
-+	up(&cdev->sem);
-+	EGALAX_DBG(DBG_CDEV, " I2C writing %zu bytes.\n", count);
-+	kfree(tmp);
-+
-+	return (ret==0?count:-1);
-+}
-+
-+static unsigned int egalax_cdev_poll(struct file *filp, struct poll_table_struct *wait)
-+{
-+	struct egalax_char_dev *cdev = filp->private_data;
-+	unsigned int mask = 0;
-+	int fifoLen;
-+	
-+	down(&cdev->sem);
-+	poll_wait(filp, &cdev->fifo_inq,  wait);
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	fifoLen = kfifo_len(cdev->pDataKFiFo);
-+#else
-+	fifoLen = kfifo_len(&cdev->DataKFiFo);
-+#endif
-+
-+	if( fifoLen > 0 )
-+		mask |= POLLIN | POLLRDNORM;    /* readable */
-+	if( (FIFO_SIZE - fifoLen) > MAX_I2C_LEN )
-+		mask |= POLLOUT | POLLWRNORM;   /* writable */
-+
-+	up(&cdev->sem);
-+	return mask;
-+}
-+
-+static int egalax_proc_show(struct seq_file* seqfilp, void *v)
-+{
-+	seq_printf(seqfilp, "EETI I2C for All Points.\nDebug Level: 0x%08X\nRelease Date: %s\n", DbgLevel, RELEASE_DATE);
-+	return 0;
-+}
-+
-+static int egalax_proc_open(struct inode *inode, struct file *filp)
-+{
-+	EGALAX_DBG(DBG_PROC, " \"%s\" call proc_open\n", current->comm);
-+	return single_open(filp, egalax_proc_show, NULL);
-+}
-+
-+static ssize_t egalax_proc_write(struct file *file, const char __user *buf, size_t count, loff_t *offset)
-+{
-+	char procfs_buffer_size = 0; 
-+	unsigned char procfs_buf[PROC_FS_MAX_LEN+1] = {0};
-+
-+	EGALAX_DBG(DBG_PROC, " \"%s\" call proc_write\n", current->comm);
-+
-+	procfs_buffer_size = count;
-+	if(procfs_buffer_size > PROC_FS_MAX_LEN ) 
-+		procfs_buffer_size = PROC_FS_MAX_LEN+1;
-+	
-+	if( copy_from_user(procfs_buf, buf, procfs_buffer_size) ) 
-+	{
-+		EGALAX_DBG(DBG_PROC, " proc_write faied at copy_from_user\n");
-+		return -EFAULT;
-+	}
-+
-+	sscanf(procfs_buf, "%x", &DbgLevel);
-+	EGALAX_DBG(DBG_PROC, " Switch Debug Level to 0x%08X\n", DbgLevel);
-+
-+	return procfs_buffer_size;
-+}
-+
-+#define MAX_POINT_PER_PACKET	5
-+#define POINT_STRUCT_SIZE	10
-+static int TotalPtsCnt=0, RecvPtsCnt=0;
-+static void ProcessReport(unsigned char *buf, struct _egalax_i2c *p_egalax_i2c)
-+{
-+	unsigned char i, index=0, cnt_down=0, cnt_up=0, shift=0;
-+	unsigned char status=0;
-+	unsigned short contactID=0, x=0, y=0;
-+
-+	if(TotalPtsCnt<=0)
-+	{
-+		if(buf[1]==0 || buf[1]>MAX_SUPPORT_POINT)
-+		{
-+			EGALAX_DBG(DBG_POINT, " NumsofContacts mismatch, skip packet\n");
-+			return;
-+		}
-+
-+		TotalPtsCnt = buf[1];
-+		RecvPtsCnt = 0;
-+	}
-+	else if(buf[1]>0)
-+	{
-+		TotalPtsCnt = RecvPtsCnt = 0;
-+		EGALAX_DBG(DBG_POINT, " NumsofContacts mismatch, skip packet\n");
-+		return;
-+	}
-+
-+	while(index<MAX_POINT_PER_PACKET)
-+	{
-+		shift = index * POINT_STRUCT_SIZE + 2;
-+		status = buf[shift] & 0x01;
-+		contactID = buf[shift+1];
-+		x = ((buf[shift+3]<<8) + buf[shift+2]);
-+		y = ((buf[shift+5]<<8) + buf[shift+4]);
-+
-+		if( contactID>=MAX_SUPPORT_POINT )
-+		{
-+			TotalPtsCnt = RecvPtsCnt = 0;
-+			EGALAX_DBG(DBG_POINT, " Get error ContactID.\n");
-+			return;
-+		}
-+
-+		EGALAX_DBG(DBG_POINT, " Get Point[%d] Update: Status=%d X=%d Y=%d\n", contactID, status, x, y);
-+
-+	#ifdef _SWITCH_XY
-+		short tmp = x;
-+		x = y;
-+		y = tmp;
-+	#endif
-+	#ifdef _CONVERT_X
-+		x = MAX_RESOLUTION-x;
-+	#endif
-+
-+	#ifdef _CONVERT_Y
-+		y = MAX_RESOLUTION-y;
-+	#endif
-+
-+		pContactBuf[RecvPtsCnt].ID = contactID;
-+		pContactBuf[RecvPtsCnt].Status = status;
-+		pContactBuf[RecvPtsCnt].X = x;
-+		pContactBuf[RecvPtsCnt].Y = y;
-+
-+		RecvPtsCnt++;
-+		index++;
-+
-+		// Recv all points, send input report
-+		if(RecvPtsCnt==TotalPtsCnt)
-+		{
-+			for(i=0; i<RecvPtsCnt; i++)
-+			{
-+			#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0)
-+				input_mt_slot(input_dev, pContactBuf[i].ID);
-+				input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, pContactBuf[i].Status);
-+				if(pContactBuf[i].Status)
-+				{
-+					input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, pContactBuf[i].Status);
-+					input_report_abs(input_dev, ABS_MT_POSITION_X, pContactBuf[i].X);
-+					input_report_abs(input_dev, ABS_MT_POSITION_Y, pContactBuf[i].Y);
-+				}
-+			#else
-+				input_report_abs(input_dev, ABS_MT_TRACKING_ID, pContactBuf[i].ID);
-+				input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, pContactBuf[i].Status);
-+				input_report_abs(input_dev, ABS_MT_POSITION_X, pContactBuf[i].X);
-+				input_report_abs(input_dev, ABS_MT_POSITION_Y, pContactBuf[i].Y);
-+				input_report_abs(input_dev, ABS_MT_WIDTH_MAJOR, 0);
-+				input_mt_sync(input_dev);
-+			#endif
-+
-+				if(pContactBuf[i].Status)
-+					cnt_down++;
-+				else
-+					cnt_up++;
-+			}
-+		#ifndef CONFIG_HAS_EARLYSUSPEND //We use this config to distinguish Linux and Android
-+			#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
-+			input_mt_report_pointer_emulation(input_dev, true);
-+			#endif
-+		#endif
-+			input_sync(input_dev);
-+			EGALAX_DBG(DBG_POINT, " Input sync point data done! (Down:%d Up:%d)\n", cnt_down, cnt_up);
-+			
-+			TotalPtsCnt = RecvPtsCnt = 0;
-+			return;
-+		}
-+	}
-+}
-+
-+static struct input_dev * allocate_Input_Dev(void)
-+{
-+	int ret;
-+	struct input_dev *pInputDev=NULL;
-+
-+	pInputDev = input_allocate_device();
-+	if(pInputDev == NULL)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Failed to allocate input device\n");
-+		return NULL;//-ENOMEM;
-+	}
-+
-+	pInputDev->name = "eGalax_Touch_Screen";
-+	pInputDev->phys = "I2C";
-+	pInputDev->id.bustype = BUS_I2C;
-+	pInputDev->id.vendor = 0x0EEF;
-+	pInputDev->id.product = 0x0020;
-+	pInputDev->id.version = 0x0001;
-+	
-+	set_bit(EV_ABS, pInputDev->evbit);
-+#ifndef CONFIG_HAS_EARLYSUSPEND //We use this config to distinguish Linux and Android
-+	set_bit(EV_KEY, pInputDev->evbit);
-+	__set_bit(BTN_TOUCH, pInputDev->keybit);
-+	input_set_abs_params(pInputDev, ABS_X, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_Y, 0, MAX_RESOLUTION, 0, 0);
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0)
-+	__set_bit(INPUT_PROP_DIRECT, pInputDev->propbit);
-+	#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
-+		input_mt_init_slots(pInputDev, MAX_SUPPORT_POINT, 0);
-+	#else
-+		input_mt_init_slots(pInputDev, MAX_SUPPORT_POINT);
-+	#endif
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_X, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_Y, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0);
-+#else
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_X, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_Y, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_WIDTH_MAJOR, 0, MAX_RESOLUTION, 0, 0); //Size
-+	input_set_abs_params(pInputDev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); //Pressure
-+	input_set_abs_params(pInputDev, ABS_MT_TRACKING_ID, 0, MAX_SUPPORT_POINT, 0, 0);
-+#endif // #if LINUX_VERSION_CODE > KERNEL_VERSION(3,0,0)
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
-+	input_set_events_per_packet(pInputDev, MAX_EVENTS);
-+#endif
-+
-+	ret = input_register_device(pInputDev);
-+	if(ret) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Unable to register input device.\n");
-+		input_free_device(pInputDev);
-+		pInputDev = NULL;
-+	}
-+	
-+	return pInputDev;
-+}
-+
-+static int egalax_i2c_measure(struct _egalax_i2c *egalax_i2c)
-+{
-+	int ret=0, frameLen=0, loop=3, i;
-+
-+	EGALAX_DBG(DBG_INT, " egalax_i2c_measure\n");
-+
-+	if( egalax_I2C_read(input_report_buf, MAX_I2C_LEN+2) < 0)
-+	{
-+		EGALAX_DBG(DBG_I2C, " I2C read input report fail!\n");
-+		return -1;
-+	}
-+	
-+	if( DbgLevel&DBG_I2C )
-+	{
-+		char dbgmsg[(MAX_I2C_LEN+2)*4];
-+		for(i=0; i<MAX_I2C_LEN+2; i++)
-+			sprintf(dbgmsg+i*4, "[%02X]", input_report_buf[i]);
-+		EGALAX_DBG(DBG_I2C, " Buf=%s\n", dbgmsg);
-+	}
-+
-+	frameLen = input_report_buf[0] + (input_report_buf[1]<<8);
-+	EGALAX_DBG(DBG_I2C, " I2C read data with Len=%d\n", frameLen);
-+
-+	if(frameLen==0)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Device reset\n");
-+		return -1;
-+	}
-+
-+	switch(input_report_buf[2])
-+	{
-+		case REPORTID_MTOUCH:
-+			if( !egalax_i2c->skip_packet && egalax_i2c->work_state==MODE_WORKING )
-+				ProcessReport(input_report_buf+2, egalax_i2c);
-+			ret = 0;
-+			break;
-+		case REPORTID_VENDOR:
-+			atomic_set(&wait_command_ack, 1);
-+			EGALAX_DBG(DBG_I2C, " I2C get vendor command packet\n");
-+
-+			if( p_char_dev->OpenCnts>0 ) // If someone reading now! put the data into the buffer!
-+			{
-+				loop=3;
-+				do {
-+				#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+					ret = wait_event_timeout(p_char_dev->fifo_inq, (FIFO_SIZE-kfifo_len(p_char_dev->pDataKFiFo))>=MAX_I2C_LEN, HZ);
-+				#else
-+					ret = wait_event_timeout(p_char_dev->fifo_inq, kfifo_avail(&p_char_dev->DataKFiFo)>=MAX_I2C_LEN, HZ);
-+				#endif
-+				}while(ret<=0 && --loop);
-+
-+				if(ret>0) // fifo size is ready
-+				{
-+				#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+					ret = kfifo_put(p_char_dev->pDataKFiFo, input_report_buf+2, MAX_I2C_LEN);
-+				#else
-+					ret = kfifo_in_locked(&p_char_dev->DataKFiFo, input_report_buf+2, MAX_I2C_LEN, &p_char_dev->FiFoLock);
-+				#endif
-+
-+					wake_up_interruptible( &p_char_dev->fifo_inq );
-+				}
-+				else
-+					EGALAX_DBG(DBG_CDEV, " [Warning] Can't write data because fifo size is overflow.\n");
-+			}
-+
-+			break;
-+		default:
-+			EGALAX_DBG(DBG_I2C, " I2C read error data with hedaer=%d\n", input_report_buf[2]);
-+			ret = -1;
-+			break;
-+	}
-+
-+	return ret;
-+}
-+
-+static void egalax_i2c_wq_irq(struct work_struct *work)
-+{
-+	struct _egalax_i2c *egalax_i2c = container_of(work, struct _egalax_i2c, work_irq);
-+	struct i2c_client *client = egalax_i2c->client;
-+
-+	EGALAX_DBG(DBG_INT, " egalax_i2c_wq run\n");
-+
-+	/*continue recv data*/
-+	while( !gpio_get_value(egalax_i2c->interrupt_gpio) )
-+	{
-+		egalax_i2c_measure(egalax_i2c);
-+		schedule();
-+	}
-+		
-+	if( egalax_i2c->skip_packet > 0 )
-+		egalax_i2c->skip_packet = 0;
-+
-+	enable_irq(client->irq);
-+
-+	EGALAX_DBG(DBG_INT, " egalax_i2c_wq leave\n");
-+}
-+
-+static irqreturn_t egalax_i2c_interrupt(int irq, void *dev_id)
-+{
-+	struct _egalax_i2c *egalax_i2c = (struct _egalax_i2c *)dev_id;
-+
-+	EGALAX_DBG(DBG_INT, " INT with irq:%d\n", irq);
-+
-+	disable_irq_nosync(irq);
-+
-+	queue_work(egalax_i2c->ktouch_wq, &egalax_i2c->work_irq);
-+
-+	return IRQ_HANDLED;
-+}
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+static void egalax_i2c_early_suspend(struct early_suspend *handler)
-+{
-+	pm_message_t state;
-+	state.event = PM_EVENT_SUSPEND;
-+
-+	EGALAX_DBG(DBG_SUSP, " %s\n", __func__);
-+	egalax_i2c_pm_suspend(p_egalax_i2c_dev->client, state);
-+}
-+
-+static void egalax_i2c_early_resume(struct early_suspend *handler)
-+{
-+	EGALAX_DBG(DBG_SUSP, " %s\n", __func__);
-+	egalax_i2c_pm_resume(p_egalax_i2c_dev->client);
-+}
-+#endif // #ifdef CONFIG_HAS_EARLYSUSPEND
-+
-+static int __devinit egalax_i2c_probe(struct i2c_client *client, const struct i2c_device_id *idp)
-+{
-+	int ret;
-+	struct device_node *devnode;
-+	
-+	EGALAX_DBG(DBG_MODULE, " Start probe\n");
-+
-+	p_egalax_i2c_dev = (struct _egalax_i2c *)kzalloc(sizeof(struct _egalax_i2c), GFP_KERNEL);
-+	if (!p_egalax_i2c_dev) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Request memory failed\n");
-+		ret = -ENOMEM;
-+		goto fail1;
-+	}
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+	devnode = client->dev.of_node;
-+	if(devnode) //if use the device tree config
-+	{
-+		p_egalax_i2c_dev->interrupt_gpio = of_get_named_gpio(devnode, "int-gpios", 0);
-+	}
-+#else
-+	{
-+		p_egalax_i2c_dev->interrupt_gpio = irq_to_gpio(client->irq);
-+	}
-+#endif
-+
-+	if( !gpio_is_valid(p_egalax_i2c_dev->interrupt_gpio) )
-+	{
-+		ret = -ENODEV;
-+		goto fail1;
-+	}
-+	ret = gpio_request(p_egalax_i2c_dev->interrupt_gpio, "Touch IRQ");
-+	if(ret<0)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " gpio_request[%d] failed: %d\n", p_egalax_i2c_dev->interrupt_gpio, ret);
-+		if(ret!=-EBUSY)
-+			goto fail1;
-+	}
-+	gpio_direction_input(p_egalax_i2c_dev->interrupt_gpio);
-+
-+	input_dev = allocate_Input_Dev();
-+	if(input_dev==NULL)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " allocate_Input_Dev failed\n");
-+		ret = -EINVAL; 
-+		goto fail2;
-+	}
-+	EGALAX_DBG(DBG_MODULE, " Register input device done\n");
-+
-+	p_egalax_i2c_dev->client = client;
-+	mutex_init(&p_egalax_i2c_dev->mutex_wq);
-+
-+	p_egalax_i2c_dev->ktouch_wq = create_singlethread_workqueue("egalax_touch_wq");
-+	INIT_WORK(&p_egalax_i2c_dev->work_irq, egalax_i2c_wq_irq);
-+
-+	i2c_set_clientdata(client, p_egalax_i2c_dev);
-+
-+	if( gpio_get_value(p_egalax_i2c_dev->interrupt_gpio) )
-+		p_egalax_i2c_dev->skip_packet = 0;
-+	else
-+		p_egalax_i2c_dev->skip_packet = 1;
-+
-+	p_egalax_i2c_dev->work_state = MODE_WORKING;
-+
-+	ret = request_irq(client->irq, egalax_i2c_interrupt, IRQF_TRIGGER_LOW, client->name, p_egalax_i2c_dev);
-+	if( ret ) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Request irq(%d) failed\n", client->irq);
-+		goto fail3;
-+	}
-+	EGALAX_DBG(DBG_MODULE, " Request irq(%d) gpio(%d) with result:%d\n", client->irq, p_egalax_i2c_dev->interrupt_gpio, ret);
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+	egalax_early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN;
-+	egalax_early_suspend.suspend = egalax_i2c_early_suspend;
-+	egalax_early_suspend.resume = egalax_i2c_early_resume;
-+	register_early_suspend(&egalax_early_suspend);
-+	EGALAX_DBG(DBG_MODULE, " Register early_suspend done\n");
-+#endif
-+
-+	EGALAX_DBG(DBG_MODULE, " I2C probe done\n");
-+	return 0;
-+
-+fail3:
-+	i2c_set_clientdata(client, NULL);
-+	destroy_workqueue(p_egalax_i2c_dev->ktouch_wq); 
-+	free_irq(client->irq, p_egalax_i2c_dev);
-+	input_unregister_device(input_dev);
-+	input_dev = NULL;
-+fail2:
-+	gpio_free(p_egalax_i2c_dev->interrupt_gpio);
-+fail1:
-+	kfree(p_egalax_i2c_dev);
-+	p_egalax_i2c_dev = NULL;
-+
-+	EGALAX_DBG(DBG_MODULE, " I2C probe failed\n");
-+	return ret;
-+}
-+
-+static int __devexit egalax_i2c_remove(struct i2c_client *client)
-+{
-+	struct _egalax_i2c *egalax_i2c = i2c_get_clientdata(client);
-+
-+	egalax_i2c->work_state = MODE_STOP;
-+
-+	cancel_work_sync(&egalax_i2c->work_irq);
-+
-+	if(client->irq)
-+	{
-+		disable_irq(client->irq);
-+		free_irq(client->irq, egalax_i2c);
-+	}
-+
-+	gpio_free(egalax_i2c->interrupt_gpio);
-+	
-+	if(egalax_i2c->ktouch_wq) 
-+		destroy_workqueue(egalax_i2c->ktouch_wq); 
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+	unregister_early_suspend(&egalax_early_suspend);
-+#endif
-+
-+	if(input_dev)
-+	{
-+		EGALAX_DBG(DBG_MODULE,  " Unregister input device\n");
-+		input_unregister_device(input_dev);
-+		input_dev = NULL;
-+	}
-+
-+	i2c_set_clientdata(client, NULL);
-+	kfree(egalax_i2c);
-+	p_egalax_i2c_dev = NULL;
-+
-+	return 0;
-+}
-+
-+static const struct i2c_device_id egalax_i2c_idtable[] = { 
-+	{ "egalax_i2c", 0 }, 
-+	{ } 
-+};
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+static const struct of_device_id egalax_i2c_dt_ids[] = { 
-+	{ .compatible = "eeti,egalax_i2c" }, 
-+	{ } 
-+};
-+#endif
-+
-+MODULE_DEVICE_TABLE(i2c, egalax_i2c_idtable);
-+
-+static struct i2c_driver egalax_i2c_driver = {
-+	.driver = {
-+		.name 	= "egalax_i2c",
-+		.owner	= THIS_MODULE,
-+	#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+		.of_match_table = egalax_i2c_dt_ids,
-+	#endif
-+	},
-+	.id_table	= egalax_i2c_idtable,
-+	.probe		= egalax_i2c_probe,
-+	.remove		= __devexit_p(egalax_i2c_remove),
-+};
-+
-+static const struct file_operations egalax_cdev_fops = {
-+	.owner	= THIS_MODULE,
-+	.read	= egalax_cdev_read,
-+	.write	= egalax_cdev_write,
-+	.open	= egalax_cdev_open,
-+	.release= egalax_cdev_release,
-+	.poll	= egalax_cdev_poll,
-+};
-+
-+static const struct file_operations egalax_proc_fops = {
-+	.owner		= THIS_MODULE,
-+        .open           = egalax_proc_open,
-+        .read           = seq_read,
-+        .write          = egalax_proc_write,
-+        .llseek         = seq_lseek,
-+	.release	= single_release,
-+};
-+
-+static struct miscdevice egalax_misc_dev = {
-+	.minor = MISC_DYNAMIC_MINOR,
-+	.name = "egalax_i2c",
-+	.fops = &egalax_cdev_fops,
-+};
-+
-+static void egalax_i2c_ts_exit(void)
-+{
-+	if(p_char_dev)
-+	{
-+		if( p_char_dev->pFiFoBuf )
-+			kfree(p_char_dev->pFiFoBuf);
-+
-+		kfree(p_char_dev);
-+		p_char_dev = NULL;
-+	}
-+
-+	misc_deregister(&egalax_misc_dev);
-+
-+	i2c_del_driver(&egalax_i2c_driver);
-+
-+	remove_proc_entry(PROC_FS_NAME, NULL);
-+
-+	EGALAX_DBG(DBG_MODULE, " Exit driver done!\n");
-+}
-+
-+static struct egalax_char_dev* setup_chardev(void)
-+{
-+	struct egalax_char_dev *pCharDev;
-+
-+	pCharDev = kzalloc(1*sizeof(struct egalax_char_dev), GFP_KERNEL);
-+	if(!pCharDev) 
-+		goto fail_cdev;
-+
-+	spin_lock_init( &pCharDev->FiFoLock );
-+	pCharDev->pFiFoBuf = kzalloc(sizeof(unsigned char)*FIFO_SIZE, GFP_KERNEL);
-+	if(!pCharDev->pFiFoBuf)
-+		goto fail_fifobuf;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	pCharDev->pDataKFiFo = kfifo_init(pCharDev->pFiFoBuf, FIFO_SIZE, GFP_KERNEL, &pCharDev->FiFoLock);
-+	if( pCharDev->pDataKFiFo==NULL )
-+		goto fail_kfifo;
-+#else
-+	kfifo_init(&pCharDev->DataKFiFo, pCharDev->pFiFoBuf, FIFO_SIZE);
-+	if( !kfifo_initialized(&pCharDev->DataKFiFo) )
-+		goto fail_kfifo;
-+#endif
-+	
-+	pCharDev->OpenCnts = 0;
-+	sema_init(&pCharDev->sem, 1);
-+	init_waitqueue_head(&pCharDev->fifo_inq);
-+
-+	return pCharDev; 
-+
-+fail_kfifo:
-+	kfree(pCharDev->pFiFoBuf);
-+fail_fifobuf:
-+	kfree(pCharDev);
-+fail_cdev:
-+	return NULL;
-+}
-+
-+static int egalax_i2c_ts_init(void)
-+{
-+	int result;
-+
-+	result = misc_register(&egalax_misc_dev);
-+	if(result) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " misc device register failed\n");
-+		goto fail;
-+	}
-+
-+	p_char_dev = setup_chardev(); // allocate the character device
-+	if(!p_char_dev) 
-+	{
-+		result = -ENOMEM;
-+		goto fail;
-+	}
-+
-+	dbgProcFile = proc_create(PROC_FS_NAME, S_IRUGO|S_IWUGO, NULL, &egalax_proc_fops);
-+	if (dbgProcFile == NULL) 
-+	{
-+		remove_proc_entry(PROC_FS_NAME, NULL);
-+		EGALAX_DBG(DBG_MODULE, " Could not initialize /proc/%s\n", PROC_FS_NAME);
-+	}
-+
-+	EGALAX_DBG(DBG_MODULE, " Driver init done!\n");
-+	return i2c_add_driver(&egalax_i2c_driver);
-+
-+fail:	
-+	egalax_i2c_ts_exit();
-+	return result;
-+}
-+
-+module_init(egalax_i2c_ts_init);
-+module_exit(egalax_i2c_ts_exit);
-+
-+MODULE_AUTHOR("EETI <touch_fae@eeti.com>");
-+MODULE_DESCRIPTION("egalax all points controller i2c driver");
-+MODULE_LICENSE("GPL");
--- 
-1.9.1
-

+ 0 - 828
board/GfA/Display001/linux_4.4.145_bone23/linux-005-edt-ft5x06.patch

@@ -1,828 +0,0 @@
-commit ab28538ebe289c686cf357a6274c3f4a71969ca3
-Author: Reinhard Russinger <reinhard@russinger.at>
-Date:   Thu May 4 06:59:24 2017 +0200
-
-    changes edt-ft5x06 touchcontroller
-
-diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c
-index 703e295..e862958 100644
---- a/drivers/input/touchscreen/edt-ft5x06.c
-+++ b/drivers/input/touchscreen/edt-ft5x06.c
-@@ -27,7 +27,6 @@
- 
- #include <linux/module.h>
- #include <linux/ratelimit.h>
--#include <linux/irq.h>
- #include <linux/interrupt.h>
- #include <linux/input.h>
- #include <linux/i2c.h>
-@@ -35,10 +34,12 @@
- #include <linux/delay.h>
- #include <linux/debugfs.h>
- #include <linux/slab.h>
--#include <linux/gpio/consumer.h>
-+#include <linux/gpio.h>
-+#include <linux/of_gpio.h>
- #include <linux/input/mt.h>
--#include <linux/input/touchscreen.h>
--#include <linux/of_device.h>
-+#include <linux/input/edt-ft5x06.h>
-+
-+#define MAX_SUPPORT_POINTS		5
- 
- #define WORK_REGISTER_THRESHOLD		0x00
- #define WORK_REGISTER_REPORT_RATE	0x08
-@@ -53,6 +54,13 @@
- #define M09_REGISTER_NUM_X		0x94
- #define M09_REGISTER_NUM_Y		0x95
- 
-+#define M12_REGISTER_THRESHOLD		0x80
-+#define M12_REGISTER_GAIN		0x92
-+#define M12_REGISTER_OFFSET		0x93
-+#define M12_REGISTER_NUM_X		0x94
-+#define M12_REGISTER_NUM_Y		0x95
-+#define M12_REGISTER_REPORT_RATE	0x88
-+
- #define NO_REGISTER			0xff
- 
- #define WORK_REGISTER_OPMODE		0x3c
-@@ -72,6 +80,7 @@
- enum edt_ver {
- 	M06,
- 	M09,
-+	M12,
- };
- 
- struct edt_reg_addr {
-@@ -86,12 +95,12 @@ struct edt_reg_addr {
- struct edt_ft5x06_ts_data {
- 	struct i2c_client *client;
- 	struct input_dev *input;
--	struct touchscreen_properties prop;
- 	u16 num_x;
- 	u16 num_y;
- 
--	struct gpio_desc *reset_gpio;
--	struct gpio_desc *wake_gpio;
-+	int reset_pin;
-+	int irq_pin;
-+	int wake_pin;
- 
- #if defined(CONFIG_DEBUG_FS)
- 	struct dentry *debug_dir;
-@@ -105,18 +114,20 @@ struct edt_ft5x06_ts_data {
- 	int gain;
- 	int offset;
- 	int report_rate;
--	int max_support_points;
- 
-+	u32 invert_x;
-+	u32 invert_y;
-+	u32 swap_xy;
-+	
-+	u32 max_x;
-+	u32 max_y;
-+	
- 	char name[EDT_NAME_LEN];
- 
- 	struct edt_reg_addr reg_addr;
- 	enum edt_ver version;
- };
- 
--struct edt_i2c_chip_data {
--	int  max_support_points;
--};
--
- static int edt_ft5x06_ts_readwrite(struct i2c_client *client,
- 				   u16 wr_len, u8 *wr_buf,
- 				   u16 rd_len, u8 *rd_buf)
-@@ -173,9 +184,9 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 	struct edt_ft5x06_ts_data *tsdata = dev_id;
- 	struct device *dev = &tsdata->client->dev;
- 	u8 cmd;
--	u8 rdbuf[63];
-+	u8 rdbuf[29];
- 	int i, type, x, y, id;
--	int offset, tplen, datalen, crclen;
-+	int offset, tplen, datalen;
- 	int error;
- 
- 	switch (tsdata->version) {
-@@ -183,14 +194,15 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 		cmd = 0xf9; /* tell the controller to send touch data */
- 		offset = 5; /* where the actual touch data starts */
- 		tplen = 4;  /* data comes in so called frames */
--		crclen = 1; /* length of the crc data */
-+		datalen = 26; /* how much bytes to listen for */
- 		break;
--
-+		
-+	case M12:	
- 	case M09:
--		cmd = 0x0;
--		offset = 3;
-+		cmd = 0x02;
-+		offset = 1;
- 		tplen = 6;
--		crclen = 0;
-+		datalen = 29;
- 		break;
- 
- 	default:
-@@ -198,7 +210,6 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 	}
- 
- 	memset(rdbuf, 0, sizeof(rdbuf));
--	datalen = tplen * tsdata->max_support_points + offset + crclen;
- 
- 	error = edt_ft5x06_ts_readwrite(tsdata->client,
- 					sizeof(cmd), &cmd,
-@@ -209,8 +220,8 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 		goto out;
- 	}
- 
--	/* M09 does not send header or CRC */
--	if (tsdata->version == M06) {
-+	/* M09 M12 does not send header or CRC */
-+	if (tsdata->version == M06)  {
- 		if (rdbuf[0] != 0xaa || rdbuf[1] != 0xaa ||
- 			rdbuf[2] != datalen) {
- 			dev_err_ratelimited(dev,
-@@ -223,7 +234,7 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 			goto out;
- 	}
- 
--	for (i = 0; i < tsdata->max_support_points; i++) {
-+	for (i = 0; i < MAX_SUPPORT_POINTS; i++) {
- 		u8 *buf = &rdbuf[i * tplen + offset];
- 		bool down;
- 
-@@ -236,19 +247,32 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 		if (tsdata->version == M06 && type == TOUCH_EVENT_DOWN)
- 			continue;
- 
--		x = ((buf[0] << 8) | buf[1]) & 0x0fff;
--		y = ((buf[2] << 8) | buf[3]) & 0x0fff;
-+		if( tsdata->swap_xy) {
-+		  y = ((buf[0] << 8) | buf[1]) & 0x0fff;
-+		  x = ((buf[2] << 8) | buf[3]) & 0x0fff;
-+		  } else {
-+		  x = ((buf[0] << 8) | buf[1]) & 0x0fff;
-+		  y = ((buf[2] << 8) | buf[3]) & 0x0fff;
-+		  }
- 		id = (buf[2] >> 4) & 0x0f;
- 		down = type != TOUCH_EVENT_UP;
- 
-+		if(tsdata->invert_x) {
-+  		  x = tsdata->max_x - x; 
-+ 		  }
-+ 		  
-+		if(tsdata->invert_y) {
-+  		  y = tsdata->max_y - y; 
-+ 		  }
-+ 		  
- 		input_mt_slot(tsdata->input, id);
- 		input_mt_report_slot_state(tsdata->input, MT_TOOL_FINGER, down);
- 
- 		if (!down)
- 			continue;
- 
--		touchscreen_report_pos(tsdata->input, &tsdata->prop, x, y,
--				       true);
-+		input_report_abs(tsdata->input, ABS_MT_POSITION_X, x);
-+		input_report_abs(tsdata->input, ABS_MT_POSITION_Y, y);
- 	}
- 
- 	input_mt_report_pointer_emulation(tsdata->input, true);
-@@ -267,15 +291,17 @@ static int edt_ft5x06_register_write(struct edt_ft5x06_ts_data *tsdata,
- 	case M06:
- 		wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc;
- 		wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
-+		wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
- 		wrbuf[2] = value;
- 		wrbuf[3] = wrbuf[0] ^ wrbuf[1] ^ wrbuf[2];
--		return edt_ft5x06_ts_readwrite(tsdata->client, 4,
--					wrbuf, 0, NULL);
-+		return edt_ft5x06_ts_readwrite(tsdata->client, 4, wrbuf, 0, NULL);
-+		
-+	case M12:
- 	case M09:
- 		wrbuf[0] = addr;
- 		wrbuf[1] = value;
- 
--		return edt_ft5x06_ts_readwrite(tsdata->client, 2,
-+		return edt_ft5x06_ts_readwrite(tsdata->client, 3,
- 					wrbuf, 0, NULL);
- 
- 	default:
-@@ -309,6 +335,7 @@ static int edt_ft5x06_register_read(struct edt_ft5x06_ts_data *tsdata,
- 		}
- 		break;
- 
-+        case M12:
- 	case M09:
- 		wrbuf[0] = addr;
- 		error = edt_ft5x06_ts_readwrite(tsdata->client, 1,
-@@ -331,9 +358,10 @@ struct edt_ft5x06_attribute {
- 	u8 limit_high;
- 	u8 addr_m06;
- 	u8 addr_m09;
-+	u8 addr_m12;
- };
- 
--#define EDT_ATTR(_field, _mode, _addr_m06, _addr_m09,			\
-+#define EDT_ATTR(_field, _mode, _addr_m06, _addr_m09, _addr_m12,			\
- 		_limit_low, _limit_high)				\
- 	struct edt_ft5x06_attribute edt_ft5x06_attr_##_field = {	\
- 		.dattr = __ATTR(_field, _mode,				\
-@@ -342,6 +370,7 @@ struct edt_ft5x06_attribute {
- 		.field_offset = offsetof(struct edt_ft5x06_ts_data, _field), \
- 		.addr_m06 = _addr_m06,					\
- 		.addr_m09 = _addr_m09,					\
-+		.addr_m12 = _addr_m12,					\
- 		.limit_low = _limit_low,				\
- 		.limit_high = _limit_high,				\
- 	}
-@@ -372,6 +401,10 @@ static ssize_t edt_ft5x06_setting_show(struct device *dev,
- 		addr = attr->addr_m06;
- 		break;
- 
-+        case M12:
-+		addr = attr->addr_m12;
-+		break;
-+
- 	case M09:
- 		addr = attr->addr_m09;
- 		break;
-@@ -441,6 +474,10 @@ static ssize_t edt_ft5x06_setting_store(struct device *dev,
- 		addr = attr->addr_m06;
- 		break;
- 
-+        case M12:
-+		addr = attr->addr_m12;
-+		break;
-+
- 	case M09:
- 		addr = attr->addr_m09;
- 		break;
-@@ -467,13 +504,13 @@ out:
- }
- 
- static EDT_ATTR(gain, S_IWUSR | S_IRUGO, WORK_REGISTER_GAIN,
--		M09_REGISTER_GAIN, 0, 31);
-+		M09_REGISTER_GAIN, M12_REGISTER_GAIN, 0, 31);
- static EDT_ATTR(offset, S_IWUSR | S_IRUGO, WORK_REGISTER_OFFSET,
--		M09_REGISTER_OFFSET, 0, 31);
-+		M09_REGISTER_OFFSET, M12_REGISTER_OFFSET, 0, 31);
- static EDT_ATTR(threshold, S_IWUSR | S_IRUGO, WORK_REGISTER_THRESHOLD,
--		M09_REGISTER_THRESHOLD, 20, 80);
-+		M09_REGISTER_THRESHOLD, M12_REGISTER_THRESHOLD, 1, 255);
- static EDT_ATTR(report_rate, S_IWUSR | S_IRUGO, WORK_REGISTER_REPORT_RATE,
--		NO_REGISTER, 3, 14);
-+		NO_REGISTER, M12_REGISTER_REPORT_RATE, 3, 14);
- 
- static struct attribute *edt_ft5x06_attrs[] = {
- 	&edt_ft5x06_attr_gain.dattr.attr,
-@@ -508,7 +545,7 @@ static int edt_ft5x06_factory_mode(struct edt_ft5x06_ts_data *tsdata)
- 	}
- 
- 	/* mode register is 0x3c when in the work mode */
--	if (tsdata->version == M09)
-+	if ((tsdata->version == M09) || (tsdata->version == M12)) 
- 		goto m09_out;
- 
- 	error = edt_ft5x06_register_write(tsdata, WORK_REGISTER_OPMODE, 0x03);
-@@ -545,7 +582,7 @@ err_out:
- 	return error;
- 
- m09_out:
--	dev_err(&client->dev, "No factory mode support for M09\n");
-+	dev_err(&client->dev, "No factory mode support for M09 and M12\n");
- 	return -EINVAL;
- 
- }
-@@ -721,23 +758,46 @@ static void
- edt_ft5x06_ts_prepare_debugfs(struct edt_ft5x06_ts_data *tsdata,
- 			      const char *debugfs_name)
- {
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+
- 	tsdata->debug_dir = debugfs_create_dir(debugfs_name, NULL);
- 	if (!tsdata->debug_dir)
- 		return;
- 
- 	debugfs_create_u16("num_x", S_IRUSR, tsdata->debug_dir, &tsdata->num_x);
- 	debugfs_create_u16("num_y", S_IRUSR, tsdata->debug_dir, &tsdata->num_y);
-+	debugfs_create_u32("threshold", S_IRUSR, tsdata->debug_dir, &tsdata->threshold);
-+	debugfs_create_u32("gain", S_IRUSR, tsdata->debug_dir, &tsdata->gain);
-+	debugfs_create_u32("offset", S_IRUSR, tsdata->debug_dir, &tsdata->offset);
-+
- 
- 	debugfs_create_file("mode", S_IRUSR | S_IWUSR,
- 			    tsdata->debug_dir, tsdata, &debugfs_mode_fops);
- 	debugfs_create_file("raw_data", S_IRUSR,
- 			    tsdata->debug_dir, tsdata, &debugfs_raw_data_fops);
-+			    
-+	if (reg_addr->reg_report_rate != NO_REGISTER)
-+           debugfs_create_u32("report_rate", S_IRUSR, tsdata->debug_dir, &tsdata->report_rate);
-+           
-+	debugfs_create_u32("invert_x", S_IRUSR | S_IWUSR,
-+			    tsdata->debug_dir, &tsdata->invert_x);
-+	debugfs_create_u32("invert_y", S_IRUSR | S_IWUSR,
-+			    tsdata->debug_dir, &tsdata->invert_y);
-+	debugfs_create_u32("swap_xy", S_IRUSR,
-+			    tsdata->debug_dir, &tsdata->swap_xy);
-+	debugfs_create_u32("max_x", S_IRUSR,
-+			    tsdata->debug_dir, &tsdata->max_x);
-+	debugfs_create_u32("max_y", S_IRUSR,
-+			    tsdata->debug_dir, &tsdata->max_y);
-+
-+
- }
- 
- static void
- edt_ft5x06_ts_teardown_debugfs(struct edt_ft5x06_ts_data *tsdata)
- {
--	debugfs_remove_recursive(tsdata->debug_dir);
-+	if (tsdata->debug_dir)
-+		debugfs_remove_recursive(tsdata->debug_dir);
- 	kfree(tsdata->raw_buffer);
- }
- 
-@@ -756,6 +816,45 @@ edt_ft5x06_ts_teardown_debugfs(struct edt_ft5x06_ts_data *tsdata)
- 
- #endif /* CONFIG_DEBUGFS */
- 
-+static int edt_ft5x06_ts_reset(struct i2c_client *client,
-+			struct edt_ft5x06_ts_data *tsdata)
-+{
-+	int error;
-+
-+	if (gpio_is_valid(tsdata->wake_pin)) {
-+		error = devm_gpio_request_one(&client->dev,
-+					tsdata->wake_pin, GPIOF_OUT_INIT_LOW,
-+					"edt-ft5x06 wake");
-+		if (error) {
-+			dev_err(&client->dev,
-+				"Failed to request GPIO %d as wake pin, error %d\n",
-+				tsdata->wake_pin, error);
-+			return error;
-+		}
-+
-+		msleep(5);
-+		gpio_set_value(tsdata->wake_pin, 1);
-+	}
-+	if (gpio_is_valid(tsdata->reset_pin)) {
-+		/* this pulls reset down, enabling the low active reset */
-+		error = devm_gpio_request_one(&client->dev,
-+					tsdata->reset_pin, GPIOF_OUT_INIT_LOW,
-+					"edt-ft5x06 reset");
-+		if (error) {
-+			dev_err(&client->dev,
-+				"Failed to request GPIO %d as reset pin, error %d\n",
-+				tsdata->reset_pin, error);
-+			return error;
-+		}
-+
-+		msleep(5);
-+		gpio_set_value(tsdata->reset_pin, 1);
-+		msleep(300);
-+	}
-+
-+	return 0;
-+}
-+
- static int edt_ft5x06_ts_identify(struct i2c_client *client,
- 					struct edt_ft5x06_ts_data *tsdata,
- 					char *fw_version)
-@@ -771,14 +870,16 @@ static int edt_ft5x06_ts_identify(struct i2c_client *client,
- 	 */
- 	memset(rdbuf, 0, sizeof(rdbuf));
- 	error = edt_ft5x06_ts_readwrite(client, 1, "\xbb",
--					EDT_NAME_LEN - 1, rdbuf);
-+					EDT_NAME_LEN - 1,
-+					rdbuf);
- 	if (error)
- 		return error;
- 
-+        printk(KERN_INFO "EDT-TC:: %s ::-----%s----\n", __func__, rdbuf);
- 	/* if we find something consistent, stay with that assumption
- 	 * at least M09 won't send 3 bytes here
- 	 */
--	if (!(strncasecmp(rdbuf + 1, "EP0", 3))) {
-+	if ((strncasecmp(rdbuf + 1, "EP0", 3) == 0) && (strncasecmp(rdbuf + 6, "M12", 3) != 0)) {
- 		tsdata->version = M06;
- 
- 		/* remove last '$' end marker */
-@@ -792,8 +893,24 @@ static int edt_ft5x06_ts_identify(struct i2c_client *client,
- 			*p++ = '\0';
- 		strlcpy(model_name, rdbuf + 1, EDT_NAME_LEN);
- 		strlcpy(fw_version, p ? p : "", EDT_NAME_LEN);
-+	} else if (!(strncasecmp(rdbuf + 6, "M12", 3))) {
-+		tsdata->version = M12;
-+
-+		error = edt_ft5x06_ts_readwrite(client, 1, "\xA6",
-+						2, rdbuf);
-+		if (error)
-+			return error;
-+
-+		strlcpy(fw_version, rdbuf, 2);
-+
-+		error = edt_ft5x06_ts_readwrite(client, 1, "\xA8",
-+						1, rdbuf);
-+		if (error)
-+			return error;
-+
-+		snprintf(model_name, EDT_NAME_LEN, "EP0%i%i0M12",
-+			rdbuf[0] >> 4, rdbuf[0] & 0x0F);
- 	} else {
--		/* since there are only two versions around (M06, M09) */
- 		tsdata->version = M09;
- 
- 		error = edt_ft5x06_ts_readwrite(client, 1, "\xA6",
-@@ -815,30 +932,58 @@ static int edt_ft5x06_ts_identify(struct i2c_client *client,
- 	return 0;
- }
- 
--static void edt_ft5x06_ts_get_defaults(struct device *dev,
--				       struct edt_ft5x06_ts_data *tsdata)
-+#define EDT_ATTR_CHECKSET(name, reg) \
-+	if (pdata->name >= edt_ft5x06_attr_##name.limit_low &&		\
-+	    pdata->name <= edt_ft5x06_attr_##name.limit_high)		\
-+		edt_ft5x06_register_write(tsdata, reg, pdata->name)
-+
-+#define EDT_GET_PROP(name, reg) {				\
-+	u32 val;						\
-+	if (of_property_read_u32(np, #name, &val) == 0)		\
-+		edt_ft5x06_register_write(tsdata, reg, val);	\
-+}
-+
-+static void edt_ft5x06_ts_get_dt_defaults(struct device_node *np,
-+					struct edt_ft5x06_ts_data *tsdata)
- {
- 	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
--	u32 val;
--	int error;
- 
--	error = device_property_read_u32(dev, "threshold", &val);
--	if (!error) {
--		edt_ft5x06_register_write(tsdata, reg_addr->reg_threshold, val);
--		tsdata->threshold = val;
--	}
-+	switch (tsdata->version) {
-+	     case M12:
-+	      EDT_GET_PROP(threshold_M12, reg_addr->reg_threshold);
-+              EDT_GET_PROP(gain_M12, reg_addr->reg_gain);
-+              EDT_GET_PROP(offset_M12, reg_addr->reg_offset);
-+              break;
-+
-+	     case M09:
-+	      EDT_GET_PROP(threshold_M09, reg_addr->reg_threshold);
-+              EDT_GET_PROP(gain_M09, reg_addr->reg_gain);
-+              EDT_GET_PROP(offset_M09, reg_addr->reg_offset);
-+              break;
-+
-+	     case M06:
-+	      EDT_GET_PROP(threshold_M06, reg_addr->reg_threshold);
-+              EDT_GET_PROP(gain_M06, reg_addr->reg_gain);
-+              EDT_GET_PROP(offset_M06, reg_addr->reg_offset);
-+              break;
-+             }
-+}
- 
--	error = device_property_read_u32(dev, "gain", &val);
--	if (!error) {
--		edt_ft5x06_register_write(tsdata, reg_addr->reg_gain, val);
--		tsdata->gain = val;
--	}
-+static void
-+edt_ft5x06_ts_get_defaults(struct edt_ft5x06_ts_data *tsdata,
-+			   const struct edt_ft5x06_platform_data *pdata)
-+{
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
- 
--	error = device_property_read_u32(dev, "offset", &val);
--	if (!error) {
--		edt_ft5x06_register_write(tsdata, reg_addr->reg_offset, val);
--		tsdata->offset = val;
--	}
-+	if (!pdata->use_parameters)
-+		return;
-+
-+	/* pick up defaults from the platform data */
-+	EDT_ATTR_CHECKSET(threshold, reg_addr->reg_threshold);
-+	EDT_ATTR_CHECKSET(gain, reg_addr->reg_gain);
-+	EDT_ATTR_CHECKSET(offset, reg_addr->reg_offset);
-+	if (reg_addr->reg_report_rate != NO_REGISTER)
-+		EDT_ATTR_CHECKSET(report_rate, reg_addr->reg_report_rate);
- }
- 
- static void
-@@ -855,6 +1000,12 @@ edt_ft5x06_ts_get_parameters(struct edt_ft5x06_ts_data *tsdata)
- 						reg_addr->reg_report_rate);
- 	tsdata->num_x = edt_ft5x06_register_read(tsdata, reg_addr->reg_num_x);
- 	tsdata->num_y = edt_ft5x06_register_read(tsdata, reg_addr->reg_num_y);
-+
-+	if(tsdata->max_x == 0)	
-+		tsdata->max_x = tsdata->num_x * 64;
-+	if(tsdata->max_y == 0)
-+		tsdata->max_y = tsdata->num_y * 64;
-+	
- }
- 
- static void
-@@ -872,6 +1023,15 @@ edt_ft5x06_ts_set_regs(struct edt_ft5x06_ts_data *tsdata)
- 		reg_addr->reg_num_y = WORK_REGISTER_NUM_Y;
- 		break;
- 
-+        case M12:
-+		reg_addr->reg_threshold = M12_REGISTER_THRESHOLD;
-+		reg_addr->reg_report_rate = M12_REGISTER_REPORT_RATE;
-+		reg_addr->reg_gain = M12_REGISTER_GAIN;
-+		reg_addr->reg_offset = M12_REGISTER_OFFSET;
-+		reg_addr->reg_num_x = M12_REGISTER_NUM_X;
-+		reg_addr->reg_num_y = M12_REGISTER_NUM_Y;
-+		break;
-+
- 	case M09:
- 		reg_addr->reg_threshold = M09_REGISTER_THRESHOLD;
- 		reg_addr->reg_gain = M09_REGISTER_GAIN;
-@@ -882,13 +1042,48 @@ edt_ft5x06_ts_set_regs(struct edt_ft5x06_ts_data *tsdata)
- 	}
- }
- 
-+#ifdef CONFIG_OF
-+static int edt_ft5x06_i2c_ts_probe_dt(struct device *dev,
-+				struct edt_ft5x06_ts_data *tsdata)
-+{
-+	struct device_node *np = dev->of_node;
-+	/*
-+	 * irq_pin is not needed for DT setup.
-+	 * irq is associated via 'interrupts' property in DT
-+	 */
-+	tsdata->irq_pin = -EINVAL;
-+	tsdata->reset_pin = of_get_named_gpio(np, "reset-gpios", 0);
-+	tsdata->wake_pin = of_get_named_gpio(np, "wake-gpios", 0);
-+	
-+	tsdata->swap_xy = of_property_read_bool(np, "swap_xy")?1:0;
-+	tsdata->invert_x = of_property_read_bool(np, "invert_x")?1:0;
-+	tsdata->invert_y = of_property_read_bool(np, "invert_y")?1:0;
-+
-+	if(of_property_read_u32(np, "max_x", &tsdata->max_x))
-+		tsdata->max_x = 0;
-+	if(of_property_read_u32(np, "max_y", &tsdata->max_y))
-+		tsdata->max_y = 0;
-+
-+	if(tsdata->swap_xy) {
-+         printk(KERN_INFO "EDT-TC:: %s :: SWAP_XY\n", __func__);
-+	 }
-+	return 0;
-+}
-+#else
-+static inline int edt_ft5x06_i2c_ts_probe_dt(struct device *dev,
-+					struct edt_ft5x06_ts_data *tsdata)
-+{
-+	return -ENODEV;
-+}
-+#endif
-+
- static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 					 const struct i2c_device_id *id)
- {
--	const struct edt_i2c_chip_data *chip_data;
-+	const struct edt_ft5x06_platform_data *pdata =
-+						dev_get_platdata(&client->dev);
- 	struct edt_ft5x06_ts_data *tsdata;
- 	struct input_dev *input;
--	unsigned long irq_flags;
- 	int error;
- 	char fw_version[EDT_NAME_LEN];
- 
-@@ -900,43 +1095,32 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 		return -ENOMEM;
- 	}
- 
--	chip_data = of_device_get_match_data(&client->dev);
--	if (!chip_data)
--		chip_data = (const struct edt_i2c_chip_data *)id->driver_data;
--	if (!chip_data || !chip_data->max_support_points) {
--		dev_err(&client->dev, "invalid or missing chip data\n");
--		return -EINVAL;
--	}
--
--	tsdata->max_support_points = chip_data->max_support_points;
--
--	tsdata->reset_gpio = devm_gpiod_get_optional(&client->dev,
--						     "reset", GPIOD_OUT_HIGH);
--	if (IS_ERR(tsdata->reset_gpio)) {
--		error = PTR_ERR(tsdata->reset_gpio);
--		dev_err(&client->dev,
--			"Failed to request GPIO reset pin, error %d\n", error);
--		return error;
-+	if (!pdata) {
-+		error = edt_ft5x06_i2c_ts_probe_dt(&client->dev, tsdata);
-+		if (error) {
-+			dev_err(&client->dev,
-+				"DT probe failed and no platform data present\n");
-+			return error;
-+		}
-+	} else {
-+		tsdata->reset_pin = pdata->reset_pin;
-+		tsdata->irq_pin = pdata->irq_pin;
-+		tsdata->wake_pin = -EINVAL;
- 	}
- 
--	tsdata->wake_gpio = devm_gpiod_get_optional(&client->dev,
--						    "wake", GPIOD_OUT_LOW);
--	if (IS_ERR(tsdata->wake_gpio)) {
--		error = PTR_ERR(tsdata->wake_gpio);
--		dev_err(&client->dev,
--			"Failed to request GPIO wake pin, error %d\n", error);
-+	error = edt_ft5x06_ts_reset(client, tsdata);
-+	if (error)
- 		return error;
--	}
- 
--	if (tsdata->wake_gpio) {
--		usleep_range(5000, 6000);
--		gpiod_set_value_cansleep(tsdata->wake_gpio, 1);
--	}
--
--	if (tsdata->reset_gpio) {
--		usleep_range(5000, 6000);
--		gpiod_set_value_cansleep(tsdata->reset_gpio, 0);
--		msleep(300);
-+	if (gpio_is_valid(tsdata->irq_pin)) {
-+		error = devm_gpio_request_one(&client->dev, tsdata->irq_pin,
-+					GPIOF_IN, "edt-ft5x06 irq");
-+		if (error) {
-+			dev_err(&client->dev,
-+				"Failed to request GPIO %d, error %d\n",
-+				tsdata->irq_pin, error);
-+			return error;
-+		}
- 	}
- 
- 	input = devm_input_allocate_device(&client->dev);
-@@ -957,7 +1141,12 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 	}
- 
- 	edt_ft5x06_ts_set_regs(tsdata);
--	edt_ft5x06_ts_get_defaults(&client->dev, tsdata);
-+
-+	if (!pdata)
-+		edt_ft5x06_ts_get_dt_defaults(client->dev.of_node, tsdata);
-+	else
-+		edt_ft5x06_ts_get_defaults(tsdata, pdata);
-+
- 	edt_ft5x06_ts_get_parameters(tsdata);
- 
- 	dev_dbg(&client->dev,
-@@ -968,15 +1157,18 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 	input->id.bustype = BUS_I2C;
- 	input->dev.parent = &client->dev;
- 
-+	__set_bit(EV_SYN, input->evbit);
-+	__set_bit(EV_KEY, input->evbit);
-+	__set_bit(EV_ABS, input->evbit);
-+	__set_bit(BTN_TOUCH, input->keybit);
-+	
-+ 	input_set_abs_params(input, ABS_X, 0, tsdata->max_x - 1, 0, 0);
-+	input_set_abs_params(input, ABS_Y, 0, tsdata->max_y - 1, 0, 0);
- 	input_set_abs_params(input, ABS_MT_POSITION_X,
--			     0, tsdata->num_x * 64 - 1, 0, 0);
-+			     0, tsdata->max_x - 1, 0, 0);
- 	input_set_abs_params(input, ABS_MT_POSITION_Y,
--			     0, tsdata->num_y * 64 - 1, 0, 0);
--
--	touchscreen_parse_properties(input, true, &tsdata->prop);
--
--	error = input_mt_init_slots(input, tsdata->max_support_points,
--				INPUT_MT_DIRECT);
-+			     0, tsdata->max_y - 1, 0, 0);
-+	error = input_mt_init_slots(input, MAX_SUPPORT_POINTS, 0);
- 	if (error) {
- 		dev_err(&client->dev, "Unable to init MT slots.\n");
- 		return error;
-@@ -985,13 +1177,9 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 	input_set_drvdata(input, tsdata);
- 	i2c_set_clientdata(client, tsdata);
- 
--	irq_flags = irq_get_trigger_type(client->irq);
--	if (irq_flags == IRQF_TRIGGER_NONE)
--		irq_flags = IRQF_TRIGGER_FALLING;
--	irq_flags |= IRQF_ONESHOT;
--
--	error = devm_request_threaded_irq(&client->dev, client->irq,
--					NULL, edt_ft5x06_ts_isr, irq_flags,
-+	error = devm_request_threaded_irq(&client->dev, client->irq, NULL,
-+					edt_ft5x06_ts_isr,
-+					IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
- 					client->name, tsdata);
- 	if (error) {
- 		dev_err(&client->dev, "Unable to request touchscreen IRQ.\n");
-@@ -1011,9 +1199,7 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 
- 	dev_dbg(&client->dev,
- 		"EDT FT5x06 initialized: IRQ %d, WAKE pin %d, Reset pin %d.\n",
--		client->irq,
--		tsdata->wake_gpio ? desc_to_gpio(tsdata->wake_gpio) : -1,
--		tsdata->reset_gpio ? desc_to_gpio(tsdata->reset_gpio) : -1);
-+		client->irq, tsdata->wake_pin, tsdata->reset_pin);
- 
- 	return 0;
- 
-@@ -1032,7 +1218,8 @@ static int edt_ft5x06_ts_remove(struct i2c_client *client)
- 	return 0;
- }
- 
--static int __maybe_unused edt_ft5x06_ts_suspend(struct device *dev)
-+#ifdef CONFIG_PM_SLEEP
-+static int edt_ft5x06_ts_suspend(struct device *dev)
- {
- 	struct i2c_client *client = to_i2c_client(dev);
- 
-@@ -1042,7 +1229,7 @@ static int __maybe_unused edt_ft5x06_ts_suspend(struct device *dev)
- 	return 0;
- }
- 
--static int __maybe_unused edt_ft5x06_ts_resume(struct device *dev)
-+static int edt_ft5x06_ts_resume(struct device *dev)
- {
- 	struct i2c_client *client = to_i2c_client(dev);
- 
-@@ -1051,31 +1238,22 @@ static int __maybe_unused edt_ft5x06_ts_resume(struct device *dev)
- 
- 	return 0;
- }
-+#endif
- 
- static SIMPLE_DEV_PM_OPS(edt_ft5x06_ts_pm_ops,
- 			 edt_ft5x06_ts_suspend, edt_ft5x06_ts_resume);
- 
--static const struct edt_i2c_chip_data edt_ft5x06_data = {
--	.max_support_points = 5,
--};
--
--static const struct edt_i2c_chip_data edt_ft5506_data = {
--	.max_support_points = 10,
--};
--
- static const struct i2c_device_id edt_ft5x06_ts_id[] = {
--	{ .name = "edt-ft5x06", .driver_data = (long)&edt_ft5x06_data },
--	{ .name = "edt-ft5506", .driver_data = (long)&edt_ft5506_data },
-+	{ "edt-ft5x06", 0, },
- 	{ /* sentinel */ }
- };
- MODULE_DEVICE_TABLE(i2c, edt_ft5x06_ts_id);
- 
- #ifdef CONFIG_OF
- static const struct of_device_id edt_ft5x06_of_match[] = {
--	{ .compatible = "edt,edt-ft5206", .data = &edt_ft5x06_data },
--	{ .compatible = "edt,edt-ft5306", .data = &edt_ft5x06_data },
--	{ .compatible = "edt,edt-ft5406", .data = &edt_ft5x06_data },
--	{ .compatible = "edt,edt-ft5506", .data = &edt_ft5506_data },
-+	{ .compatible = "edt,edt-ft5206", },
-+	{ .compatible = "edt,edt-ft5306", },
-+	{ .compatible = "edt,edt-ft5406", },
- 	{ /* sentinel */ }
- };
- MODULE_DEVICE_TABLE(of, edt_ft5x06_of_match);
-@@ -1083,6 +1261,7 @@ MODULE_DEVICE_TABLE(of, edt_ft5x06_of_match);
- 
- static struct i2c_driver edt_ft5x06_ts_driver = {
- 	.driver = {
-+		.owner = THIS_MODULE,
- 		.name = "edt_ft5x06",
- 		.of_match_table = of_match_ptr(edt_ft5x06_of_match),
- 		.pm = &edt_ft5x06_ts_pm_ops,
-diff --git a/include/linux/input/edt-ft5x06.h b/include/linux/input/edt-ft5x06.h
-new file mode 100644
-index 0000000..8a1e0d1
---- /dev/null
-+++ b/include/linux/input/edt-ft5x06.h
-@@ -0,0 +1,24 @@
-+#ifndef _EDT_FT5X06_H
-+#define _EDT_FT5X06_H
-+
-+/*
-+ * Copyright (c) 2012 Simon Budig, <simon.budig@kernelconcepts.de>
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published by
-+ * the Free Software Foundation.
-+ */
-+
-+struct edt_ft5x06_platform_data {
-+	int irq_pin;
-+	int reset_pin;
-+
-+	/* startup defaults for operational parameters */
-+	bool use_parameters;
-+	u8 gain;
-+	u8 threshold;
-+	u8 offset;
-+	u8 report_rate;
-+};
-+
-+#endif /* _EDT_FT5X06_H */

+ 0 - 62
board/GfA/Display001/linux_4.4.145_bone23/linux-006-RS485_udelay_before_tx.patch

@@ -1,62 +0,0 @@
-diff --git a/Documentation/serial/serial-rs485.txt b/Documentation/serial/serial-rs485.txt
-index 2253b8b45a74..6225a3b759de 100644
---- a/Documentation/serial/serial-rs485.txt
-+++ b/Documentation/serial/serial-rs485.txt
-@@ -73,6 +73,9 @@
- 	/* Set rts delay before send, if needed: */
- 	rs485conf.delay_rts_before_send = ...;
- 
-+	/* Set udelay_before_enable_tx, if needed: */
-+	rs485conf.udelay_before_enable_tx = ...;
-+
- 	/* Set rts delay after send, if needed: */
- 	rs485conf.delay_rts_after_send = ...;
- 
-diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
-index 2c6c06f3d61c..19f51585641b 100644
---- a/drivers/tty/serial/omap-serial.c
-+++ b/drivers/tty/serial/omap-serial.c
-@@ -423,6 +423,8 @@ static void serial_omap_start_tx(struct uart_port *port)
- 		/* if rts not already enabled */
- 		res = (port->rs485.flags & SER_RS485_RTS_ON_SEND) ? 1 : 0;
- 		if (gpio_get_value(up->rts_gpio) != res) {
-+			if(port->rs485.udelay_before_enable_tx)
-+				udelay(port->rs485.udelay_before_enable_tx);
- 			gpio_set_value(up->rts_gpio, res);
- 			if (port->rs485.delay_rts_before_send > 0)
- 				mdelay(port->rs485.delay_rts_before_send);
-@@ -1545,7 +1547,7 @@ static int serial_omap_probe_rs485(struct uart_omap_port *up,
- 				   struct device_node *np)
- {
- 	struct serial_rs485 *rs485conf = &up->port.rs485;
--	u32 rs485_delay[2];
-+	u32 rs485_delay[3];
- 	enum of_gpio_flags flags;
- 	int ret;
- 
-@@ -1577,9 +1579,10 @@ static int serial_omap_probe_rs485(struct uart_omap_port *up,
- 	}
- 
- 	if (of_property_read_u32_array(np, "rs485-rts-delay",
--				    rs485_delay, 2) == 0) {
-+				    rs485_delay, 3) == 0) {
- 		rs485conf->delay_rts_before_send = rs485_delay[0];
- 		rs485conf->delay_rts_after_send = rs485_delay[1];
-+		rs485conf->udelay_before_enable_tx = rs485_delay[2];
- 	}
- 
- 	if (of_property_read_bool(np, "rs485-rx-during-tx"))
-diff --git a/include/uapi/linux/serial.h b/include/uapi/linux/serial.h
-index 5d59c3ebf459..d100bdac93c2 100644
---- a/include/uapi/linux/serial.h
-+++ b/include/uapi/linux/serial.h
-@@ -124,7 +124,8 @@ struct serial_rs485 {
- #define SER_RS485_RX_DURING_TX		(1 << 4)
- 	__u32	delay_rts_before_send;	/* Delay before send (milliseconds) */
- 	__u32	delay_rts_after_send;	/* Delay after send (milliseconds) */
--	__u32	padding[5];		/* Memory is cheap, new structs
-+	__u32   udelay_before_enable_tx;/* Delay before switching to tx direction */
-+	__u32	padding[4];		/* Memory is cheap, new structs
- 					   are a royal PITA .. */
- };
- 

+ 0 - 13
board/GfA/Display001/linux_4.4.145_bone23/linux-007-am33xx.dtsi_add_operating_points.patch

@@ -1,13 +0,0 @@
-diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
-index 1a499bb..858d21f 100644
---- a/arch/arm/boot/dts/am33xx.dtsi
-+++ b/arch/arm/boot/dts/am33xx.dtsi
-@@ -52,6 +52,8 @@
- 			 */
- 			operating-points = <
- 				/* kHz    uV */
-+				1000000	1351000
-+				800000	1285000
- 				720000  1285000
- 				600000  1225000
- 				500000  1125000

+ 0 - 134
board/GfA/Display001/linux_4.4.145_bone23/linux-020-edt-touch-make-gain-offset-threshold-writeable.patch

@@ -1,134 +0,0 @@
---- a/drivers/input/touchscreen/edt-ft5x06.c	2017-09-26 15:27:56.685769326 +0200
-+++ b/drivers/input/touchscreen/edt-ft5x06.c	2017-09-25 08:00:57.530768619 +0200
-@@ -639,6 +639,111 @@
- 	return 0;
- }
- 
-+
-+static int edt_ft5x06_debugfs_threshold_get(void *data, u64 *threshold)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+
-+	*threshold = (u64)(tsdata->threshold);
-+
-+	return 0;
-+};
-+
-+static int edt_ft5x06_debugfs_threshold_set(void *data, u64 threshold)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+	int retval = 0;
-+
-+/*	if (param > ??????)
-+		return -ERANGE;
-+*/
-+	mutex_lock(&tsdata->mutex);
-+	
-+	tsdata->threshold = (int)(threshold);
-+	edt_ft5x06_register_write(tsdata, reg_addr->reg_threshold,
-+				  tsdata->threshold);
-+	tsdata->threshold = edt_ft5x06_register_read(tsdata,
-+						     reg_addr->reg_threshold);
-+
-+	mutex_unlock(&tsdata->mutex);
-+
-+	return retval;
-+};
-+
-+DEFINE_SIMPLE_ATTRIBUTE(debugfs_threshold_fops, edt_ft5x06_debugfs_threshold_get,
-+			edt_ft5x06_debugfs_threshold_set, "%llu\n");
-+
-+
-+static int edt_ft5x06_debugfs_gain_get(void *data, u64 *gain)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+
-+	*gain = (u64)(tsdata->gain);
-+
-+	return 0;
-+};
-+
-+static int edt_ft5x06_debugfs_gain_set(void *data, u64 gain)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+	int retval = 0;
-+
-+/*	if (param > ??????)
-+		return -ERANGE;
-+*/
-+	mutex_lock(&tsdata->mutex);
-+	
-+	tsdata->gain = (int)(gain);
-+	edt_ft5x06_register_write(tsdata, reg_addr->reg_gain,
-+				  tsdata->gain);
-+	tsdata->gain = edt_ft5x06_register_read(tsdata,
-+						     reg_addr->reg_gain);
-+
-+	mutex_unlock(&tsdata->mutex);
-+
-+	return retval;
-+};
-+
-+DEFINE_SIMPLE_ATTRIBUTE(debugfs_gain_fops, edt_ft5x06_debugfs_gain_get,
-+			edt_ft5x06_debugfs_gain_set, "%llu\n");
-+
-+
-+static int edt_ft5x06_debugfs_offset_get(void *data, u64 *offset)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+
-+	*offset = (u64)(tsdata->offset);
-+
-+	return 0;
-+};
-+
-+static int edt_ft5x06_debugfs_offset_set(void *data, u64 offset)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+	int retval = 0;
-+
-+/*	if (param > ??????)
-+		return -ERANGE;
-+*/
-+	mutex_lock(&tsdata->mutex);
-+	
-+	tsdata->offset = (int)(offset);
-+	edt_ft5x06_register_write(tsdata, reg_addr->reg_offset,
-+				  tsdata->offset);
-+	tsdata->offset = edt_ft5x06_register_read(tsdata,
-+						     reg_addr->reg_offset);
-+
-+	mutex_unlock(&tsdata->mutex);
-+
-+	return retval;
-+};
-+
-+DEFINE_SIMPLE_ATTRIBUTE(debugfs_offset_fops, edt_ft5x06_debugfs_offset_get,
-+			edt_ft5x06_debugfs_offset_set, "%llu\n");
-+
- static int edt_ft5x06_debugfs_mode_get(void *data, u64 *mode)
- {
- 	struct edt_ft5x06_ts_data *tsdata = data;
-@@ -766,10 +871,19 @@
- 
- 	debugfs_create_u16("num_x", S_IRUSR, tsdata->debug_dir, &tsdata->num_x);
- 	debugfs_create_u16("num_y", S_IRUSR, tsdata->debug_dir, &tsdata->num_y);
-+
-+/*
- 	debugfs_create_u32("threshold", S_IRUSR, tsdata->debug_dir, &tsdata->threshold);
- 	debugfs_create_u32("gain", S_IRUSR, tsdata->debug_dir, &tsdata->gain);
- 	debugfs_create_u32("offset", S_IRUSR, tsdata->debug_dir, &tsdata->offset);
-+*/
- 
-+	debugfs_create_file("threshold", S_IRUSR | S_IWUSR,
-+			    tsdata->debug_dir, tsdata, &debugfs_threshold_fops);
-+	debugfs_create_file("gain", S_IRUSR | S_IWUSR,
-+			    tsdata->debug_dir, tsdata, &debugfs_gain_fops);
-+	debugfs_create_file("offset", S_IRUSR | S_IWUSR,
-+			    tsdata->debug_dir, tsdata, &debugfs_offset_fops);
- 
- 	debugfs_create_file("mode", S_IRUSR | S_IWUSR,
- 			    tsdata->debug_dir, tsdata, &debugfs_mode_fops);

+ 0 - 18
board/GfA/Display001/linux_4.4.145_bone23/linux-021-remove_endless_loop_in_rtc-ds1307_driver.patch

@@ -1,18 +0,0 @@
-diff -Naurp a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
---- a/drivers/rtc/rtc-ds1307.c	2018-02-19 11:38:04.000000000 +0100
-+++ b/drivers/rtc/rtc-ds1307.c	2018-03-08 11:58:06.832574443 +0100
-@@ -1093,11 +1093,11 @@ read_rtc:
- 		}
- 
- 		/* clock halted?  turn it on, so clock can tick. */
--		if (!(tmp & MCP794XX_BIT_ST)) {
-+		if (!(ds1307->regs[3] & 0x20)) { /* check OSC Bit from REG 3 */
-+			dev_warn(&client->dev, "OSC NOT RUNNING !SET TIME!\n");
- 			i2c_smbus_write_byte_data(client, DS1307_REG_SECS,
- 					MCP794XX_BIT_ST);
--			dev_warn(&client->dev, "SET TIME!\n");
--			goto read_rtc;
-+//			goto read_rtc; /* dont loop endless osc failure */
- 		}
- 
- 		break;

+ 0 - 108
board/GfA/Display001/linux_4.4.145_bone23/linux-022-add-dts-flags-to-atmel-mxt-touch.patch

@@ -1,108 +0,0 @@
-diff -Naurp a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
---- a/drivers/input/touchscreen/atmel_mxt_ts.c	2018-01-20 11:42:13.000000000 +0100
-+++ b/drivers/input/touchscreen/atmel_mxt_ts.c	2018-01-25 09:03:33.876115406 +0100
-@@ -24,6 +24,7 @@
- #include <linux/i2c.h>
- #include <linux/platform_data/atmel_mxt_ts.h>
- #include <linux/input/mt.h>
-+#include <linux/input/touchscreen.h>
- #include <linux/interrupt.h>
- #include <linux/of.h>
- #include <linux/slab.h>
-@@ -216,6 +217,9 @@ struct mxt_data {
- 	unsigned int irq;
- 	unsigned int max_x;
- 	unsigned int max_y;
-+	bool invert_x;
-+	bool invert_y;
-+	bool swap_x_y;
- 	bool xy_switch;
- 	bool in_bootloader;
- 	u16 mem_size;
-@@ -257,6 +261,22 @@ struct mxt_data {
- 	struct completion crc_completion;
- };
- 
-+static void mxt_apply_prop_to_x_y(const struct mxt_data *data,
-+                             int *x, int *y)
-+{
-+        if (data->invert_x)
-+                *x = data->max_x - *x;
-+
-+        if (data->invert_y)
-+                *y = data->max_y - *y;
-+
-+        if (data->swap_x_y)
-+                swap(*x, *y);
-+}
-+
-+
-+
-+
- static size_t mxt_obj_size(const struct mxt_object *obj)
- {
- 	return obj->size_minus_one + 1;
-@@ -741,6 +761,8 @@ static void mxt_proc_t9_message(struct m
- 
- 		/* Touch active */
- 		input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, 1);
-+		mxt_apply_prop_to_x_y(data, &x, &y);
-+		
- 		input_report_abs(input_dev, ABS_MT_POSITION_X, x);
- 		input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
- 		input_report_abs(input_dev, ABS_MT_PRESSURE, amplitude);
-@@ -760,8 +782,8 @@ static void mxt_proc_t100_message(struct
- 	int id;
- 	u8 status;
- 	u8 type = 0;
--	u16 x;
--	u16 y;
-+	/*u16*/ int x;
-+	/*u16*/ int y;
- 	int distance = 0;
- 	int tool = 0;
- 	u8 major = 0;
-@@ -845,6 +867,7 @@ static void mxt_proc_t100_message(struct
- 			id, type, x, y, major, pressure, orientation);
- 
- 		input_mt_report_slot_state(input_dev, tool, 1);
-+		mxt_apply_prop_to_x_y(data, &x, &y);
- 		input_report_abs(input_dev, ABS_MT_POSITION_X, x);
- 		input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
- 		input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, major);
-@@ -1778,7 +1801,8 @@ static int mxt_initialize_input_device(s
- 	int error;
- 	unsigned int num_mt_slots;
- 	unsigned int mt_flags = 0;
--
-+	struct device_node *np = dev->of_node;
-+	
- 	switch (data->multitouch) {
- 	case MXT_TOUCH_MULTI_T9:
- 		num_mt_slots = data->T9_reportid_max - data->T9_reportid_min + 1;
-@@ -1818,6 +1842,7 @@ static int mxt_initialize_input_device(s
- 		return -ENOMEM;
- 	}
- 
-+
- 	input_dev->name = "Atmel maXTouch Touchscreen";
- 	input_dev->phys = data->phys;
- 	input_dev->id.bustype = BUS_I2C;
-@@ -1908,6 +1933,17 @@ static int mxt_initialize_input_device(s
- 
- 	data->input_dev = input_dev;
- 
-+	if (np) {
-+		data->invert_x = of_property_read_bool(np, "invert_x")?1:0;
-+		data->invert_y = of_property_read_bool(np, "invert_y")?1:0;
-+        	data->swap_x_y = of_property_read_bool(np, "swap_x_y")?1:0;
-+        	
-+        	dev_info(dev, "loaded toucscreen properties\n");
-+        	dev_info(dev, "touchscreen-inverted-x %d\n", data->invert_x);
-+        	dev_info(dev, "touchscreen-inverted-y %d\n", data->invert_y);
-+        	dev_info(dev, "touchscreen-swap-x-y %d\n", data->swap_x_y);
-+        }
-+
- 	return 0;
- 
- err_free_mem:

+ 0 - 47
board/GfA/Display001/linux_4.4.145_bone23/linux-023-edt-ft5x06-shared-irq.disabled__patch

@@ -1,47 +0,0 @@
-diff -Naurp a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c
---- a/drivers/input/touchscreen/edt-ft5x06.c	2018-01-30 21:28:53.696245462 +0100
-+++ b/drivers/input/touchscreen/edt-ft5x06.c	2018-01-30 21:28:19.220223683 +0100
-@@ -188,6 +188,7 @@ static irqreturn_t edt_ft5x06_ts_isr(int
- 	int i, type, x, y, id;
- 	int offset, tplen, datalen;
- 	int error;
-+	
- 
- 	switch (tsdata->version) {
- 	case M06:
-@@ -532,7 +533,7 @@ static int edt_ft5x06_factory_mode(struc
- 	int ret;
- 	int error;
- 
--	disable_irq(client->irq);
-+//	disable_irq(client->irq);
- 
- 	if (!tsdata->raw_buffer) {
- 		tsdata->raw_bufsize = tsdata->num_x * tsdata->num_y *
-@@ -577,7 +578,7 @@ err_out:
- 	kfree(tsdata->raw_buffer);
- 	tsdata->raw_buffer = NULL;
- 	tsdata->factory_mode = false;
--	enable_irq(client->irq);
-+//	enable_irq(client->irq);
- 
- 	return error;
- 
-@@ -634,7 +635,7 @@ static int edt_ft5x06_work_mode(struct e
- 		edt_ft5x06_register_write(tsdata, reg_addr->reg_report_rate,
- 				  tsdata->report_rate);
- 
--	enable_irq(client->irq);
-+//	enable_irq(client->irq);
- 
- 	return 0;
- }
-@@ -1293,7 +1294,7 @@ static int edt_ft5x06_ts_probe(struct i2
- 
- 	error = devm_request_threaded_irq(&client->dev, client->irq, NULL,
- 					edt_ft5x06_ts_isr,
--					IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
-+					IRQF_TRIGGER_LOW | IRQF_ONESHOT | IRQF_SHARED,
- 					client->name, tsdata);
- 	if (error) {
- 		dev_err(&client->dev, "Unable to request touchscreen IRQ.\n");

+ 0 - 65
board/GfA/Display001/linux_4.4.145_bone23/linux-024-edt-ft5x06-fix-report-rate-for-M09.patch

@@ -1,65 +0,0 @@
-diff -Naurp a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c
---- a/drivers/input/touchscreen/edt-ft5x06.c	2018-02-13 23:46:04.845194636 +0100
-+++ b/drivers/input/touchscreen/edt-ft5x06.c	2018-02-13 23:45:01.705110745 +0100
-@@ -53,6 +53,7 @@
- #define M09_REGISTER_OFFSET		0x93
- #define M09_REGISTER_NUM_X		0x94
- #define M09_REGISTER_NUM_Y		0x95
-+#define M09_REGISTER_REPORT_RATE	0x88
- 
- #define M12_REGISTER_THRESHOLD		0x80
- #define M12_REGISTER_GAIN		0x92
-@@ -510,7 +511,7 @@ static EDT_ATTR(offset, S_IWUSR | S_IRUG
- static EDT_ATTR(threshold, S_IWUSR | S_IRUGO, WORK_REGISTER_THRESHOLD,
- 		M09_REGISTER_THRESHOLD, M12_REGISTER_THRESHOLD, 1, 255);
- static EDT_ATTR(report_rate, S_IWUSR | S_IRUGO, WORK_REGISTER_REPORT_RATE,
--		NO_REGISTER, M12_REGISTER_REPORT_RATE, 3, 14);
-+		M09_REGISTER_REPORT_RATE, M12_REGISTER_REPORT_RATE, 3, 14);
- 
- static struct attribute *edt_ft5x06_attrs[] = {
- 	&edt_ft5x06_attr_gain.dattr.attr,
-@@ -530,7 +531,7 @@ static int edt_ft5x06_factory_mode(struc
- 	struct i2c_client *client = tsdata->client;
- 	int retries = EDT_SWITCH_MODE_RETRIES;
- 	int ret;
--	int error;
-+	int error = 0;
- 
- 	disable_irq(client->irq);
- 
-@@ -570,7 +571,8 @@ static int edt_ft5x06_factory_mode(struc
- 		error = -EIO;
- 		goto err_out;
- 	}
--
-+	
-+	printk(KERN_INFO "EDT-TC: %s: set to factory mode\n", __func__);
- 	return 0;
- 
- err_out:
-@@ -891,7 +893,8 @@ edt_ft5x06_ts_prepare_debugfs(struct edt
- 			    tsdata->debug_dir, tsdata, &debugfs_raw_data_fops);
- 			    
- 	if (reg_addr->reg_report_rate != NO_REGISTER)
--           debugfs_create_u32("report_rate", S_IRUSR, tsdata->debug_dir, &tsdata->report_rate);
-+           debugfs_create_u32("report_rate", S_IRUSR, tsdata->debug_dir, 
-+           	&tsdata->report_rate);
-            
- 	debugfs_create_u32("invert_x", S_IRUSR | S_IWUSR,
- 			    tsdata->debug_dir, &tsdata->invert_x);
-@@ -989,7 +992,6 @@ static int edt_ft5x06_ts_identify(struct
- 	if (error)
- 		return error;
- 
--        printk(KERN_INFO "EDT-TC:: %s ::-----%s----\n", __func__, rdbuf);
- 	/* if we find something consistent, stay with that assumption
- 	 * at least M09 won't send 3 bytes here
- 	 */
-@@ -1148,6 +1150,7 @@ edt_ft5x06_ts_set_regs(struct edt_ft5x06
- 
- 	case M09:
- 		reg_addr->reg_threshold = M09_REGISTER_THRESHOLD;
-+		reg_addr->reg_report_rate = M09_REGISTER_REPORT_RATE;
- 		reg_addr->reg_gain = M09_REGISTER_GAIN;
- 		reg_addr->reg_offset = M09_REGISTER_OFFSET;
- 		reg_addr->reg_num_x = M09_REGISTER_NUM_X;

+ 0 - 20
board/GfA/Display001/linux_4.4.145_bone23/linux-025-edt-ft5x06-fix-M9-M12-registercount-on-write.patch

@@ -1,20 +0,0 @@
-diff -Naurp a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c
---- a/drivers/input/touchscreen/edt-ft5x06.c	2018-02-20 20:55:48.828441552 +0100
-+++ b/drivers/input/touchscreen/edt-ft5x06.c	2018-02-20 20:55:02.332357749 +0100
-@@ -292,7 +292,6 @@ static int edt_ft5x06_register_write(str
- 	case M06:
- 		wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc;
- 		wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
--		wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
- 		wrbuf[2] = value;
- 		wrbuf[3] = wrbuf[0] ^ wrbuf[1] ^ wrbuf[2];
- 		return edt_ft5x06_ts_readwrite(tsdata->client, 4, wrbuf, 0, NULL);
-@@ -302,7 +301,7 @@ static int edt_ft5x06_register_write(str
- 		wrbuf[0] = addr;
- 		wrbuf[1] = value;
- 
--		return edt_ft5x06_ts_readwrite(tsdata->client, 3,
-+		return edt_ft5x06_ts_readwrite(tsdata->client, 2,
- 					wrbuf, 0, NULL);
- 
- 	default:

+ 0 - 39
board/GfA/Display001/linux_4.4.145_bone23/linux-026-gpio-pca953x-sitara-i2c-quirks.patch

@@ -1,39 +0,0 @@
-diff -Naurp a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
---- a/drivers/gpio/gpio-pca953x.c	2018-03-05 08:25:33.000000000 +0100
-+++ b/drivers/gpio/gpio-pca953x.c	2018-03-10 21:16:09.597556913 +0100
-@@ -123,10 +123,16 @@ static int pca953x_read_single(struct pc
- 
- 	ret = i2c_smbus_read_byte_data(chip->client,
- 				(reg << bank_shift) + offset);
-+
-+	if (ret < 0) { /* only one retry due to i2c quirks */
-+		/*dev_err(&chip->client->dev, "retry failed reading (single) register\n");*/
-+		ret = i2c_smbus_read_byte_data(chip->client,
-+				(reg << bank_shift) + offset);
-+	}
- 	*val = ret;
- 
- 	if (ret < 0) {
--		dev_err(&chip->client->dev, "failed reading register\n");
-+		dev_err(&chip->client->dev, "failed reading (single) register\n");
- 		return ret;
- 	}
- 
-@@ -207,7 +213,7 @@ static int pca953x_read_regs(struct pca9
- 		val[1] = (u16)ret >> 8;
- 	}
- 	if (ret < 0) {
--		dev_err(&chip->client->dev, "failed reading register\n");
-+		dev_err(&chip->client->dev, "failed reading (regs) register\n");
- 		return ret;
- 	}
- 
-@@ -315,7 +321,7 @@ static int pca953x_gpio_get_value(struct
- 		 * do unless gpio_*_value_cansleep() calls become different
- 		 * from their nonsleeping siblings (and report faults).
- 		 */
--		return 0;
-+		return 1;
- 	}
- 
- 	return (reg_val & (1u << (off % BANK_SZ))) ? 1 : 0;

+ 0 - 28
board/GfA/Display001/linux_4.4.145_bone23/linux-027-input_events_add_IN1-IN4.patch

@@ -1,28 +0,0 @@
-diff -Naurp a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
---- a/include/linux/mod_devicetable.h	2018-02-19 11:38:07.000000000 +0100
-+++ b/include/linux/mod_devicetable.h	2018-05-04 21:39:09.862508306 +0200
-@@ -291,7 +291,7 @@ struct pcmcia_device_id {
- #define INPUT_DEVICE_ID_LED_MAX		0x0f
- #define INPUT_DEVICE_ID_SND_MAX		0x07
- #define INPUT_DEVICE_ID_FF_MAX		0x7f
--#define INPUT_DEVICE_ID_SW_MAX		0x0f
-+#define INPUT_DEVICE_ID_SW_MAX		0x13
- 
- #define INPUT_DEVICE_ID_MATCH_BUS	1
- #define INPUT_DEVICE_ID_MATCH_VENDOR	2
-diff a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
---- a/include/uapi/linux/input-event-codes.h	2018-02-19 11:38:08.000000000 +0100
-+++ b/include/uapi/linux/input-event-codes.h	2018-05-04 21:36:45.066395759 +0200
-@@ -749,7 +749,11 @@
- #define SW_ROTATE_LOCK		0x0c  /* set = rotate locked/disabled */
- #define SW_LINEIN_INSERT	0x0d  /* set = inserted */
- #define SW_MUTE_DEVICE		0x0e  /* set = device disabled */
--#define SW_MAX			0x0f
-+#define SW_IO1			0x0f
-+#define SW_IO2			0x10
-+#define SW_IO3			0x11
-+#define SW_IO4			0x12
-+#define SW_MAX			0x13
- #define SW_CNT			(SW_MAX+1)
- 
- /*

+ 0 - 3583
board/GfA/Display001/linux_4.4.145_bone23/linux-030-atmel_mxt_ts_backport.patch

@@ -1,3583 +0,0 @@
-diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
-index 700ae2f..2979cf3 100644
---- a/drivers/input/touchscreen/atmel_mxt_ts.c
-+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
-@@ -4,6 +4,7 @@
-  * Copyright (C) 2010 Samsung Electronics Co.Ltd
-  * Copyright (C) 2011-2014 Atmel Corporation
-  * Copyright (C) 2012 Google, Inc.
-+ * Copyright (C) 2016 Zodiac Inflight Innovations
-  *
-  * Author: Joonyoung Shim <jy0922.shim@samsung.com>
-  *
-@@ -22,16 +23,22 @@
- #include <linux/delay.h>
- #include <linux/firmware.h>
- #include <linux/i2c.h>
--#include <linux/platform_data/atmel_mxt_ts.h>
- #include <linux/input/mt.h>
--#include <linux/input/touchscreen.h>
- #include <linux/interrupt.h>
- #include <linux/of.h>
-+#include <linux/property.h>
- #include <linux/slab.h>
-+#include <linux/gpio/consumer.h>
- #include <asm/unaligned.h>
-+#include <media/v4l2-device.h>
-+#include <media/v4l2-ioctl.h>
-+#include <media/videobuf2-v4l2.h>
-+#include <media/videobuf2-vmalloc.h>
- 
- /* Firmware files */
- #define MXT_FW_NAME		"maxtouch.fw"
-+
-+/* Configuration file */
- #define MXT_CFG_NAME		"maxtouch.cfg"
- #define MXT_CFG_MAGIC		"OBP_RAW V1"
- 
-@@ -41,35 +48,62 @@
- #define MXT_INFO_CHECKSUM_SIZE	3
- #define MXT_MAX_BLOCK_WRITE	256
- 
--/* Object types */
--#define MXT_DEBUG_DIAGNOSTIC_T37	37
-+/* Objects */
- #define MXT_GEN_MESSAGE_T5		5
- #define MXT_GEN_COMMAND_T6		6
- #define MXT_GEN_POWER_T7		7
- #define MXT_GEN_ACQUIRE_T8		8
--#define MXT_GEN_DATASOURCE_T53		53
- #define MXT_TOUCH_MULTI_T9		9
-+#define MXT_PROCI_KEYTHRESHOLD_T14	14
- #define MXT_TOUCH_KEYARRAY_T15		15
-+#define MXT_SPT_COMMSCONFIG_T18		18
-+#define MXT_SPT_GPIOPWM_T19		19
- #define MXT_TOUCH_PROXIMITY_T23		23
- #define MXT_TOUCH_PROXKEY_T52		52
- #define MXT_PROCI_GRIPFACE_T20		20
- #define MXT_PROCG_NOISE_T22		22
- #define MXT_PROCI_ONETOUCH_T24		24
-+#define MXT_SPT_SELFTEST_T25		25
- #define MXT_PROCI_TWOTOUCH_T27		27
-+#define MXT_SPT_CTECONFIG_T28		28
-+#define MXT_DEBUG_DIAGNOSTIC_T37	37
-+#define MXT_SPT_USERDATA_T38		38
- #define MXT_PROCI_GRIP_T40		40
- #define MXT_PROCI_PALM_T41		41
- #define MXT_PROCI_TOUCHSUPPRESSION_T42	42
--#define MXT_PROCI_STYLUS_T47		47
--#define MXT_PROCG_NOISESUPPRESSION_T48	48
--#define MXT_SPT_COMMSCONFIG_T18		18
--#define MXT_SPT_GPIOPWM_T19		19
--#define MXT_SPT_SELFTEST_T25		25
--#define MXT_SPT_CTECONFIG_T28		28
--#define MXT_SPT_USERDATA_T38		38
- #define MXT_SPT_DIGITIZER_T43		43
- #define MXT_SPT_MESSAGECOUNT_T44	44
- #define MXT_SPT_CTECONFIG_T46		46
--#define MXT_TOUCH_MULTITOUCHSCREEN_T100 100
-+#define MXT_PROCI_STYLUS_T47		47
-+#define MXT_PROCG_NOISESUPPRESSION_T48	48
-+#define MXT_GEN_DATASOURCE_T53		53
-+#define MXT_PROCI_SHIELDLESS_T56	56
-+#define MXT_SPT_TIMER_T61		61
-+#define MXT_PROCI_LENSBENDING_T65	65
-+#define MXT_SPT_SERIALDATACOMMAND_T68	68
-+#define MXT_SPT_DYNAMICCONFIGURATIONCONTROLLER_T70 70
-+#define MXT_SPT_DYNAMICCONFIGURATIONCONTAINER_T71  71
-+#define MXT_NOISESUPPRESSION_T72		   72
-+#define MXT_SPT_CTESCANCONFIG_T77		   77
-+#define MXT_PROCI_GLOVEDETECTION_T78		   78
-+#define MXT_SPT_TOUCHEVENTTRIGGER_T79		   79
-+#define MXT_PROCI_RETRANSMISSIONCOMPENSATION_T80   80
-+#define MXT_PROCG_NOISESUPACTIVESTYLUS_T86	   86
-+#define MXT_PROCI_SYMBOLGESTUREPROCESSOR_T92	   92
-+#define MXT_PROCI_TOUCHSEQUENCELOGGER_T93	   93
-+#define MXT_TOUCH_MULTITOUCHSCREEN_T100 	   100
-+#define MXT_SPT_AUXTOUCHCONFIG_T104		   104
-+#define MXT_PROCG_NOISESUPSELFCAP_T108		   108
-+#define MXT_SPT_SELFCAPGLOBALCONFIG_T109	   109
-+#define MXT_PROCI_ACTIVESTYLUS_T107		   107
-+#define MXT_SPT_CAPTUNINGPARAMS_T110		   110
-+#define MXT_SPT_SELFCAPCONFIG_T111		   111
-+#define MXT_PROCI_SELFCAPGRIPSUPPRESSION_T112	   112
-+#define MXT_SPT_PROXMEASURECONFIG_T113		   113
-+#define MXT_ACTIVESTYLUSMEASCONFIG_T114		   114
-+#define MXT_SPT_DATACONTAINERCTRL_T118		   118
-+#define MXT_PROCI_HOVERGESTUREPROCESSOR_T129	   129
-+#define MXT_SPT_SELCAPVOLTAGEMODE_T133		   133
- 
- /* MXT_GEN_MESSAGE_T5 object */
- #define MXT_RPTID_NOMSG		0xff
-@@ -82,12 +116,12 @@
- #define MXT_COMMAND_DIAGNOSTIC	5
- 
- /* Define for T6 status byte */
--#define MXT_T6_STATUS_RESET	(1 << 7)
--#define MXT_T6_STATUS_OFL	(1 << 6)
--#define MXT_T6_STATUS_SIGERR	(1 << 5)
--#define MXT_T6_STATUS_CAL	(1 << 4)
--#define MXT_T6_STATUS_CFGERR	(1 << 3)
--#define MXT_T6_STATUS_COMSERR	(1 << 2)
-+#define MXT_T6_STATUS_RESET	BIT(7)
-+#define MXT_T6_STATUS_OFL	BIT(6)
-+#define MXT_T6_STATUS_SIGERR	BIT(5)
-+#define MXT_T6_STATUS_CAL	BIT(4)
-+#define MXT_T6_STATUS_CFGERR	BIT(3)
-+#define MXT_T6_STATUS_COMSERR	BIT(2)
- 
- /* MXT_GEN_POWER_T7 field */
- struct t7_config {
-@@ -100,18 +134,20 @@ struct t7_config {
- 
- /* MXT_TOUCH_MULTI_T9 field */
- #define MXT_T9_CTRL		0
-+#define MXT_T9_XSIZE		3
-+#define MXT_T9_YSIZE		4
- #define MXT_T9_ORIENT		9
- #define MXT_T9_RANGE		18
- 
- /* MXT_TOUCH_MULTI_T9 status */
--#define MXT_T9_UNGRIP		(1 << 0)
--#define MXT_T9_SUPPRESS		(1 << 1)
--#define MXT_T9_AMP		(1 << 2)
--#define MXT_T9_VECTOR		(1 << 3)
--#define MXT_T9_MOVE		(1 << 4)
--#define MXT_T9_RELEASE		(1 << 5)
--#define MXT_T9_PRESS		(1 << 6)
--#define MXT_T9_DETECT		(1 << 7)
-+#define MXT_T9_UNGRIP		BIT(0)
-+#define MXT_T9_SUPPRESS		BIT(1)
-+#define MXT_T9_AMP		BIT(2)
-+#define MXT_T9_VECTOR		BIT(3)
-+#define MXT_T9_MOVE		BIT(4)
-+#define MXT_T9_RELEASE		BIT(5)
-+#define MXT_T9_PRESS		BIT(6)
-+#define MXT_T9_DETECT		BIT(7)
- 
- struct t9_range {
- 	__le16 x;
-@@ -119,36 +155,70 @@ struct t9_range {
- } __packed;
- 
- /* MXT_TOUCH_MULTI_T9 orient */
--#define MXT_T9_ORIENT_SWITCH	(1 << 0)
-+#define MXT_T9_ORIENT_SWITCH	BIT(0)
-+#define MXT_T9_ORIENT_INVERTX	BIT(1)
-+#define MXT_T9_ORIENT_INVERTY	BIT(2)
- 
- /* MXT_SPT_COMMSCONFIG_T18 */
- #define MXT_COMMS_CTRL		0
- #define MXT_COMMS_CMD		1
- 
-+/* MXT_DEBUG_DIAGNOSTIC_T37 */
-+#define MXT_DIAGNOSTIC_PAGEUP	0x01
-+#define MXT_DIAGNOSTIC_DELTAS	0x10
-+#define MXT_DIAGNOSTIC_REFS	0x11
-+#define MXT_DIAGNOSTIC_SIZE	128
-+
-+#define MXT_FAMILY_1386			160
-+#define MXT1386_COLUMNS			3
-+#define MXT1386_PAGES_PER_COLUMN	8
-+
-+struct t37_debug {
-+#ifdef CONFIG_TOUCHSCREEN_ATMEL_MXT_T37
-+	u8 mode;
-+	u8 page;
-+	u8 data[MXT_DIAGNOSTIC_SIZE];
-+#endif
-+};
-+
- /* Define for MXT_GEN_COMMAND_T6 */
- #define MXT_BOOT_VALUE		0xa5
- #define MXT_RESET_VALUE		0x01
- #define MXT_BACKUP_VALUE	0x55
-+#define MXT_BACKUP_W_STOP	0x33
-+
-+/* Define for MXT_PROCI_TOUCHSUPPRESSION_T42 */
-+#define MXT_T42_MSG_TCHSUP	BIT(0)
- 
- /* T100 Multiple Touch Touchscreen */
- #define MXT_T100_CTRL		0
- #define MXT_T100_CFG1		1
- #define MXT_T100_TCHAUX		3
-+#define MXT_T100_XSIZE		9
- #define MXT_T100_XRANGE		13
-+#define MXT_T100_YSIZE		20
- #define MXT_T100_YRANGE		24
-+#define MXT_T100_AUX_OFFSET	6
-+#define MXT_RSVD_RPTIDS		2
-+#define MXT_MIN_RPTID_SEC	18
- 
- #define MXT_T100_CFG_SWITCHXY	BIT(5)
-+#define MXT_T100_CFG_INVERTY	BIT(6)
-+#define MXT_T100_CFG_INVERTX	BIT(7)
- 
- #define MXT_T100_TCHAUX_VECT	BIT(0)
- #define MXT_T100_TCHAUX_AMPL	BIT(1)
- #define MXT_T100_TCHAUX_AREA	BIT(2)
--
- #define MXT_T100_DETECT		BIT(7)
--#define MXT_T100_TYPE_MASK	0x70
-+
-+#define MXT_T100_TYPE_MASK		0x70
-+#define MXT_T100_ENABLE_BIT_MASK	0x01
-+
- 
- enum t100_type {
- 	MXT_T100_TYPE_FINGER		= 1,
- 	MXT_T100_TYPE_PASSIVE_STYLUS	= 2,
-+	MXT_T100_TYPE_ACTIVE_STYLUS	= 3,
- 	MXT_T100_TYPE_HOVERING_FINGER	= 4,
- 	MXT_T100_TYPE_GLOVE		= 5,
- 	MXT_T100_TYPE_LARGE_TOUCH	= 6,
-@@ -160,13 +230,27 @@ enum t100_type {
- #define MXT_TOUCH_MAJOR_DEFAULT		1
- #define MXT_PRESSURE_DEFAULT		1
- 
-+/* Gen2 Active Stylus */
-+#define MXT_T107_STYLUS_STYAUX		42
-+#define MXT_T107_STYLUS_STYAUX_PRESSURE	BIT(0)
-+#define MXT_T107_STYLUS_STYAUX_PEAK	BIT(4)
-+
-+#define MXT_T107_STYLUS_HOVER		BIT(0)
-+#define MXT_T107_STYLUS_TIPSWITCH	BIT(1)
-+#define MXT_T107_STYLUS_BUTTON0		BIT(2)
-+#define MXT_T107_STYLUS_BUTTON1		BIT(3)
-+
- /* Delay times */
- #define MXT_BACKUP_TIME		50	/* msec */
-+#define MXT_RESET_GPIO_TIME	20	/* msec */
-+#define MXT_RESET_INVALID_CHG	100	/* msec */
- #define MXT_RESET_TIME		200	/* msec */
- #define MXT_RESET_TIMEOUT	3000	/* msec */
- #define MXT_CRC_TIMEOUT		1000	/* msec */
-+#define MXT_FW_FLASH_TIME	1000	/* msec */
- #define MXT_FW_RESET_TIME	3000	/* msec */
- #define MXT_FW_CHG_TIMEOUT	300	/* msec */
-+#define MXT_BOOTLOADER_WAIT	3000	/* msec */
- 
- /* Command to unlock bootloader */
- #define MXT_UNLOCK_CMD_MSB	0xaa
-@@ -180,14 +264,16 @@ enum t100_type {
- #define MXT_FRAME_CRC_PASS	0x04
- #define MXT_APP_CRC_FAIL	0x40	/* valid 7 8 bit only */
- #define MXT_BOOT_STATUS_MASK	0x3f
--#define MXT_BOOT_EXTENDED_ID	(1 << 5)
-+#define MXT_BOOT_EXTENDED_ID	BIT(5)
- #define MXT_BOOT_ID_MASK	0x1f
- 
- /* Touchscreen absolute values */
- #define MXT_MAX_AREA		0xff
--
- #define MXT_PIXELS_PER_MM	20
- 
-+/* Debug message size max */
-+#define DEBUG_MSG_MAX		200
-+
- struct mxt_info {
- 	u8 family_id;
- 	u8 variant_id;
-@@ -206,26 +292,84 @@ struct mxt_object {
- 	u8 num_report_ids;
- } __packed;
- 
-+struct mxt_dbg {
-+	u16 t37_address;
-+	u16 diag_cmd_address;
-+	struct t37_debug *t37_buf;
-+	unsigned int t37_pages;
-+	unsigned int t37_nodes;
-+
-+	struct v4l2_device v4l2;
-+	struct v4l2_pix_format format;
-+	struct video_device vdev;
-+	struct vb2_queue queue;
-+	struct mutex lock;
-+	int input;
-+};
-+
-+enum v4l_dbg_inputs {
-+	MXT_V4L_INPUT_DELTAS,
-+	MXT_V4L_INPUT_REFS,
-+	MXT_V4L_INPUT_MAX,
-+};
-+
-+static const struct v4l2_file_operations mxt_video_fops = {
-+	.owner = THIS_MODULE,
-+	.open = v4l2_fh_open,
-+	.release = vb2_fop_release,
-+	.unlocked_ioctl = video_ioctl2,
-+	.read = vb2_fop_read,
-+	.mmap = vb2_fop_mmap,
-+	.poll = vb2_fop_poll,
-+};
-+
-+enum mxt_suspend_mode {
-+	MXT_SUSPEND_DEEP_SLEEP	= 0,
-+	MXT_SUSPEND_T9_CTRL	= 1,
-+};
-+
-+/* Config update context */
-+struct mxt_cfg {
-+	u8 *raw;
-+	size_t raw_size;
-+	off_t raw_pos;
-+
-+	u8 *mem;
-+	size_t mem_size;
-+	int start_ofs;
-+
-+	struct mxt_info info;
-+};
-+
- /* Each client has this additional data */
- struct mxt_data {
- 	struct i2c_client *client;
- 	struct input_dev *input_dev;
-+	struct input_dev *input_dev_sec;
- 	char phys[64];		/* device physical location */
--	const struct mxt_platform_data *pdata;
- 	struct mxt_object *object_table;
--	struct mxt_info info;
-+	struct mxt_info *info;
-+	void *raw_info_block;
- 	unsigned int irq;
- 	unsigned int max_x;
- 	unsigned int max_y;
--	bool invert_x;
--	bool invert_y;
--	bool swap_x_y;
-+	bool invertx;
-+	bool inverty;
- 	bool xy_switch;
-+	u8 xsize;
-+	u8 ysize;
- 	bool in_bootloader;
- 	u16 mem_size;
- 	u8 t100_aux_ampl;
- 	u8 t100_aux_area;
- 	u8 t100_aux_vect;
-+	struct bin_attribute mem_access_attr;
-+	bool debug_enabled;
-+	bool debug_v2_enabled;
-+	u8 *debug_msg_data;
-+	u16 debug_msg_count;
-+	struct bin_attribute debug_msg_attr;
-+	struct mutex debug_msg_lock;
- 	u8 max_reportid;
- 	u32 config_crc;
- 	u32 info_crc;
-@@ -233,10 +377,16 @@ struct mxt_data {
- 	u8 *msg_buf;
- 	u8 t6_status;
- 	bool update_input;
-+	bool update_input_sec;
- 	u8 last_message_count;
- 	u8 num_touchids;
- 	u8 multitouch;
- 	struct t7_config t7_cfg;
-+	unsigned long t15_keystatus;
-+	u8 stylus_aux_pressure;
-+	u8 stylus_aux_peak;
-+	struct mxt_dbg dbg;
-+	struct gpio_desc *reset_gpio;
- 
- 	/* Cached parameters from object table */
- 	u16 T5_address;
-@@ -244,12 +394,52 @@ struct mxt_data {
- 	u8 T6_reportid;
- 	u16 T6_address;
- 	u16 T7_address;
-+	u16 T14_address;
-+	u16 T71_address;
- 	u8 T9_reportid_min;
- 	u8 T9_reportid_max;
--	u8 T19_reportid;
-+	u8 T15_reportid_min;
-+	u8 T15_reportid_max;
-+	u16 T18_address;
-+	u8 T19_reportid_min;
-+	u8 T24_reportid_min;
-+	u8 T24_reportid_max;
-+	u8 T25_reportid_min;
-+	u8 T27_reportid_min;
-+	u8 T27_reportid_max;
-+	u8 T42_reportid_min;
-+	u8 T42_reportid_max;
- 	u16 T44_address;
-+	u8 T46_reportid_min;	
-+	u8 T48_reportid_min;
-+	u8 T56_reportid_min;
-+	u8 T61_reportid_min;
-+	u8 T61_reportid_max;
-+	u8 T65_reportid_min;
-+	u8 T65_reportid_max;
-+	u8 T68_reportid_min;
-+	u8 T70_reportid_min;
-+	u8 T70_reportid_max;
-+	u8 T72_reportid_min;
-+	u8 T80_reportid_min;
-+	u8 T80_reportid_max;
-+	u16 T92_address;
-+	u8 T92_reportid_min;
-+	u16 T93_address;
-+	u8 T93_reportid_min;
- 	u8 T100_reportid_min;
- 	u8 T100_reportid_max;
-+	u16 T107_address;
-+	u8 T108_reportid_min;
-+	u8 T109_reportid_min;
-+	u8 T112_reportid_min;
-+	u8 T112_reportid_max;
-+	u8 T129_reportid_min;
-+	u8 T133_reportid_min;
-+	
-+	/* Cached instance parameter */
-+	u8 T100_instances;
-+	u8 T15_instances;
- 
- 	/* for fw update in bootloader */
- 	struct completion bl_completion;
-@@ -259,23 +449,24 @@ struct mxt_data {
- 
- 	/* for config update handling */
- 	struct completion crc_completion;
--};
- 
--static void mxt_apply_prop_to_x_y(const struct mxt_data *data,
--                             int *x, int *y)
--{
--        if (data->invert_x)
--                *x = data->max_x - *x;
-+	u32 *t19_keymap;
-+	unsigned int t19_num_keys;
- 
--        if (data->invert_y)
--                *y = data->max_y - *y;
-+	u32 *t15_keymap;
-+	unsigned int t15_num_keys;
- 
--        if (data->swap_x_y)
--                swap(*x, *y);
--}
-+	enum mxt_suspend_mode suspend_mode;
- 
-+	/* Indicates whether device is updating configuration */
-+	bool sysfs_updating_config;
- 
-+};
- 
-+struct mxt_vb2_buffer {
-+	struct vb2_buffer	vb;
-+	struct list_head	list;
-+};
- 
- static size_t mxt_obj_size(const struct mxt_object *obj)
- {
-@@ -298,6 +489,7 @@ static bool mxt_object_readable(unsigned int type)
- 	case MXT_TOUCH_KEYARRAY_T15:
- 	case MXT_TOUCH_PROXIMITY_T23:
- 	case MXT_TOUCH_PROXKEY_T52:
-+	case MXT_TOUCH_MULTITOUCHSCREEN_T100:
- 	case MXT_PROCI_GRIPFACE_T20:
- 	case MXT_PROCG_NOISE_T22:
- 	case MXT_PROCI_ONETOUCH_T24:
-@@ -314,6 +506,16 @@ static bool mxt_object_readable(unsigned int type)
- 	case MXT_SPT_USERDATA_T38:
- 	case MXT_SPT_DIGITIZER_T43:
- 	case MXT_SPT_CTECONFIG_T46:
-+	case MXT_PROCI_SHIELDLESS_T56:
-+	case MXT_SPT_TIMER_T61:
-+	case MXT_PROCI_LENSBENDING_T65:
-+	case MXT_SPT_DYNAMICCONFIGURATIONCONTROLLER_T70:
-+	case MXT_SPT_DYNAMICCONFIGURATIONCONTAINER_T71:
-+	case MXT_NOISESUPPRESSION_T72:
-+	case MXT_PROCI_GLOVEDETECTION_T78:
-+	case MXT_SPT_TOUCHEVENTTRIGGER_T79:
-+	case MXT_PROCI_RETRANSMISSIONCOMPENSATION_T80:
-+
- 		return true;
- 	default:
- 		return false;
-@@ -326,6 +528,136 @@ static void mxt_dump_message(struct mxt_data *data, u8 *message)
- 		data->T5_msg_size, message);
- }
- 
-+static void mxt_debug_msg_enable(struct mxt_data *data)
-+{
-+	struct device *dev = &data->client->dev;
-+
-+	if (data->debug_v2_enabled)
-+		return;
-+
-+	mutex_lock(&data->debug_msg_lock);
-+
-+	data->debug_msg_data = kcalloc(DEBUG_MSG_MAX,
-+				data->T5_msg_size, GFP_KERNEL);
-+	if (!data->debug_msg_data)
-+		return;
-+
-+	data->debug_v2_enabled = true;
-+	mutex_unlock(&data->debug_msg_lock);
-+
-+	dev_dbg(dev, "Enabled message output\n");
-+}
-+
-+static void mxt_debug_msg_disable(struct mxt_data *data)
-+{
-+	struct device *dev = &data->client->dev;
-+
-+	if (!data->debug_v2_enabled)
-+		return;
-+
-+	data->debug_v2_enabled = false;
-+
-+	mutex_lock(&data->debug_msg_lock);
-+	kfree(data->debug_msg_data);
-+	data->debug_msg_data = NULL;
-+	data->debug_msg_count = 0;
-+	mutex_unlock(&data->debug_msg_lock);
-+	dev_dbg(dev, "Disabled message output\n");
-+}
-+
-+static void mxt_debug_msg_add(struct mxt_data *data, u8 *msg)
-+{
-+	struct device *dev = &data->client->dev;
-+
-+	mutex_lock(&data->debug_msg_lock);
-+
-+	if (!data->debug_msg_data) {
-+		dev_err(dev, "No buffer!\n");
-+		return;
-+	}
-+
-+	if (data->debug_msg_count < DEBUG_MSG_MAX) {
-+		memcpy(data->debug_msg_data +
-+		       data->debug_msg_count * data->T5_msg_size,
-+		       msg,
-+		       data->T5_msg_size);
-+		data->debug_msg_count++;
-+	} else {
-+		dev_dbg(dev, "Discarding %u messages\n", data->debug_msg_count);
-+		data->debug_msg_count = 0;
-+	}
-+
-+	mutex_unlock(&data->debug_msg_lock);
-+
-+	sysfs_notify(&data->client->dev.kobj, NULL, "debug_notify");
-+}
-+
-+static ssize_t mxt_debug_msg_write(struct file *filp, struct kobject *kobj,
-+	struct bin_attribute *bin_attr, char *buf, loff_t off,
-+	size_t count)
-+{
-+	return -EIO;
-+}
-+
-+static ssize_t mxt_debug_msg_read(struct file *filp, struct kobject *kobj,
-+	struct bin_attribute *bin_attr, char *buf, loff_t off, size_t bytes)
-+{
-+	struct device *dev = container_of(kobj, struct device, kobj);
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	int count;
-+	size_t bytes_read;
-+
-+	if (!data->debug_msg_data) {
-+		dev_err(dev, "No buffer!\n");
-+		return 0;
-+	}
-+
-+	count = bytes / data->T5_msg_size;
-+
-+	if (count > DEBUG_MSG_MAX)
-+		count = DEBUG_MSG_MAX;
-+
-+	mutex_lock(&data->debug_msg_lock);
-+
-+	if (count > data->debug_msg_count)
-+		count = data->debug_msg_count;
-+
-+	bytes_read = count * data->T5_msg_size;
-+
-+	memcpy(buf, data->debug_msg_data, bytes_read);
-+	data->debug_msg_count = 0;
-+
-+	mutex_unlock(&data->debug_msg_lock);
-+
-+	return bytes_read;
-+}
-+
-+static int mxt_debug_msg_init(struct mxt_data *data)
-+{
-+	sysfs_bin_attr_init(&data->debug_msg_attr);
-+	data->debug_msg_attr.attr.name = "debug_msg";
-+	data->debug_msg_attr.attr.mode = 0666;
-+	data->debug_msg_attr.read = mxt_debug_msg_read;
-+	data->debug_msg_attr.write = mxt_debug_msg_write;
-+	data->debug_msg_attr.size = data->T5_msg_size * DEBUG_MSG_MAX;
-+
-+	if (sysfs_create_bin_file(&data->client->dev.kobj,
-+				  &data->debug_msg_attr) < 0) {
-+		dev_err(&data->client->dev, "Failed to create %s\n",
-+			data->debug_msg_attr.attr.name);
-+		return -EINVAL;
-+	}
-+
-+	return 0;
-+}
-+
-+static void mxt_debug_msg_remove(struct mxt_data *data)
-+{
-+	if (data->debug_msg_attr.attr.name)
-+		sysfs_remove_bin_file(&data->client->dev.kobj,
-+				      &data->debug_msg_attr);
-+}
-+
- static int mxt_wait_for_completion(struct mxt_data *data,
- 				   struct completion *comp,
- 				   unsigned int timeout_ms)
-@@ -373,13 +705,21 @@ static int mxt_bootloader_write(struct mxt_data *data,
- {
- 	int ret;
- 	struct i2c_msg msg;
-+	u8 *data_buf;
-+
-+	data_buf = kmalloc(count, GFP_KERNEL);
-+	if (!data_buf)
-+		return -ENOMEM;
-+	
-+	memcpy(&data_buf[0], val, count);
- 
- 	msg.addr = data->bootloader_addr;
- 	msg.flags = data->client->flags & I2C_M_TEN;
- 	msg.len = count;
--	msg.buf = (u8 *)val;
-+	msg.buf = data_buf;
- 
- 	ret = i2c_transfer(data->client->adapter, &msg, 1);
-+
- 	if (ret == 1) {
- 		ret = 0;
- 	} else {
-@@ -395,12 +735,13 @@ static int mxt_lookup_bootloader_address(struct mxt_data *data, bool retry)
- {
- 	u8 appmode = data->client->addr;
- 	u8 bootloader;
-+	u8 family_id = data->info ? data->info->family_id : 0;
- 
- 	switch (appmode) {
- 	case 0x4a:
- 	case 0x4b:
- 		/* Chips after 1664S use different scheme */
--		if (retry || data->info.family_id >= 0xa2) {
-+		if (retry || family_id >= 0xa2) {
- 			bootloader = appmode - 0x24;
- 			break;
- 		}
-@@ -420,6 +761,9 @@ static int mxt_lookup_bootloader_address(struct mxt_data *data, bool retry)
- 	}
- 
- 	data->bootloader_addr = bootloader;
-+
-+	dev_info(&data->client->dev, "Bootloader address: %x\n", bootloader);
-+
- 	return 0;
- }
- 
-@@ -621,13 +965,12 @@ static int mxt_write_reg(struct i2c_client *client, u16 reg, u8 val)
- 	return __mxt_write_reg(client, reg, 1, &val);
- }
- 
--static struct mxt_object *
--mxt_get_object(struct mxt_data *data, u8 type)
-+static struct mxt_object *mxt_get_object(struct mxt_data *data, u8 type)
- {
- 	struct mxt_object *object;
- 	int i;
- 
--	for (i = 0; i < data->info.object_num; i++) {
-+	for (i = 0; i < data->info->object_num; i++) {
- 		object = data->object_table + i;
- 		if (object->type == type)
- 			return object;
-@@ -643,13 +986,13 @@ static void mxt_proc_t6_messages(struct mxt_data *data, u8 *msg)
- 	u8 status = msg[1];
- 	u32 crc = msg[2] | (msg[3] << 8) | (msg[4] << 16);
- 
--	complete(&data->crc_completion);
--
- 	if (crc != data->config_crc) {
- 		data->config_crc = crc;
- 		dev_dbg(dev, "T6 Config Checksum: 0x%06X\n", crc);
- 	}
- 
-+	complete(&data->crc_completion);
-+
- 	/* Detect reset */
- 	if (status & MXT_T6_STATUS_RESET)
- 		complete(&data->reset_completion);
-@@ -687,15 +1030,14 @@ static int mxt_write_object(struct mxt_data *data,
- static void mxt_input_button(struct mxt_data *data, u8 *message)
- {
- 	struct input_dev *input = data->input_dev;
--	const struct mxt_platform_data *pdata = data->pdata;
- 	int i;
- 
--	for (i = 0; i < pdata->t19_num_keys; i++) {
--		if (pdata->t19_keymap[i] == KEY_RESERVED)
-+	for (i = 0; i < data->t19_num_keys; i++) {
-+		if (data->t19_keymap[i] == KEY_RESERVED)
- 			continue;
- 
- 		/* Active-low switch */
--		input_report_key(input, pdata->t19_keymap[i],
-+		input_report_key(input, data->t19_keymap[i],
- 				 !(message[1] & BIT(i)));
- 	}
- }
-@@ -703,8 +1045,14 @@ static void mxt_input_button(struct mxt_data *data, u8 *message)
- static void mxt_input_sync(struct mxt_data *data)
- {
- 	input_mt_report_pointer_emulation(data->input_dev,
--					  data->pdata->t19_num_keys);
--	input_sync(data->input_dev);
-+					  data->t19_num_keys);
-+	
-+	if (data->update_input) 
-+		input_sync(data->input_dev);
-+	
-+	if (data->update_input_sec)
-+		input_sync(data->input_dev_sec);
-+	
- }
- 
- static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
-@@ -717,6 +1065,7 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
- 	int y;
- 	int area;
- 	int amplitude;
-+	int tool;
- 
- 	id = message[0] - data->T9_reportid_min;
- 	status = message[1];
-@@ -759,10 +1108,20 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
- 			mxt_input_sync(data);
- 		}
- 
-+		/* A size of zero indicates touch is from a linked T47 Stylus */
-+		if (area == 0) {
-+			area = MXT_TOUCH_MAJOR_DEFAULT;
-+			tool = MT_TOOL_PEN;
-+		} else {
-+			tool = MT_TOOL_FINGER;
-+		}
-+
-+		/* if active, pressure must be non-zero */
-+		if (!amplitude)
-+			amplitude = MXT_PRESSURE_DEFAULT;
-+
- 		/* Touch active */
--		input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, 1);
--		mxt_apply_prop_to_x_y(data, &x, &y);
--		
-+		input_mt_report_slot_state(input_dev, tool, 1);
- 		input_report_abs(input_dev, ABS_MT_POSITION_X, x);
- 		input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
- 		input_report_abs(input_dev, ABS_MT_PRESSURE, amplitude);
-@@ -779,27 +1138,38 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- {
- 	struct device *dev = &data->client->dev;
- 	struct input_dev *input_dev = data->input_dev;
--	int id;
-+	struct input_dev *input_dev_sec = data->input_dev_sec;
-+	int id = 0;
-+	int id_sec = 0;
- 	u8 status;
- 	u8 type = 0;
--	/*u16*/ int x;
--	/*u16*/ int y;
-+	u16 x;
-+	u16 y;
- 	int distance = 0;
- 	int tool = 0;
- 	u8 major = 0;
- 	u8 pressure = 0;
- 	u8 orientation = 0;
-+	bool hover = false;
-+	
-+	/* Determine id of touch messages only */
-+	id = (message[0] - data->T100_reportid_min - MXT_RSVD_RPTIDS);
-+	
-+	if (id >= MXT_MIN_RPTID_SEC) {
-+		id_sec = (message[0] - data->T100_reportid_min - MXT_MIN_RPTID_SEC - 
-+			MXT_RSVD_RPTIDS);
-+	}
- 
--	id = message[0] - data->T100_reportid_min - 2;
--
--	/* ignore SCRSTATUS events */
--	if (id < 0)
-+	/* Skip SCRSTATUS events */
-+	if (id < 0 || id_sec < 0)
- 		return;
- 
- 	status = message[1];
- 	x = get_unaligned_le16(&message[2]);
- 	y = get_unaligned_le16(&message[4]);
--
-+	
-+	/* Get other auxdata[] bytes if present */
-+	
- 	if (status & MXT_T100_DETECT) {
- 		type = (status & MXT_T100_TYPE_MASK) >> 4;
- 
-@@ -807,6 +1177,7 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- 		case MXT_T100_TYPE_HOVERING_FINGER:
- 			tool = MT_TOOL_FINGER;
- 			distance = MXT_DISTANCE_HOVERING;
-+			hover = true;
- 
- 			if (data->t100_aux_vect)
- 				orientation = message[data->t100_aux_vect];
-@@ -817,6 +1188,7 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- 		case MXT_T100_TYPE_GLOVE:
- 			tool = MT_TOOL_FINGER;
- 			distance = MXT_DISTANCE_ACTIVE_TOUCH;
-+			hover = false;
- 
- 			if (data->t100_aux_area)
- 				major = message[data->t100_aux_area];
-@@ -831,6 +1203,8 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- 
- 		case MXT_T100_TYPE_PASSIVE_STYLUS:
- 			tool = MT_TOOL_PEN;
-+			distance = MXT_DISTANCE_ACTIVE_TOUCH;
-+			hover = false;
- 
- 			/*
- 			 * Passive stylus is reported with size zero so
-@@ -843,6 +1217,30 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- 
- 			break;
- 
-+		case MXT_T100_TYPE_ACTIVE_STYLUS:
-+			/* Report input buttons */
-+			input_report_key(input_dev, BTN_STYLUS,
-+					 message[6] & MXT_T107_STYLUS_BUTTON0);
-+			input_report_key(input_dev, BTN_STYLUS2,
-+					 message[6] & MXT_T107_STYLUS_BUTTON1);
-+
-+			/* stylus in range, but position unavailable */
-+			if (!(message[6] & MXT_T107_STYLUS_HOVER))
-+				break;
-+
-+			tool = MT_TOOL_PEN;
-+			distance = MXT_DISTANCE_ACTIVE_TOUCH;
-+			major = MXT_TOUCH_MAJOR_DEFAULT;
-+
-+			if (!(message[6] & MXT_T107_STYLUS_TIPSWITCH)) {
-+				hover = true;
-+				distance = MXT_DISTANCE_HOVERING;
-+			} else if (data->stylus_aux_pressure) {
-+				pressure = message[data->stylus_aux_pressure];
-+			}
-+
-+			break;
-+
- 		case MXT_T100_TYPE_LARGE_TOUCH:
- 			/* Ignore suppressed touch */
- 			break;
-@@ -857,42 +1255,169 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- 	 * Values reported should be non-zero if tool is touching the
- 	 * device
- 	 */
--	if (!pressure && type != MXT_T100_TYPE_HOVERING_FINGER)
-+	if (!pressure && !hover)
- 		pressure = MXT_PRESSURE_DEFAULT;
- 
--	input_mt_slot(input_dev, id);
--
-+	if (id >= MXT_MIN_RPTID_SEC) {
-+		input_mt_slot(input_dev_sec, id_sec);
-+	} else {
-+		input_mt_slot(input_dev, id);
-+	}
-+		
- 	if (status & MXT_T100_DETECT) {
--		dev_dbg(dev, "[%u] type:%u x:%u y:%u a:%02X p:%02X v:%02X\n",
-+		
-+		if (id >= MXT_MIN_RPTID_SEC) {
-+			dev_dbg(dev, "id:[%u] type:%u x:%u y:%u a:%02X p:%02X v:%02X\n",
-+			id_sec, type, x, y, major, pressure, orientation);
-+		} else {
-+			dev_dbg(dev, "id:[%u] type:%u x:%u y:%u a:%02X p:%02X v:%02X\n",
- 			id, type, x, y, major, pressure, orientation);
-+		}
-+		
-+		if (id >= MXT_MIN_RPTID_SEC) {	
-+			input_mt_report_slot_state(input_dev_sec, tool, 1);
-+		  	input_report_abs(input_dev_sec, ABS_MT_POSITION_X, x);
-+		  	input_report_abs(input_dev_sec, ABS_MT_POSITION_Y, y);
-+		  	input_report_abs(input_dev_sec, ABS_MT_TOUCH_MAJOR, major);
-+		  	input_report_abs(input_dev_sec, ABS_MT_PRESSURE, pressure);
-+		  	input_report_abs(input_dev_sec, ABS_MT_DISTANCE, distance);
-+		  	input_report_abs(input_dev_sec, ABS_MT_ORIENTATION, orientation);
-+			
-+			if (id == MXT_MIN_RPTID_SEC) {
-+				input_report_abs(input_dev_sec, ABS_X, x);
-+				input_report_abs(input_dev_sec, ABS_Y, y);
-+				input_report_key(input_dev_sec, BTN_TOUCH, 1);
-+			}
-+		} else {
-+		  	input_mt_report_slot_state(input_dev, tool, 1);
-+		  	input_report_abs(input_dev, ABS_MT_POSITION_X, x);
-+		  	input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
-+		  	input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, major);
-+		  	input_report_abs(input_dev, ABS_MT_PRESSURE, pressure);
-+		  	input_report_abs(input_dev, ABS_MT_DISTANCE, distance);
-+		  	input_report_abs(input_dev, ABS_MT_ORIENTATION, orientation);
-+		}
-+	} else {
-+		 
-+		if (id >= MXT_MIN_RPTID_SEC){
-+			dev_dbg(dev, "[%u] release\n", id_sec);
- 
--		input_mt_report_slot_state(input_dev, tool, 1);
--		mxt_apply_prop_to_x_y(data, &x, &y);
--		input_report_abs(input_dev, ABS_MT_POSITION_X, x);
--		input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
--		input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, major);
--		input_report_abs(input_dev, ABS_MT_PRESSURE, pressure);
--		input_report_abs(input_dev, ABS_MT_DISTANCE, distance);
--		input_report_abs(input_dev, ABS_MT_ORIENTATION, orientation);
-+			/* close out slot */
-+			input_mt_report_slot_state(input_dev_sec, 0, 0);
-+
-+			/* Set BTN_TOUCH to 0 */
-+			if (id == MXT_MIN_RPTID_SEC)
-+				input_report_key(input_dev_sec, BTN_TOUCH, 0);
-+
-+		} else {
-+			dev_dbg(dev, "[%u] release\n", id);
-+
-+			/* close out slot */
-+		  	input_mt_report_slot_state(input_dev, 0, 0);
-+		}
-+	}
-+	
-+	if (id >= MXT_MIN_RPTID_SEC) {
-+		data->update_input_sec = true;
- 	} else {
--		dev_dbg(dev, "[%u] release\n", id);
-+		data->update_input = true;
-+	}
-+}
- 
--		/* close out slot */
--		input_mt_report_slot_state(input_dev, 0, 0);
-+static void mxt_proc_t15_messages(struct mxt_data *data, u8 *msg)
-+{
-+	struct input_dev *input_dev = data->input_dev;
-+	struct device *dev = &data->client->dev;
-+	int key;
-+	bool curr_state, new_state;
-+	bool sync = false;
-+	unsigned long keystates = le32_to_cpu(msg[2]);
-+
-+	for (key = 0; key < data->t15_num_keys; key++) {
-+		curr_state = test_bit(key, &data->t15_keystatus);
-+		new_state = test_bit(key, &keystates);
-+
-+		if (!curr_state && new_state) {
-+			dev_dbg(dev, "T15 key press: %u\n", key);
-+			__set_bit(key, &data->t15_keystatus);
-+			input_event(input_dev, EV_KEY,
-+				    data->t15_keymap[key], 1);
-+			sync = true;
-+		} else if (curr_state && !new_state) {
-+			dev_dbg(dev, "T15 key release: %u\n", key);
-+			__clear_bit(key, &data->t15_keystatus);
-+			input_event(input_dev, EV_KEY,
-+				    data->t15_keymap[key], 0);
-+			sync = true;
-+		}
- 	}
- 
--	data->update_input = true;
-+	if (sync)
-+		input_sync(input_dev);
-+}
-+
-+static void mxt_proc_t42_messages(struct mxt_data *data, u8 *msg)
-+{
-+	struct device *dev = &data->client->dev;
-+	u8 status = msg[1];
-+
-+	if (status & MXT_T42_MSG_TCHSUP)
-+		dev_info(dev, "T42 suppress\n");
-+	else
-+		dev_info(dev, "T42 normal\n");
-+}
-+
-+static int mxt_proc_t48_messages(struct mxt_data *data, u8 *msg)
-+{
-+	struct device *dev = &data->client->dev;
-+	u8 status, state;
-+
-+	status = msg[1];
-+	state  = msg[4];
-+
-+	dev_dbg(dev, "T48 state %d status %02X %s%s%s%s%s\n", state, status,
-+		status & 0x01 ? "FREQCHG " : "",
-+		status & 0x02 ? "APXCHG " : "",
-+		status & 0x04 ? "ALGOERR " : "",
-+		status & 0x10 ? "STATCHG " : "",
-+		status & 0x20 ? "NLVLCHG " : "");
-+
-+	return 0;
-+}
-+
-+static void mxt_proc_t92_messages(struct mxt_data *data, u8 *msg)
-+{
-+	struct device *dev = &data->client->dev;
-+	u8 status = msg[1];
-+
-+	dev_info(dev, "T92 long stroke LSTR=%d %d\n",
-+		 (status & 0x80) ? 1 : 0,
-+		 status & 0x0F);
-+}
-+
-+static void mxt_proc_t93_messages(struct mxt_data *data, u8 *msg)
-+{
-+	struct device *dev = &data->client->dev;
-+	u8 status = msg[1];
-+
-+	dev_info(dev, "T93 report double tap %d\n", status);
- }
- 
- static int mxt_proc_message(struct mxt_data *data, u8 *message)
- {
- 	u8 report_id = message[0];
-+	bool dump = data->debug_enabled;
- 
- 	if (report_id == MXT_RPTID_NOMSG)
- 		return 0;
- 
- 	if (report_id == data->T6_reportid) {
- 		mxt_proc_t6_messages(data, message);
-+	} else if (report_id >= data->T42_reportid_min
-+		   && report_id <= data->T42_reportid_max) {
-+		mxt_proc_t42_messages(data, message);
-+	} else if (report_id == data->T48_reportid_min) {
-+		mxt_proc_t48_messages(data, message);
- 	} else if (!data->input_dev) {
- 		/*
- 		 * Do not report events if input device
-@@ -905,13 +1430,26 @@ static int mxt_proc_message(struct mxt_data *data, u8 *message)
- 	} else if (report_id >= data->T100_reportid_min &&
- 		   report_id <= data->T100_reportid_max) {
- 		mxt_proc_t100_message(data, message);
--	} else if (report_id == data->T19_reportid) {
-+	} else if (report_id == data->T19_reportid_min) {
- 		mxt_input_button(data, message);
- 		data->update_input = true;
-+	} else if (report_id >= data->T15_reportid_min
-+		   && report_id <= data->T15_reportid_max) {
-+		mxt_proc_t15_messages(data, message);
-+	} else if (report_id == data->T92_reportid_min) {
-+		mxt_proc_t92_messages(data, message);
-+	} else if (report_id == data->T93_reportid_min) {
-+		mxt_proc_t93_messages(data, message);
- 	} else {
- 		mxt_dump_message(data, message);
- 	}
- 
-+	if (dump)
-+		mxt_dump_message(data, message);
-+
-+	if (data->debug_v2_enabled)
-+		mxt_debug_msg_add(data, message);
-+
- 	return 1;
- }
- 
-@@ -993,9 +1531,14 @@ static irqreturn_t mxt_process_messages_t44(struct mxt_data *data)
- 	}
- 
- end:
--	if (data->update_input) {
-+	if (data->update_input || data->update_input_sec) {
- 		mxt_input_sync(data);
--		data->update_input = false;
-+		
-+		if (data->update_input)
-+			data->update_input = false;
-+		
-+		if (data->update_input_sec)
-+			data->update_input_sec = false;
- 	}
- 
- 	return IRQ_HANDLED;
-@@ -1016,9 +1559,14 @@ static int mxt_process_messages_until_invalid(struct mxt_data *data)
- 			return 0;
- 	} while (--tries);
- 
--	if (data->update_input) {
-+	if (data->update_input || data->update_input_sec ) {
- 		mxt_input_sync(data);
--		data->update_input = false;
-+		
-+		if(data->update_input)
-+			data->update_input = false;
-+		
-+		if(data->update_input_sec)
-+			data->update_input_sec = false;
- 	}
- 
- 	dev_err(dev, "CHG pin isn't cleared\n");
-@@ -1056,9 +1604,14 @@ static irqreturn_t mxt_process_messages(struct mxt_data *data)
- update_count:
- 	data->last_message_count = total_handled;
- 
--	if (data->update_input) {
-+	if (data->update_input || data->update_input_sec) {
- 		mxt_input_sync(data);
--		data->update_input = false;
-+		
-+		if(data->update_input)
-+			data->update_input = false;
-+		
-+		if(data->update_input_sec)
-+			data->update_input_sec = false;
- 	}
- 
- 	return IRQ_HANDLED;
-@@ -1145,7 +1698,7 @@ static int mxt_soft_reset(struct mxt_data *data)
- 		return ret;
- 
- 	/* Ignore CHG line for 100ms after reset */
--	msleep(100);
-+	msleep(MXT_RESET_INVALID_CHG);
- 
- 	mxt_acquire_irq(data);
- 
-@@ -1214,12 +1767,7 @@ static u32 mxt_calculate_crc(u8 *base, off_t start_off, off_t end_off)
- 	return crc;
- }
- 
--static int mxt_prepare_cfg_mem(struct mxt_data *data,
--			       const struct firmware *cfg,
--			       unsigned int data_pos,
--			       unsigned int cfg_start_ofs,
--			       u8 *config_mem,
--			       size_t config_mem_size)
-+static int mxt_prepare_cfg_mem(struct mxt_data *data, struct mxt_cfg *cfg)
- {
- 	struct device *dev = &data->client->dev;
- 	struct mxt_object *object;
-@@ -1230,9 +1778,9 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
- 	u16 reg;
- 	u8 val;
- 
--	while (data_pos < cfg->size) {
-+	while (cfg->raw_pos < cfg->raw_size) {
- 		/* Read type, instance, length */
--		ret = sscanf(cfg->data + data_pos, "%x %x %x%n",
-+		ret = sscanf(cfg->raw + cfg->raw_pos, "%x %x %x%n",
- 			     &type, &instance, &size, &offset);
- 		if (ret == 0) {
- 			/* EOF */
-@@ -1241,20 +1789,20 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
- 			dev_err(dev, "Bad format: failed to parse object\n");
- 			return -EINVAL;
- 		}
--		data_pos += offset;
-+		cfg->raw_pos += offset;
- 
- 		object = mxt_get_object(data, type);
- 		if (!object) {
- 			/* Skip object */
- 			for (i = 0; i < size; i++) {
--				ret = sscanf(cfg->data + data_pos, "%hhx%n",
-+				ret = sscanf(cfg->raw + cfg->raw_pos, "%hhx%n",
- 					     &val, &offset);
- 				if (ret != 1) {
- 					dev_err(dev, "Bad format in T%d at %d\n",
- 						type, i);
- 					return -EINVAL;
- 				}
--				data_pos += offset;
-+				cfg->raw_pos += offset;
- 			}
- 			continue;
- 		}
-@@ -1289,7 +1837,7 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
- 		reg = object->start_address + mxt_obj_size(object) * instance;
- 
- 		for (i = 0; i < size; i++) {
--			ret = sscanf(cfg->data + data_pos, "%hhx%n",
-+			ret = sscanf(cfg->raw + cfg->raw_pos, "%hhx%n",
- 				     &val,
- 				     &offset);
- 			if (ret != 1) {
-@@ -1297,15 +1845,15 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
- 					type, i);
- 				return -EINVAL;
- 			}
--			data_pos += offset;
-+			cfg->raw_pos += offset;
- 
- 			if (i > mxt_obj_size(object))
- 				continue;
- 
--			byte_offset = reg + i - cfg_start_ofs;
-+			byte_offset = reg + i - cfg->start_ofs;
- 
--			if (byte_offset >= 0 && byte_offset < config_mem_size) {
--				*(config_mem + byte_offset) = val;
-+			if (byte_offset >= 0 && byte_offset < cfg->mem_size) {
-+				*(cfg->mem + byte_offset) = val;
- 			} else {
- 				dev_err(dev, "Bad object: reg:%d, T%d, ofs=%d\n",
- 					reg, object->type, byte_offset);
-@@ -1317,22 +1865,21 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
- 	return 0;
- }
- 
--static int mxt_upload_cfg_mem(struct mxt_data *data, unsigned int cfg_start,
--			      u8 *config_mem, size_t config_mem_size)
-+static int mxt_upload_cfg_mem(struct mxt_data *data, struct mxt_cfg *cfg)
- {
- 	unsigned int byte_offset = 0;
- 	int error;
- 
- 	/* Write configuration as blocks */
--	while (byte_offset < config_mem_size) {
--		unsigned int size = config_mem_size - byte_offset;
-+	while (byte_offset < cfg->mem_size) {
-+		unsigned int size = cfg->mem_size - byte_offset;
- 
- 		if (size > MXT_MAX_BLOCK_WRITE)
- 			size = MXT_MAX_BLOCK_WRITE;
- 
- 		error = __mxt_write_reg(data->client,
--					cfg_start + byte_offset,
--					size, config_mem + byte_offset);
-+					cfg->start_ofs + byte_offset,
-+					size, cfg->mem + byte_offset);
- 		if (error) {
- 			dev_err(&data->client->dev,
- 				"Config write error, ret=%d\n", error);
-@@ -1366,65 +1913,76 @@ static int mxt_init_t7_power_cfg(struct mxt_data *data);
-  *   <SIZE> - 2-byte object size as hex
-  *   <CONTENTS> - array of <SIZE> 1-byte hex values
-  */
--static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
-+static int mxt_update_cfg(struct mxt_data *data, const struct firmware *fw)
- {
- 	struct device *dev = &data->client->dev;
--	struct mxt_info cfg_info;
-+	struct mxt_cfg cfg;
- 	int ret;
- 	int offset;
--	int data_pos;
- 	int i;
--	int cfg_start_ofs;
- 	u32 info_crc, config_crc, calculated_crc;
--	u8 *config_mem;
--	size_t config_mem_size;
-+	u16 crc_start = 0;
-+
-+	/* Make zero terminated copy of the OBP_RAW file */
-+	cfg.raw = kmemdup(fw->data, fw->size + 1, GFP_KERNEL);
-+	if (!cfg.raw)
-+		return -ENOMEM;
-+	cfg.raw[fw->size] = '\0';
-+	
-+	cfg.raw_size = fw->size;
- 
- 	mxt_update_crc(data, MXT_COMMAND_REPORTALL, 1);
- 
--	if (strncmp(cfg->data, MXT_CFG_MAGIC, strlen(MXT_CFG_MAGIC))) {
-+	if (strncmp(cfg.raw, MXT_CFG_MAGIC, strlen(MXT_CFG_MAGIC))) {
- 		dev_err(dev, "Unrecognised config file\n");
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto release_raw;
- 	}
- 
--	data_pos = strlen(MXT_CFG_MAGIC);
-+	cfg.raw_pos = strlen(MXT_CFG_MAGIC);
- 
- 	/* Load information block and check */
- 	for (i = 0; i < sizeof(struct mxt_info); i++) {
--		ret = sscanf(cfg->data + data_pos, "%hhx%n",
--			     (unsigned char *)&cfg_info + i,
-+		ret = sscanf(cfg.raw + cfg.raw_pos, "%hhx%n",
-+			     (unsigned char *)&cfg.info + i,
- 			     &offset);
- 		if (ret != 1) {
- 			dev_err(dev, "Bad format\n");
--			return -EINVAL;
-+			ret = -EINVAL;
-+			goto release_raw;
- 		}
- 
--		data_pos += offset;
-+		cfg.raw_pos += offset;
- 	}
- 
--	if (cfg_info.family_id != data->info.family_id) {
-+	if (cfg.info.family_id != data->info->family_id) {
- 		dev_err(dev, "Family ID mismatch!\n");
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto release_raw;
- 	}
- 
--	if (cfg_info.variant_id != data->info.variant_id) {
-+	if (cfg.info.variant_id != data->info->variant_id) {
- 		dev_err(dev, "Variant ID mismatch!\n");
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto release_raw;
- 	}
- 
- 	/* Read CRCs */
--	ret = sscanf(cfg->data + data_pos, "%x%n", &info_crc, &offset);
-+	ret = sscanf(cfg.raw + cfg.raw_pos, "%x%n", &info_crc, &offset);
- 	if (ret != 1) {
- 		dev_err(dev, "Bad format: failed to parse Info CRC\n");
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto release_raw;
- 	}
--	data_pos += offset;
-+	cfg.raw_pos += offset;
- 
--	ret = sscanf(cfg->data + data_pos, "%x%n", &config_crc, &offset);
-+	ret = sscanf(cfg.raw + cfg.raw_pos, "%x%n", &config_crc, &offset);
- 	if (ret != 1) {
- 		dev_err(dev, "Bad format: failed to parse Config CRC\n");
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto release_raw;
- 	}
--	data_pos += offset;
-+	cfg.raw_pos += offset;
- 
- 	/*
- 	 * The Info Block CRC is calculated over mxt_info and the object
-@@ -1436,7 +1994,7 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
- 		if (config_crc == 0 || data->config_crc == 0) {
- 			dev_info(dev, "CRC zero, attempting to apply config\n");
- 		} else if (config_crc == data->config_crc) {
--			dev_dbg(dev, "Config CRC 0x%06X: OK\n",
-+			dev_info(dev, "Config CRC 0x%06X: OK. No update required.\n",
- 				 data->config_crc);
- 			return 0;
- 		} else {
-@@ -1449,40 +2007,48 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
- 			 data->info_crc, info_crc);
- 	}
- 
-+	/* Stop T70 Dynamic Configuration before calculation of CRC */
-+
-+	mxt_update_crc(data, MXT_COMMAND_BACKUPNV, MXT_BACKUP_W_STOP);
-+
- 	/* Malloc memory to store configuration */
--	cfg_start_ofs = MXT_OBJECT_START +
--			data->info.object_num * sizeof(struct mxt_object) +
-+	cfg.start_ofs = MXT_OBJECT_START +
-+			data->info->object_num * sizeof(struct mxt_object) +
- 			MXT_INFO_CHECKSUM_SIZE;
--	config_mem_size = data->mem_size - cfg_start_ofs;
--	config_mem = kzalloc(config_mem_size, GFP_KERNEL);
--	if (!config_mem) {
--		dev_err(dev, "Failed to allocate memory\n");
--		return -ENOMEM;
-+	cfg.mem_size = data->mem_size - cfg.start_ofs;
-+	cfg.mem = kzalloc(cfg.mem_size, GFP_KERNEL);
-+	if (!cfg.mem) {
-+		ret = -ENOMEM;
-+		goto release_raw;
- 	}
- 
--	ret = mxt_prepare_cfg_mem(data, cfg, data_pos, cfg_start_ofs,
--				  config_mem, config_mem_size);
-+	ret = mxt_prepare_cfg_mem(data, &cfg);
- 	if (ret)
- 		goto release_mem;
- 
-+
- 	/* Calculate crc of the received configs (not the raw config file) */
--	if (data->T7_address < cfg_start_ofs) {
--		dev_err(dev, "Bad T7 address, T7addr = %x, config offset %x\n",
--			data->T7_address, cfg_start_ofs);
--		ret = 0;
--		goto release_mem;
--	}
-+	
-+	if (data->T14_address)
-+		crc_start = data->T14_address;
-+	else if (data->T71_address)
-+		crc_start = data->T71_address;
-+	else if (data->T7_address)
-+		crc_start = data->T7_address;
-+	else
-+		dev_warn(dev, "Could not find CRC start\n");
- 
--	calculated_crc = mxt_calculate_crc(config_mem,
--					   data->T7_address - cfg_start_ofs,
--					   config_mem_size);
-+	if (crc_start > cfg.start_ofs) {
-+		calculated_crc = mxt_calculate_crc(cfg.mem,
-+						   crc_start - cfg.start_ofs,
-+						   cfg.mem_size);
- 
--	if (config_crc > 0 && config_crc != calculated_crc)
--		dev_warn(dev, "Config CRC error, calculated=%06X, file=%06X\n",
--			 calculated_crc, config_crc);
-+		if (config_crc > 0 && config_crc != calculated_crc)
-+			dev_warn(dev, "Config CRC in file inconsistent, calculated=%06X, file=%06X\n",
-+				 calculated_crc, config_crc);
-+	}
- 
--	ret = mxt_upload_cfg_mem(data, cfg_start_ofs,
--				 config_mem, config_mem_size);
-+	ret = mxt_upload_cfg_mem(data, &cfg);
- 	if (ret)
- 		goto release_mem;
- 
-@@ -1497,25 +2063,13 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
- 	/* T7 config may have changed */
- 	mxt_init_t7_power_cfg(data);
- 
-+release_raw:
-+	kfree(cfg.raw);
- release_mem:
--	kfree(config_mem);
-+	kfree(cfg.mem);
- 	return ret;
- }
- 
--static int mxt_get_info(struct mxt_data *data)
--{
--	struct i2c_client *client = data->client;
--	struct mxt_info *info = &data->info;
--	int error;
--
--	/* Read 7-byte info block starting at address 0 */
--	error = __mxt_read_reg(client, 0, sizeof(*info), info);
--	if (error)
--		return error;
--
--	return 0;
--}
--
- static void mxt_free_input_device(struct mxt_data *data)
- {
- 	if (data->input_dev) {
-@@ -1526,60 +2080,65 @@ static void mxt_free_input_device(struct mxt_data *data)
- 
- static void mxt_free_object_table(struct mxt_data *data)
- {
--	kfree(data->object_table);
-+#ifdef CONFIG_TOUCHSCREEN_ATMEL_MXT_T37
-+	video_unregister_device(&data->dbg.vdev);
-+	v4l2_device_unregister(&data->dbg.v4l2);
-+#endif
- 	data->object_table = NULL;
-+	data->info = NULL;
-+	kfree(data->raw_info_block);
-+	data->raw_info_block = NULL;
- 	kfree(data->msg_buf);
- 	data->msg_buf = NULL;
- 	data->T5_address = 0;
- 	data->T5_msg_size = 0;
- 	data->T6_reportid = 0;
- 	data->T7_address = 0;
-+	data->T14_address = 0;
-+	data->T71_address = 0;
- 	data->T9_reportid_min = 0;
- 	data->T9_reportid_max = 0;
--	data->T19_reportid = 0;
-+	data->T15_reportid_min = 0;
-+	data->T15_reportid_max = 0;
-+	data->T18_address = 0;
-+	data->T19_reportid_min = 0;
-+	data->T42_reportid_min = 0;
-+	data->T42_reportid_max = 0;
- 	data->T44_address = 0;
-+	data->T48_reportid_min = 0;
-+	data->T92_reportid_min = 0;
-+	data->T92_address = 0;
-+	data->T93_reportid_min = 0;
-+	data->T93_address = 0;
- 	data->T100_reportid_min = 0;
- 	data->T100_reportid_max = 0;
- 	data->max_reportid = 0;
- }
- 
--static int mxt_get_object_table(struct mxt_data *data)
-+static int mxt_parse_object_table(struct mxt_data *data,
-+				  struct mxt_object *object_table)
- {
- 	struct i2c_client *client = data->client;
--	size_t table_size;
--	struct mxt_object *object_table;
--	int error;
- 	int i;
- 	u8 reportid;
- 	u16 end_address;
--
--	table_size = data->info.object_num * sizeof(struct mxt_object);
--	object_table = kzalloc(table_size, GFP_KERNEL);
--	if (!object_table) {
--		dev_err(&data->client->dev, "Failed to allocate memory\n");
--		return -ENOMEM;
--	}
--
--	error = __mxt_read_reg(client, MXT_OBJECT_START, table_size,
--			object_table);
--	if (error) {
--		kfree(object_table);
--		return error;
--	}
-+	u8 num_instances;
- 
- 	/* Valid Report IDs start counting from 1 */
- 	reportid = 1;
- 	data->mem_size = 0;
--	for (i = 0; i < data->info.object_num; i++) {
-+	for (i = 0; i < data->info->object_num; i++) {
- 		struct mxt_object *object = object_table + i;
- 		u8 min_id, max_id;
- 
- 		le16_to_cpus(&object->start_address);
- 
-+		num_instances = mxt_obj_instances(object);
-+		
- 		if (object->num_report_ids) {
- 			min_id = reportid;
- 			reportid += object->num_report_ids *
--					mxt_obj_instances(object);
-+					num_instances;
- 			max_id = reportid - 1;
- 		} else {
- 			min_id = 0;
-@@ -1594,8 +2153,8 @@ static int mxt_get_object_table(struct mxt_data *data)
- 
- 		switch (object->type) {
- 		case MXT_GEN_MESSAGE_T5:
--			if (data->info.family_id == 0x80 &&
--			    data->info.version < 0x20) {
-+			if (data->info->family_id == 0x80 &&
-+			    data->info->version < 0x20) {
- 				/*
- 				 * On mXT224 firmware versions prior to V2.0
- 				 * read and discard unused CRC byte otherwise
-@@ -1615,25 +2174,114 @@ static int mxt_get_object_table(struct mxt_data *data)
- 		case MXT_GEN_POWER_T7:
- 			data->T7_address = object->start_address;
- 			break;
-+		case MXT_PROCI_KEYTHRESHOLD_T14:
-+			data->T14_address = object->start_address;
-+			break;
-+		case MXT_SPT_DYNAMICCONFIGURATIONCONTAINER_T71:
-+			data->T71_address = object->start_address;
-+			break;
- 		case MXT_TOUCH_MULTI_T9:
- 			data->multitouch = MXT_TOUCH_MULTI_T9;
-+			/* Only handle messages from first T9 instance */
- 			data->T9_reportid_min = min_id;
--			data->T9_reportid_max = max_id;
--			data->num_touchids = object->num_report_ids
--						* mxt_obj_instances(object);
-+			data->T9_reportid_max = min_id +
-+						object->num_report_ids - 1;
-+			data->num_touchids = object->num_report_ids;
-+			break;
-+		case MXT_TOUCH_KEYARRAY_T15:
-+			data->T15_reportid_min = min_id;
-+			data->T15_reportid_max = max_id;
-+			data->T15_instances = num_instances;
-+			break;
-+		case MXT_SPT_COMMSCONFIG_T18:
-+			data->T18_address = object->start_address;
-+			break;
-+		case MXT_SPT_GPIOPWM_T19:
-+			data->T19_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_ONETOUCH_T24:
-+			data->T24_reportid_min = min_id;
-+			data->T24_reportid_max = max_id;
-+			break;
-+		case MXT_SPT_SELFTEST_T25:
-+			data->T25_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_TWOTOUCH_T27:
-+			data->T27_reportid_min = min_id;
-+			data->T27_reportid_max = max_id;
-+			break;
-+		case MXT_PROCI_TOUCHSUPPRESSION_T42:
-+			data->T42_reportid_min = min_id;
-+			data->T42_reportid_max = max_id;
- 			break;
- 		case MXT_SPT_MESSAGECOUNT_T44:
- 			data->T44_address = object->start_address;
- 			break;
--		case MXT_SPT_GPIOPWM_T19:
--			data->T19_reportid = min_id;
-+		case MXT_SPT_CTECONFIG_T46:
-+			data->T46_reportid_min = min_id;
-+			break;
-+		case MXT_PROCG_NOISESUPPRESSION_T48:
-+			data->T48_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_SHIELDLESS_T56:
-+			data->T56_reportid_min = min_id;
-+			break;
-+		case MXT_SPT_TIMER_T61:
-+			data->T61_reportid_min = min_id;
-+			data->T61_reportid_max = max_id;
-+			break;
-+		case MXT_PROCI_LENSBENDING_T65:
-+			data->T65_reportid_min = min_id;
-+			data->T65_reportid_max = max_id;
-+			break;
-+		case MXT_SPT_SERIALDATACOMMAND_T68:
-+			data->T68_reportid_min = min_id;
-+			break;
-+			case MXT_SPT_DYNAMICCONFIGURATIONCONTROLLER_T70:
-+			data->T70_reportid_min = min_id;
-+			data->T70_reportid_max = max_id;
-+			break;
-+		case MXT_NOISESUPPRESSION_T72:
-+			data->T72_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_RETRANSMISSIONCOMPENSATION_T80:
-+			data->T80_reportid_min = min_id;
-+			data->T80_reportid_max = max_id;
-+			break;				
-+		case MXT_PROCI_SYMBOLGESTUREPROCESSOR_T92:
-+			data->T92_reportid_min = min_id;
-+			data->T92_address = object->start_address;
-+			break;
-+		case MXT_PROCI_TOUCHSEQUENCELOGGER_T93:
-+			data->T93_reportid_min = min_id;
-+			data->T93_address = object->start_address;
- 			break;
- 		case MXT_TOUCH_MULTITOUCHSCREEN_T100:
- 			data->multitouch = MXT_TOUCH_MULTITOUCHSCREEN_T100;
- 			data->T100_reportid_min = min_id;
- 			data->T100_reportid_max = max_id;
-+			data->T100_instances = num_instances;
- 			/* first two report IDs reserved */
--			data->num_touchids = object->num_report_ids - 2;
-+			data->num_touchids = object->num_report_ids - MXT_RSVD_RPTIDS;
-+			break;
-+		case MXT_PROCI_ACTIVESTYLUS_T107:
-+			data->T107_address = object->start_address;
-+			break;
-+		case MXT_PROCG_NOISESUPSELFCAP_T108:
-+			data->T108_reportid_min = min_id;
-+			break;
-+		case MXT_SPT_SELFCAPGLOBALCONFIG_T109:
-+			data->T109_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_SELFCAPGRIPSUPPRESSION_T112:
-+			data->T112_reportid_min = min_id;
-+			data->T112_reportid_max = max_id;
-+			break;
-+		case MXT_SPT_SELCAPVOLTAGEMODE_T133:
-+			data->T133_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_HOVERGESTUREPROCESSOR_T129:
-+			data->T129_reportid_min = min_id;
- 			break;
- 		}
- 
-@@ -1646,28 +2294,106 @@ static int mxt_get_object_table(struct mxt_data *data)
- 
- 	/* Store maximum reportid */
- 	data->max_reportid = reportid;
--
-+	
- 	/* If T44 exists, T5 position has to be directly after */
- 	if (data->T44_address && (data->T5_address != data->T44_address + 1)) {
- 		dev_err(&client->dev, "Invalid T44 position\n");
--		error = -EINVAL;
--		goto free_object_table;
-+		return -EINVAL;
- 	}
- 
- 	data->msg_buf = kcalloc(data->max_reportid,
- 				data->T5_msg_size, GFP_KERNEL);
--	if (!data->msg_buf) {
--		dev_err(&client->dev, "Failed to allocate message buffer\n");
-+	if (!data->msg_buf)
-+		return -ENOMEM;
-+
-+	return 0;
-+}
-+
-+static int mxt_read_info_block(struct mxt_data *data)
-+{
-+	struct i2c_client *client = data->client;
-+	int error;
-+	size_t size;
-+	void *id_buf, *buf;
-+	uint8_t num_objects;
-+	u32 calculated_crc;
-+	u8 *crc_ptr;
-+
-+	/* If info block already allocated, free it */
-+	if (data->raw_info_block)
-+		mxt_free_object_table(data);
-+
-+	/* Read 7-byte ID information block starting at address 0 */
-+	size = sizeof(struct mxt_info);
-+	id_buf = kzalloc(size, GFP_KERNEL);
-+	if (!id_buf)
-+		return -ENOMEM;
-+
-+	error = __mxt_read_reg(client, 0, size, id_buf);
-+	if (error)
-+		goto err_free_mem;
-+
-+	/* Resize buffer to give space for rest of info block */
-+	num_objects = ((struct mxt_info *)id_buf)->object_num;
-+	size += (num_objects * sizeof(struct mxt_object))
-+		+ MXT_INFO_CHECKSUM_SIZE;
-+
-+	buf = krealloc(id_buf, size, GFP_KERNEL);
-+	if (!buf) {
- 		error = -ENOMEM;
--		goto free_object_table;
-+		goto err_free_mem;
-+	}
-+	id_buf = buf;
-+
-+	/* Read rest of info block */
-+	error = __mxt_read_reg(client, MXT_OBJECT_START,
-+			       size - MXT_OBJECT_START,
-+			       id_buf + MXT_OBJECT_START);
-+	if (error)
-+		goto err_free_mem;
-+
-+	/* Extract & calculate checksum */
-+	crc_ptr = id_buf + size - MXT_INFO_CHECKSUM_SIZE;
-+	data->info_crc = crc_ptr[0] | (crc_ptr[1] << 8) | (crc_ptr[2] << 16);
-+
-+	calculated_crc = mxt_calculate_crc(id_buf, 0,
-+					   size - MXT_INFO_CHECKSUM_SIZE);
-+
-+	/*
-+	 * CRC mismatch can be caused by data corruption due to I2C comms
-+	 * issue or else device is not using Object Based Protocol (eg i2c-hid)
-+	 */
-+	if ((data->info_crc == 0) || (data->info_crc != calculated_crc)) {
-+		dev_err(&client->dev,
-+			"Info Block CRC error calculated=0x%06X read=0x%06X\n",
-+			calculated_crc, data->info_crc);
-+		error = -EIO;
-+		goto err_free_mem;
-+	}
-+
-+	data->raw_info_block = id_buf;
-+	data->info = (struct mxt_info *)id_buf;
-+
-+	dev_info(&client->dev,
-+		 "Family: %u Variant: %u Firmware V%u.%u.%02X Objects: %u\n",
-+		 data->info->family_id, data->info->variant_id,
-+		 data->info->version >> 4, data->info->version & 0xf,
-+		 data->info->build, data->info->object_num);
-+
-+	/* Parse object table information */
-+	error = mxt_parse_object_table(data, id_buf + MXT_OBJECT_START);
-+	if (error) {
-+		dev_err(&client->dev, "Error %d parsing object table\n", error);
-+		mxt_free_object_table(data);
-+		goto err_free_mem;
- 	}
- 
--	data->object_table = object_table;
-+	data->object_table = (struct mxt_object *)(id_buf + MXT_OBJECT_START);
- 
- 	return 0;
- 
--free_object_table:
--	mxt_free_object_table(data);
-+err_free_mem:
-+	kfree(id_buf);
- 	return error;
- }
- 
-@@ -1684,6 +2410,18 @@ static int mxt_read_t9_resolution(struct mxt_data *data)
- 		return -EINVAL;
- 
- 	error = __mxt_read_reg(client,
-+			       object->start_address + MXT_T9_XSIZE,
-+			       sizeof(data->xsize), &data->xsize);
-+	if (error)
-+		return error;
-+
-+	error = __mxt_read_reg(client,
-+			       object->start_address + MXT_T9_YSIZE,
-+			       sizeof(data->ysize), &data->ysize);
-+	if (error)
-+		return error;
-+
-+	error = __mxt_read_reg(client,
- 			       object->start_address + MXT_T9_RANGE,
- 			       sizeof(range), &range);
- 	if (error)
-@@ -1699,11 +2437,61 @@ static int mxt_read_t9_resolution(struct mxt_data *data)
- 		return error;
- 
- 	data->xy_switch = orient & MXT_T9_ORIENT_SWITCH;
-+	data->invertx = orient & MXT_T9_ORIENT_INVERTX;
-+	data->inverty = orient & MXT_T9_ORIENT_INVERTY;
-+
-+	return 0;
-+}
-+
-+static int mxt_set_up_active_stylus(struct input_dev *input_dev,
-+				    struct mxt_data *data)
-+{
-+	struct i2c_client *client = data->client;
-+	int error;
-+	struct mxt_object *object;
-+	u8 styaux;
-+	int aux;
-+	u8 ctrl;
-+
-+	object = mxt_get_object(data, MXT_PROCI_ACTIVESTYLUS_T107);
-+	if (!object)
-+		return 0;
-+
-+	error = __mxt_read_reg(client, object->start_address, 1, &ctrl);
-+	if (error)
-+		return error;
-+
-+	/* Check enable bit */
-+	if (!(ctrl & 0x01))
-+		return 0;
-+
-+	error = __mxt_read_reg(client,
-+			       object->start_address + MXT_T107_STYLUS_STYAUX,
-+			       1, &styaux);
-+	if (error)
-+		return error;
-+
-+	/* map aux bits */
-+	aux = 7;
-+
-+	if (styaux & MXT_T107_STYLUS_STYAUX_PRESSURE)
-+		data->stylus_aux_pressure = aux++;
-+
-+	if (styaux & MXT_T107_STYLUS_STYAUX_PEAK)
-+		data->stylus_aux_peak = aux++;
-+
-+	input_set_capability(input_dev, EV_KEY, BTN_STYLUS);
-+	input_set_capability(input_dev, EV_KEY, BTN_STYLUS2);
-+	input_set_abs_params(input_dev, ABS_MT_TOOL_TYPE, 0, MT_TOOL_MAX, 0, 0);
-+
-+	dev_dbg(&client->dev,
-+		"T107 active stylus, aux map pressure:%u peak:%u\n",
-+		data->stylus_aux_pressure, data->stylus_aux_peak);
- 
- 	return 0;
- }
- 
--static int mxt_read_t100_config(struct mxt_data *data)
-+static int mxt_read_t100_config(struct mxt_data *data, u8 instance)
- {
- 	struct i2c_client *client = data->client;
- 	int error;
-@@ -1711,14 +2499,28 @@ static int mxt_read_t100_config(struct mxt_data *data)
- 	u16 range_x, range_y;
- 	u8 cfg, tchaux;
- 	u8 aux;
-+	u16 obj_size = 0;
-+	u8 T100_enable;
- 
- 	object = mxt_get_object(data, MXT_TOUCH_MULTITOUCHSCREEN_T100);
- 	if (!object)
- 		return -EINVAL;
--
-+	
-+	if (instance == 2) {
-+		T100_enable = object->start_address + mxt_obj_size(object) + MXT_T100_CTRL;
-+		
-+		if ((T100_enable & MXT_T100_ENABLE_BIT_MASK) == 0x01 ){
-+			obj_size = mxt_obj_size(object);
-+		} else {
-+			dev_info(&client->dev, "T100 secondary input device not enabled\n");
-+			
-+			return 1;
-+		}	
-+	}
-+				
- 	/* read touchscreen dimensions */
- 	error = __mxt_read_reg(client,
--			       object->start_address + MXT_T100_XRANGE,
-+			       object->start_address + obj_size + MXT_T100_XRANGE,
- 			       sizeof(range_x), &range_x);
- 	if (error)
- 		return error;
-@@ -1726,30 +2528,44 @@ static int mxt_read_t100_config(struct mxt_data *data)
- 	data->max_x = get_unaligned_le16(&range_x);
- 
- 	error = __mxt_read_reg(client,
--			       object->start_address + MXT_T100_YRANGE,
-+			       object->start_address + obj_size + MXT_T100_YRANGE,
- 			       sizeof(range_y), &range_y);
- 	if (error)
- 		return error;
- 
- 	data->max_y = get_unaligned_le16(&range_y);
- 
-+	error = __mxt_read_reg(client,
-+			       object->start_address + obj_size + MXT_T100_XSIZE,
-+			       sizeof(data->xsize), &data->xsize);
-+	if (error)
-+		return error;
-+
-+	error = __mxt_read_reg(client,
-+			       object->start_address + obj_size + MXT_T100_YSIZE,
-+			       sizeof(data->ysize), &data->ysize);
-+	if (error)
-+		return error;
-+
- 	/* read orientation config */
- 	error =  __mxt_read_reg(client,
--				object->start_address + MXT_T100_CFG1,
-+				object->start_address + obj_size + MXT_T100_CFG1,
- 				1, &cfg);
- 	if (error)
- 		return error;
- 
- 	data->xy_switch = cfg & MXT_T100_CFG_SWITCHXY;
-+	data->invertx = cfg & MXT_T100_CFG_INVERTX;
-+	data->inverty = cfg & MXT_T100_CFG_INVERTY;
- 
- 	/* allocate aux bytes */
- 	error =  __mxt_read_reg(client,
--				object->start_address + MXT_T100_TCHAUX,
-+				object->start_address + obj_size+ MXT_T100_TCHAUX,
- 				1, &tchaux);
- 	if (error)
- 		return error;
- 
--	aux = 6;
-+	aux = MXT_T100_AUX_OFFSET;
- 
- 	if (tchaux & MXT_T100_TCHAUX_VECT)
- 		data->t100_aux_vect = aux++;
-@@ -1763,7 +2579,7 @@ static int mxt_read_t100_config(struct mxt_data *data)
- 	dev_dbg(&client->dev,
- 		"T100 aux mappings vect:%u ampl:%u area:%u\n",
- 		data->t100_aux_vect, data->t100_aux_ampl, data->t100_aux_area);
--
-+				
- 	return 0;
- }
- 
-@@ -1773,7 +2589,6 @@ static void mxt_input_close(struct input_dev *dev);
- static void mxt_set_up_as_touchpad(struct input_dev *input_dev,
- 				   struct mxt_data *data)
- {
--	const struct mxt_platform_data *pdata = data->pdata;
- 	int i;
- 
- 	input_dev->name = "Atmel maXTouch Touchpad";
-@@ -1787,21 +2602,136 @@ static void mxt_set_up_as_touchpad(struct input_dev *input_dev,
- 	input_abs_set_res(input_dev, ABS_MT_POSITION_Y,
- 			  MXT_PIXELS_PER_MM);
- 
--	for (i = 0; i < pdata->t19_num_keys; i++)
--		if (pdata->t19_keymap[i] != KEY_RESERVED)
-+	for (i = 0; i < data->t19_num_keys; i++)
-+		if (data->t19_keymap[i] != KEY_RESERVED)
- 			input_set_capability(input_dev, EV_KEY,
--					     pdata->t19_keymap[i]);
-+					     data->t19_keymap[i]);
-+}
-+
-+static int mxt_init_secondary_input(struct mxt_data *data)
-+{
-+	struct device *dev = &data->client->dev;
-+	struct input_dev *input_dev_sec;
-+	unsigned int num_mt_slots;
-+	unsigned int mt_flags = 0;
-+	int error;
-+	
-+	switch (data->multitouch) {
-+	case MXT_TOUCH_MULTITOUCHSCREEN_T100:
-+		num_mt_slots = data->num_touchids; 
-+		error = mxt_read_t100_config(data, 2);
-+		if (error) {
-+			dev_info(dev, "Failed to read T100 config\n");
-+			return -ENXIO;
-+		}
-+		break;
-+
-+	default:
-+		dev_err(dev, "Invalid multitouch object\n");
-+		return -EINVAL;
-+	}
-+
-+	/* Handle default values and orientation switch */
-+	if (data->max_x == 0)
-+		data->max_x = 1023;
-+
-+	if (data->max_y == 0)
-+		data->max_y = 1023;
-+
-+	if (data->xy_switch)
-+		swap(data->max_x, data->max_y);
-+
-+	dev_info(dev, "Secondary touchscreen size {x,y} = {%u,%u}\n", data->max_x, data->max_y);
-+
-+	/* Register input device */
-+	input_dev_sec = input_allocate_device();
-+	if (!input_dev_sec)
-+		return -ENOMEM;
-+
-+	input_dev_sec->name = "maXTouch Secondary Touchscreen";
-+	input_dev_sec->phys = data->phys;
-+	input_dev_sec->id.bustype = BUS_I2C;
-+	input_dev_sec->dev.parent = dev;
-+	input_dev_sec->open = mxt_input_open;
-+	input_dev_sec->close = mxt_input_close;
-+
-+	input_set_capability(input_dev_sec, EV_KEY, BTN_TOUCH);
-+
-+	/* For single touch */
-+	input_set_abs_params(input_dev_sec, ABS_X, 0, data->max_x, 0, 0);
-+	input_set_abs_params(input_dev_sec, ABS_Y, 0, data->max_y, 0, 0);
-+
-+	if ((data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
-+	     data->t100_aux_ampl)) {
-+		input_set_abs_params(input_dev_sec, ABS_PRESSURE, 0, 255, 0, 0);
-+	}
-+
-+	mt_flags |= INPUT_MT_DIRECT;
-+
-+	/* For multi touch */
-+	error = input_mt_init_slots(input_dev_sec, num_mt_slots, mt_flags);
-+	if (error) {
-+		dev_err(dev, "Error %d initialising slots\n", error);
-+		goto err_free_mem;
-+	}
-+
-+	if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100) {
-+		input_set_abs_params(input_dev_sec, ABS_MT_TOOL_TYPE,
-+				     0, MT_TOOL_MAX, 0, 0);
-+		input_set_abs_params(input_dev_sec, ABS_MT_DISTANCE,
-+				     MXT_DISTANCE_ACTIVE_TOUCH,
-+				     MXT_DISTANCE_HOVERING,
-+				     0, 0);
-+	}
-+
-+	input_set_abs_params(input_dev_sec, ABS_MT_POSITION_X,
-+			     0, data->max_x, 0, 0);
-+	input_set_abs_params(input_dev_sec, ABS_MT_POSITION_Y,
-+			     0, data->max_y, 0, 0);
-+
-+	if ((data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
-+	     data->t100_aux_area)) {
-+		input_set_abs_params(input_dev_sec, ABS_MT_TOUCH_MAJOR,
-+				     0, MXT_MAX_AREA, 0, 0);
-+	}
-+
-+	if ((data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
-+	     data->t100_aux_ampl)) {
-+		input_set_abs_params(input_dev_sec, ABS_MT_PRESSURE,
-+				     0, 255, 0, 0);
-+	}
-+
-+	if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
-+	    data->t100_aux_vect) {
-+		input_set_abs_params(input_dev_sec, ABS_MT_ORIENTATION,
-+				     0, 255, 0, 0);
-+	}
-+
-+	input_set_drvdata(input_dev_sec, data);
-+
-+	error = input_register_device(input_dev_sec);
-+	if (error) {
-+		dev_err(dev, "Error %d registering input device\n", error);
-+		goto err_free_mem;
-+	}
-+
-+	data->input_dev_sec = input_dev_sec;
-+
-+	return 0;
-+
-+err_free_mem:
-+	input_free_device(input_dev_sec);
-+	return error;
- }
- 
- static int mxt_initialize_input_device(struct mxt_data *data)
- {
--	const struct mxt_platform_data *pdata = data->pdata;
- 	struct device *dev = &data->client->dev;
- 	struct input_dev *input_dev;
- 	int error;
- 	unsigned int num_mt_slots;
- 	unsigned int mt_flags = 0;
--	struct device_node *np = dev->of_node;
-+	int i;
- 	
- 	switch (data->multitouch) {
- 	case MXT_TOUCH_MULTI_T9:
-@@ -1812,8 +2742,8 @@ static int mxt_initialize_input_device(struct mxt_data *data)
- 		break;
- 
- 	case MXT_TOUCH_MULTITOUCHSCREEN_T100:
--		num_mt_slots = data->num_touchids;
--		error = mxt_read_t100_config(data);
-+		num_mt_slots = (data->num_touchids);
-+		error = mxt_read_t100_config(data, 1);
- 		if (error)
- 			dev_warn(dev, "Failed to read T100 config\n");
- 		break;
-@@ -1833,15 +2763,12 @@ static int mxt_initialize_input_device(struct mxt_data *data)
- 	if (data->xy_switch)
- 		swap(data->max_x, data->max_y);
- 
--	dev_info(dev, "Touchscreen size X%uY%u\n", data->max_x, data->max_y);
-+	dev_info(dev, "Touchscreen size {x,y} = {%u,%u}\n", data->max_x, data->max_y);
- 
- 	/* Register input device */
- 	input_dev = input_allocate_device();
--	if (!input_dev) {
--		dev_err(dev, "Failed to allocate memory\n");
-+	if (!input_dev)
- 		return -ENOMEM;
--	}
--
- 
- 	input_dev->name = "Atmel maXTouch Touchscreen";
- 	input_dev->phys = data->phys;
-@@ -1863,7 +2790,7 @@ static int mxt_initialize_input_device(struct mxt_data *data)
- 	}
- 
- 	/* If device has buttons we assume it is a touchpad */
--	if (pdata->t19_num_keys) {
-+	if (data->t19_num_keys) {
- 		mxt_set_up_as_touchpad(input_dev, data);
- 		mt_flags |= INPUT_MT_POINTER;
- 	} else {
-@@ -1905,22 +2832,28 @@ static int mxt_initialize_input_device(struct mxt_data *data)
- 				     0, 255, 0, 0);
- 	}
- 
--	if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
--	    data->t100_aux_vect) {
-+	if (data->multitouch == MXT_TOUCH_MULTI_T9 ||
-+	    (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
-+	    data->t100_aux_vect)) {
- 		input_set_abs_params(input_dev, ABS_MT_ORIENTATION,
- 				     0, 255, 0, 0);
- 	}
- 
-+	/* For T107 Active Stylus */
- 	if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
--	    data->t100_aux_ampl) {
--		input_set_abs_params(input_dev, ABS_MT_PRESSURE,
--				     0, 255, 0, 0);
-+	    data->T107_address) {
-+		error = mxt_set_up_active_stylus(input_dev, data);
-+		if (error)
-+			dev_warn(dev, "Failed to read T107 config\n");
- 	}
- 
--	if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
--	    data->t100_aux_vect) {
--		input_set_abs_params(input_dev, ABS_MT_ORIENTATION,
--				     0, 255, 0, 0);
-+	/* For T15 Key Array */
-+	if (data->T15_reportid_min) {
-+		data->t15_keystatus = 0;
-+
-+		for (i = 0; i < data->t15_num_keys; i++)
-+			input_set_capability(input_dev, EV_KEY,
-+					data->t15_keymap[i]);
- 	}
- 
- 	input_set_drvdata(input_dev, data);
-@@ -1933,17 +2866,6 @@ static int mxt_initialize_input_device(struct mxt_data *data)
- 
- 	data->input_dev = input_dev;
- 
--	if (np) {
--		data->invert_x = of_property_read_bool(np, "invert_x")?1:0;
--		data->invert_y = of_property_read_bool(np, "invert_y")?1:0;
--        	data->swap_x_y = of_property_read_bool(np, "swap_x_y")?1:0;
--        	
--        	dev_info(dev, "loaded toucscreen properties\n");
--        	dev_info(dev, "touchscreen-inverted-x %d\n", data->invert_x);
--        	dev_info(dev, "touchscreen-inverted-y %d\n", data->invert_y);
--        	dev_info(dev, "touchscreen-swap-x-y %d\n", data->swap_x_y);
--        }
--
- 	return 0;
- 
- err_free_mem:
-@@ -1951,6 +2873,8 @@ err_free_mem:
- 	return error;
- }
- 
-+static int mxt_sysfs_init(struct mxt_data *data);
-+static void mxt_sysfs_remove(struct mxt_data *data);
- static int mxt_configure_objects(struct mxt_data *data,
- 				 const struct firmware *cfg);
- 
-@@ -1967,7 +2891,7 @@ static int mxt_initialize(struct mxt_data *data)
- 	int error;
- 
- 	while (1) {
--		error = mxt_get_info(data);
-+		error = mxt_read_info_block(data);
- 		if (!error)
- 			break;
- 
-@@ -1998,31 +2922,21 @@ static int mxt_initialize(struct mxt_data *data)
- 		msleep(MXT_FW_RESET_TIME);
- 	}
- 
--	/* Get object table information */
--	error = mxt_get_object_table(data);
--	if (error) {
--		dev_err(&client->dev, "Error %d reading object table\n", error);
--		return error;
--	}
--
- 	error = mxt_acquire_irq(data);
- 	if (error)
--		goto err_free_object_table;
-+		return error;
- 
-+	/* Only works when driver compiled as module */
- 	error = request_firmware_nowait(THIS_MODULE, true, MXT_CFG_NAME,
- 					&client->dev, GFP_KERNEL, data,
- 					mxt_config_cb);
- 	if (error) {
- 		dev_err(&client->dev, "Failed to invoke firmware loader: %d\n",
- 			error);
--		goto err_free_object_table;
-+		return error;
- 	}
- 
- 	return 0;
--
--err_free_object_table:
--	mxt_free_object_table(data);
--	return error;
- }
- 
- static int mxt_set_t7_power_cfg(struct mxt_data *data, u8 sleep)
-@@ -2042,7 +2956,7 @@ static int mxt_set_t7_power_cfg(struct mxt_data *data, u8 sleep)
- 	if (error)
- 		return error;
- 
--	dev_dbg(dev, "Set T7 ACTV:%d IDLE:%d\n",
-+	dev_dbg(dev, "Set T7 ACTV:%d IDLE:%d\n",	
- 		new_config->active, new_config->idle);
- 
- 	return 0;
-@@ -2079,48 +2993,478 @@ recheck:
- 	return 0;
- }
- 
--static int mxt_configure_objects(struct mxt_data *data,
--				 const struct firmware *cfg)
-+#ifdef CONFIG_TOUCHSCREEN_ATMEL_MXT_T37
-+static u16 mxt_get_debug_value(struct mxt_data *data, unsigned int x,
-+			       unsigned int y)
- {
--	struct device *dev = &data->client->dev;
--	struct mxt_info *info = &data->info;
--	int error;
--
--	error = mxt_init_t7_power_cfg(data);
--	if (error) {
--		dev_err(dev, "Failed to initialize power cfg\n");
--		return error;
-+	struct mxt_info *info = data->info;
-+	struct mxt_dbg *dbg = &data->dbg;
-+	unsigned int ofs, page;
-+	unsigned int col = 0;
-+	unsigned int col_width;
-+
-+	if (info->family_id == MXT_FAMILY_1386) {
-+		col_width = info->matrix_ysize / MXT1386_COLUMNS;
-+		col = y / col_width;
-+		y = y % col_width;
-+	} else {
-+		col_width = info->matrix_ysize;
- 	}
- 
--	if (cfg) {
--		error = mxt_update_cfg(data, cfg);
--		if (error)
--			dev_warn(dev, "Error %d updating config\n", error);
--	}
-+	ofs = (y + (x * col_width)) * sizeof(u16);
-+	page = ofs / MXT_DIAGNOSTIC_SIZE;
-+	ofs %= MXT_DIAGNOSTIC_SIZE;
- 
--	if (data->multitouch) {
--		error = mxt_initialize_input_device(data);
--		if (error)
--			return error;
--	} else {
--		dev_warn(dev, "No touch object detected\n");
--	}
-+	if (info->family_id == MXT_FAMILY_1386)
-+		page += col * MXT1386_PAGES_PER_COLUMN;
- 
--	dev_info(dev,
--		 "Family: %u Variant: %u Firmware V%u.%u.%02X Objects: %u\n",
--		 info->family_id, info->variant_id, info->version >> 4,
--		 info->version & 0xf, info->build, info->object_num);
-+	return get_unaligned_le16(&dbg->t37_buf[page].data[ofs]);
-+}
-+
-+static int mxt_convert_debug_pages(struct mxt_data *data, u16 *outbuf)
-+{
-+	struct mxt_dbg *dbg = &data->dbg;
-+	unsigned int x = 0;
-+	unsigned int y = 0;
-+	unsigned int i, rx, ry;
-+
-+	for (i = 0; i < dbg->t37_nodes; i++) {
-+		/* Handle orientation */
-+		rx = data->xy_switch ? y : x;
-+		ry = data->xy_switch ? x : y;
-+		rx = data->invertx ? (data->xsize - 1 - rx) : rx;
-+		ry = data->inverty ? (data->ysize - 1 - ry) : ry;
-+
-+		outbuf[i] = mxt_get_debug_value(data, rx, ry);
-+
-+		/* Next value */
-+		if (++x >= (data->xy_switch ? data->ysize : data->xsize)) {
-+			x = 0;
-+			y++;
-+		}
-+	}
- 
- 	return 0;
- }
- 
--/* Firmware Version is returned as Major.Minor.Build */
--static ssize_t mxt_fw_version_show(struct device *dev,
--				   struct device_attribute *attr, char *buf)
-+static int mxt_read_diagnostic_debug(struct mxt_data *data, u8 mode,
-+				     u16 *outbuf)
- {
--	struct mxt_data *data = dev_get_drvdata(dev);
--	struct mxt_info *info = &data->info;
--	return scnprintf(buf, PAGE_SIZE, "%u.%u.%02X\n",
-+	struct mxt_dbg *dbg = &data->dbg;
-+	int retries = 0;
-+	int page;
-+	int ret;
-+	u8 cmd = mode;
-+	struct t37_debug *p;
-+	u8 cmd_poll;
-+
-+	for (page = 0; page < dbg->t37_pages; page++) {
-+		p = dbg->t37_buf + page;
-+
-+		ret = mxt_write_reg(data->client, dbg->diag_cmd_address,
-+				    cmd);
-+		if (ret)
-+			return ret;
-+
-+		retries = 0;
-+		msleep(20);
-+wait_cmd:
-+		/* Read back command byte */
-+		ret = __mxt_read_reg(data->client, dbg->diag_cmd_address,
-+				     sizeof(cmd_poll), &cmd_poll);
-+		if (ret)
-+			return ret;
-+
-+		/* Field is cleared once the command has been processed */
-+		if (cmd_poll) {
-+			if (retries++ > 100)
-+				return -EINVAL;
-+
-+			msleep(20);
-+			goto wait_cmd;
-+		}
-+
-+		/* Read T37 page */
-+		ret = __mxt_read_reg(data->client, dbg->t37_address,
-+				     sizeof(struct t37_debug), p);
-+		if (ret)
-+			return ret;
-+
-+		if (p->mode != mode || p->page != page) {
-+			dev_err(&data->client->dev, "T37 page mismatch\n");
-+			return -EINVAL;
-+		}
-+
-+		dev_dbg(&data->client->dev, "%s page:%d retries:%d\n",
-+			__func__, page, retries);
-+
-+		/* For remaining pages, write PAGEUP rather than mode */
-+		cmd = MXT_DIAGNOSTIC_PAGEUP;
-+	}
-+
-+	return mxt_convert_debug_pages(data, outbuf);
-+}
-+
-+static int mxt_queue_setup(struct vb2_queue *q,
-+		       unsigned int *nbuffers, unsigned int *nplanes,
-+		       unsigned int sizes[], struct device *alloc_devs[])
-+{
-+	struct mxt_data *data = q->drv_priv;
-+	size_t size = data->dbg.t37_nodes * sizeof(u16);
-+
-+	if (*nplanes)
-+		return sizes[0] < size ? -EINVAL : 0;
-+
-+	*nplanes = 1;
-+	sizes[0] = size;
-+
-+	return 0;
-+}
-+
-+static void mxt_buffer_queue(struct vb2_buffer *vb)
-+{
-+	struct mxt_data *data = vb2_get_drv_priv(vb->vb2_queue);
-+	u16 *ptr;
-+	int ret;
-+	u8 mode;
-+
-+	ptr = vb2_plane_vaddr(vb, 0);
-+	if (!ptr) {
-+		dev_err(&data->client->dev, "Error acquiring frame ptr\n");
-+		goto fault;
-+	}
-+
-+	switch (data->dbg.input) {
-+	case MXT_V4L_INPUT_DELTAS:
-+	default:
-+		mode = MXT_DIAGNOSTIC_DELTAS;
-+		break;
-+
-+	case MXT_V4L_INPUT_REFS:
-+		mode = MXT_DIAGNOSTIC_REFS;
-+		break;
-+	}
-+
-+	ret = mxt_read_diagnostic_debug(data, mode, ptr);
-+	if (ret)
-+		goto fault;
-+
-+	vb2_set_plane_payload(vb, 0, data->dbg.t37_nodes * sizeof(u16));
-+	vb2_buffer_done(vb, VB2_BUF_STATE_DONE);
-+	return;
-+
-+fault:
-+	vb2_buffer_done(vb, VB2_BUF_STATE_ERROR);
-+}
-+
-+/* V4L2 structures */
-+static const struct vb2_ops mxt_queue_ops = {
-+	.queue_setup		= mxt_queue_setup,
-+	.buf_queue		= mxt_buffer_queue,
-+	.wait_prepare		= vb2_ops_wait_prepare,
-+	.wait_finish		= vb2_ops_wait_finish,
-+};
-+
-+static const struct vb2_queue mxt_queue = {
-+	.type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
-+	.io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ,
-+	.buf_struct_size = sizeof(struct mxt_vb2_buffer),
-+	.ops = &mxt_queue_ops,
-+	.mem_ops = &vb2_vmalloc_memops,
-+	.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC,
-+	.min_buffers_needed = 1,
-+};
-+
-+static int mxt_vidioc_querycap(struct file *file, void *priv,
-+				 struct v4l2_capability *cap)
-+{
-+	struct mxt_data *data = video_drvdata(file);
-+
-+	strlcpy(cap->driver, "atmel_mxt_ts", sizeof(cap->driver));
-+	strlcpy(cap->card, "atmel_mxt_ts touch", sizeof(cap->card));
-+	snprintf(cap->bus_info, sizeof(cap->bus_info),
-+		 "I2C:%s", dev_name(&data->client->dev));
-+	return 0;
-+}
-+
-+static int mxt_vidioc_enum_input(struct file *file, void *priv,
-+				   struct v4l2_input *i)
-+{
-+	if (i->index >= MXT_V4L_INPUT_MAX)
-+		return -EINVAL;
-+
-+	i->type = V4L2_INPUT_TYPE_TOUCH;
-+
-+	switch (i->index) {
-+	case MXT_V4L_INPUT_REFS:
-+		strlcpy(i->name, "Mutual Capacitance References",
-+			sizeof(i->name));
-+		break;
-+	case MXT_V4L_INPUT_DELTAS:
-+		strlcpy(i->name, "Mutual Capacitance Deltas", sizeof(i->name));
-+		break;
-+	}
-+
-+	return 0;
-+}
-+
-+static int mxt_set_input(struct mxt_data *data, unsigned int i)
-+{
-+	struct v4l2_pix_format *f = &data->dbg.format;
-+
-+	if (i >= MXT_V4L_INPUT_MAX)
-+		return -EINVAL;
-+
-+	if (i == MXT_V4L_INPUT_DELTAS)
-+		f->pixelformat = V4L2_TCH_FMT_DELTA_TD16;
-+	else
-+		f->pixelformat = V4L2_TCH_FMT_TU16;
-+
-+	f->width = data->xy_switch ? data->ysize : data->xsize;
-+	f->height = data->xy_switch ? data->xsize : data->ysize;
-+	f->field = V4L2_FIELD_NONE;
-+	f->colorspace = V4L2_COLORSPACE_RAW;
-+	f->bytesperline = f->width * sizeof(u16);
-+	f->sizeimage = f->width * f->height * sizeof(u16);
-+
-+	data->dbg.input = i;
-+
-+	return 0;
-+}
-+
-+static int mxt_vidioc_s_input(struct file *file, void *priv, unsigned int i)
-+{
-+	return mxt_set_input(video_drvdata(file), i);
-+}
-+
-+static int mxt_vidioc_g_input(struct file *file, void *priv, unsigned int *i)
-+{
-+	struct mxt_data *data = video_drvdata(file);
-+
-+	*i = data->dbg.input;
-+
-+	return 0;
-+}
-+
-+static int mxt_vidioc_fmt(struct file *file, void *priv, struct v4l2_format *f)
-+{
-+	struct mxt_data *data = video_drvdata(file);
-+
-+	f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-+	f->fmt.pix = data->dbg.format;
-+
-+	return 0;
-+}
-+
-+static int mxt_vidioc_enum_fmt(struct file *file, void *priv,
-+				 struct v4l2_fmtdesc *fmt)
-+{
-+	if (fmt->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-+		return -EINVAL;
-+
-+	switch (fmt->index) {
-+	case 0:
-+		fmt->pixelformat = V4L2_TCH_FMT_TU16;
-+		break;
-+
-+	case 1:
-+		fmt->pixelformat = V4L2_TCH_FMT_DELTA_TD16;
-+		break;
-+
-+	default:
-+		return -EINVAL;
-+	}
-+
-+	return 0;
-+}
-+
-+static int mxt_vidioc_g_parm(struct file *file, void *fh,
-+			     struct v4l2_streamparm *a)
-+{
-+	if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-+		return -EINVAL;
-+
-+	a->parm.capture.readbuffers = 1;
-+	a->parm.capture.timeperframe.numerator = 1;
-+	a->parm.capture.timeperframe.denominator = 10;
-+	return 0;
-+}
-+
-+static const struct v4l2_ioctl_ops mxt_video_ioctl_ops = {
-+	.vidioc_querycap        = mxt_vidioc_querycap,
-+
-+	.vidioc_enum_fmt_vid_cap = mxt_vidioc_enum_fmt,
-+	.vidioc_s_fmt_vid_cap   = mxt_vidioc_fmt,
-+	.vidioc_g_fmt_vid_cap   = mxt_vidioc_fmt,
-+	.vidioc_try_fmt_vid_cap	= mxt_vidioc_fmt,
-+	.vidioc_g_parm		= mxt_vidioc_g_parm,
-+
-+	.vidioc_enum_input      = mxt_vidioc_enum_input,
-+	.vidioc_g_input         = mxt_vidioc_g_input,
-+	.vidioc_s_input         = mxt_vidioc_s_input,
-+
-+	.vidioc_reqbufs         = vb2_ioctl_reqbufs,
-+	.vidioc_create_bufs     = vb2_ioctl_create_bufs,
-+	.vidioc_querybuf        = vb2_ioctl_querybuf,
-+	.vidioc_qbuf            = vb2_ioctl_qbuf,
-+	.vidioc_dqbuf           = vb2_ioctl_dqbuf,
-+	.vidioc_expbuf          = vb2_ioctl_expbuf,
-+
-+	.vidioc_streamon        = vb2_ioctl_streamon,
-+	.vidioc_streamoff       = vb2_ioctl_streamoff,
-+};
-+
-+static const struct video_device mxt_video_device = {
-+	.name = "Atmel maxTouch",
-+	.fops = &mxt_video_fops,
-+	.ioctl_ops = &mxt_video_ioctl_ops,
-+	.release = video_device_release_empty,
-+	.device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_TOUCH |
-+		       V4L2_CAP_READWRITE | V4L2_CAP_STREAMING,
-+};
-+
-+static void mxt_debug_init(struct mxt_data *data)
-+{
-+	struct mxt_info *info = data->info;
-+	struct mxt_dbg *dbg = &data->dbg;
-+	struct mxt_object *object;
-+	int error;
-+
-+	object = mxt_get_object(data, MXT_GEN_COMMAND_T6);
-+	if (!object)
-+		goto error;
-+
-+	dbg->diag_cmd_address = object->start_address + MXT_COMMAND_DIAGNOSTIC;
-+
-+	object = mxt_get_object(data, MXT_DEBUG_DIAGNOSTIC_T37);
-+	if (!object)
-+		goto error;
-+
-+	if (mxt_obj_size(object) != sizeof(struct t37_debug)) {
-+		dev_warn(&data->client->dev, "Bad T37 size");
-+		goto error;
-+	}
-+
-+	dbg->t37_address = object->start_address;
-+
-+	/* Calculate size of data and allocate buffer */
-+	dbg->t37_nodes = data->xsize * data->ysize;
-+
-+	if (info->family_id == MXT_FAMILY_1386)
-+		dbg->t37_pages = MXT1386_COLUMNS * MXT1386_PAGES_PER_COLUMN;
-+	else
-+		dbg->t37_pages = DIV_ROUND_UP(data->xsize *
-+					      info->matrix_ysize *
-+					      sizeof(u16),
-+					      sizeof(dbg->t37_buf->data));
-+
-+	dbg->t37_buf = devm_kmalloc_array(&data->client->dev, dbg->t37_pages,
-+					  sizeof(struct t37_debug), GFP_KERNEL);
-+	if (!dbg->t37_buf)
-+		goto error;
-+
-+	/* init channel to zero */
-+	mxt_set_input(data, 0);
-+
-+	/* register video device */
-+	snprintf(dbg->v4l2.name, sizeof(dbg->v4l2.name), "%s", "atmel_mxt_ts");
-+	error = v4l2_device_register(&data->client->dev, &dbg->v4l2);
-+	if (error)
-+		goto error;
-+
-+	/* initialize the queue */
-+	mutex_init(&dbg->lock);
-+	dbg->queue = mxt_queue;
-+	dbg->queue.drv_priv = data;
-+	dbg->queue.lock = &dbg->lock;
-+	dbg->queue.dev = &data->client->dev;
-+
-+	error = vb2_queue_init(&dbg->queue);
-+	if (error)
-+		goto error_unreg_v4l2;
-+
-+	dbg->vdev = mxt_video_device;
-+	dbg->vdev.v4l2_dev = &dbg->v4l2;
-+	dbg->vdev.lock = &dbg->lock;
-+	dbg->vdev.vfl_dir = VFL_DIR_RX;
-+	dbg->vdev.queue = &dbg->queue;
-+	video_set_drvdata(&dbg->vdev, data);
-+
-+	error = video_register_device(&dbg->vdev, VFL_TYPE_TOUCH, -1);
-+	if (error)
-+		goto error_unreg_v4l2;
-+
-+	return;
-+
-+error_unreg_v4l2:
-+	v4l2_device_unregister(&dbg->v4l2);
-+error:
-+	dev_warn(&data->client->dev, "Error initializing T37\n");
-+}
-+#else
-+static void mxt_debug_init(struct mxt_data *data)
-+{
-+}
-+#endif
-+
-+static int mxt_configure_objects(struct mxt_data *data,
-+				 const struct firmware *cfg)
-+{
-+	struct device *dev = &data->client->dev;
-+	int error;
-+
-+	error = mxt_init_t7_power_cfg(data);
-+	if (error) {
-+		dev_err(dev, "Failed to initialize power cfg\n");
-+		return error;
-+	}
-+
-+	if (cfg) {
-+		error = mxt_update_cfg(data, cfg);
-+		if (error)
-+			dev_warn(dev, "Error %d updating config\n", error);
-+	}
-+	
-+	if (!data->sysfs_updating_config) {
-+		if (data->multitouch) {
-+			dev_info(dev, "Registering devices\n");
-+			error = mxt_initialize_input_device(data);
-+			if (error)
-+				return error;
-+			
-+			if (data->T100_instances > 1) {
-+			    error = mxt_init_secondary_input(data);
-+			    if (error)
-+				    dev_warn(dev, "Error %d registering secondary device\n", error);
-+			}
-+		} else {
-+			dev_warn(dev, "No touch object detected\n");
-+		}
-+	}
-+	
-+	data->sysfs_updating_config = false;
-+	
-+	mxt_debug_init(data);
-+
-+	return 0;
-+}
-+
-+/* Configuration crc check sum is returned as hex xxxxxx */
-+static ssize_t mxt_config_crc_show(struct device *dev,
-+		struct device_attribute *attr, char *buf)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+
-+	return scnprintf(buf, PAGE_SIZE, "%06x\n", data->config_crc);
-+}
-+
-+/* Firmware Version is returned as Major.Minor.Build */
-+static ssize_t mxt_fw_version_show(struct device *dev,
-+				   struct device_attribute *attr, char *buf)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	struct mxt_info *info = data->info;
-+	return scnprintf(buf, PAGE_SIZE, "%u.%u.%02X\n",
- 			 info->version >> 4, info->version & 0xf, info->build);
- }
- 
-@@ -2129,7 +3473,7 @@ static ssize_t mxt_hw_version_show(struct device *dev,
- 				   struct device_attribute *attr, char *buf)
- {
- 	struct mxt_data *data = dev_get_drvdata(dev);
--	struct mxt_info *info = &data->info;
-+	struct mxt_info *info = data->info;
- 	return scnprintf(buf, PAGE_SIZE, "%u.%u\n",
- 			 info->family_id, info->variant_id);
- }
-@@ -2168,7 +3512,7 @@ static ssize_t mxt_object_show(struct device *dev,
- 		return -ENOMEM;
- 
- 	error = 0;
--	for (i = 0; i < data->info.object_num; i++) {
-+	for (i = 0; i < data->info->object_num; i++) {
- 		object = data->object_table + i;
- 
- 		if (!mxt_object_readable(object->type))
-@@ -2232,12 +3576,19 @@ static int mxt_load_fw(struct device *dev, const char *fn)
- 	if (ret) {
- 		dev_err(dev, "Unable to open firmware %s\n", fn);
- 		return ret;
--	}
-+	} else {
-+
-+		dev_info(dev, "Opened firmware file: %s\n", fn);
-+	}  
- 
- 	/* Check for incorrect enc file */
- 	ret = mxt_check_firmware_format(dev, fw);
--	if (ret)
-+
-+	if (ret) {
- 		goto release_firmware;
-+	} else {
-+		dev_info(dev, "File format is okay\n");		
-+	}
- 
- 	if (!data->in_bootloader) {
- 		/* Change to the bootloader mode */
-@@ -2245,18 +3596,21 @@ static int mxt_load_fw(struct device *dev, const char *fn)
- 
- 		ret = mxt_t6_command(data, MXT_COMMAND_RESET,
- 				     MXT_BOOT_VALUE, false);
--		if (ret)
-+		if (ret) {
- 			goto release_firmware;
-+		} else {
-+			dev_info(dev, "Sent bootloader command.\n");
-+		}
- 
- 		msleep(MXT_RESET_TIME);
- 
- 		/* Do not need to scan since we know family ID */
- 		ret = mxt_lookup_bootloader_address(data, 0);
--		if (ret)
-+		if (ret) {
- 			goto release_firmware;
--
--		mxt_free_input_device(data);
--		mxt_free_object_table(data);
-+		} else {
-+			dev_info(dev, "Found bootloader I2C address\n");
-+		}	
- 	} else {
- 		enable_irq(data->irq);
- 	}
-@@ -2289,7 +3643,7 @@ static int mxt_load_fw(struct device *dev, const char *fn)
- 		frame_size += 2;
- 
- 		/* Write one frame to device */
--		ret = mxt_bootloader_write(data, fw->data + pos, frame_size);
-+		ret = mxt_bootloader_write(data, &fw->data[pos], frame_size);
- 		if (ret)
- 			goto disable_irq;
- 
-@@ -2310,17 +3664,16 @@ static int mxt_load_fw(struct device *dev, const char *fn)
- 			frame++;
- 		}
- 
--		if (frame % 50 == 0)
--			dev_dbg(dev, "Sent %d frames, %d/%zd bytes\n",
-+		if (pos >= fw->size) {
-+			dev_info(dev, "Sent %u frames, %zu bytes\n",
-+				frame, fw->size);
-+		}
-+		else if (frame % 50 == 0) {
-+			dev_info(dev, "Sent %u frames, %d/%zu bytes\n",
- 				frame, pos, fw->size);
-+		}
- 	}
- 
--	/* Wait for flash. */
--	ret = mxt_wait_for_completion(data, &data->bl_completion,
--				      MXT_FW_RESET_TIME);
--	if (ret)
--		goto disable_irq;
--
- 	dev_dbg(dev, "Sent %d frames, %d bytes\n", frame, pos);
- 
- 	/*
-@@ -2328,7 +3681,13 @@ static int mxt_load_fw(struct device *dev, const char *fn)
- 	 * the CHG line after bootloading has finished, so ignore potential
- 	 * errors.
- 	 */
--	mxt_wait_for_completion(data, &data->bl_completion, MXT_FW_RESET_TIME);
-+
-+	msleep(MXT_BOOTLOADER_WAIT);	/* Wait for chip to leave bootloader*/
-+	
-+	ret = mxt_wait_for_completion(data, &data->bl_completion,
-+				      MXT_BOOTLOADER_WAIT);
-+	if (ret)
-+		goto disable_irq;
- 
- 	data->in_bootloader = false;
- 
-@@ -2345,32 +3704,204 @@ static ssize_t mxt_update_fw_store(struct device *dev,
- {
- 	struct mxt_data *data = dev_get_drvdata(dev);
- 	int error;
--
-+	
- 	error = mxt_load_fw(dev, MXT_FW_NAME);
- 	if (error) {
- 		dev_err(dev, "The firmware update failed(%d)\n", error);
- 		count = error;
- 	} else {
- 		dev_info(dev, "The firmware update succeeded\n");
-+	}
-+	
-+	data->sysfs_updating_config = true;		
-+	
-+	msleep(MXT_FW_FLASH_TIME);
-+	
-+	error = mxt_acquire_irq(data);
-+	if (error)
-+		return error;
-+	
-+	/* Only works when driver compiled as module */
-+	error = request_firmware_nowait(THIS_MODULE, true, MXT_CFG_NAME,
-+					dev, GFP_KERNEL, data,
-+					mxt_config_cb);
-+	if (error) {
-+		dev_err(dev, "Failed to invoke firmware loader: %d\n",
-+			error);
-+		return error;
-+		
-+	}
-+	
-+	return count;
-+}
- 
--		error = mxt_initialize(data);
--		if (error)
--			return error;
-+static ssize_t mxt_update_cfg_store(struct device *dev,
-+		struct device_attribute *attr,
-+		const char *buf, size_t count)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	const struct firmware *cfg;
-+	int ret;
-+
-+	ret = request_firmware(&cfg, MXT_CFG_NAME, dev);
-+	if (ret < 0) {
-+		dev_err(dev, "Failure to request config file %s\n",
-+			MXT_CFG_NAME);
-+		ret = -ENOENT;
-+		goto out;
-+	} else {
-+		dev_info(dev, "Found configuration file: %s\n",
-+			MXT_CFG_NAME);
- 	}
-+	
-+	data->sysfs_updating_config = true;
- 
--	return count;
-+	if (data->suspend_mode == MXT_SUSPEND_DEEP_SLEEP) {
-+		mxt_set_t7_power_cfg(data, MXT_POWER_CFG_RUN);
-+	}
-+
-+	ret = mxt_configure_objects(data, cfg);
-+	if (ret)
-+		goto release;
-+
-+	ret = count;
-+
-+release:
-+	release_firmware(cfg);
-+out:
-+	return ret;
-+}
-+
-+static ssize_t mxt_debug_enable_show(struct device *dev,
-+	struct device_attribute *attr, char *buf)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	char c;
-+
-+	c = data->debug_enabled ? '1' : '0';
-+	return scnprintf(buf, PAGE_SIZE, "%c\n", c);
-+}
-+
-+static ssize_t mxt_debug_notify_show(struct device *dev,
-+	struct device_attribute *attr, char *buf)
-+{
-+	return sprintf(buf, "0\n");
-+}
-+
-+static ssize_t mxt_debug_v2_enable_store(struct device *dev,
-+	struct device_attribute *attr, const char *buf, size_t count)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	u8 i;
-+	ssize_t ret;
-+
-+	if (kstrtou8(buf, 0, &i) == 0 && i < 2) {
-+		if (i == 1)
-+			mxt_debug_msg_enable(data);
-+		else
-+			mxt_debug_msg_disable(data);
-+
-+		ret = count;
-+	} else {
-+		dev_dbg(dev, "debug_enabled write error\n");
-+		ret = -EINVAL;
-+	}
-+
-+	return ret;
-+}
-+
-+static ssize_t mxt_debug_enable_store(struct device *dev,
-+	struct device_attribute *attr, const char *buf, size_t count)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	u8 i;
-+	ssize_t ret;
-+
-+	if (kstrtou8(buf, 0, &i) == 0 && i < 2) {
-+		data->debug_enabled = (i == 1);
-+
-+		dev_dbg(dev, "%s\n", i ? "debug enabled" : "debug disabled");
-+		ret = count;
-+	} else {
-+		dev_dbg(dev, "debug_enabled write error\n");
-+		ret = -EINVAL;
-+	}
-+
-+	return ret;
-+}
-+
-+static int mxt_check_mem_access_params(struct mxt_data *data, loff_t off,
-+				       size_t *count)
-+{
-+	if (off >= data->mem_size)
-+		return -EIO;
-+
-+	if (off + *count > data->mem_size)
-+		*count = data->mem_size - off;
-+
-+	if (*count > MXT_MAX_BLOCK_WRITE)
-+		*count = MXT_MAX_BLOCK_WRITE;
-+
-+	return 0;
-+}
-+
-+static ssize_t mxt_mem_access_read(struct file *filp, struct kobject *kobj,
-+	struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count)
-+{
-+	struct device *dev = container_of(kobj, struct device, kobj);
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	int ret = 0;
-+
-+	ret = mxt_check_mem_access_params(data, off, &count);
-+	if (ret < 0)
-+		return ret;
-+
-+	if (count > 0)
-+		ret = __mxt_read_reg(data->client, off, count, buf);
-+
-+	return ret == 0 ? count : ret;
-+}
-+
-+static ssize_t mxt_mem_access_write(struct file *filp, struct kobject *kobj,
-+	struct bin_attribute *bin_attr, char *buf, loff_t off,
-+	size_t count)
-+{
-+	struct device *dev = container_of(kobj, struct device, kobj);
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	int ret = 0;
-+
-+	ret = mxt_check_mem_access_params(data, off, &count);
-+	if (ret < 0)
-+		return ret;
-+
-+	if (count > 0)
-+		ret = __mxt_write_reg(data->client, off, count, buf);
-+
-+	return ret == 0 ? count : ret;
- }
- 
- static DEVICE_ATTR(fw_version, S_IRUGO, mxt_fw_version_show, NULL);
- static DEVICE_ATTR(hw_version, S_IRUGO, mxt_hw_version_show, NULL);
- static DEVICE_ATTR(object, S_IRUGO, mxt_object_show, NULL);
-+static DEVICE_ATTR(update_cfg, S_IWUSR, NULL, mxt_update_cfg_store);
-+static DEVICE_ATTR(config_crc, S_IRUGO, mxt_config_crc_show, NULL);
- static DEVICE_ATTR(update_fw, S_IWUSR, NULL, mxt_update_fw_store);
-+static DEVICE_ATTR(debug_enable, S_IWUSR | S_IRUSR, mxt_debug_enable_show,
-+		   mxt_debug_enable_store);
-+static DEVICE_ATTR(debug_v2_enable, S_IWUSR | S_IRUSR, NULL,
-+		   mxt_debug_v2_enable_store);
-+static DEVICE_ATTR(debug_notify, S_IRUGO, mxt_debug_notify_show, NULL);
- 
- static struct attribute *mxt_attrs[] = {
- 	&dev_attr_fw_version.attr,
- 	&dev_attr_hw_version.attr,
- 	&dev_attr_object.attr,
-+	&dev_attr_update_cfg.attr,
-+	&dev_attr_config_crc.attr,
- 	&dev_attr_update_fw.attr,
-+	&dev_attr_debug_enable.attr,
-+	&dev_attr_debug_v2_enable.attr,
-+	&dev_attr_debug_notify.attr,
- 	NULL
- };
- 
-@@ -2378,9 +3909,54 @@ static const struct attribute_group mxt_attr_group = {
- 	.attrs = mxt_attrs,
- };
- 
-+static int mxt_sysfs_init(struct mxt_data *data)
-+{
-+	struct i2c_client *client = data->client;
-+	int error;
-+
-+	error = sysfs_create_group(&client->dev.kobj, &mxt_attr_group);
-+	if (error) {
-+		dev_err(&client->dev, "Failure %d creating sysfs group\n",
-+			error);
-+		return error;
-+	}
-+
-+	sysfs_bin_attr_init(&data->mem_access_attr);
-+	data->mem_access_attr.attr.name = "mem_access";
-+	data->mem_access_attr.attr.mode = S_IRUGO | S_IWUSR;
-+	data->mem_access_attr.read = mxt_mem_access_read;
-+	data->mem_access_attr.write = mxt_mem_access_write;
-+	data->mem_access_attr.size = data->mem_size;
-+
-+	error = sysfs_create_bin_file(&client->dev.kobj,
-+				  &data->mem_access_attr);
-+	if (error) {
-+		dev_err(&client->dev, "Failed to create %s\n",
-+			data->mem_access_attr.attr.name);
-+		goto err_remove_sysfs_group;
-+	}
-+
-+	return 0;
-+
-+err_remove_sysfs_group:
-+	sysfs_remove_group(&client->dev.kobj, &mxt_attr_group);
-+	return error;
-+}
-+
-+static void mxt_sysfs_remove(struct mxt_data *data)
-+{
-+	struct i2c_client *client = data->client;
-+
-+	if (data->mem_access_attr.attr.name)
-+		sysfs_remove_bin_file(&client->dev.kobj,
-+				      &data->mem_access_attr);
-+
-+	sysfs_remove_group(&client->dev.kobj, &mxt_attr_group);
-+}
-+
- static void mxt_start(struct mxt_data *data)
- {
--	switch (data->pdata->suspend_mode) {
-+	switch (data->suspend_mode) {
- 	case MXT_SUSPEND_T9_CTRL:
- 		mxt_soft_reset(data);
- 
-@@ -2398,12 +3974,11 @@ static void mxt_start(struct mxt_data *data)
- 		mxt_t6_command(data, MXT_COMMAND_CALIBRATE, 1, false);
- 		break;
- 	}
--
- }
- 
- static void mxt_stop(struct mxt_data *data)
- {
--	switch (data->pdata->suspend_mode) {
-+	switch (data->suspend_mode) {
- 	case MXT_SUSPEND_T9_CTRL:
- 		/* Touch disable */
- 		mxt_write_object(data,
-@@ -2433,131 +4008,75 @@ static void mxt_input_close(struct input_dev *dev)
- 	mxt_stop(data);
- }
- 
--#ifdef CONFIG_OF
--static const struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client)
-+static int mxt_parse_device_properties(struct mxt_data *data)
- {
--	struct mxt_platform_data *pdata;
--	struct device_node *np = client->dev.of_node;
-+	static const char keymap_property[] = "linux,gpio-keymap";
-+	struct device *dev = &data->client->dev;
- 	u32 *keymap;
--	int proplen, ret;
--
--	if (!np)
--		return ERR_PTR(-ENOENT);
--
--	pdata = devm_kzalloc(&client->dev, sizeof(*pdata), GFP_KERNEL);
--	if (!pdata)
--		return ERR_PTR(-ENOMEM);
-+	int n_keys;
-+	int error;
- 
--	if (of_find_property(np, "linux,gpio-keymap", &proplen)) {
--		pdata->t19_num_keys = proplen / sizeof(u32);
-+	if (device_property_present(dev, keymap_property)) {
-+		n_keys = device_property_read_u32_array(dev, keymap_property,
-+							NULL, 0);
-+		if (n_keys <= 0) {
-+			error = n_keys < 0 ? n_keys : -EINVAL;
-+			dev_err(dev, "invalid/malformed '%s' property: %d\n",
-+				keymap_property, error);
-+			return error;
-+		}
- 
--		keymap = devm_kzalloc(&client->dev,
--				pdata->t19_num_keys * sizeof(keymap[0]),
--				GFP_KERNEL);
-+		keymap = devm_kmalloc_array(dev, n_keys, sizeof(*keymap),
-+					    GFP_KERNEL);
- 		if (!keymap)
--			return ERR_PTR(-ENOMEM);
-+			return -ENOMEM;
- 
--		ret = of_property_read_u32_array(np, "linux,gpio-keymap",
--						 keymap, pdata->t19_num_keys);
--		if (ret)
--			dev_warn(&client->dev,
--				 "Couldn't read linux,gpio-keymap: %d\n", ret);
-+		error = device_property_read_u32_array(dev, keymap_property,
-+						       keymap, n_keys);
-+		if (error) {
-+			dev_err(dev, "failed to parse '%s' property: %d\n",
-+				keymap_property, error);
-+			return error;
-+		}
- 
--		pdata->t19_keymap = keymap;
-+		data->t19_keymap = keymap;
-+		data->t19_num_keys = n_keys;
- 	}
- 
--	pdata->suspend_mode = MXT_SUSPEND_DEEP_SLEEP;
--
--	return pdata;
--}
--#else
--static const struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client)
--{
--	return ERR_PTR(-ENOENT);
-+	return 0;
- }
--#endif
--
--#ifdef CONFIG_ACPI
--
--struct mxt_acpi_platform_data {
--	const char *hid;
--	struct mxt_platform_data pdata;
--};
--
--static unsigned int samus_touchpad_buttons[] = {
--	KEY_RESERVED,
--	KEY_RESERVED,
--	KEY_RESERVED,
--	BTN_LEFT
--};
- 
--static struct mxt_acpi_platform_data samus_platform_data[] = {
-+static const struct dmi_system_id chromebook_T9_suspend_dmi[] = {
- 	{
--		/* Touchpad */
--		.hid	= "ATML0000",
--		.pdata	= {
--			.t19_num_keys	= ARRAY_SIZE(samus_touchpad_buttons),
--			.t19_keymap	= samus_touchpad_buttons,
--		},
--	},
--	{
--		/* Touchscreen */
--		.hid	= "ATML0001",
--	},
--	{ }
--};
--
--static unsigned int chromebook_tp_buttons[] = {
--	KEY_RESERVED,
--	KEY_RESERVED,
--	KEY_RESERVED,
--	KEY_RESERVED,
--	KEY_RESERVED,
--	BTN_LEFT
--};
--
--static struct mxt_acpi_platform_data chromebook_platform_data[] = {
--	{
--		/* Touchpad */
--		.hid	= "ATML0000",
--		.pdata	= {
--			.t19_num_keys	= ARRAY_SIZE(chromebook_tp_buttons),
--			.t19_keymap	= chromebook_tp_buttons,
--		},
--	},
--	{
--		/* Touchscreen */
--		.hid	= "ATML0001",
--	},
--	{ }
--};
--
--static const struct dmi_system_id mxt_dmi_table[] = {
--	{
--		/* 2015 Google Pixel */
--		.ident = "Chromebook Pixel 2",
- 		.matches = {
- 			DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
--			DMI_MATCH(DMI_PRODUCT_NAME, "Samus"),
-+			DMI_MATCH(DMI_PRODUCT_NAME, "Link"),
- 		},
--		.driver_data = samus_platform_data,
- 	},
- 	{
--		/* Other Google Chromebooks */
--		.ident = "Chromebook",
- 		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
-+			DMI_MATCH(DMI_PRODUCT_NAME, "Peppy"),
- 		},
--		.driver_data = chromebook_platform_data,
- 	},
- 	{ }
- };
- 
--static const struct mxt_platform_data *mxt_parse_acpi(struct i2c_client *client)
-+static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
- {
--	struct acpi_device *adev;
--	const struct dmi_system_id *system_id;
--	const struct mxt_acpi_platform_data *acpi_pdata;
-+	struct mxt_data *data;
-+	int error;
-+
-+	/*
-+	 * Ignore devices that do not have device properties attached to
-+	 * them, as we need help determining whether we are dealing with
-+	 * touch screen or touchpad.
-+	 *
-+	 * So far on x86 the only users of Atmel touch controllers are
-+	 * Chromebooks, and chromeos_laptop driver will ensure that
-+	 * necessary properties are provided (if firmware does not do that).
-+	 */
-+	if (!device_property_present(&client->dev, "compatible"))
-+		return -ENXIO;
- 
- 	/*
- 	 * Ignore ACPI devices representing bootloader mode.
-@@ -2569,79 +4088,17 @@ static const struct mxt_platform_data *mxt_parse_acpi(struct i2c_client *client)
- 	 * application mode addresses were all above 0x40, so we'll use it
- 	 * as a threshold.
- 	 */
--	if (client->addr < 0x40)
--		return ERR_PTR(-ENXIO);
--
--	adev = ACPI_COMPANION(&client->dev);
--	if (!adev)
--		return ERR_PTR(-ENOENT);
--
--	system_id = dmi_first_match(mxt_dmi_table);
--	if (!system_id)
--		return ERR_PTR(-ENOENT);
-+	if (ACPI_COMPANION(&client->dev) && client->addr < 0x40)
-+		return -ENXIO;
- 
--	acpi_pdata = system_id->driver_data;
--	if (!acpi_pdata)
--		return ERR_PTR(-ENOENT);
--
--	while (acpi_pdata->hid) {
--		if (!strcmp(acpi_device_hid(adev), acpi_pdata->hid))
--			return &acpi_pdata->pdata;
--
--		acpi_pdata++;
--	}
--
--	return ERR_PTR(-ENOENT);
--}
--#else
--static const struct mxt_platform_data *mxt_parse_acpi(struct i2c_client *client)
--{
--	return ERR_PTR(-ENOENT);
--}
--#endif
--
--static const struct mxt_platform_data *
--mxt_get_platform_data(struct i2c_client *client)
--{
--	const struct mxt_platform_data *pdata;
--
--	pdata = dev_get_platdata(&client->dev);
--	if (pdata)
--		return pdata;
--
--	pdata = mxt_parse_dt(client);
--	if (!IS_ERR(pdata) || PTR_ERR(pdata) != -ENOENT)
--		return pdata;
--
--	pdata = mxt_parse_acpi(client);
--	if (!IS_ERR(pdata) || PTR_ERR(pdata) != -ENOENT)
--		return pdata;
--
--	dev_err(&client->dev, "No platform data specified\n");
--	return ERR_PTR(-EINVAL);
--}
--
--static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
--{
--	struct mxt_data *data;
--	const struct mxt_platform_data *pdata;
--	int error;
--
--	pdata = mxt_get_platform_data(client);
--	if (IS_ERR(pdata))
--		return PTR_ERR(pdata);
--
--	data = kzalloc(sizeof(struct mxt_data), GFP_KERNEL);
--	if (!data) {
--		dev_err(&client->dev, "Failed to allocate memory\n");
-+	data = devm_kzalloc(&client->dev, sizeof(struct mxt_data), GFP_KERNEL);
-+	if (!data)
- 		return -ENOMEM;
--	}
- 
- 	snprintf(data->phys, sizeof(data->phys), "i2c-%u-%04x/input0",
- 		 client->adapter->nr, client->addr);
- 
- 	data->client = client;
--	data->pdata = pdata;
- 	data->irq = client->irq;
- 	i2c_set_clientdata(client, data);
- 
-@@ -2649,48 +4106,78 @@ static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
- 	init_completion(&data->reset_completion);
- 	init_completion(&data->crc_completion);
- 
--	error = request_threaded_irq(client->irq, NULL, mxt_interrupt,
--				     pdata->irqflags | IRQF_ONESHOT,
--				     client->name, data);
-+	data->suspend_mode = dmi_check_system(chromebook_T9_suspend_dmi) ?
-+		MXT_SUSPEND_T9_CTRL : MXT_SUSPEND_DEEP_SLEEP;
-+
-+	error = mxt_parse_device_properties(data);
-+	if (error)
-+		return error;
-+
-+	data->reset_gpio = devm_gpiod_get_optional(&client->dev,
-+						   "reset", GPIOD_OUT_LOW);
-+	if (IS_ERR(data->reset_gpio)) {
-+		error = PTR_ERR(data->reset_gpio);
-+		dev_err(&client->dev, "Failed to get reset gpio: %d\n", error);
-+		return error;
-+	} else {
-+		dev_dbg(&client->dev, "Got Reset GPIO\n");
-+	  }
-+
-+	error = devm_request_threaded_irq(&client->dev, client->irq,
-+					  NULL, mxt_interrupt, IRQF_ONESHOT,
-+					  client->name, data);
- 	if (error) {
- 		dev_err(&client->dev, "Failed to register interrupt\n");
--		goto err_free_mem;
-+		return error;
- 	}
- 
- 	disable_irq(client->irq);
- 
-+	if(!(IS_ERR(data->reset_gpio))) {
-+		gpiod_direction_output(data->reset_gpio, 1);	/* GPIO in device tree is active-low */
-+		dev_dbg(&client->dev, "Direction is ouput\n");
-+	}
-+	
-+	if(!(IS_ERR(data->reset_gpio))) {
-+		dev_info(&client->dev, "Resetting chip\n");
-+		msleep(MXT_RESET_GPIO_TIME);
-+		gpiod_set_value(data->reset_gpio, 1);
-+		msleep(MXT_RESET_INVALID_CHG);
-+		gpiod_set_value(data->reset_gpio, 0);
-+	}
-+
- 	error = mxt_initialize(data);
- 	if (error)
--		goto err_free_irq;
-+		return error;
- 
--	error = sysfs_create_group(&client->dev.kobj, &mxt_attr_group);
--	if (error) {
--		dev_err(&client->dev, "Failure %d creating sysfs group\n",
--			error);
--		goto err_free_object;
--	}
-+	/* Removed the mxt_sys_init and mxt_debug_msg_init */
-+	/* out of mxt_initialize to avoid duplicate inits */
-+
-+	error = mxt_sysfs_init(data);
-+	if (error)
-+		return error;
-+
-+	error = mxt_debug_msg_init(data);
-+	if (error)
-+		return error;
-+
-+	mutex_init(&data->debug_msg_lock);
- 
- 	return 0;
- 
--err_free_object:
--	mxt_free_input_device(data);
--	mxt_free_object_table(data);
--err_free_irq:
--	free_irq(client->irq, data);
--err_free_mem:
--	kfree(data);
--	return error;
- }
- 
- static int mxt_remove(struct i2c_client *client)
- {
- 	struct mxt_data *data = i2c_get_clientdata(client);
- 
-+	mxt_debug_msg_remove(data);	
-+	mxt_sysfs_remove(data);
-+
-+	disable_irq(data->irq);
- 	sysfs_remove_group(&client->dev.kobj, &mxt_attr_group);
--	free_irq(data->irq, data);
- 	mxt_free_input_device(data);
- 	mxt_free_object_table(data);
--	kfree(data);
- 
- 	return 0;
- }
-@@ -2737,6 +4224,11 @@ static SIMPLE_DEV_PM_OPS(mxt_pm_ops, mxt_suspend, mxt_resume);
- 
- static const struct of_device_id mxt_of_match[] = {
- 	{ .compatible = "atmel,maxtouch", },
-+	/* Compatibles listed below are deprecated */
-+	{ .compatible = "atmel,qt602240_ts", },
-+	{ .compatible = "atmel,atmel_mxt_ts", },
-+	{ .compatible = "atmel,atmel_mxt_tp", },
-+	{ .compatible = "atmel,mXT224", },
- 	{},
- };
- MODULE_DEVICE_TABLE(of, mxt_of_match);
-@@ -2763,7 +4255,7 @@ MODULE_DEVICE_TABLE(i2c, mxt_id);
- static struct i2c_driver mxt_driver = {
- 	.driver = {
- 		.name	= "atmel_mxt_ts",
--		.of_match_table = of_match_ptr(mxt_of_match),
-+		.of_match_table = mxt_of_match,
- 		.acpi_match_table = ACPI_PTR(mxt_acpi_id),
- 		.pm	= &mxt_pm_ops,
- 	},

+ 0 - 2967
board/GfA/Display001/linux_4.4.94_rt19/linux-001-Bootlogo-GfA.patch

@@ -1,2967 +0,0 @@
-diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
-index 6e92917..1302223 100644
---- a/drivers/video/console/fbcon.c
-+++ b/drivers/video/console/fbcon.c
-@@ -580,6 +580,7 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info,
- 	if (fb_get_color_depth(&info->var, &info->fix) == 1)
- 		erase &= ~0x400;
- 	logo_height = fb_prepare_logo(info, ops->rotate);
-+	logo_height += 5;
- 	logo_lines = DIV_ROUND_UP(logo_height, vc->vc_font.height);
- 	q = (unsigned short *) (vc->vc_origin +
- 				vc->vc_size_row * rows);
-diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
-index 0705d88..6a60d1ef 100644
---- a/drivers/video/fbdev/core/fbmem.c
-+++ b/drivers/video/fbdev/core/fbmem.c
-@@ -498,8 +498,8 @@ static int fb_show_logo_line(struct fb_info *info, int rotate,
- 		fb_set_logo(info, logo, logo_new, fb_logo.depth);
- 	}
- 
--	image.dx = 0;
--	image.dy = y;
-+	image.dx = 0 + 5;
-+	image.dy = y + 5;
- 	image.width = logo->width;
- 	image.height = logo->height;
- 
-diff --git a/drivers/video/logo/Kconfig b/drivers/video/logo/Kconfig
-index 0037104..fa2c4b9 100644
---- a/drivers/video/logo/Kconfig
-+++ b/drivers/video/logo/Kconfig
-@@ -15,6 +15,10 @@ config FB_LOGO_EXTRA
- 	depends on FB=y
- 	default y if SPU_BASE
- 
-+config FB_LOGO_CUSTOM
-+	bool "Custom Linux Logo"
-+	default n
-+
- config LOGO_LINUX_MONO
- 	bool "Standard black and white Linux logo"
- 	default y
-diff --git a/drivers/video/logo/Makefile b/drivers/video/logo/Makefile
-index 3b43781..e31313d 100644
---- a/drivers/video/logo/Makefile
-+++ b/drivers/video/logo/Makefile
-@@ -15,6 +15,7 @@ obj-$(CONFIG_LOGO_SUPERH_MONO)		+= logo_superh_mono.o
- obj-$(CONFIG_LOGO_SUPERH_VGA16)		+= logo_superh_vga16.o
- obj-$(CONFIG_LOGO_SUPERH_CLUT224)	+= logo_superh_clut224.o
- obj-$(CONFIG_LOGO_M32R_CLUT224)		+= logo_m32r_clut224.o
-+obj-$(CONFIG_FB_LOGO_CUSTOM)		+= logo_custom_clut224.o
- 
- obj-$(CONFIG_SPU_BASE)			+= logo_spe_clut224.o
- 
-diff --git a/drivers/video/logo/logo.c b/drivers/video/logo/logo.c
-index 10fbfd8..2c8dfc6 100644
---- a/drivers/video/logo/logo.c
-+++ b/drivers/video/logo/logo.c
-@@ -42,6 +42,8 @@ late_initcall(fb_logo_late_init);
-  */
- const struct linux_logo * __init_refok fb_find_logo(int depth)
- {
-+	extern const struct linux_logo logo_custom_clut224;
-+	
- 	const struct linux_logo *logo = NULL;
- 
- 	if (nologo || logos_freed)
-@@ -111,6 +113,10 @@ const struct linux_logo * __init_refok fb_find_logo(int depth)
- 		/* M32R Linux logo */
- 		logo = &logo_m32r_clut224;
- #endif
-+#ifdef CONFIG_FB_LOGO_CUSTOM
-+		/* Custom Linux logo */
-+		logo = &logo_custom_clut224;
-+#endif
- 	}
- 	return logo;
- }
-diff --git a/drivers/video/logo/logo_custom_clut224.ppm b/drivers/video/logo/logo_custom_clut224.ppm
-new file mode 100644
-index 0000000..f46e5de
---- /dev/null
-+++ b/drivers/video/logo/logo_custom_clut224.ppm
-@@ -0,0 +1,2883 @@
-+P3
-+179 96
-+255
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  24 24 24  39 39 39
-+57 57 57  72 72 72  87 87 87  87 87 87  87 87 87  87 87 87
-+87 87 87  87 87 87  87 87 87  72 72 72  72 72 72  57 57 57
-+39 39 39  24 24 24  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 72 72
-+0 88 88  0 103 103  0 122 122  0 128 128  0 128 128  0 122 122
-+0 103 103  0 103 103  0 72 72  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+39 39 39  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  39 39 39
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 55 55  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 103 103
-+0 40 40  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 72 72
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 55 55  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 40 40  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 103 103  0 40 40  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 72 72  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 88 88  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 103 103  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 103 103  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  57 57 57  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+72 72 72  0 0 0  0 0 0  0 0 0  0 0 0  0 103 103
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 103 103  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 88 88  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 55 55  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 55 55  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 21 21  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  57 57 57  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 103 103
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+72 72 72  57 57 57  39 39 39  39 39 39  39 39 39  24 24 24
-+39 39 39  39 39 39  39 39 39  39 39 39  57 57 57  72 72 72
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 88 88  0 55 55  0 21 21  0 21 21  0 21 21  0 40 40
-+0 55 55  0 88 88  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  57 57 57  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  57 57 57  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 72 72  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 72 72  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 88 88  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 55 55
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  57 57 57
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 40 40
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 88 88  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  72 72 72  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 21 21  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 55 55
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 103 103  0 0 0  0 0 0
-+0 0 0  0 0 0  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  57 57 57
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 55 55  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 55 55  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 21 21  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 88 88  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 88 88  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 88 88  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 40 40  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  57 57 57  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 55 55  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 103 103
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 72 72  0 0 0  0 0 0  0 0 0  0 21 21
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  57 57 57  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 128 128  0 128 128  0 122 122
-+0 103 103  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 40 40  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 55 55  0 128 128  0 122 122
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 88 88  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 72 72  0 21 21
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 72 72
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 103 103  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 40 40  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 122 122  0 122 122  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 21 21  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 40 40  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 103 103  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 55 55  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 72 72  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 88 88
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+72 72 72  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 40 40  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 21 21
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 21 21  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 103 103  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 55 55  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  57 57 57  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 88 88
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 88 88  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  72 72 72
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 103 103  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 21 21  0 122 122  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 122 122  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 40 40  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  72 72 72  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 72 72  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 40 40  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 103 103
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 55 55  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  57 57 57
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 72 72  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 88 88  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  57 57 57  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 55 55  0 122 122  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 103 103  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 103 103  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 55 55
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 88 88  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 55 55  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 103 103  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 122 122  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  0 21 21  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 21 21  0 103 103
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 40 40  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 72 72  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 103 103  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 40 40  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 40 40
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 122 122  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 55 55  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  57 57 57  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 72 72  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 122 122  0 122 122
-+0 122 122  0 122 122  0 122 122  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 55 55
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 21 21  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 88 88  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  57 57 57  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 21 21  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 55 55  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 40 40  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 103 103  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 72 72
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 40 40  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  57 57 57  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 21 21  0 122 122  0 122 122
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 122 122  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 103 103  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 55 55  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 21 21
-+0 21 21  0 21 21  0 21 21  0 21 21  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  57 57 57  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 88 88  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 88 88
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  72 72 72  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 55 55  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 21 21  0 122 122  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 21 21  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  39 39 39  39 39 39  39 39 39  39 39 39  39 39 39
-+39 39 39  39 39 39  39 39 39  39 39 39  39 39 39  39 39 39
-+39 39 39  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 21 21
-+0 103 103  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 55 55  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  57 57 57
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 88 88
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  39 39 39  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  72 72 72
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 55 55  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 128 128  0 103 103  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  24 24 24  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 40 40  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 122 122  0 21 21  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+24 24 24  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  0 122 122  0 122 122  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 122 122
-+0 40 40  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 103 103  0 122 122  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 122 122  0 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  57 57 57  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 72 72  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 103 103  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+87 87 87  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 103 103  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  36 120 120  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 40 40  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  72 72 72  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  61 115 115  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 55 55  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  57 57 57  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  57 57 57
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 109 109  24 123 123
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 88 88  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  57 57 57  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 109 109  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 103 103  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  72 72 72
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  69 113 113  0 128 128  0 128 128  0 122 122
-+0 21 21  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  39 39 39
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  24 24 24  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  39 39 39  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  87 109 109  38 67 67
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  39 39 39  24 24 24  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  39 39 39  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  72 72 72  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+57 57 57  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  39 39 39  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+57 57 57  39 39 39  24 24 24  24 24 24  24 24 24  24 24 24
-+0 0 0  24 24 24  24 24 24  39 39 39  39 39 39  57 57 57
-+87 87 87  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  87 87 87  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  39 39 39  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  24 24 24  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  24 24 24  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 123 123
-+87 109 109  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  69 113 113  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+57 57 57  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  72 72 72  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 72 72  0 128 128  0 128 128
-+0 128 128  0 128 128  36 120 120  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  57 57 57  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 40 40  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  69 113 113  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  72 72 72  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  24 24 24
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 21 21  0 122 122  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  36 120 120
-+87 109 109  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  87 87 87
-+24 24 24  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  24 24 24  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 103 103  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  36 120 120  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  39 39 39  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  57 57 57  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+87 87 87  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 88 88  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 122 122  43 92 92  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  87 87 87  39 39 39  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  72 72 72  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  57 57 57  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 55 55
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 103 103  0 0 0  0 0 0  39 39 39
-+72 72 72  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  72 72 72
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  87 87 87
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  39 39 39  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 40 40  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 122 122  0 21 21  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  39 39 39  87 87 87  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  39 39 39  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  24 24 24
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  87 87 87  24 24 24  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 103 103  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 122 122  0 55 55  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  39 39 39
-+72 72 72  87 87 87  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  57 57 57
-+39 39 39  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+39 39 39  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 103 103  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 128 128  0 128 128  0 128 128  0 128 128  0 128 128  0 128 128
-+0 72 72  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 21 21  24 24 24  39 39 39  57 57 57
-+72 72 72  87 87 87  87 87 87  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  87 87 87  87 87 87  72 72 72
-+72 72 72  39 39 39  24 24 24  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
-+0 0 0  72 72 72  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  105 105 105  105 105 105
-+105 105 105  105 105 105  105 105 105  105 105 105  72 72 72

+ 0 - 17
board/GfA/Display001/linux_4.4.94_rt19/linux-002-disa_pru_no_cild_msg.patch

@@ -1,17 +0,0 @@
-diff --git a/drivers/uio/uio_pruss.c b/drivers/uio/uio_pruss.c
-index 6559752..9e263b5 100644
---- a/drivers/uio/uio_pruss.c
-+++ b/drivers/uio/uio_pruss.c
-@@ -195,10 +195,10 @@ static int pruss_probe(struct platform_device *pdev)
- 			"pins are not configured from the driver\n");
- 	else{
- 		count = of_get_child_count(pdev->dev.of_node);
--		if (!count){
-+/*		if (!count){
- 			dev_info(&pdev->dev, "No children\n");
- 			return -ENODEV;
--		}
-+		}*/
- 		// Run through all children. They have lables for easy reference.
- 		for_each_child_of_node(pdev->dev.of_node, child){
- 			enum of_gpio_flags flags;

+ 0 - 1015
board/GfA/Display001/linux_4.4.94_rt19/linux-004-egalax_i2c_touchcontroller.patch

@@ -1,1015 +0,0 @@
-From a12a55f6571c5992f5a88e8bbbaabf442c0be88c Mon Sep 17 00:00:00 2001
-From: Reinhard Russinger <reinhard@russinger.at>
-Date: Wed, 3 May 2017 08:25:31 +0200
-Subject: [PATCH 1/1] add egalax i2c touchcontroller driver
-
----
- drivers/input/touchscreen/Kconfig      |  10 +
- drivers/input/touchscreen/Makefile     |   1 +
- drivers/input/touchscreen/egalax_i2c.c | 961 +++++++++++++++++++++++++++++++++
- 3 files changed, 972 insertions(+)
- create mode 100644 drivers/input/touchscreen/egalax_i2c.c
-
-diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
-index 2fb1f43..01f4776 100644
---- a/drivers/input/touchscreen/Kconfig
-+++ b/drivers/input/touchscreen/Kconfig
-@@ -318,6 +318,16 @@ config TOUCHSCREEN_FT6236
- 	  To compile this driver as a module, choose M here: the
- 	  module will be called ft6236.
- 
-+config TOUCHSCREEN_EGALAX_I2C
-+	tristate "EETI eGalax (egalax_i2c) multi-touch panel support for i2C"
-+	depends on I2C && OF
-+	help
-+	  Say Y here to enable support for I2C connected EETI
-+	  eGalax multi-touch panels.
-+
-+	  To compile this driver as a module, choose M here: the
-+	  module will be called egalax_i2c.
-+
- config TOUCHSCREEN_FUJITSU
- 	tristate "Fujitsu serial touchscreen"
- 	select SERIO
-diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
-index b4373d6..67ed603 100644
---- a/drivers/input/touchscreen/Makefile
-+++ b/drivers/input/touchscreen/Makefile
-@@ -34,6 +34,7 @@ obj-$(CONFIG_TOUCHSCREEN_GUNZE)		+= gunze.o
- obj-$(CONFIG_TOUCHSCREEN_EETI)		+= eeti_ts.o
- obj-$(CONFIG_TOUCHSCREEN_ELAN)		+= elants_i2c.o
- obj-$(CONFIG_TOUCHSCREEN_ELO)		+= elo.o
-+obj-$(CONFIG_TOUCHSCREEN_EGALAX_I2C)	+= egalax_i2c.o
- obj-$(CONFIG_TOUCHSCREEN_EGALAX)	+= egalax_ts.o
- obj-$(CONFIG_TOUCHSCREEN_EGALAX_SERIAL)	+= egalax_ts_serial.o
- obj-$(CONFIG_TOUCHSCREEN_FT6236)	+= ft6236.o
-diff --git a/drivers/input/touchscreen/egalax_i2c.c b/drivers/input/touchscreen/egalax_i2c.c
-new file mode 100644
-index 0000000..9ee5566
---- /dev/null
-+++ b/drivers/input/touchscreen/egalax_i2c.c
-@@ -0,0 +1,961 @@
-+/*
-+ *
-+ * Touch Screen I2C Driver for EETI Controller
-+ *
-+ * Copyright (C) 2000-2015  eGalax_eMPIA Technology Inc.
-+ * All Rights Reserved.
-+ *
-+ * 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.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ */
-+
-+#define RELEASE_DATE "2015/04/23"
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/interrupt.h>
-+#include <linux/wait.h>
-+#include <linux/delay.h>
-+#include <linux/i2c.h>
-+#include <linux/gpio.h>
-+#include <linux/device.h>
-+#include <asm/uaccess.h>
-+#include <linux/kfifo.h>
-+#include <linux/version.h>
-+#include <linux/input.h>
-+#include <linux/irq.h>
-+#include <linux/timer.h>
-+#include <linux/proc_fs.h>
-+#include <linux/seq_file.h>
-+#include <linux/miscdevice.h>
-+#include <linux/slab.h>
-+#include <linux/poll.h>
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
-+#include <linux/input/mt.h>
-+#endif
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+#include <linux/of_gpio.h>
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)
-+	#define __devinit 
-+	#define __devexit 
-+	#define __devexit_p(x) x
-+#endif
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+	#include <linux/earlysuspend.h>
-+	static struct early_suspend egalax_early_suspend;
-+#endif
-+
-+// Global define to enable function
-+//#define _SWITCH_XY
-+//#define _CONVERT_Y
-+
-+#define MAX_EVENTS		600
-+#define MAX_I2C_LEN		64
-+#define FIFO_SIZE		8192 //(PAGE_SIZE*2)
-+#define MAX_SUPPORT_POINT	16
-+#define REPORTID_MOUSE		0x01
-+#define REPORTID_VENDOR		0x03
-+#define REPORTID_MTOUCH		0x06//0x04
-+#define MAX_RESOLUTION		4095
-+
-+// running mode
-+#define MODE_STOP	0
-+#define MODE_WORKING	1
-+#define MODE_IDLE	2
-+#define MODE_SUSPEND	3
-+
-+struct tagMTContacts {
-+	unsigned char ID;
-+	signed char Status;
-+	unsigned short X;
-+	unsigned short Y;
-+};
-+
-+struct _egalax_i2c {
-+	struct workqueue_struct *ktouch_wq;
-+	struct work_struct work_irq;
-+	struct delayed_work delay_work_ioctl;
-+	struct mutex mutex_wq;
-+	struct i2c_client *client;
-+	unsigned char work_state;
-+	unsigned char skip_packet;
-+	unsigned int ioctl_cmd;
-+	int interrupt_gpio;
-+};
-+
-+struct egalax_char_dev
-+{
-+	int OpenCnts;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	struct kfifo* pDataKFiFo;
-+#else
-+	struct kfifo DataKFiFo;
-+#endif
-+	unsigned char *pFiFoBuf;
-+	spinlock_t FiFoLock;
-+	struct semaphore sem;
-+	wait_queue_head_t fifo_inq;
-+};
-+
-+static struct _egalax_i2c *p_egalax_i2c_dev = NULL;	// allocated in egalax_i2c_probe
-+static struct egalax_char_dev *p_char_dev = NULL;	// allocated in init_module
-+static atomic_t egalax_char_available = ATOMIC_INIT(1);
-+static atomic_t wait_command_ack = ATOMIC_INIT(0);
-+static struct input_dev *input_dev = NULL;
-+static struct tagMTContacts pContactBuf[MAX_SUPPORT_POINT];
-+static unsigned char input_report_buf[MAX_I2C_LEN+2];
-+
-+#define DBG_MODULE	0x00000001
-+#define DBG_CDEV	0x00000002
-+#define DBG_PROC	0x00000004
-+#define DBG_POINT	0x00000008
-+#define DBG_INT		0x00000010
-+#define DBG_I2C		0x00000020
-+#define DBG_SUSP	0x00000040
-+#define DBG_INPUT	0x00000080
-+#define DBG_CONST	0x00000100
-+#define DBG_IDLE	0x00000200
-+#define DBG_WAKEUP	0x00000400
-+#define DBG_BUTTON	0x00000800
-+static unsigned int DbgLevel = DBG_MODULE|DBG_SUSP;
-+
-+#define PROC_FS_NAME	"egalax_dbg"
-+#define PROC_FS_MAX_LEN	8
-+static struct proc_dir_entry *dbgProcFile;
-+
-+#define EGALAX_DBG(level, fmt, args...)  do{ if( (level&DbgLevel)>0 ) \
-+					printk( KERN_DEBUG "[egalax_i2c]: " fmt, ## args); }while(0)
-+
-+static int egalax_I2C_read(unsigned char *pBuf, unsigned short len)
-+{
-+	struct i2c_msg xfer;
-+	unsigned char cmdbuf[2]={0x27, 0x00};
-+
-+	if(pBuf==NULL)
-+		return -1;
-+
-+	// Write register first
-+	xfer.addr = p_egalax_i2c_dev->client->addr;
-+	xfer.flags = 0;
-+	xfer.len = 2;
-+	xfer.buf = cmdbuf;
-+	i2c_transfer(p_egalax_i2c_dev->client->adapter, &xfer, 1);
-+
-+	// Read device data
-+	xfer.addr = p_egalax_i2c_dev->client->addr;
-+	xfer.flags = I2C_M_RD;
-+	xfer.len = len;
-+	xfer.buf = pBuf;
-+
-+	if(i2c_transfer(p_egalax_i2c_dev->client->adapter, &xfer, 1) != 1) 
-+	{
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer fail\n", __func__);
-+		return -EIO;
-+	}
-+	else
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer success\n", __func__);
-+
-+	return 0;
-+}
-+
-+static int egalax_I2C_write(unsigned short reg, unsigned char *pBuf, unsigned short len)
-+{
-+	unsigned char cmdbuf[4+len];
-+	struct i2c_msg xfer;
-+
-+	if(pBuf==NULL)
-+		return -1;
-+
-+	cmdbuf[0] = reg & 0x00FF;
-+	cmdbuf[1] = (reg >> 8) & 0x00FF;
-+	cmdbuf[2] = (len+2) & 0x00FF;
-+	cmdbuf[3] = ((len+2) >> 8) & 0x00FF;
-+	memcpy(cmdbuf+4, pBuf, len);
-+
-+	// Write data to device
-+	xfer.addr = p_egalax_i2c_dev->client->addr;
-+	xfer.flags = 0;
-+	xfer.len = sizeof(cmdbuf);
-+	xfer.buf = cmdbuf;
-+
-+	if(i2c_transfer(p_egalax_i2c_dev->client->adapter, &xfer, 1) != 1) 
-+	{
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer fail\n", __func__);
-+		return -EIO;
-+	}
-+	else
-+		EGALAX_DBG(DBG_I2C, " %s: i2c transfer success\n", __func__);
-+
-+	return 0;
-+}
-+
-+static int egalax_cdev_open(struct inode *inode, struct file *filp)
-+{
-+	if( !atomic_dec_and_test(&egalax_char_available) )
-+	{
-+		atomic_inc(&egalax_char_available);
-+		return -EBUSY; // already open
-+	}
-+
-+	p_char_dev->OpenCnts++;
-+	filp->private_data = p_char_dev;// Used by the read and write metheds
-+
-+	EGALAX_DBG(DBG_CDEV, " CDev open done!\n");
-+	try_module_get(THIS_MODULE);
-+	return 0;
-+}
-+
-+static int egalax_cdev_release(struct inode *inode, struct file *filp)
-+{
-+	struct egalax_char_dev *cdev = filp->private_data;
-+
-+	atomic_inc(&egalax_char_available); // release the device
-+
-+	cdev->OpenCnts--;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	kfifo_reset( cdev->pDataKFiFo );
-+#else
-+	kfifo_reset( &cdev->DataKFiFo );
-+#endif
-+
-+	EGALAX_DBG(DBG_CDEV, " CDev release done!\n");
-+	module_put(THIS_MODULE);
-+	return 0;
-+}
-+
-+static char fifo_read_buf[MAX_I2C_LEN];
-+static ssize_t egalax_cdev_read(struct file *file, char __user *buf, size_t count, loff_t *offset)
-+{
-+	int read_cnt, ret, fifoLen;
-+	struct egalax_char_dev *cdev = file->private_data;
-+	
-+	if( down_interruptible(&cdev->sem) )
-+		return -ERESTARTSYS;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	fifoLen = kfifo_len(cdev->pDataKFiFo);
-+#else
-+	fifoLen = kfifo_len(&cdev->DataKFiFo);
-+#endif
-+
-+	while( fifoLen<1 ) // nothing to read
-+	{
-+		up(&cdev->sem); // release the lock
-+		if( file->f_flags & O_NONBLOCK )
-+			return -EAGAIN;
-+
-+	#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+		if( wait_event_interruptible(cdev->fifo_inq, kfifo_len( cdev->pDataKFiFo )>0) )
-+	#else
-+		if( wait_event_interruptible(cdev->fifo_inq, kfifo_len( &cdev->DataKFiFo )>0) )
-+	#endif
-+		{
-+			return -ERESTARTSYS; // signal: tell the fs layer to handle it
-+		}
-+
-+		if( down_interruptible(&cdev->sem) )
-+			return -ERESTARTSYS;
-+	}
-+
-+	if(count > MAX_I2C_LEN)
-+		count = MAX_I2C_LEN;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	read_cnt = kfifo_get(cdev->pDataKFiFo, fifo_read_buf, count);
-+#else
-+	read_cnt = kfifo_out_locked(&cdev->DataKFiFo, fifo_read_buf, count, &cdev->FiFoLock);
-+#endif
-+	EGALAX_DBG(DBG_CDEV, " \"%s\" reading fifo data count=%d\n", current->comm, read_cnt);
-+
-+	ret = copy_to_user(buf, fifo_read_buf, read_cnt)?-EFAULT:read_cnt;
-+
-+	up(&cdev->sem);
-+	
-+	return ret;
-+}
-+
-+static ssize_t egalax_cdev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset)
-+{
-+	struct egalax_char_dev *cdev = file->private_data;
-+	int ret=0;
-+	char *tmp;
-+
-+	if( down_interruptible(&cdev->sem) )
-+		return -ERESTARTSYS;
-+
-+	if (count > MAX_I2C_LEN)
-+		count = MAX_I2C_LEN;
-+
-+	tmp = kzalloc(MAX_I2C_LEN, GFP_KERNEL);
-+	if(tmp==NULL)
-+	{
-+		up(&cdev->sem);
-+		return -ENOMEM;
-+	}
-+
-+	if(copy_from_user(tmp, buf, count))
-+	{
-+		up(&cdev->sem);
-+		kfree(tmp);
-+		return -EFAULT;
-+	}
-+	
-+	ret = egalax_I2C_write(0x0067, tmp, MAX_I2C_LEN);
-+
-+	up(&cdev->sem);
-+	EGALAX_DBG(DBG_CDEV, " I2C writing %zu bytes.\n", count);
-+	kfree(tmp);
-+
-+	return (ret==0?count:-1);
-+}
-+
-+static unsigned int egalax_cdev_poll(struct file *filp, struct poll_table_struct *wait)
-+{
-+	struct egalax_char_dev *cdev = filp->private_data;
-+	unsigned int mask = 0;
-+	int fifoLen;
-+	
-+	down(&cdev->sem);
-+	poll_wait(filp, &cdev->fifo_inq,  wait);
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	fifoLen = kfifo_len(cdev->pDataKFiFo);
-+#else
-+	fifoLen = kfifo_len(&cdev->DataKFiFo);
-+#endif
-+
-+	if( fifoLen > 0 )
-+		mask |= POLLIN | POLLRDNORM;    /* readable */
-+	if( (FIFO_SIZE - fifoLen) > MAX_I2C_LEN )
-+		mask |= POLLOUT | POLLWRNORM;   /* writable */
-+
-+	up(&cdev->sem);
-+	return mask;
-+}
-+
-+static int egalax_proc_show(struct seq_file* seqfilp, void *v)
-+{
-+	seq_printf(seqfilp, "EETI I2C for All Points.\nDebug Level: 0x%08X\nRelease Date: %s\n", DbgLevel, RELEASE_DATE);
-+	return 0;
-+}
-+
-+static int egalax_proc_open(struct inode *inode, struct file *filp)
-+{
-+	EGALAX_DBG(DBG_PROC, " \"%s\" call proc_open\n", current->comm);
-+	return single_open(filp, egalax_proc_show, NULL);
-+}
-+
-+static ssize_t egalax_proc_write(struct file *file, const char __user *buf, size_t count, loff_t *offset)
-+{
-+	char procfs_buffer_size = 0; 
-+	unsigned char procfs_buf[PROC_FS_MAX_LEN+1] = {0};
-+
-+	EGALAX_DBG(DBG_PROC, " \"%s\" call proc_write\n", current->comm);
-+
-+	procfs_buffer_size = count;
-+	if(procfs_buffer_size > PROC_FS_MAX_LEN ) 
-+		procfs_buffer_size = PROC_FS_MAX_LEN+1;
-+	
-+	if( copy_from_user(procfs_buf, buf, procfs_buffer_size) ) 
-+	{
-+		EGALAX_DBG(DBG_PROC, " proc_write faied at copy_from_user\n");
-+		return -EFAULT;
-+	}
-+
-+	sscanf(procfs_buf, "%x", &DbgLevel);
-+	EGALAX_DBG(DBG_PROC, " Switch Debug Level to 0x%08X\n", DbgLevel);
-+
-+	return procfs_buffer_size;
-+}
-+
-+#define MAX_POINT_PER_PACKET	5
-+#define POINT_STRUCT_SIZE	10
-+static int TotalPtsCnt=0, RecvPtsCnt=0;
-+static void ProcessReport(unsigned char *buf, struct _egalax_i2c *p_egalax_i2c)
-+{
-+	unsigned char i, index=0, cnt_down=0, cnt_up=0, shift=0;
-+	unsigned char status=0;
-+	unsigned short contactID=0, x=0, y=0;
-+
-+	if(TotalPtsCnt<=0)
-+	{
-+		if(buf[1]==0 || buf[1]>MAX_SUPPORT_POINT)
-+		{
-+			EGALAX_DBG(DBG_POINT, " NumsofContacts mismatch, skip packet\n");
-+			return;
-+		}
-+
-+		TotalPtsCnt = buf[1];
-+		RecvPtsCnt = 0;
-+	}
-+	else if(buf[1]>0)
-+	{
-+		TotalPtsCnt = RecvPtsCnt = 0;
-+		EGALAX_DBG(DBG_POINT, " NumsofContacts mismatch, skip packet\n");
-+		return;
-+	}
-+
-+	while(index<MAX_POINT_PER_PACKET)
-+	{
-+		shift = index * POINT_STRUCT_SIZE + 2;
-+		status = buf[shift] & 0x01;
-+		contactID = buf[shift+1];
-+		x = ((buf[shift+3]<<8) + buf[shift+2]);
-+		y = ((buf[shift+5]<<8) + buf[shift+4]);
-+
-+		if( contactID>=MAX_SUPPORT_POINT )
-+		{
-+			TotalPtsCnt = RecvPtsCnt = 0;
-+			EGALAX_DBG(DBG_POINT, " Get error ContactID.\n");
-+			return;
-+		}
-+
-+		EGALAX_DBG(DBG_POINT, " Get Point[%d] Update: Status=%d X=%d Y=%d\n", contactID, status, x, y);
-+
-+	#ifdef _SWITCH_XY
-+		short tmp = x;
-+		x = y;
-+		y = tmp;
-+	#endif
-+	#ifdef _CONVERT_X
-+		x = MAX_RESOLUTION-x;
-+	#endif
-+
-+	#ifdef _CONVERT_Y
-+		y = MAX_RESOLUTION-y;
-+	#endif
-+
-+		pContactBuf[RecvPtsCnt].ID = contactID;
-+		pContactBuf[RecvPtsCnt].Status = status;
-+		pContactBuf[RecvPtsCnt].X = x;
-+		pContactBuf[RecvPtsCnt].Y = y;
-+
-+		RecvPtsCnt++;
-+		index++;
-+
-+		// Recv all points, send input report
-+		if(RecvPtsCnt==TotalPtsCnt)
-+		{
-+			for(i=0; i<RecvPtsCnt; i++)
-+			{
-+			#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0)
-+				input_mt_slot(input_dev, pContactBuf[i].ID);
-+				input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, pContactBuf[i].Status);
-+				if(pContactBuf[i].Status)
-+				{
-+					input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, pContactBuf[i].Status);
-+					input_report_abs(input_dev, ABS_MT_POSITION_X, pContactBuf[i].X);
-+					input_report_abs(input_dev, ABS_MT_POSITION_Y, pContactBuf[i].Y);
-+				}
-+			#else
-+				input_report_abs(input_dev, ABS_MT_TRACKING_ID, pContactBuf[i].ID);
-+				input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, pContactBuf[i].Status);
-+				input_report_abs(input_dev, ABS_MT_POSITION_X, pContactBuf[i].X);
-+				input_report_abs(input_dev, ABS_MT_POSITION_Y, pContactBuf[i].Y);
-+				input_report_abs(input_dev, ABS_MT_WIDTH_MAJOR, 0);
-+				input_mt_sync(input_dev);
-+			#endif
-+
-+				if(pContactBuf[i].Status)
-+					cnt_down++;
-+				else
-+					cnt_up++;
-+			}
-+		#ifndef CONFIG_HAS_EARLYSUSPEND //We use this config to distinguish Linux and Android
-+			#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
-+			input_mt_report_pointer_emulation(input_dev, true);
-+			#endif
-+		#endif
-+			input_sync(input_dev);
-+			EGALAX_DBG(DBG_POINT, " Input sync point data done! (Down:%d Up:%d)\n", cnt_down, cnt_up);
-+			
-+			TotalPtsCnt = RecvPtsCnt = 0;
-+			return;
-+		}
-+	}
-+}
-+
-+static struct input_dev * allocate_Input_Dev(void)
-+{
-+	int ret;
-+	struct input_dev *pInputDev=NULL;
-+
-+	pInputDev = input_allocate_device();
-+	if(pInputDev == NULL)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Failed to allocate input device\n");
-+		return NULL;//-ENOMEM;
-+	}
-+
-+	pInputDev->name = "eGalax_Touch_Screen";
-+	pInputDev->phys = "I2C";
-+	pInputDev->id.bustype = BUS_I2C;
-+	pInputDev->id.vendor = 0x0EEF;
-+	pInputDev->id.product = 0x0020;
-+	pInputDev->id.version = 0x0001;
-+	
-+	set_bit(EV_ABS, pInputDev->evbit);
-+#ifndef CONFIG_HAS_EARLYSUSPEND //We use this config to distinguish Linux and Android
-+	set_bit(EV_KEY, pInputDev->evbit);
-+	__set_bit(BTN_TOUCH, pInputDev->keybit);
-+	input_set_abs_params(pInputDev, ABS_X, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_Y, 0, MAX_RESOLUTION, 0, 0);
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0)
-+	__set_bit(INPUT_PROP_DIRECT, pInputDev->propbit);
-+	#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
-+		input_mt_init_slots(pInputDev, MAX_SUPPORT_POINT, 0);
-+	#else
-+		input_mt_init_slots(pInputDev, MAX_SUPPORT_POINT);
-+	#endif
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_X, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_Y, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0);
-+#else
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_X, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_POSITION_Y, 0, MAX_RESOLUTION, 0, 0);
-+	input_set_abs_params(pInputDev, ABS_MT_WIDTH_MAJOR, 0, MAX_RESOLUTION, 0, 0); //Size
-+	input_set_abs_params(pInputDev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); //Pressure
-+	input_set_abs_params(pInputDev, ABS_MT_TRACKING_ID, 0, MAX_SUPPORT_POINT, 0, 0);
-+#endif // #if LINUX_VERSION_CODE > KERNEL_VERSION(3,0,0)
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
-+	input_set_events_per_packet(pInputDev, MAX_EVENTS);
-+#endif
-+
-+	ret = input_register_device(pInputDev);
-+	if(ret) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Unable to register input device.\n");
-+		input_free_device(pInputDev);
-+		pInputDev = NULL;
-+	}
-+	
-+	return pInputDev;
-+}
-+
-+static int egalax_i2c_measure(struct _egalax_i2c *egalax_i2c)
-+{
-+	int ret=0, frameLen=0, loop=3, i;
-+
-+	EGALAX_DBG(DBG_INT, " egalax_i2c_measure\n");
-+
-+	if( egalax_I2C_read(input_report_buf, MAX_I2C_LEN+2) < 0)
-+	{
-+		EGALAX_DBG(DBG_I2C, " I2C read input report fail!\n");
-+		return -1;
-+	}
-+	
-+	if( DbgLevel&DBG_I2C )
-+	{
-+		char dbgmsg[(MAX_I2C_LEN+2)*4];
-+		for(i=0; i<MAX_I2C_LEN+2; i++)
-+			sprintf(dbgmsg+i*4, "[%02X]", input_report_buf[i]);
-+		EGALAX_DBG(DBG_I2C, " Buf=%s\n", dbgmsg);
-+	}
-+
-+	frameLen = input_report_buf[0] + (input_report_buf[1]<<8);
-+	EGALAX_DBG(DBG_I2C, " I2C read data with Len=%d\n", frameLen);
-+
-+	if(frameLen==0)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Device reset\n");
-+		return -1;
-+	}
-+
-+	switch(input_report_buf[2])
-+	{
-+		case REPORTID_MTOUCH:
-+			if( !egalax_i2c->skip_packet && egalax_i2c->work_state==MODE_WORKING )
-+				ProcessReport(input_report_buf+2, egalax_i2c);
-+			ret = 0;
-+			break;
-+		case REPORTID_VENDOR:
-+			atomic_set(&wait_command_ack, 1);
-+			EGALAX_DBG(DBG_I2C, " I2C get vendor command packet\n");
-+
-+			if( p_char_dev->OpenCnts>0 ) // If someone reading now! put the data into the buffer!
-+			{
-+				loop=3;
-+				do {
-+				#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+					ret = wait_event_timeout(p_char_dev->fifo_inq, (FIFO_SIZE-kfifo_len(p_char_dev->pDataKFiFo))>=MAX_I2C_LEN, HZ);
-+				#else
-+					ret = wait_event_timeout(p_char_dev->fifo_inq, kfifo_avail(&p_char_dev->DataKFiFo)>=MAX_I2C_LEN, HZ);
-+				#endif
-+				}while(ret<=0 && --loop);
-+
-+				if(ret>0) // fifo size is ready
-+				{
-+				#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+					ret = kfifo_put(p_char_dev->pDataKFiFo, input_report_buf+2, MAX_I2C_LEN);
-+				#else
-+					ret = kfifo_in_locked(&p_char_dev->DataKFiFo, input_report_buf+2, MAX_I2C_LEN, &p_char_dev->FiFoLock);
-+				#endif
-+
-+					wake_up_interruptible( &p_char_dev->fifo_inq );
-+				}
-+				else
-+					EGALAX_DBG(DBG_CDEV, " [Warning] Can't write data because fifo size is overflow.\n");
-+			}
-+
-+			break;
-+		default:
-+			EGALAX_DBG(DBG_I2C, " I2C read error data with hedaer=%d\n", input_report_buf[2]);
-+			ret = -1;
-+			break;
-+	}
-+
-+	return ret;
-+}
-+
-+static void egalax_i2c_wq_irq(struct work_struct *work)
-+{
-+	struct _egalax_i2c *egalax_i2c = container_of(work, struct _egalax_i2c, work_irq);
-+	struct i2c_client *client = egalax_i2c->client;
-+
-+	EGALAX_DBG(DBG_INT, " egalax_i2c_wq run\n");
-+
-+	/*continue recv data*/
-+	while( !gpio_get_value(egalax_i2c->interrupt_gpio) )
-+	{
-+		egalax_i2c_measure(egalax_i2c);
-+		schedule();
-+	}
-+		
-+	if( egalax_i2c->skip_packet > 0 )
-+		egalax_i2c->skip_packet = 0;
-+
-+	enable_irq(client->irq);
-+
-+	EGALAX_DBG(DBG_INT, " egalax_i2c_wq leave\n");
-+}
-+
-+static irqreturn_t egalax_i2c_interrupt(int irq, void *dev_id)
-+{
-+	struct _egalax_i2c *egalax_i2c = (struct _egalax_i2c *)dev_id;
-+
-+	EGALAX_DBG(DBG_INT, " INT with irq:%d\n", irq);
-+
-+	disable_irq_nosync(irq);
-+
-+	queue_work(egalax_i2c->ktouch_wq, &egalax_i2c->work_irq);
-+
-+	return IRQ_HANDLED;
-+}
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+static void egalax_i2c_early_suspend(struct early_suspend *handler)
-+{
-+	pm_message_t state;
-+	state.event = PM_EVENT_SUSPEND;
-+
-+	EGALAX_DBG(DBG_SUSP, " %s\n", __func__);
-+	egalax_i2c_pm_suspend(p_egalax_i2c_dev->client, state);
-+}
-+
-+static void egalax_i2c_early_resume(struct early_suspend *handler)
-+{
-+	EGALAX_DBG(DBG_SUSP, " %s\n", __func__);
-+	egalax_i2c_pm_resume(p_egalax_i2c_dev->client);
-+}
-+#endif // #ifdef CONFIG_HAS_EARLYSUSPEND
-+
-+static int __devinit egalax_i2c_probe(struct i2c_client *client, const struct i2c_device_id *idp)
-+{
-+	int ret;
-+	struct device_node *devnode;
-+	
-+	EGALAX_DBG(DBG_MODULE, " Start probe\n");
-+
-+	p_egalax_i2c_dev = (struct _egalax_i2c *)kzalloc(sizeof(struct _egalax_i2c), GFP_KERNEL);
-+	if (!p_egalax_i2c_dev) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Request memory failed\n");
-+		ret = -ENOMEM;
-+		goto fail1;
-+	}
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+	devnode = client->dev.of_node;
-+	if(devnode) //if use the device tree config
-+	{
-+		p_egalax_i2c_dev->interrupt_gpio = of_get_named_gpio(devnode, "int-gpios", 0);
-+	}
-+#else
-+	{
-+		p_egalax_i2c_dev->interrupt_gpio = irq_to_gpio(client->irq);
-+	}
-+#endif
-+
-+	if( !gpio_is_valid(p_egalax_i2c_dev->interrupt_gpio) )
-+	{
-+		ret = -ENODEV;
-+		goto fail1;
-+	}
-+	ret = gpio_request(p_egalax_i2c_dev->interrupt_gpio, "Touch IRQ");
-+	if(ret<0)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " gpio_request[%d] failed: %d\n", p_egalax_i2c_dev->interrupt_gpio, ret);
-+		if(ret!=-EBUSY)
-+			goto fail1;
-+	}
-+	gpio_direction_input(p_egalax_i2c_dev->interrupt_gpio);
-+
-+	input_dev = allocate_Input_Dev();
-+	if(input_dev==NULL)
-+	{
-+		EGALAX_DBG(DBG_MODULE, " allocate_Input_Dev failed\n");
-+		ret = -EINVAL; 
-+		goto fail2;
-+	}
-+	EGALAX_DBG(DBG_MODULE, " Register input device done\n");
-+
-+	p_egalax_i2c_dev->client = client;
-+	mutex_init(&p_egalax_i2c_dev->mutex_wq);
-+
-+	p_egalax_i2c_dev->ktouch_wq = create_singlethread_workqueue("egalax_touch_wq");
-+	INIT_WORK(&p_egalax_i2c_dev->work_irq, egalax_i2c_wq_irq);
-+
-+	i2c_set_clientdata(client, p_egalax_i2c_dev);
-+
-+	if( gpio_get_value(p_egalax_i2c_dev->interrupt_gpio) )
-+		p_egalax_i2c_dev->skip_packet = 0;
-+	else
-+		p_egalax_i2c_dev->skip_packet = 1;
-+
-+	p_egalax_i2c_dev->work_state = MODE_WORKING;
-+
-+	ret = request_irq(client->irq, egalax_i2c_interrupt, IRQF_TRIGGER_LOW, client->name, p_egalax_i2c_dev);
-+	if( ret ) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " Request irq(%d) failed\n", client->irq);
-+		goto fail3;
-+	}
-+	EGALAX_DBG(DBG_MODULE, " Request irq(%d) gpio(%d) with result:%d\n", client->irq, p_egalax_i2c_dev->interrupt_gpio, ret);
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+	egalax_early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN;
-+	egalax_early_suspend.suspend = egalax_i2c_early_suspend;
-+	egalax_early_suspend.resume = egalax_i2c_early_resume;
-+	register_early_suspend(&egalax_early_suspend);
-+	EGALAX_DBG(DBG_MODULE, " Register early_suspend done\n");
-+#endif
-+
-+	EGALAX_DBG(DBG_MODULE, " I2C probe done\n");
-+	return 0;
-+
-+fail3:
-+	i2c_set_clientdata(client, NULL);
-+	destroy_workqueue(p_egalax_i2c_dev->ktouch_wq); 
-+	free_irq(client->irq, p_egalax_i2c_dev);
-+	input_unregister_device(input_dev);
-+	input_dev = NULL;
-+fail2:
-+	gpio_free(p_egalax_i2c_dev->interrupt_gpio);
-+fail1:
-+	kfree(p_egalax_i2c_dev);
-+	p_egalax_i2c_dev = NULL;
-+
-+	EGALAX_DBG(DBG_MODULE, " I2C probe failed\n");
-+	return ret;
-+}
-+
-+static int __devexit egalax_i2c_remove(struct i2c_client *client)
-+{
-+	struct _egalax_i2c *egalax_i2c = i2c_get_clientdata(client);
-+
-+	egalax_i2c->work_state = MODE_STOP;
-+
-+	cancel_work_sync(&egalax_i2c->work_irq);
-+
-+	if(client->irq)
-+	{
-+		disable_irq(client->irq);
-+		free_irq(client->irq, egalax_i2c);
-+	}
-+
-+	gpio_free(egalax_i2c->interrupt_gpio);
-+	
-+	if(egalax_i2c->ktouch_wq) 
-+		destroy_workqueue(egalax_i2c->ktouch_wq); 
-+
-+#ifdef CONFIG_HAS_EARLYSUSPEND
-+	unregister_early_suspend(&egalax_early_suspend);
-+#endif
-+
-+	if(input_dev)
-+	{
-+		EGALAX_DBG(DBG_MODULE,  " Unregister input device\n");
-+		input_unregister_device(input_dev);
-+		input_dev = NULL;
-+	}
-+
-+	i2c_set_clientdata(client, NULL);
-+	kfree(egalax_i2c);
-+	p_egalax_i2c_dev = NULL;
-+
-+	return 0;
-+}
-+
-+static const struct i2c_device_id egalax_i2c_idtable[] = { 
-+	{ "egalax_i2c", 0 }, 
-+	{ } 
-+};
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+static const struct of_device_id egalax_i2c_dt_ids[] = { 
-+	{ .compatible = "eeti,egalax_i2c" }, 
-+	{ } 
-+};
-+#endif
-+
-+MODULE_DEVICE_TABLE(i2c, egalax_i2c_idtable);
-+
-+static struct i2c_driver egalax_i2c_driver = {
-+	.driver = {
-+		.name 	= "egalax_i2c",
-+		.owner	= THIS_MODULE,
-+	#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
-+		.of_match_table = egalax_i2c_dt_ids,
-+	#endif
-+	},
-+	.id_table	= egalax_i2c_idtable,
-+	.probe		= egalax_i2c_probe,
-+	.remove		= __devexit_p(egalax_i2c_remove),
-+};
-+
-+static const struct file_operations egalax_cdev_fops = {
-+	.owner	= THIS_MODULE,
-+	.read	= egalax_cdev_read,
-+	.write	= egalax_cdev_write,
-+	.open	= egalax_cdev_open,
-+	.release= egalax_cdev_release,
-+	.poll	= egalax_cdev_poll,
-+};
-+
-+static const struct file_operations egalax_proc_fops = {
-+	.owner		= THIS_MODULE,
-+        .open           = egalax_proc_open,
-+        .read           = seq_read,
-+        .write          = egalax_proc_write,
-+        .llseek         = seq_lseek,
-+	.release	= single_release,
-+};
-+
-+static struct miscdevice egalax_misc_dev = {
-+	.minor = MISC_DYNAMIC_MINOR,
-+	.name = "egalax_i2c",
-+	.fops = &egalax_cdev_fops,
-+};
-+
-+static void egalax_i2c_ts_exit(void)
-+{
-+	if(p_char_dev)
-+	{
-+		if( p_char_dev->pFiFoBuf )
-+			kfree(p_char_dev->pFiFoBuf);
-+
-+		kfree(p_char_dev);
-+		p_char_dev = NULL;
-+	}
-+
-+	misc_deregister(&egalax_misc_dev);
-+
-+	i2c_del_driver(&egalax_i2c_driver);
-+
-+	remove_proc_entry(PROC_FS_NAME, NULL);
-+
-+	EGALAX_DBG(DBG_MODULE, " Exit driver done!\n");
-+}
-+
-+static struct egalax_char_dev* setup_chardev(void)
-+{
-+	struct egalax_char_dev *pCharDev;
-+
-+	pCharDev = kzalloc(1*sizeof(struct egalax_char_dev), GFP_KERNEL);
-+	if(!pCharDev) 
-+		goto fail_cdev;
-+
-+	spin_lock_init( &pCharDev->FiFoLock );
-+	pCharDev->pFiFoBuf = kzalloc(sizeof(unsigned char)*FIFO_SIZE, GFP_KERNEL);
-+	if(!pCharDev->pFiFoBuf)
-+		goto fail_fifobuf;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-+	pCharDev->pDataKFiFo = kfifo_init(pCharDev->pFiFoBuf, FIFO_SIZE, GFP_KERNEL, &pCharDev->FiFoLock);
-+	if( pCharDev->pDataKFiFo==NULL )
-+		goto fail_kfifo;
-+#else
-+	kfifo_init(&pCharDev->DataKFiFo, pCharDev->pFiFoBuf, FIFO_SIZE);
-+	if( !kfifo_initialized(&pCharDev->DataKFiFo) )
-+		goto fail_kfifo;
-+#endif
-+	
-+	pCharDev->OpenCnts = 0;
-+	sema_init(&pCharDev->sem, 1);
-+	init_waitqueue_head(&pCharDev->fifo_inq);
-+
-+	return pCharDev; 
-+
-+fail_kfifo:
-+	kfree(pCharDev->pFiFoBuf);
-+fail_fifobuf:
-+	kfree(pCharDev);
-+fail_cdev:
-+	return NULL;
-+}
-+
-+static int egalax_i2c_ts_init(void)
-+{
-+	int result;
-+
-+	result = misc_register(&egalax_misc_dev);
-+	if(result) 
-+	{
-+		EGALAX_DBG(DBG_MODULE, " misc device register failed\n");
-+		goto fail;
-+	}
-+
-+	p_char_dev = setup_chardev(); // allocate the character device
-+	if(!p_char_dev) 
-+	{
-+		result = -ENOMEM;
-+		goto fail;
-+	}
-+
-+	dbgProcFile = proc_create(PROC_FS_NAME, S_IRUGO|S_IWUGO, NULL, &egalax_proc_fops);
-+	if (dbgProcFile == NULL) 
-+	{
-+		remove_proc_entry(PROC_FS_NAME, NULL);
-+		EGALAX_DBG(DBG_MODULE, " Could not initialize /proc/%s\n", PROC_FS_NAME);
-+	}
-+
-+	EGALAX_DBG(DBG_MODULE, " Driver init done!\n");
-+	return i2c_add_driver(&egalax_i2c_driver);
-+
-+fail:	
-+	egalax_i2c_ts_exit();
-+	return result;
-+}
-+
-+module_init(egalax_i2c_ts_init);
-+module_exit(egalax_i2c_ts_exit);
-+
-+MODULE_AUTHOR("EETI <touch_fae@eeti.com>");
-+MODULE_DESCRIPTION("egalax all points controller i2c driver");
-+MODULE_LICENSE("GPL");
--- 
-1.9.1
-

+ 0 - 828
board/GfA/Display001/linux_4.4.94_rt19/linux-005-edt-ft5x06.patch

@@ -1,828 +0,0 @@
-commit ab28538ebe289c686cf357a6274c3f4a71969ca3
-Author: Reinhard Russinger <reinhard@russinger.at>
-Date:   Thu May 4 06:59:24 2017 +0200
-
-    changes edt-ft5x06 touchcontroller
-
-diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c
-index 703e295..e862958 100644
---- a/drivers/input/touchscreen/edt-ft5x06.c
-+++ b/drivers/input/touchscreen/edt-ft5x06.c
-@@ -27,7 +27,6 @@
- 
- #include <linux/module.h>
- #include <linux/ratelimit.h>
--#include <linux/irq.h>
- #include <linux/interrupt.h>
- #include <linux/input.h>
- #include <linux/i2c.h>
-@@ -35,10 +34,12 @@
- #include <linux/delay.h>
- #include <linux/debugfs.h>
- #include <linux/slab.h>
--#include <linux/gpio/consumer.h>
-+#include <linux/gpio.h>
-+#include <linux/of_gpio.h>
- #include <linux/input/mt.h>
--#include <linux/input/touchscreen.h>
--#include <linux/of_device.h>
-+#include <linux/input/edt-ft5x06.h>
-+
-+#define MAX_SUPPORT_POINTS		5
- 
- #define WORK_REGISTER_THRESHOLD		0x00
- #define WORK_REGISTER_REPORT_RATE	0x08
-@@ -53,6 +54,13 @@
- #define M09_REGISTER_NUM_X		0x94
- #define M09_REGISTER_NUM_Y		0x95
- 
-+#define M12_REGISTER_THRESHOLD		0x80
-+#define M12_REGISTER_GAIN		0x92
-+#define M12_REGISTER_OFFSET		0x93
-+#define M12_REGISTER_NUM_X		0x94
-+#define M12_REGISTER_NUM_Y		0x95
-+#define M12_REGISTER_REPORT_RATE	0x88
-+
- #define NO_REGISTER			0xff
- 
- #define WORK_REGISTER_OPMODE		0x3c
-@@ -72,6 +80,7 @@
- enum edt_ver {
- 	M06,
- 	M09,
-+	M12,
- };
- 
- struct edt_reg_addr {
-@@ -86,12 +95,12 @@ struct edt_reg_addr {
- struct edt_ft5x06_ts_data {
- 	struct i2c_client *client;
- 	struct input_dev *input;
--	struct touchscreen_properties prop;
- 	u16 num_x;
- 	u16 num_y;
- 
--	struct gpio_desc *reset_gpio;
--	struct gpio_desc *wake_gpio;
-+	int reset_pin;
-+	int irq_pin;
-+	int wake_pin;
- 
- #if defined(CONFIG_DEBUG_FS)
- 	struct dentry *debug_dir;
-@@ -105,18 +114,20 @@ struct edt_ft5x06_ts_data {
- 	int gain;
- 	int offset;
- 	int report_rate;
--	int max_support_points;
- 
-+	u32 invert_x;
-+	u32 invert_y;
-+	u32 swap_xy;
-+	
-+	u32 max_x;
-+	u32 max_y;
-+	
- 	char name[EDT_NAME_LEN];
- 
- 	struct edt_reg_addr reg_addr;
- 	enum edt_ver version;
- };
- 
--struct edt_i2c_chip_data {
--	int  max_support_points;
--};
--
- static int edt_ft5x06_ts_readwrite(struct i2c_client *client,
- 				   u16 wr_len, u8 *wr_buf,
- 				   u16 rd_len, u8 *rd_buf)
-@@ -173,9 +184,9 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 	struct edt_ft5x06_ts_data *tsdata = dev_id;
- 	struct device *dev = &tsdata->client->dev;
- 	u8 cmd;
--	u8 rdbuf[63];
-+	u8 rdbuf[29];
- 	int i, type, x, y, id;
--	int offset, tplen, datalen, crclen;
-+	int offset, tplen, datalen;
- 	int error;
- 
- 	switch (tsdata->version) {
-@@ -183,14 +194,15 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 		cmd = 0xf9; /* tell the controller to send touch data */
- 		offset = 5; /* where the actual touch data starts */
- 		tplen = 4;  /* data comes in so called frames */
--		crclen = 1; /* length of the crc data */
-+		datalen = 26; /* how much bytes to listen for */
- 		break;
--
-+		
-+	case M12:	
- 	case M09:
--		cmd = 0x0;
--		offset = 3;
-+		cmd = 0x02;
-+		offset = 1;
- 		tplen = 6;
--		crclen = 0;
-+		datalen = 29;
- 		break;
- 
- 	default:
-@@ -198,7 +210,6 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 	}
- 
- 	memset(rdbuf, 0, sizeof(rdbuf));
--	datalen = tplen * tsdata->max_support_points + offset + crclen;
- 
- 	error = edt_ft5x06_ts_readwrite(tsdata->client,
- 					sizeof(cmd), &cmd,
-@@ -209,8 +220,8 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 		goto out;
- 	}
- 
--	/* M09 does not send header or CRC */
--	if (tsdata->version == M06) {
-+	/* M09 M12 does not send header or CRC */
-+	if (tsdata->version == M06)  {
- 		if (rdbuf[0] != 0xaa || rdbuf[1] != 0xaa ||
- 			rdbuf[2] != datalen) {
- 			dev_err_ratelimited(dev,
-@@ -223,7 +234,7 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 			goto out;
- 	}
- 
--	for (i = 0; i < tsdata->max_support_points; i++) {
-+	for (i = 0; i < MAX_SUPPORT_POINTS; i++) {
- 		u8 *buf = &rdbuf[i * tplen + offset];
- 		bool down;
- 
-@@ -236,19 +247,32 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 		if (tsdata->version == M06 && type == TOUCH_EVENT_DOWN)
- 			continue;
- 
--		x = ((buf[0] << 8) | buf[1]) & 0x0fff;
--		y = ((buf[2] << 8) | buf[3]) & 0x0fff;
-+		if( tsdata->swap_xy) {
-+		  y = ((buf[0] << 8) | buf[1]) & 0x0fff;
-+		  x = ((buf[2] << 8) | buf[3]) & 0x0fff;
-+		  } else {
-+		  x = ((buf[0] << 8) | buf[1]) & 0x0fff;
-+		  y = ((buf[2] << 8) | buf[3]) & 0x0fff;
-+		  }
- 		id = (buf[2] >> 4) & 0x0f;
- 		down = type != TOUCH_EVENT_UP;
- 
-+		if(tsdata->invert_x) {
-+  		  x = tsdata->max_x - x; 
-+ 		  }
-+ 		  
-+		if(tsdata->invert_y) {
-+  		  y = tsdata->max_y - y; 
-+ 		  }
-+ 		  
- 		input_mt_slot(tsdata->input, id);
- 		input_mt_report_slot_state(tsdata->input, MT_TOOL_FINGER, down);
- 
- 		if (!down)
- 			continue;
- 
--		touchscreen_report_pos(tsdata->input, &tsdata->prop, x, y,
--				       true);
-+		input_report_abs(tsdata->input, ABS_MT_POSITION_X, x);
-+		input_report_abs(tsdata->input, ABS_MT_POSITION_Y, y);
- 	}
- 
- 	input_mt_report_pointer_emulation(tsdata->input, true);
-@@ -267,15 +291,17 @@ static int edt_ft5x06_register_write(struct edt_ft5x06_ts_data *tsdata,
- 	case M06:
- 		wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc;
- 		wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
-+		wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
- 		wrbuf[2] = value;
- 		wrbuf[3] = wrbuf[0] ^ wrbuf[1] ^ wrbuf[2];
--		return edt_ft5x06_ts_readwrite(tsdata->client, 4,
--					wrbuf, 0, NULL);
-+		return edt_ft5x06_ts_readwrite(tsdata->client, 4, wrbuf, 0, NULL);
-+		
-+	case M12:
- 	case M09:
- 		wrbuf[0] = addr;
- 		wrbuf[1] = value;
- 
--		return edt_ft5x06_ts_readwrite(tsdata->client, 2,
-+		return edt_ft5x06_ts_readwrite(tsdata->client, 3,
- 					wrbuf, 0, NULL);
- 
- 	default:
-@@ -309,6 +335,7 @@ static int edt_ft5x06_register_read(struct edt_ft5x06_ts_data *tsdata,
- 		}
- 		break;
- 
-+        case M12:
- 	case M09:
- 		wrbuf[0] = addr;
- 		error = edt_ft5x06_ts_readwrite(tsdata->client, 1,
-@@ -331,9 +358,10 @@ struct edt_ft5x06_attribute {
- 	u8 limit_high;
- 	u8 addr_m06;
- 	u8 addr_m09;
-+	u8 addr_m12;
- };
- 
--#define EDT_ATTR(_field, _mode, _addr_m06, _addr_m09,			\
-+#define EDT_ATTR(_field, _mode, _addr_m06, _addr_m09, _addr_m12,			\
- 		_limit_low, _limit_high)				\
- 	struct edt_ft5x06_attribute edt_ft5x06_attr_##_field = {	\
- 		.dattr = __ATTR(_field, _mode,				\
-@@ -342,6 +370,7 @@ struct edt_ft5x06_attribute {
- 		.field_offset = offsetof(struct edt_ft5x06_ts_data, _field), \
- 		.addr_m06 = _addr_m06,					\
- 		.addr_m09 = _addr_m09,					\
-+		.addr_m12 = _addr_m12,					\
- 		.limit_low = _limit_low,				\
- 		.limit_high = _limit_high,				\
- 	}
-@@ -372,6 +401,10 @@ static ssize_t edt_ft5x06_setting_show(struct device *dev,
- 		addr = attr->addr_m06;
- 		break;
- 
-+        case M12:
-+		addr = attr->addr_m12;
-+		break;
-+
- 	case M09:
- 		addr = attr->addr_m09;
- 		break;
-@@ -441,6 +474,10 @@ static ssize_t edt_ft5x06_setting_store(struct device *dev,
- 		addr = attr->addr_m06;
- 		break;
- 
-+        case M12:
-+		addr = attr->addr_m12;
-+		break;
-+
- 	case M09:
- 		addr = attr->addr_m09;
- 		break;
-@@ -467,13 +504,13 @@ out:
- }
- 
- static EDT_ATTR(gain, S_IWUSR | S_IRUGO, WORK_REGISTER_GAIN,
--		M09_REGISTER_GAIN, 0, 31);
-+		M09_REGISTER_GAIN, M12_REGISTER_GAIN, 0, 31);
- static EDT_ATTR(offset, S_IWUSR | S_IRUGO, WORK_REGISTER_OFFSET,
--		M09_REGISTER_OFFSET, 0, 31);
-+		M09_REGISTER_OFFSET, M12_REGISTER_OFFSET, 0, 31);
- static EDT_ATTR(threshold, S_IWUSR | S_IRUGO, WORK_REGISTER_THRESHOLD,
--		M09_REGISTER_THRESHOLD, 20, 80);
-+		M09_REGISTER_THRESHOLD, M12_REGISTER_THRESHOLD, 1, 255);
- static EDT_ATTR(report_rate, S_IWUSR | S_IRUGO, WORK_REGISTER_REPORT_RATE,
--		NO_REGISTER, 3, 14);
-+		NO_REGISTER, M12_REGISTER_REPORT_RATE, 3, 14);
- 
- static struct attribute *edt_ft5x06_attrs[] = {
- 	&edt_ft5x06_attr_gain.dattr.attr,
-@@ -508,7 +545,7 @@ static int edt_ft5x06_factory_mode(struct edt_ft5x06_ts_data *tsdata)
- 	}
- 
- 	/* mode register is 0x3c when in the work mode */
--	if (tsdata->version == M09)
-+	if ((tsdata->version == M09) || (tsdata->version == M12)) 
- 		goto m09_out;
- 
- 	error = edt_ft5x06_register_write(tsdata, WORK_REGISTER_OPMODE, 0x03);
-@@ -545,7 +582,7 @@ err_out:
- 	return error;
- 
- m09_out:
--	dev_err(&client->dev, "No factory mode support for M09\n");
-+	dev_err(&client->dev, "No factory mode support for M09 and M12\n");
- 	return -EINVAL;
- 
- }
-@@ -721,23 +758,46 @@ static void
- edt_ft5x06_ts_prepare_debugfs(struct edt_ft5x06_ts_data *tsdata,
- 			      const char *debugfs_name)
- {
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+
- 	tsdata->debug_dir = debugfs_create_dir(debugfs_name, NULL);
- 	if (!tsdata->debug_dir)
- 		return;
- 
- 	debugfs_create_u16("num_x", S_IRUSR, tsdata->debug_dir, &tsdata->num_x);
- 	debugfs_create_u16("num_y", S_IRUSR, tsdata->debug_dir, &tsdata->num_y);
-+	debugfs_create_u32("threshold", S_IRUSR, tsdata->debug_dir, &tsdata->threshold);
-+	debugfs_create_u32("gain", S_IRUSR, tsdata->debug_dir, &tsdata->gain);
-+	debugfs_create_u32("offset", S_IRUSR, tsdata->debug_dir, &tsdata->offset);
-+
- 
- 	debugfs_create_file("mode", S_IRUSR | S_IWUSR,
- 			    tsdata->debug_dir, tsdata, &debugfs_mode_fops);
- 	debugfs_create_file("raw_data", S_IRUSR,
- 			    tsdata->debug_dir, tsdata, &debugfs_raw_data_fops);
-+			    
-+	if (reg_addr->reg_report_rate != NO_REGISTER)
-+           debugfs_create_u32("report_rate", S_IRUSR, tsdata->debug_dir, &tsdata->report_rate);
-+           
-+	debugfs_create_u32("invert_x", S_IRUSR | S_IWUSR,
-+			    tsdata->debug_dir, &tsdata->invert_x);
-+	debugfs_create_u32("invert_y", S_IRUSR | S_IWUSR,
-+			    tsdata->debug_dir, &tsdata->invert_y);
-+	debugfs_create_u32("swap_xy", S_IRUSR,
-+			    tsdata->debug_dir, &tsdata->swap_xy);
-+	debugfs_create_u32("max_x", S_IRUSR,
-+			    tsdata->debug_dir, &tsdata->max_x);
-+	debugfs_create_u32("max_y", S_IRUSR,
-+			    tsdata->debug_dir, &tsdata->max_y);
-+
-+
- }
- 
- static void
- edt_ft5x06_ts_teardown_debugfs(struct edt_ft5x06_ts_data *tsdata)
- {
--	debugfs_remove_recursive(tsdata->debug_dir);
-+	if (tsdata->debug_dir)
-+		debugfs_remove_recursive(tsdata->debug_dir);
- 	kfree(tsdata->raw_buffer);
- }
- 
-@@ -756,6 +816,45 @@ edt_ft5x06_ts_teardown_debugfs(struct edt_ft5x06_ts_data *tsdata)
- 
- #endif /* CONFIG_DEBUGFS */
- 
-+static int edt_ft5x06_ts_reset(struct i2c_client *client,
-+			struct edt_ft5x06_ts_data *tsdata)
-+{
-+	int error;
-+
-+	if (gpio_is_valid(tsdata->wake_pin)) {
-+		error = devm_gpio_request_one(&client->dev,
-+					tsdata->wake_pin, GPIOF_OUT_INIT_LOW,
-+					"edt-ft5x06 wake");
-+		if (error) {
-+			dev_err(&client->dev,
-+				"Failed to request GPIO %d as wake pin, error %d\n",
-+				tsdata->wake_pin, error);
-+			return error;
-+		}
-+
-+		msleep(5);
-+		gpio_set_value(tsdata->wake_pin, 1);
-+	}
-+	if (gpio_is_valid(tsdata->reset_pin)) {
-+		/* this pulls reset down, enabling the low active reset */
-+		error = devm_gpio_request_one(&client->dev,
-+					tsdata->reset_pin, GPIOF_OUT_INIT_LOW,
-+					"edt-ft5x06 reset");
-+		if (error) {
-+			dev_err(&client->dev,
-+				"Failed to request GPIO %d as reset pin, error %d\n",
-+				tsdata->reset_pin, error);
-+			return error;
-+		}
-+
-+		msleep(5);
-+		gpio_set_value(tsdata->reset_pin, 1);
-+		msleep(300);
-+	}
-+
-+	return 0;
-+}
-+
- static int edt_ft5x06_ts_identify(struct i2c_client *client,
- 					struct edt_ft5x06_ts_data *tsdata,
- 					char *fw_version)
-@@ -771,14 +870,16 @@ static int edt_ft5x06_ts_identify(struct i2c_client *client,
- 	 */
- 	memset(rdbuf, 0, sizeof(rdbuf));
- 	error = edt_ft5x06_ts_readwrite(client, 1, "\xbb",
--					EDT_NAME_LEN - 1, rdbuf);
-+					EDT_NAME_LEN - 1,
-+					rdbuf);
- 	if (error)
- 		return error;
- 
-+        printk(KERN_INFO "EDT-TC:: %s ::-----%s----\n", __func__, rdbuf);
- 	/* if we find something consistent, stay with that assumption
- 	 * at least M09 won't send 3 bytes here
- 	 */
--	if (!(strncasecmp(rdbuf + 1, "EP0", 3))) {
-+	if ((strncasecmp(rdbuf + 1, "EP0", 3) == 0) && (strncasecmp(rdbuf + 6, "M12", 3) != 0)) {
- 		tsdata->version = M06;
- 
- 		/* remove last '$' end marker */
-@@ -792,8 +893,24 @@ static int edt_ft5x06_ts_identify(struct i2c_client *client,
- 			*p++ = '\0';
- 		strlcpy(model_name, rdbuf + 1, EDT_NAME_LEN);
- 		strlcpy(fw_version, p ? p : "", EDT_NAME_LEN);
-+	} else if (!(strncasecmp(rdbuf + 6, "M12", 3))) {
-+		tsdata->version = M12;
-+
-+		error = edt_ft5x06_ts_readwrite(client, 1, "\xA6",
-+						2, rdbuf);
-+		if (error)
-+			return error;
-+
-+		strlcpy(fw_version, rdbuf, 2);
-+
-+		error = edt_ft5x06_ts_readwrite(client, 1, "\xA8",
-+						1, rdbuf);
-+		if (error)
-+			return error;
-+
-+		snprintf(model_name, EDT_NAME_LEN, "EP0%i%i0M12",
-+			rdbuf[0] >> 4, rdbuf[0] & 0x0F);
- 	} else {
--		/* since there are only two versions around (M06, M09) */
- 		tsdata->version = M09;
- 
- 		error = edt_ft5x06_ts_readwrite(client, 1, "\xA6",
-@@ -815,30 +932,58 @@ static int edt_ft5x06_ts_identify(struct i2c_client *client,
- 	return 0;
- }
- 
--static void edt_ft5x06_ts_get_defaults(struct device *dev,
--				       struct edt_ft5x06_ts_data *tsdata)
-+#define EDT_ATTR_CHECKSET(name, reg) \
-+	if (pdata->name >= edt_ft5x06_attr_##name.limit_low &&		\
-+	    pdata->name <= edt_ft5x06_attr_##name.limit_high)		\
-+		edt_ft5x06_register_write(tsdata, reg, pdata->name)
-+
-+#define EDT_GET_PROP(name, reg) {				\
-+	u32 val;						\
-+	if (of_property_read_u32(np, #name, &val) == 0)		\
-+		edt_ft5x06_register_write(tsdata, reg, val);	\
-+}
-+
-+static void edt_ft5x06_ts_get_dt_defaults(struct device_node *np,
-+					struct edt_ft5x06_ts_data *tsdata)
- {
- 	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
--	u32 val;
--	int error;
- 
--	error = device_property_read_u32(dev, "threshold", &val);
--	if (!error) {
--		edt_ft5x06_register_write(tsdata, reg_addr->reg_threshold, val);
--		tsdata->threshold = val;
--	}
-+	switch (tsdata->version) {
-+	     case M12:
-+	      EDT_GET_PROP(threshold_M12, reg_addr->reg_threshold);
-+              EDT_GET_PROP(gain_M12, reg_addr->reg_gain);
-+              EDT_GET_PROP(offset_M12, reg_addr->reg_offset);
-+              break;
-+
-+	     case M09:
-+	      EDT_GET_PROP(threshold_M09, reg_addr->reg_threshold);
-+              EDT_GET_PROP(gain_M09, reg_addr->reg_gain);
-+              EDT_GET_PROP(offset_M09, reg_addr->reg_offset);
-+              break;
-+
-+	     case M06:
-+	      EDT_GET_PROP(threshold_M06, reg_addr->reg_threshold);
-+              EDT_GET_PROP(gain_M06, reg_addr->reg_gain);
-+              EDT_GET_PROP(offset_M06, reg_addr->reg_offset);
-+              break;
-+             }
-+}
- 
--	error = device_property_read_u32(dev, "gain", &val);
--	if (!error) {
--		edt_ft5x06_register_write(tsdata, reg_addr->reg_gain, val);
--		tsdata->gain = val;
--	}
-+static void
-+edt_ft5x06_ts_get_defaults(struct edt_ft5x06_ts_data *tsdata,
-+			   const struct edt_ft5x06_platform_data *pdata)
-+{
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
- 
--	error = device_property_read_u32(dev, "offset", &val);
--	if (!error) {
--		edt_ft5x06_register_write(tsdata, reg_addr->reg_offset, val);
--		tsdata->offset = val;
--	}
-+	if (!pdata->use_parameters)
-+		return;
-+
-+	/* pick up defaults from the platform data */
-+	EDT_ATTR_CHECKSET(threshold, reg_addr->reg_threshold);
-+	EDT_ATTR_CHECKSET(gain, reg_addr->reg_gain);
-+	EDT_ATTR_CHECKSET(offset, reg_addr->reg_offset);
-+	if (reg_addr->reg_report_rate != NO_REGISTER)
-+		EDT_ATTR_CHECKSET(report_rate, reg_addr->reg_report_rate);
- }
- 
- static void
-@@ -855,6 +1000,12 @@ edt_ft5x06_ts_get_parameters(struct edt_ft5x06_ts_data *tsdata)
- 						reg_addr->reg_report_rate);
- 	tsdata->num_x = edt_ft5x06_register_read(tsdata, reg_addr->reg_num_x);
- 	tsdata->num_y = edt_ft5x06_register_read(tsdata, reg_addr->reg_num_y);
-+
-+	if(tsdata->max_x == 0)	
-+		tsdata->max_x = tsdata->num_x * 64;
-+	if(tsdata->max_y == 0)
-+		tsdata->max_y = tsdata->num_y * 64;
-+	
- }
- 
- static void
-@@ -872,6 +1023,15 @@ edt_ft5x06_ts_set_regs(struct edt_ft5x06_ts_data *tsdata)
- 		reg_addr->reg_num_y = WORK_REGISTER_NUM_Y;
- 		break;
- 
-+        case M12:
-+		reg_addr->reg_threshold = M12_REGISTER_THRESHOLD;
-+		reg_addr->reg_report_rate = M12_REGISTER_REPORT_RATE;
-+		reg_addr->reg_gain = M12_REGISTER_GAIN;
-+		reg_addr->reg_offset = M12_REGISTER_OFFSET;
-+		reg_addr->reg_num_x = M12_REGISTER_NUM_X;
-+		reg_addr->reg_num_y = M12_REGISTER_NUM_Y;
-+		break;
-+
- 	case M09:
- 		reg_addr->reg_threshold = M09_REGISTER_THRESHOLD;
- 		reg_addr->reg_gain = M09_REGISTER_GAIN;
-@@ -882,13 +1042,48 @@ edt_ft5x06_ts_set_regs(struct edt_ft5x06_ts_data *tsdata)
- 	}
- }
- 
-+#ifdef CONFIG_OF
-+static int edt_ft5x06_i2c_ts_probe_dt(struct device *dev,
-+				struct edt_ft5x06_ts_data *tsdata)
-+{
-+	struct device_node *np = dev->of_node;
-+	/*
-+	 * irq_pin is not needed for DT setup.
-+	 * irq is associated via 'interrupts' property in DT
-+	 */
-+	tsdata->irq_pin = -EINVAL;
-+	tsdata->reset_pin = of_get_named_gpio(np, "reset-gpios", 0);
-+	tsdata->wake_pin = of_get_named_gpio(np, "wake-gpios", 0);
-+	
-+	tsdata->swap_xy = of_property_read_bool(np, "swap_xy")?1:0;
-+	tsdata->invert_x = of_property_read_bool(np, "invert_x")?1:0;
-+	tsdata->invert_y = of_property_read_bool(np, "invert_y")?1:0;
-+
-+	if(of_property_read_u32(np, "max_x", &tsdata->max_x))
-+		tsdata->max_x = 0;
-+	if(of_property_read_u32(np, "max_y", &tsdata->max_y))
-+		tsdata->max_y = 0;
-+
-+	if(tsdata->swap_xy) {
-+         printk(KERN_INFO "EDT-TC:: %s :: SWAP_XY\n", __func__);
-+	 }
-+	return 0;
-+}
-+#else
-+static inline int edt_ft5x06_i2c_ts_probe_dt(struct device *dev,
-+					struct edt_ft5x06_ts_data *tsdata)
-+{
-+	return -ENODEV;
-+}
-+#endif
-+
- static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 					 const struct i2c_device_id *id)
- {
--	const struct edt_i2c_chip_data *chip_data;
-+	const struct edt_ft5x06_platform_data *pdata =
-+						dev_get_platdata(&client->dev);
- 	struct edt_ft5x06_ts_data *tsdata;
- 	struct input_dev *input;
--	unsigned long irq_flags;
- 	int error;
- 	char fw_version[EDT_NAME_LEN];
- 
-@@ -900,43 +1095,32 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 		return -ENOMEM;
- 	}
- 
--	chip_data = of_device_get_match_data(&client->dev);
--	if (!chip_data)
--		chip_data = (const struct edt_i2c_chip_data *)id->driver_data;
--	if (!chip_data || !chip_data->max_support_points) {
--		dev_err(&client->dev, "invalid or missing chip data\n");
--		return -EINVAL;
--	}
--
--	tsdata->max_support_points = chip_data->max_support_points;
--
--	tsdata->reset_gpio = devm_gpiod_get_optional(&client->dev,
--						     "reset", GPIOD_OUT_HIGH);
--	if (IS_ERR(tsdata->reset_gpio)) {
--		error = PTR_ERR(tsdata->reset_gpio);
--		dev_err(&client->dev,
--			"Failed to request GPIO reset pin, error %d\n", error);
--		return error;
-+	if (!pdata) {
-+		error = edt_ft5x06_i2c_ts_probe_dt(&client->dev, tsdata);
-+		if (error) {
-+			dev_err(&client->dev,
-+				"DT probe failed and no platform data present\n");
-+			return error;
-+		}
-+	} else {
-+		tsdata->reset_pin = pdata->reset_pin;
-+		tsdata->irq_pin = pdata->irq_pin;
-+		tsdata->wake_pin = -EINVAL;
- 	}
- 
--	tsdata->wake_gpio = devm_gpiod_get_optional(&client->dev,
--						    "wake", GPIOD_OUT_LOW);
--	if (IS_ERR(tsdata->wake_gpio)) {
--		error = PTR_ERR(tsdata->wake_gpio);
--		dev_err(&client->dev,
--			"Failed to request GPIO wake pin, error %d\n", error);
-+	error = edt_ft5x06_ts_reset(client, tsdata);
-+	if (error)
- 		return error;
--	}
- 
--	if (tsdata->wake_gpio) {
--		usleep_range(5000, 6000);
--		gpiod_set_value_cansleep(tsdata->wake_gpio, 1);
--	}
--
--	if (tsdata->reset_gpio) {
--		usleep_range(5000, 6000);
--		gpiod_set_value_cansleep(tsdata->reset_gpio, 0);
--		msleep(300);
-+	if (gpio_is_valid(tsdata->irq_pin)) {
-+		error = devm_gpio_request_one(&client->dev, tsdata->irq_pin,
-+					GPIOF_IN, "edt-ft5x06 irq");
-+		if (error) {
-+			dev_err(&client->dev,
-+				"Failed to request GPIO %d, error %d\n",
-+				tsdata->irq_pin, error);
-+			return error;
-+		}
- 	}
- 
- 	input = devm_input_allocate_device(&client->dev);
-@@ -957,7 +1141,12 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 	}
- 
- 	edt_ft5x06_ts_set_regs(tsdata);
--	edt_ft5x06_ts_get_defaults(&client->dev, tsdata);
-+
-+	if (!pdata)
-+		edt_ft5x06_ts_get_dt_defaults(client->dev.of_node, tsdata);
-+	else
-+		edt_ft5x06_ts_get_defaults(tsdata, pdata);
-+
- 	edt_ft5x06_ts_get_parameters(tsdata);
- 
- 	dev_dbg(&client->dev,
-@@ -968,15 +1157,18 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 	input->id.bustype = BUS_I2C;
- 	input->dev.parent = &client->dev;
- 
-+	__set_bit(EV_SYN, input->evbit);
-+	__set_bit(EV_KEY, input->evbit);
-+	__set_bit(EV_ABS, input->evbit);
-+	__set_bit(BTN_TOUCH, input->keybit);
-+	
-+ 	input_set_abs_params(input, ABS_X, 0, tsdata->max_x - 1, 0, 0);
-+	input_set_abs_params(input, ABS_Y, 0, tsdata->max_y - 1, 0, 0);
- 	input_set_abs_params(input, ABS_MT_POSITION_X,
--			     0, tsdata->num_x * 64 - 1, 0, 0);
-+			     0, tsdata->max_x - 1, 0, 0);
- 	input_set_abs_params(input, ABS_MT_POSITION_Y,
--			     0, tsdata->num_y * 64 - 1, 0, 0);
--
--	touchscreen_parse_properties(input, true, &tsdata->prop);
--
--	error = input_mt_init_slots(input, tsdata->max_support_points,
--				INPUT_MT_DIRECT);
-+			     0, tsdata->max_y - 1, 0, 0);
-+	error = input_mt_init_slots(input, MAX_SUPPORT_POINTS, 0);
- 	if (error) {
- 		dev_err(&client->dev, "Unable to init MT slots.\n");
- 		return error;
-@@ -985,13 +1177,9 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 	input_set_drvdata(input, tsdata);
- 	i2c_set_clientdata(client, tsdata);
- 
--	irq_flags = irq_get_trigger_type(client->irq);
--	if (irq_flags == IRQF_TRIGGER_NONE)
--		irq_flags = IRQF_TRIGGER_FALLING;
--	irq_flags |= IRQF_ONESHOT;
--
--	error = devm_request_threaded_irq(&client->dev, client->irq,
--					NULL, edt_ft5x06_ts_isr, irq_flags,
-+	error = devm_request_threaded_irq(&client->dev, client->irq, NULL,
-+					edt_ft5x06_ts_isr,
-+					IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
- 					client->name, tsdata);
- 	if (error) {
- 		dev_err(&client->dev, "Unable to request touchscreen IRQ.\n");
-@@ -1011,9 +1199,7 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client,
- 
- 	dev_dbg(&client->dev,
- 		"EDT FT5x06 initialized: IRQ %d, WAKE pin %d, Reset pin %d.\n",
--		client->irq,
--		tsdata->wake_gpio ? desc_to_gpio(tsdata->wake_gpio) : -1,
--		tsdata->reset_gpio ? desc_to_gpio(tsdata->reset_gpio) : -1);
-+		client->irq, tsdata->wake_pin, tsdata->reset_pin);
- 
- 	return 0;
- 
-@@ -1032,7 +1218,8 @@ static int edt_ft5x06_ts_remove(struct i2c_client *client)
- 	return 0;
- }
- 
--static int __maybe_unused edt_ft5x06_ts_suspend(struct device *dev)
-+#ifdef CONFIG_PM_SLEEP
-+static int edt_ft5x06_ts_suspend(struct device *dev)
- {
- 	struct i2c_client *client = to_i2c_client(dev);
- 
-@@ -1042,7 +1229,7 @@ static int __maybe_unused edt_ft5x06_ts_suspend(struct device *dev)
- 	return 0;
- }
- 
--static int __maybe_unused edt_ft5x06_ts_resume(struct device *dev)
-+static int edt_ft5x06_ts_resume(struct device *dev)
- {
- 	struct i2c_client *client = to_i2c_client(dev);
- 
-@@ -1051,31 +1238,22 @@ static int __maybe_unused edt_ft5x06_ts_resume(struct device *dev)
- 
- 	return 0;
- }
-+#endif
- 
- static SIMPLE_DEV_PM_OPS(edt_ft5x06_ts_pm_ops,
- 			 edt_ft5x06_ts_suspend, edt_ft5x06_ts_resume);
- 
--static const struct edt_i2c_chip_data edt_ft5x06_data = {
--	.max_support_points = 5,
--};
--
--static const struct edt_i2c_chip_data edt_ft5506_data = {
--	.max_support_points = 10,
--};
--
- static const struct i2c_device_id edt_ft5x06_ts_id[] = {
--	{ .name = "edt-ft5x06", .driver_data = (long)&edt_ft5x06_data },
--	{ .name = "edt-ft5506", .driver_data = (long)&edt_ft5506_data },
-+	{ "edt-ft5x06", 0, },
- 	{ /* sentinel */ }
- };
- MODULE_DEVICE_TABLE(i2c, edt_ft5x06_ts_id);
- 
- #ifdef CONFIG_OF
- static const struct of_device_id edt_ft5x06_of_match[] = {
--	{ .compatible = "edt,edt-ft5206", .data = &edt_ft5x06_data },
--	{ .compatible = "edt,edt-ft5306", .data = &edt_ft5x06_data },
--	{ .compatible = "edt,edt-ft5406", .data = &edt_ft5x06_data },
--	{ .compatible = "edt,edt-ft5506", .data = &edt_ft5506_data },
-+	{ .compatible = "edt,edt-ft5206", },
-+	{ .compatible = "edt,edt-ft5306", },
-+	{ .compatible = "edt,edt-ft5406", },
- 	{ /* sentinel */ }
- };
- MODULE_DEVICE_TABLE(of, edt_ft5x06_of_match);
-@@ -1083,6 +1261,7 @@ MODULE_DEVICE_TABLE(of, edt_ft5x06_of_match);
- 
- static struct i2c_driver edt_ft5x06_ts_driver = {
- 	.driver = {
-+		.owner = THIS_MODULE,
- 		.name = "edt_ft5x06",
- 		.of_match_table = of_match_ptr(edt_ft5x06_of_match),
- 		.pm = &edt_ft5x06_ts_pm_ops,
-diff --git a/include/linux/input/edt-ft5x06.h b/include/linux/input/edt-ft5x06.h
-new file mode 100644
-index 0000000..8a1e0d1
---- /dev/null
-+++ b/include/linux/input/edt-ft5x06.h
-@@ -0,0 +1,24 @@
-+#ifndef _EDT_FT5X06_H
-+#define _EDT_FT5X06_H
-+
-+/*
-+ * Copyright (c) 2012 Simon Budig, <simon.budig@kernelconcepts.de>
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published by
-+ * the Free Software Foundation.
-+ */
-+
-+struct edt_ft5x06_platform_data {
-+	int irq_pin;
-+	int reset_pin;
-+
-+	/* startup defaults for operational parameters */
-+	bool use_parameters;
-+	u8 gain;
-+	u8 threshold;
-+	u8 offset;
-+	u8 report_rate;
-+};
-+
-+#endif /* _EDT_FT5X06_H */

+ 0 - 62
board/GfA/Display001/linux_4.4.94_rt19/linux-006-RS485_udelay_before_tx.patch

@@ -1,62 +0,0 @@
-diff --git a/Documentation/serial/serial-rs485.txt b/Documentation/serial/serial-rs485.txt
-index 2253b8b45a74..6225a3b759de 100644
---- a/Documentation/serial/serial-rs485.txt
-+++ b/Documentation/serial/serial-rs485.txt
-@@ -73,6 +73,9 @@
- 	/* Set rts delay before send, if needed: */
- 	rs485conf.delay_rts_before_send = ...;
- 
-+	/* Set udelay_before_enable_tx, if needed: */
-+	rs485conf.udelay_before_enable_tx = ...;
-+
- 	/* Set rts delay after send, if needed: */
- 	rs485conf.delay_rts_after_send = ...;
- 
-diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
-index 2c6c06f3d61c..19f51585641b 100644
---- a/drivers/tty/serial/omap-serial.c
-+++ b/drivers/tty/serial/omap-serial.c
-@@ -423,6 +423,8 @@ static void serial_omap_start_tx(struct uart_port *port)
- 		/* if rts not already enabled */
- 		res = (port->rs485.flags & SER_RS485_RTS_ON_SEND) ? 1 : 0;
- 		if (gpio_get_value(up->rts_gpio) != res) {
-+			if(port->rs485.udelay_before_enable_tx)
-+				udelay(port->rs485.udelay_before_enable_tx);
- 			gpio_set_value(up->rts_gpio, res);
- 			if (port->rs485.delay_rts_before_send > 0)
- 				mdelay(port->rs485.delay_rts_before_send);
-@@ -1545,7 +1547,7 @@ static int serial_omap_probe_rs485(struct uart_omap_port *up,
- 				   struct device_node *np)
- {
- 	struct serial_rs485 *rs485conf = &up->port.rs485;
--	u32 rs485_delay[2];
-+	u32 rs485_delay[3];
- 	enum of_gpio_flags flags;
- 	int ret;
- 
-@@ -1577,9 +1579,10 @@ static int serial_omap_probe_rs485(struct uart_omap_port *up,
- 	}
- 
- 	if (of_property_read_u32_array(np, "rs485-rts-delay",
--				    rs485_delay, 2) == 0) {
-+				    rs485_delay, 3) == 0) {
- 		rs485conf->delay_rts_before_send = rs485_delay[0];
- 		rs485conf->delay_rts_after_send = rs485_delay[1];
-+		rs485conf->udelay_before_enable_tx = rs485_delay[2];
- 	}
- 
- 	if (of_property_read_bool(np, "rs485-rx-during-tx"))
-diff --git a/include/uapi/linux/serial.h b/include/uapi/linux/serial.h
-index 5d59c3ebf459..d100bdac93c2 100644
---- a/include/uapi/linux/serial.h
-+++ b/include/uapi/linux/serial.h
-@@ -124,7 +124,8 @@ struct serial_rs485 {
- #define SER_RS485_RX_DURING_TX		(1 << 4)
- 	__u32	delay_rts_before_send;	/* Delay before send (milliseconds) */
- 	__u32	delay_rts_after_send;	/* Delay after send (milliseconds) */
--	__u32	padding[5];		/* Memory is cheap, new structs
-+	__u32   udelay_before_enable_tx;/* Delay before switching to tx direction */
-+	__u32	padding[4];		/* Memory is cheap, new structs
- 					   are a royal PITA .. */
- };
- 

+ 0 - 13
board/GfA/Display001/linux_4.4.94_rt19/linux-007-am33xx.dtsi_add_operating_points.patch

@@ -1,13 +0,0 @@
-diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
-index 1a499bb..858d21f 100644
---- a/arch/arm/boot/dts/am33xx.dtsi
-+++ b/arch/arm/boot/dts/am33xx.dtsi
-@@ -52,6 +52,8 @@
- 			 */
- 			operating-points = <
- 				/* kHz    uV */
-+				1000000	1351000
-+				800000	1285000
- 				720000  1285000
- 				600000  1225000
- 				500000  1125000

+ 0 - 134
board/GfA/Display001/linux_4.4.94_rt19/linux-020-edt-touch-make-gain-offset-threshold-writeable.patch

@@ -1,134 +0,0 @@
---- a/drivers/input/touchscreen/edt-ft5x06.c	2017-09-26 15:27:56.685769326 +0200
-+++ b/drivers/input/touchscreen/edt-ft5x06.c	2017-09-25 08:00:57.530768619 +0200
-@@ -639,6 +639,111 @@
- 	return 0;
- }
- 
-+
-+static int edt_ft5x06_debugfs_threshold_get(void *data, u64 *threshold)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+
-+	*threshold = (u64)(tsdata->threshold);
-+
-+	return 0;
-+};
-+
-+static int edt_ft5x06_debugfs_threshold_set(void *data, u64 threshold)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+	int retval = 0;
-+
-+/*	if (param > ??????)
-+		return -ERANGE;
-+*/
-+	mutex_lock(&tsdata->mutex);
-+	
-+	tsdata->threshold = (int)(threshold);
-+	edt_ft5x06_register_write(tsdata, reg_addr->reg_threshold,
-+				  tsdata->threshold);
-+	tsdata->threshold = edt_ft5x06_register_read(tsdata,
-+						     reg_addr->reg_threshold);
-+
-+	mutex_unlock(&tsdata->mutex);
-+
-+	return retval;
-+};
-+
-+DEFINE_SIMPLE_ATTRIBUTE(debugfs_threshold_fops, edt_ft5x06_debugfs_threshold_get,
-+			edt_ft5x06_debugfs_threshold_set, "%llu\n");
-+
-+
-+static int edt_ft5x06_debugfs_gain_get(void *data, u64 *gain)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+
-+	*gain = (u64)(tsdata->gain);
-+
-+	return 0;
-+};
-+
-+static int edt_ft5x06_debugfs_gain_set(void *data, u64 gain)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+	int retval = 0;
-+
-+/*	if (param > ??????)
-+		return -ERANGE;
-+*/
-+	mutex_lock(&tsdata->mutex);
-+	
-+	tsdata->gain = (int)(gain);
-+	edt_ft5x06_register_write(tsdata, reg_addr->reg_gain,
-+				  tsdata->gain);
-+	tsdata->gain = edt_ft5x06_register_read(tsdata,
-+						     reg_addr->reg_gain);
-+
-+	mutex_unlock(&tsdata->mutex);
-+
-+	return retval;
-+};
-+
-+DEFINE_SIMPLE_ATTRIBUTE(debugfs_gain_fops, edt_ft5x06_debugfs_gain_get,
-+			edt_ft5x06_debugfs_gain_set, "%llu\n");
-+
-+
-+static int edt_ft5x06_debugfs_offset_get(void *data, u64 *offset)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+
-+	*offset = (u64)(tsdata->offset);
-+
-+	return 0;
-+};
-+
-+static int edt_ft5x06_debugfs_offset_set(void *data, u64 offset)
-+{
-+	struct edt_ft5x06_ts_data *tsdata = data;
-+	struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
-+	int retval = 0;
-+
-+/*	if (param > ??????)
-+		return -ERANGE;
-+*/
-+	mutex_lock(&tsdata->mutex);
-+	
-+	tsdata->offset = (int)(offset);
-+	edt_ft5x06_register_write(tsdata, reg_addr->reg_offset,
-+				  tsdata->offset);
-+	tsdata->offset = edt_ft5x06_register_read(tsdata,
-+						     reg_addr->reg_offset);
-+
-+	mutex_unlock(&tsdata->mutex);
-+
-+	return retval;
-+};
-+
-+DEFINE_SIMPLE_ATTRIBUTE(debugfs_offset_fops, edt_ft5x06_debugfs_offset_get,
-+			edt_ft5x06_debugfs_offset_set, "%llu\n");
-+
- static int edt_ft5x06_debugfs_mode_get(void *data, u64 *mode)
- {
- 	struct edt_ft5x06_ts_data *tsdata = data;
-@@ -766,10 +871,19 @@
- 
- 	debugfs_create_u16("num_x", S_IRUSR, tsdata->debug_dir, &tsdata->num_x);
- 	debugfs_create_u16("num_y", S_IRUSR, tsdata->debug_dir, &tsdata->num_y);
-+
-+/*
- 	debugfs_create_u32("threshold", S_IRUSR, tsdata->debug_dir, &tsdata->threshold);
- 	debugfs_create_u32("gain", S_IRUSR, tsdata->debug_dir, &tsdata->gain);
- 	debugfs_create_u32("offset", S_IRUSR, tsdata->debug_dir, &tsdata->offset);
-+*/
- 
-+	debugfs_create_file("threshold", S_IRUSR | S_IWUSR,
-+			    tsdata->debug_dir, tsdata, &debugfs_threshold_fops);
-+	debugfs_create_file("gain", S_IRUSR | S_IWUSR,
-+			    tsdata->debug_dir, tsdata, &debugfs_gain_fops);
-+	debugfs_create_file("offset", S_IRUSR | S_IWUSR,
-+			    tsdata->debug_dir, tsdata, &debugfs_offset_fops);
- 
- 	debugfs_create_file("mode", S_IRUSR | S_IWUSR,
- 			    tsdata->debug_dir, tsdata, &debugfs_mode_fops);

+ 0 - 18
board/GfA/Display001/linux_4.4.94_rt19/linux-021-remove_endless_loop_in_rtc-ds1307_driver.patch

@@ -1,18 +0,0 @@
-diff -Naurp a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
---- a/drivers/rtc/rtc-ds1307.c	2018-02-19 11:38:04.000000000 +0100
-+++ b/drivers/rtc/rtc-ds1307.c	2018-03-08 11:58:06.832574443 +0100
-@@ -1093,11 +1093,11 @@ read_rtc:
- 		}
- 
- 		/* clock halted?  turn it on, so clock can tick. */
--		if (!(tmp & MCP794XX_BIT_ST)) {
-+		if (!(ds1307->regs[3] & 0x20)) { /* check OSC Bit from REG 3 */
-+			dev_warn(&client->dev, "OSC NOT RUNNING !SET TIME!\n");
- 			i2c_smbus_write_byte_data(client, DS1307_REG_SECS,
- 					MCP794XX_BIT_ST);
--			dev_warn(&client->dev, "SET TIME!\n");
--			goto read_rtc;
-+//			goto read_rtc; /* dont loop endless osc failure */
- 		}
- 
- 		break;

+ 0 - 108
board/GfA/Display001/linux_4.4.94_rt19/linux-022-add-dts-flags-to-atmel-mxt-touch.patch

@@ -1,108 +0,0 @@
-diff -Naurp a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
---- a/drivers/input/touchscreen/atmel_mxt_ts.c	2018-01-20 11:42:13.000000000 +0100
-+++ b/drivers/input/touchscreen/atmel_mxt_ts.c	2018-01-25 09:03:33.876115406 +0100
-@@ -24,6 +24,7 @@
- #include <linux/i2c.h>
- #include <linux/platform_data/atmel_mxt_ts.h>
- #include <linux/input/mt.h>
-+#include <linux/input/touchscreen.h>
- #include <linux/interrupt.h>
- #include <linux/of.h>
- #include <linux/slab.h>
-@@ -216,6 +217,9 @@ struct mxt_data {
- 	unsigned int irq;
- 	unsigned int max_x;
- 	unsigned int max_y;
-+	bool invert_x;
-+	bool invert_y;
-+	bool swap_x_y;
- 	bool xy_switch;
- 	bool in_bootloader;
- 	u16 mem_size;
-@@ -257,6 +261,22 @@ struct mxt_data {
- 	struct completion crc_completion;
- };
- 
-+static void mxt_apply_prop_to_x_y(const struct mxt_data *data,
-+                             int *x, int *y)
-+{
-+        if (data->invert_x)
-+                *x = data->max_x - *x;
-+
-+        if (data->invert_y)
-+                *y = data->max_y - *y;
-+
-+        if (data->swap_x_y)
-+                swap(*x, *y);
-+}
-+
-+
-+
-+
- static size_t mxt_obj_size(const struct mxt_object *obj)
- {
- 	return obj->size_minus_one + 1;
-@@ -741,6 +761,8 @@ static void mxt_proc_t9_message(struct m
- 
- 		/* Touch active */
- 		input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, 1);
-+		mxt_apply_prop_to_x_y(data, &x, &y);
-+		
- 		input_report_abs(input_dev, ABS_MT_POSITION_X, x);
- 		input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
- 		input_report_abs(input_dev, ABS_MT_PRESSURE, amplitude);
-@@ -760,8 +782,8 @@ static void mxt_proc_t100_message(struct
- 	int id;
- 	u8 status;
- 	u8 type = 0;
--	u16 x;
--	u16 y;
-+	/*u16*/ int x;
-+	/*u16*/ int y;
- 	int distance = 0;
- 	int tool = 0;
- 	u8 major = 0;
-@@ -845,6 +867,7 @@ static void mxt_proc_t100_message(struct
- 			id, type, x, y, major, pressure, orientation);
- 
- 		input_mt_report_slot_state(input_dev, tool, 1);
-+		mxt_apply_prop_to_x_y(data, &x, &y);
- 		input_report_abs(input_dev, ABS_MT_POSITION_X, x);
- 		input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
- 		input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, major);
-@@ -1778,7 +1801,8 @@ static int mxt_initialize_input_device(s
- 	int error;
- 	unsigned int num_mt_slots;
- 	unsigned int mt_flags = 0;
--
-+	struct device_node *np = dev->of_node;
-+	
- 	switch (data->multitouch) {
- 	case MXT_TOUCH_MULTI_T9:
- 		num_mt_slots = data->T9_reportid_max - data->T9_reportid_min + 1;
-@@ -1818,6 +1842,7 @@ static int mxt_initialize_input_device(s
- 		return -ENOMEM;
- 	}
- 
-+
- 	input_dev->name = "Atmel maXTouch Touchscreen";
- 	input_dev->phys = data->phys;
- 	input_dev->id.bustype = BUS_I2C;
-@@ -1908,6 +1933,17 @@ static int mxt_initialize_input_device(s
- 
- 	data->input_dev = input_dev;
- 
-+	if (np) {
-+		data->invert_x = of_property_read_bool(np, "invert_x")?1:0;
-+		data->invert_y = of_property_read_bool(np, "invert_y")?1:0;
-+        	data->swap_x_y = of_property_read_bool(np, "swap_x_y")?1:0;
-+        	
-+        	dev_info(dev, "loaded toucscreen properties\n");
-+        	dev_info(dev, "touchscreen-inverted-x %d\n", data->invert_x);
-+        	dev_info(dev, "touchscreen-inverted-y %d\n", data->invert_y);
-+        	dev_info(dev, "touchscreen-swap-x-y %d\n", data->swap_x_y);
-+        }
-+
- 	return 0;
- 
- err_free_mem:

+ 0 - 47
board/GfA/Display001/linux_4.4.94_rt19/linux-023-edt-ft5x06-shared-irq.disabled__patch

@@ -1,47 +0,0 @@
-diff -Naurp a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c
---- a/drivers/input/touchscreen/edt-ft5x06.c	2018-01-30 21:28:53.696245462 +0100
-+++ b/drivers/input/touchscreen/edt-ft5x06.c	2018-01-30 21:28:19.220223683 +0100
-@@ -188,6 +188,7 @@ static irqreturn_t edt_ft5x06_ts_isr(int
- 	int i, type, x, y, id;
- 	int offset, tplen, datalen;
- 	int error;
-+	
- 
- 	switch (tsdata->version) {
- 	case M06:
-@@ -532,7 +533,7 @@ static int edt_ft5x06_factory_mode(struc
- 	int ret;
- 	int error;
- 
--	disable_irq(client->irq);
-+//	disable_irq(client->irq);
- 
- 	if (!tsdata->raw_buffer) {
- 		tsdata->raw_bufsize = tsdata->num_x * tsdata->num_y *
-@@ -577,7 +578,7 @@ err_out:
- 	kfree(tsdata->raw_buffer);
- 	tsdata->raw_buffer = NULL;
- 	tsdata->factory_mode = false;
--	enable_irq(client->irq);
-+//	enable_irq(client->irq);
- 
- 	return error;
- 
-@@ -634,7 +635,7 @@ static int edt_ft5x06_work_mode(struct e
- 		edt_ft5x06_register_write(tsdata, reg_addr->reg_report_rate,
- 				  tsdata->report_rate);
- 
--	enable_irq(client->irq);
-+//	enable_irq(client->irq);
- 
- 	return 0;
- }
-@@ -1293,7 +1294,7 @@ static int edt_ft5x06_ts_probe(struct i2
- 
- 	error = devm_request_threaded_irq(&client->dev, client->irq, NULL,
- 					edt_ft5x06_ts_isr,
--					IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
-+					IRQF_TRIGGER_LOW | IRQF_ONESHOT | IRQF_SHARED,
- 					client->name, tsdata);
- 	if (error) {
- 		dev_err(&client->dev, "Unable to request touchscreen IRQ.\n");

+ 0 - 65
board/GfA/Display001/linux_4.4.94_rt19/linux-024-edt-ft5x06-fix-report-rate-for-M09.patch

@@ -1,65 +0,0 @@
-diff -Naurp a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c
---- a/drivers/input/touchscreen/edt-ft5x06.c	2018-02-13 23:46:04.845194636 +0100
-+++ b/drivers/input/touchscreen/edt-ft5x06.c	2018-02-13 23:45:01.705110745 +0100
-@@ -53,6 +53,7 @@
- #define M09_REGISTER_OFFSET		0x93
- #define M09_REGISTER_NUM_X		0x94
- #define M09_REGISTER_NUM_Y		0x95
-+#define M09_REGISTER_REPORT_RATE	0x88
- 
- #define M12_REGISTER_THRESHOLD		0x80
- #define M12_REGISTER_GAIN		0x92
-@@ -510,7 +511,7 @@ static EDT_ATTR(offset, S_IWUSR | S_IRUG
- static EDT_ATTR(threshold, S_IWUSR | S_IRUGO, WORK_REGISTER_THRESHOLD,
- 		M09_REGISTER_THRESHOLD, M12_REGISTER_THRESHOLD, 1, 255);
- static EDT_ATTR(report_rate, S_IWUSR | S_IRUGO, WORK_REGISTER_REPORT_RATE,
--		NO_REGISTER, M12_REGISTER_REPORT_RATE, 3, 14);
-+		M09_REGISTER_REPORT_RATE, M12_REGISTER_REPORT_RATE, 3, 14);
- 
- static struct attribute *edt_ft5x06_attrs[] = {
- 	&edt_ft5x06_attr_gain.dattr.attr,
-@@ -530,7 +531,7 @@ static int edt_ft5x06_factory_mode(struc
- 	struct i2c_client *client = tsdata->client;
- 	int retries = EDT_SWITCH_MODE_RETRIES;
- 	int ret;
--	int error;
-+	int error = 0;
- 
- 	disable_irq(client->irq);
- 
-@@ -570,7 +571,8 @@ static int edt_ft5x06_factory_mode(struc
- 		error = -EIO;
- 		goto err_out;
- 	}
--
-+	
-+	printk(KERN_INFO "EDT-TC: %s: set to factory mode\n", __func__);
- 	return 0;
- 
- err_out:
-@@ -891,7 +893,8 @@ edt_ft5x06_ts_prepare_debugfs(struct edt
- 			    tsdata->debug_dir, tsdata, &debugfs_raw_data_fops);
- 			    
- 	if (reg_addr->reg_report_rate != NO_REGISTER)
--           debugfs_create_u32("report_rate", S_IRUSR, tsdata->debug_dir, &tsdata->report_rate);
-+           debugfs_create_u32("report_rate", S_IRUSR, tsdata->debug_dir, 
-+           	&tsdata->report_rate);
-            
- 	debugfs_create_u32("invert_x", S_IRUSR | S_IWUSR,
- 			    tsdata->debug_dir, &tsdata->invert_x);
-@@ -989,7 +992,6 @@ static int edt_ft5x06_ts_identify(struct
- 	if (error)
- 		return error;
- 
--        printk(KERN_INFO "EDT-TC:: %s ::-----%s----\n", __func__, rdbuf);
- 	/* if we find something consistent, stay with that assumption
- 	 * at least M09 won't send 3 bytes here
- 	 */
-@@ -1148,6 +1150,7 @@ edt_ft5x06_ts_set_regs(struct edt_ft5x06
- 
- 	case M09:
- 		reg_addr->reg_threshold = M09_REGISTER_THRESHOLD;
-+		reg_addr->reg_report_rate = M09_REGISTER_REPORT_RATE;
- 		reg_addr->reg_gain = M09_REGISTER_GAIN;
- 		reg_addr->reg_offset = M09_REGISTER_OFFSET;
- 		reg_addr->reg_num_x = M09_REGISTER_NUM_X;

+ 0 - 20
board/GfA/Display001/linux_4.4.94_rt19/linux-025-edt-ft5x06-fix-M9-M12-registercount-on-write.patch

@@ -1,20 +0,0 @@
-diff -Naurp a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c
---- a/drivers/input/touchscreen/edt-ft5x06.c	2018-02-20 20:55:48.828441552 +0100
-+++ b/drivers/input/touchscreen/edt-ft5x06.c	2018-02-20 20:55:02.332357749 +0100
-@@ -292,7 +292,6 @@ static int edt_ft5x06_register_write(str
- 	case M06:
- 		wrbuf[0] = tsdata->factory_mode ? 0xf3 : 0xfc;
- 		wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
--		wrbuf[1] = tsdata->factory_mode ? addr & 0x7f : addr & 0x3f;
- 		wrbuf[2] = value;
- 		wrbuf[3] = wrbuf[0] ^ wrbuf[1] ^ wrbuf[2];
- 		return edt_ft5x06_ts_readwrite(tsdata->client, 4, wrbuf, 0, NULL);
-@@ -302,7 +301,7 @@ static int edt_ft5x06_register_write(str
- 		wrbuf[0] = addr;
- 		wrbuf[1] = value;
- 
--		return edt_ft5x06_ts_readwrite(tsdata->client, 3,
-+		return edt_ft5x06_ts_readwrite(tsdata->client, 2,
- 					wrbuf, 0, NULL);
- 
- 	default:

+ 0 - 39
board/GfA/Display001/linux_4.4.94_rt19/linux-026-gpio-pca953x-sitara-i2c-quirks.patch

@@ -1,39 +0,0 @@
-diff -Naurp a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
---- a/drivers/gpio/gpio-pca953x.c	2018-03-05 08:25:33.000000000 +0100
-+++ b/drivers/gpio/gpio-pca953x.c	2018-03-10 21:16:09.597556913 +0100
-@@ -123,10 +123,16 @@ static int pca953x_read_single(struct pc
- 
- 	ret = i2c_smbus_read_byte_data(chip->client,
- 				(reg << bank_shift) + offset);
-+
-+	if (ret < 0) { /* only one retry due to i2c quirks */
-+		/*dev_err(&chip->client->dev, "retry failed reading (single) register\n");*/
-+		ret = i2c_smbus_read_byte_data(chip->client,
-+				(reg << bank_shift) + offset);
-+	}
- 	*val = ret;
- 
- 	if (ret < 0) {
--		dev_err(&chip->client->dev, "failed reading register\n");
-+		dev_err(&chip->client->dev, "failed reading (single) register\n");
- 		return ret;
- 	}
- 
-@@ -207,7 +213,7 @@ static int pca953x_read_regs(struct pca9
- 		val[1] = (u16)ret >> 8;
- 	}
- 	if (ret < 0) {
--		dev_err(&chip->client->dev, "failed reading register\n");
-+		dev_err(&chip->client->dev, "failed reading (regs) register\n");
- 		return ret;
- 	}
- 
-@@ -315,7 +321,7 @@ static int pca953x_gpio_get_value(struct
- 		 * do unless gpio_*_value_cansleep() calls become different
- 		 * from their nonsleeping siblings (and report faults).
- 		 */
--		return 0;
-+		return 1;
- 	}
- 
- 	return (reg_val & (1u << (off % BANK_SZ))) ? 1 : 0;

+ 0 - 28
board/GfA/Display001/linux_4.4.94_rt19/linux-027-input_events_add_IN1-IN4.patch

@@ -1,28 +0,0 @@
-diff -Naurp a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
---- a/include/linux/mod_devicetable.h	2018-02-19 11:38:07.000000000 +0100
-+++ b/include/linux/mod_devicetable.h	2018-05-04 21:39:09.862508306 +0200
-@@ -291,7 +291,7 @@ struct pcmcia_device_id {
- #define INPUT_DEVICE_ID_LED_MAX		0x0f
- #define INPUT_DEVICE_ID_SND_MAX		0x07
- #define INPUT_DEVICE_ID_FF_MAX		0x7f
--#define INPUT_DEVICE_ID_SW_MAX		0x0f
-+#define INPUT_DEVICE_ID_SW_MAX		0x13
- 
- #define INPUT_DEVICE_ID_MATCH_BUS	1
- #define INPUT_DEVICE_ID_MATCH_VENDOR	2
-diff a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
---- a/include/uapi/linux/input-event-codes.h	2018-02-19 11:38:08.000000000 +0100
-+++ b/include/uapi/linux/input-event-codes.h	2018-05-04 21:36:45.066395759 +0200
-@@ -749,7 +749,11 @@
- #define SW_ROTATE_LOCK		0x0c  /* set = rotate locked/disabled */
- #define SW_LINEIN_INSERT	0x0d  /* set = inserted */
- #define SW_MUTE_DEVICE		0x0e  /* set = device disabled */
--#define SW_MAX			0x0f
-+#define SW_IO1			0x0f
-+#define SW_IO2			0x10
-+#define SW_IO3			0x11
-+#define SW_IO4			0x12
-+#define SW_MAX			0x13
- #define SW_CNT			(SW_MAX+1)
- 
- /*

+ 0 - 313
board/GfA/Display001/linux_4.4.94_rt19/linux-028-qmi_wwan-add-simcom-changes.patch

@@ -1,313 +0,0 @@
-diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
-index e325ca3..a880200 100644
---- a/drivers/net/usb/qmi_wwan.c
-+++ b/drivers/net/usb/qmi_wwan.c
-@@ -14,7 +14,9 @@
- #include <linux/netdevice.h>
- #include <linux/ethtool.h>
- #include <linux/etherdevice.h>
-+#include <linux/if_arp.h>
- #include <linux/mii.h>
-+#include <linux/rtnetlink.h>
- #include <linux/usb.h>
- #include <linux/usb/cdc.h>
- #include <linux/usb/usbnet.h>
-@@ -48,11 +50,104 @@
- struct qmi_wwan_state {
- 	struct usb_driver *subdriver;
- 	atomic_t pmcount;
--	unsigned long unused;
-+	unsigned long flags;
- 	struct usb_interface *control;
- 	struct usb_interface *data;
- };
- 
-+enum qmi_wwan_flags {
-+	QMI_WWAN_FLAG_RAWIP = 1 << 0,
-+};
-+
-+enum qmi_wwan_quirks {
-+	QMI_WWAN_QUIRK_DTR = 1 << 0,	/* needs "set DTR" request */
-+};
-+
-+static void qmi_wwan_netdev_setup(struct net_device *net)
-+{
-+	struct usbnet *dev = netdev_priv(net);
-+	struct qmi_wwan_state *info = (void *)&dev->data;
-+
-+	if (info->flags & QMI_WWAN_FLAG_RAWIP) {
-+		net->header_ops      = NULL;  /* No header */
-+		net->type            = ARPHRD_NONE;
-+		net->hard_header_len = 0;
-+		net->addr_len        = 0;
-+		net->flags           = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
-+		netdev_dbg(net, "mode: raw IP\n");
-+	} else if (!net->header_ops) { /* don't bother if already set */
-+		ether_setup(net);
-+		netdev_dbg(net, "mode: Ethernet\n");
-+	}
-+
-+	/* recalculate buffers after changing hard_header_len */
-+	usbnet_change_mtu(net, net->mtu);
-+}
-+
-+static ssize_t raw_ip_show(struct device *d, struct device_attribute *attr, char *buf)
-+{
-+	struct usbnet *dev = netdev_priv(to_net_dev(d));
-+	struct qmi_wwan_state *info = (void *)&dev->data;
-+
-+	return sprintf(buf, "%c\n", info->flags & QMI_WWAN_FLAG_RAWIP ? 'Y' : 'N');
-+}
-+
-+static ssize_t raw_ip_store(struct device *d,  struct device_attribute *attr, const char *buf, size_t len)
-+{
-+	struct usbnet *dev = netdev_priv(to_net_dev(d));
-+	struct qmi_wwan_state *info = (void *)&dev->data;
-+	bool enable;
-+	int ret;
-+
-+	if (strtobool(buf, &enable))
-+		return -EINVAL;
-+
-+	/* no change? */
-+	if (enable == (info->flags & QMI_WWAN_FLAG_RAWIP))
-+		return len;
-+
-+	if (!rtnl_trylock())
-+		return restart_syscall();
-+
-+	/* we don't want to modify a running netdev */
-+	if (netif_running(dev->net)) {
-+		netdev_err(dev->net, "Cannot change a running device\n");
-+		ret = -EBUSY;
-+		goto err;
-+	}
-+
-+	/* let other drivers deny the change */
-+	ret = call_netdevice_notifiers(NETDEV_PRE_TYPE_CHANGE, dev->net);
-+	ret = notifier_to_errno(ret);
-+	if (ret) {
-+		netdev_err(dev->net, "Type change was refused\n");
-+		goto err;
-+	}
-+
-+	if (enable)
-+		info->flags |= QMI_WWAN_FLAG_RAWIP;
-+	else
-+		info->flags &= ~QMI_WWAN_FLAG_RAWIP;
-+	qmi_wwan_netdev_setup(dev->net);
-+	call_netdevice_notifiers(NETDEV_POST_TYPE_CHANGE, dev->net);
-+	ret = len;
-+err:
-+	rtnl_unlock();
-+	return ret;
-+}
-+
-+static DEVICE_ATTR_RW(raw_ip);
-+
-+static struct attribute *qmi_wwan_sysfs_attrs[] = {
-+	&dev_attr_raw_ip.attr,
-+	NULL,
-+};
-+
-+static struct attribute_group qmi_wwan_sysfs_attr_group = {
-+	.name = "qmi",
-+	.attrs = qmi_wwan_sysfs_attrs,
-+};
-+
- /* default ethernet address used by the modem */
- static const u8 default_modem_addr[ETH_ALEN] = {0x02, 0x50, 0xf3};
- 
-@@ -80,6 +175,8 @@ static const u8 buggy_fw_addr[ETH_ALEN] = {0x00, 0xa0, 0xc6, 0x00, 0x00, 0x00};
-  */
- static int qmi_wwan_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
- {
-+	struct qmi_wwan_state *info = (void *)&dev->data;
-+	bool rawip = info->flags & QMI_WWAN_FLAG_RAWIP;
- 	__be16 proto;
- 
- 	/* This check is no longer done by usbnet */
-@@ -94,15 +191,25 @@ static int qmi_wwan_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
- 		proto = htons(ETH_P_IPV6);
- 		break;
- 	case 0x00:
-+		if (rawip)
-+			return 0;
- 		if (is_multicast_ether_addr(skb->data))
- 			return 1;
- 		/* possibly bogus destination - rewrite just in case */
- 		skb_reset_mac_header(skb);
- 		goto fix_dest;
- 	default:
-+		if (rawip)
-+			return 0;
- 		/* pass along other packets without modifications */
- 		return 1;
- 	}
-+	if (rawip) {
-+		skb->dev = dev->net; /* normally set by eth_type_trans */
-+		skb->protocol = proto;
-+		return 1;
-+	}
-+
- 	if (skb_headroom(skb) < ETH_HLEN)
- 		return 0;
- 	skb_push(skb, ETH_HLEN);
-@@ -223,6 +330,20 @@ err:
- 	return rv;
- }
- 
-+/* Send CDC SetControlLineState request, setting or clearing the DTR.
-+ * "Required for Autoconnect and 9x30 to wake up" according to the
-+ * GobiNet driver. The requirement has been verified on an MDM9230
-+ * based Sierra Wireless MC7455
-+ */
-+static int qmi_wwan_change_dtr(struct usbnet *dev, bool on)
-+{
-+	u8 intf = dev->intf->cur_altsetting->desc.bInterfaceNumber;
-+
-+	return usbnet_write_cmd(dev, USB_CDC_REQ_SET_CONTROL_LINE_STATE,
-+				USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
-+				on ? 0x01 : 0x00, intf, NULL, 0);
-+}
-+
- static int qmi_wwan_bind(struct usbnet *dev, struct usb_interface *intf)
- {
- 	int status = -1;
-@@ -257,7 +378,10 @@ static int qmi_wwan_bind(struct usbnet *dev, struct usb_interface *intf)
- 				"bogus CDC Union: master=%u, slave=%u\n",
- 				cdc_union->bMasterInterface0,
- 				cdc_union->bSlaveInterface0);
--			goto err;
-+
-+			/* ignore and continue... */
-+			cdc_union = NULL;
-+			info->data = intf;
- 		}
- 	}
- 
-@@ -280,6 +404,29 @@ static int qmi_wwan_bind(struct usbnet *dev, struct usb_interface *intf)
- 		usb_driver_release_interface(driver, info->data);
- 	}
- 
-+	/* disabling remote wakeup on MDM9x30 devices has the same
-+	 * effect as clearing DTR. The device will not respond to QMI
-+	 * requests until we set DTR again.  This is similar to a
-+	 * QMI_CTL SYNC request, clearing a lot of firmware state
-+	 * including the client ID allocations.
-+	 *
-+	 * Our usage model allows a session to span multiple
-+	 * open/close events, so we must prevent the firmware from
-+	 * clearing out state the clients might need.
-+	 *
-+	 * MDM9x30 is the first QMI chipset with USB3 support. Abuse
-+	 * this fact to enable the quirk for all USB3 devices.
-+	 *
-+	 * There are also chipsets with the same "set DTR" requirement
-+	 * but without USB3 support.  Devices based on these chips
-+	 * need a quirk flag in the device ID table.
-+	 */
-+	if (dev->driver_info->data & QMI_WWAN_QUIRK_DTR ||
-+	    le16_to_cpu(dev->udev->descriptor.bcdUSB) >= 0x0201) {
-+		qmi_wwan_manage_power(dev, 1);
-+		qmi_wwan_change_dtr(dev, true);
-+	}
-+
- 	/* Never use the same address on both ends of the link, even if the
- 	 * buggy firmware told us to. Or, if device is assigned the well-known
- 	 * buggy firmware MAC address, replace it with a random address,
-@@ -294,6 +441,7 @@ static int qmi_wwan_bind(struct usbnet *dev, struct usb_interface *intf)
- 		dev->net->dev_addr[0] &= 0xbf;	/* clear "IP" bit */
- 	}
- 	dev->net->netdev_ops = &qmi_wwan_netdev_ops;
-+	dev->net->sysfs_groups[0] = &qmi_wwan_sysfs_attr_group;
- err:
- 	return status;
- }
-@@ -307,6 +455,12 @@ static void qmi_wwan_unbind(struct usbnet *dev, struct usb_interface *intf)
- 	if (info->subdriver && info->subdriver->disconnect)
- 		info->subdriver->disconnect(info->control);
- 
-+	/* disable MDM9x30 quirk */
-+	if (le16_to_cpu(dev->udev->descriptor.bcdUSB) >= 0x0201) {
-+		qmi_wwan_change_dtr(dev, false);
-+		qmi_wwan_manage_power(dev, 0);
-+	}
-+
- 	/* allow user to unbind using either control or data */
- 	if (intf == info->control)
- 		other = info->data;
-@@ -381,6 +535,16 @@ static const struct driver_info	qmi_wwan_info = {
- 	.rx_fixup       = qmi_wwan_rx_fixup,
- };
- 
-+static const struct driver_info	qmi_wwan_info_quirk_dtr = {
-+	.description	= "WWAN/QMI device",
-+	.flags		= FLAG_WWAN,
-+	.bind		= qmi_wwan_bind,
-+	.unbind		= qmi_wwan_unbind,
-+	.manage_power	= qmi_wwan_manage_power,
-+	.rx_fixup       = qmi_wwan_rx_fixup,
-+	.data           = QMI_WWAN_QUIRK_DTR,
-+};
-+
- #define HUAWEI_VENDOR_ID	0x12D1
- 
- /* map QMI/wwan function by a fixed interface number */
-@@ -388,6 +552,11 @@ static const struct driver_info	qmi_wwan_info = {
- 	USB_DEVICE_INTERFACE_NUMBER(vend, prod, num), \
- 	.driver_info = (unsigned long)&qmi_wwan_info
- 
-+/* devices requiring "set DTR" quirk */
-+#define QMI_QUIRK_SET_DTR(vend, prod, num) \
-+	USB_DEVICE_INTERFACE_NUMBER(vend, prod, num), \
-+	.driver_info = (unsigned long)&qmi_wwan_info_quirk_dtr
-+
- /* Gobi 1000 QMI/wwan interface number is 3 according to qcserial */
- #define QMI_GOBI1K_DEVICE(vend, prod) \
- 	QMI_FIXED_INTF(vend, prod, 3)
-@@ -725,8 +894,6 @@ static const struct usb_device_id products[] = {
- 	{QMI_FIXED_INTF(0x1199, 0x9056, 8)},	/* Sierra Wireless Modem */
- 	{QMI_FIXED_INTF(0x1199, 0x9057, 8)},
- 	{QMI_FIXED_INTF(0x1199, 0x9061, 8)},	/* Sierra Wireless Modem */
--	{QMI_FIXED_INTF(0x1199, 0x9070, 8)},	/* Sierra Wireless MC74xx/EM74xx */
--	{QMI_FIXED_INTF(0x1199, 0x9070, 10)},	/* Sierra Wireless MC74xx/EM74xx */
- 	{QMI_FIXED_INTF(0x1199, 0x9071, 8)},	/* Sierra Wireless MC74xx */
- 	{QMI_FIXED_INTF(0x1199, 0x9071, 10)},	/* Sierra Wireless MC74xx */
- 	{QMI_FIXED_INTF(0x1199, 0x9079, 8)},	/* Sierra Wireless EM74xx */
-@@ -737,6 +904,7 @@ static const struct usb_device_id products[] = {
- 	{QMI_FIXED_INTF(0x1bbb, 0x0203, 2)},	/* Alcatel L800MA */
- 	{QMI_FIXED_INTF(0x2357, 0x0201, 4)},	/* TP-LINK HSUPA Modem MA180 */
- 	{QMI_FIXED_INTF(0x2357, 0x9000, 4)},	/* TP-LINK MA260 */
-+	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1040, 2)},	/* Telit LE922A */
- 	{QMI_FIXED_INTF(0x1bc7, 0x1200, 5)},	/* Telit LE920 */
- 	{QMI_FIXED_INTF(0x1bc7, 0x1201, 2)},	/* Telit LE920 */
- 	{QMI_FIXED_INTF(0x1c9e, 0x9b01, 3)},	/* XS Stick W100-2 from 4G Systems */
-@@ -749,15 +917,21 @@ static const struct usb_device_id products[] = {
- 	{QMI_FIXED_INTF(0x0b3c, 0xc00b, 4)},	/* Olivetti Olicard 500 */
- 	{QMI_FIXED_INTF(0x1e2d, 0x0060, 4)},	/* Cinterion PLxx */
- 	{QMI_FIXED_INTF(0x1e2d, 0x0053, 4)},	/* Cinterion PHxx,PXxx */
-+	{QMI_FIXED_INTF(0x1e2d, 0x0082, 4)},    /* Cinterion PHxx,PXxx (2 RmNet) */
-+	{QMI_FIXED_INTF(0x1e2d, 0x0082, 5)},    /* Cinterion PHxx,PXxx (2 RmNet) */
-+	{QMI_FIXED_INTF(0x1e2d, 0x0083, 4)},    /* Cinterion PHxx,PXxx (1 RmNet + USB Audio)*/
- 	{QMI_FIXED_INTF(0x413c, 0x81a2, 8)},	/* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card */
- 	{QMI_FIXED_INTF(0x413c, 0x81a3, 8)},	/* Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card */
- 	{QMI_FIXED_INTF(0x413c, 0x81a4, 8)},	/* Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card */
- 	{QMI_FIXED_INTF(0x413c, 0x81a8, 8)},	/* Dell Wireless 5808 Gobi(TM) 4G LTE Mobile Broadband Card */
- 	{QMI_FIXED_INTF(0x413c, 0x81a9, 8)},	/* Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card */
- 	{QMI_FIXED_INTF(0x413c, 0x81b1, 8)},	/* Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card */
-+	{QMI_FIXED_INTF(0x413c, 0x81b3, 8)},    /* Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card (rev3) */
- 	{QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)},	/* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
- 	{QMI_FIXED_INTF(0x22de, 0x9061, 3)},	/* WeTelecom WPD-600N */
--	{QMI_FIXED_INTF(0x1e0e, 0x9001, 5)},	/* SIMCom 7230E */
-+	{QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)},	/* SIMCom 7230E */
-+	{QMI_QUIRK_SET_DTR(0x2c7c, 0x0125, 4)}, /* Quectel EC25, EC20 R2.0  Mini PCIe */
-+	{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
- 
- 	/* 4. Gobi 1000 devices */
- 	{QMI_GOBI1K_DEVICE(0x05c6, 0x9212)},	/* Acer Gobi Modem Device */
-@@ -875,3 +1049,4 @@ module_usb_driver(qmi_wwan_driver);
- MODULE_AUTHOR("Bjørn Mork <bjorn@mork.no>");
- MODULE_DESCRIPTION("Qualcomm MSM Interface (QMI) WWAN driver");
- MODULE_LICENSE("GPL");
-+

+ 0 - 300
board/GfA/Display001/linux_4.4.94_rt19/linux-029-simcom_7600_7500.patch

@@ -1,300 +0,0 @@
-diff --git a/drivers/net/usb/Makefile b/drivers/net/usb/Makefile
-index b5f0406..da20b14 100644
---- a/drivers/net/usb/Makefile
-+++ b/drivers/net/usb/Makefile
-@@ -26,7 +26,7 @@ obj-$(CONFIG_USB_NET_RNDIS_HOST)	+= rndis_host.o
- obj-$(CONFIG_USB_NET_CDC_SUBSET)	+= cdc_subset.o
- obj-$(CONFIG_USB_NET_ZAURUS)	+= zaurus.o
- obj-$(CONFIG_USB_NET_MCS7830)	+= mcs7830.o
--obj-$(CONFIG_USB_USBNET)	+= usbnet.o
-+obj-$(CONFIG_USB_USBNET)	+= usbnet.o sim7500_sim7600_wwan.o
- obj-$(CONFIG_USB_NET_INT51X1)	+= int51x1.o
- obj-$(CONFIG_USB_CDC_PHONET)	+= cdc-phonet.o
- obj-$(CONFIG_USB_NET_KALMIA)	+= kalmia.o
-diff --git a/drivers/net/usb/sim7500_sim7600_wwan.c b/drivers/net/usb/sim7500_sim7600_wwan.c
-new file mode 100644
-index 0000000..a70bcc0
---- /dev/null
-+++ b/drivers/net/usb/sim7500_sim7600_wwan.c
-@@ -0,0 +1,243 @@
-+/*
-+ * Copyright (c) 2016 Xiaobin Wang <xiaobin.wang@sim.com>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * version 2 as published by the Free Software Foundation.
-+ */
-+
-+/*
-+ * history 
-+ * V1.00 - first release  - 20160822
-+*/
-+
-+#include <linux/module.h>
-+#include <linux/netdevice.h>
-+#include <linux/ethtool.h>
-+#include <linux/etherdevice.h>
-+#include <linux/mii.h>
-+#include <linux/usb.h>
-+#include <linux/usb/cdc.h>
-+#include <linux/usb/usbnet.h>
-+
-+
-+/* very simplistic detection of IPv4 or IPv6 headers */
-+static bool possibly_iphdr(const char *data)
-+{
-+	return (data[0] & 0xd0) == 0x40;
-+}
-+
-+/* SIMCOM devices combine the "control" and "data" functions into a
-+ * single interface with all three endpoints: interrupt + bulk in and
-+ * out
-+ */
-+static int simcom_wwan_bind(struct usbnet *dev, struct usb_interface *intf)
-+{
-+	int rv = -EINVAL;
-+  
-+	//struct usb_driver *subdriver = NULL;
-+	atomic_t *pmcount = (void *)&dev->data[1];
-+
-+  /* ignore any interface with additional descriptors */
-+	if (intf->cur_altsetting->extralen)
-+		goto err;
-+  
-+	/* Some makes devices where the interface descriptors and endpoint
-+	 * configurations of two or more interfaces are identical, even
-+	 * though the functions are completely different.  If set, then
-+	 * driver_info->data is a bitmap of acceptable interface numbers
-+	 * allowing us to bind to one such interface without binding to
-+	 * all of them
-+	 */
-+	if (dev->driver_info->data &&
-+	    !test_bit(intf->cur_altsetting->desc.bInterfaceNumber, &dev->driver_info->data)) {
-+		dev_info(&intf->dev, "not on our whitelist - ignored");
-+		rv = -ENODEV;
-+		goto err;
-+	}
-+
-+	atomic_set(pmcount, 0);
-+
-+	/* collect all three endpoints */
-+	rv = usbnet_get_endpoints(dev, intf);
-+	if (rv < 0)
-+		goto err;
-+
-+	/* require interrupt endpoint for subdriver */
-+	if (!dev->status) {
-+		rv = -EINVAL;
-+		goto err;
-+	}
-+
-+	/* can't let usbnet use the interrupt endpoint */
-+	dev->status = NULL;
-+
-+	printk("simcom usbnet bind here\n");
-+
-+  /*
-+   * SIMCOM SIM7600 only support the RAW_IP mode, so the host net driver would
-+   * remove the arp so the packets can transmit to the modem
-+  */
-+  dev->net->flags |= IFF_NOARP;
-+    
-+  /* make MAC addr easily distinguishable from an IP header */
-+	if (possibly_iphdr(dev->net->dev_addr)) {
-+		dev->net->dev_addr[0] |= 0x02;	/* set local assignment bit */
-+		dev->net->dev_addr[0] &= 0xbf;	/* clear "IP" bit */
-+	}
-+	
-+  /*
-+   * SIMCOM SIM7600 need set line state
-+  */
-+  usb_control_msg(
-+      interface_to_usbdev(intf),
-+      usb_sndctrlpipe(interface_to_usbdev(intf), 0),
-+      0x22, //USB_CDC_REQ_SET_CONTROL_LINE_STATE
-+      0x21, //USB_DIR_OUT | USB_TYPE_CLASS| USB_RECIP_INTERFACE
-+      1, //line state 1
-+      intf->cur_altsetting->desc.bInterfaceNumber,
-+      NULL,0,100);
-+
-+err:
-+	return rv;
-+}
-+
-+static void simcom_wwan_unbind(struct usbnet *dev, struct usb_interface *intf)
-+{
-+	struct usb_driver *subdriver = (void *)dev->data[0];
-+
-+	if (subdriver && subdriver->disconnect)
-+		subdriver->disconnect(intf);
-+
-+	dev->data[0] = (unsigned long)NULL;
-+}
-+
-+#ifdef CONFIG_PM
-+static int simcom_wwan_suspend(struct usb_interface *intf, pm_message_t message)
-+{
-+	struct usbnet *dev = usb_get_intfdata(intf);
-+	int ret;
-+
-+	ret = usbnet_suspend(intf, message);
-+	if (ret < 0)
-+		goto err;
-+		
-+err:
-+	return ret;
-+}
-+
-+static int simcom_wwan_resume(struct usb_interface *intf)
-+{
-+	struct usbnet *dev = usb_get_intfdata(intf);
-+	int ret = 0;
-+	
-+	ret = usbnet_resume(intf);
-+
-+err:
-+	return ret;
-+}
-+#endif
-+
-+struct sk_buff *simcom_wwan_tx_fixup(struct usbnet *dev, struct sk_buff *skb, gfp_t flags)
-+{
-+
-+  //skip ethernet header 
-+  if(skb_pull(skb, ETH_HLEN))
-+  {
-+    return skb;
-+  }else
-+  {
-+    dev_err(&dev->intf->dev, "Packet Dropped\n");
-+  }
-+
-+  if (skb != NULL)
-+    dev_kfree_skb_any(skb);
-+
-+   return NULL;
-+}
-+
-+static int simcom_wwan_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
-+{
-+  __be16 proto;
-+
-+  /* This check is no longer done by usbnet */
-+  if (skb->len < dev->net->hard_header_len)
-+    return 0;
-+
-+	switch (skb->data[0] & 0xf0) {
-+	case 0x40:
-+		//printk("packetv4 coming ,,,\n");
-+		proto = htons(ETH_P_IP);
-+		break;
-+	case 0x60:
-+		//printk("packetv6 coming ,,,\n");
-+		proto = htons(ETH_P_IPV6);
-+		break;
-+	case 0x00:
-+		//printk("packet coming ,,,\n");
-+		if (is_multicast_ether_addr(skb->data))
-+			return 1;
-+		/* possibly bogus destination - rewrite just in case */
-+		skb_reset_mac_header(skb);
-+		goto fix_dest;
-+	default:
-+		/* pass along other packets without modifications */
-+		return 1;
-+	}
-+	if (skb_headroom(skb) < ETH_HLEN)
-+		return 0;
-+	skb_push(skb, ETH_HLEN);
-+	skb_reset_mac_header(skb);
-+	eth_hdr(skb)->h_proto = proto;
-+	memset(eth_hdr(skb)->h_source, 0, ETH_ALEN);
-+fix_dest:
-+	memcpy(eth_hdr(skb)->h_dest, dev->net->dev_addr, ETH_ALEN);
-+	return 1;
-+}
-+
-+static const struct driver_info	simcom_wwan_usbnet_driver_info = {
-+	.description	= "SIMCOM wwan/QMI device",
-+	.flags		= FLAG_WWAN,
-+	.bind		  = simcom_wwan_bind,
-+	.unbind		= simcom_wwan_unbind,
-+	.rx_fixup       = simcom_wwan_rx_fixup,
-+	.tx_fixup       = simcom_wwan_tx_fixup,
-+};
-+
-+static const struct usb_device_id products[] = {
-+  {USB_DEVICE(0x1e0e, 0x9025), .driver_info = (unsigned long)&simcom_wwan_usbnet_driver_info },
-+	{USB_DEVICE(0x1e0e, 0x9001), .driver_info = (unsigned long)&simcom_wwan_usbnet_driver_info },
-+	{ } /* END */
-+};
-+
-+MODULE_DEVICE_TABLE(usb, products);
-+
-+static struct usb_driver simcom_wwan_usb_driver = {
-+	.name		        = "simcom_wwan",
-+	.id_table	      = products,
-+	.probe		      =	usbnet_probe,
-+	.disconnect	    = usbnet_disconnect,
-+#ifdef CONFIG_PM
-+	.suspend	      = simcom_wwan_suspend,
-+	.resume		      =	simcom_wwan_resume,
-+	.reset_resume         = simcom_wwan_resume,
-+	.supports_autosuspend = 1,
-+#endif
-+};
-+
-+static int __init simcom_wwan_init(void)
-+{
-+	return usb_register(&simcom_wwan_usb_driver);
-+}
-+module_init(simcom_wwan_init);
-+
-+static void __exit simcom_wwan_exit(void)
-+{
-+	usb_deregister(&simcom_wwan_usb_driver);
-+}
-+module_exit(simcom_wwan_exit);
-+
-+MODULE_AUTHOR("Xiaobin Wang <xiaobin.wang@sim.com>");
-+MODULE_DESCRIPTION("SIM7600 RMNET WWAN driver");
-+MODULE_LICENSE("GPL");
-+
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index db3d34c..6c0e34f 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -100,6 +100,10 @@ static void option_instat_callback(struct urb *urb);
- #define YISO_VENDOR_ID				0x0EAB
- #define YISO_PRODUCT_U893			0xC893
- 
-+/* SImCom SIM7500_7600 */
-+#define SIMCOM_SIM7600_VID			0x1E0E
-+#define SIMCOM_SIM7600_PID			0x9001
-+
- /*
-  * NOVATEL WIRELESS PRODUCTS
-  *
-@@ -550,6 +554,11 @@ struct option_blacklist_info {
- 	const unsigned long reserved;
- };
- 
-+/* for SIM7600 modem for NDIS */
-+static const struct option_blacklist_info simcom_sim7600_blacklist = {
-+.reserved = BIT(5),
-+};
-+
- static const struct option_blacklist_info four_g_w14_blacklist = {
- 	.sendsetup = BIT(0) | BIT(1),
- };
-@@ -1854,6 +1863,10 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ALINK_VENDOR_ID, ALINK_PRODUCT_3GU, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE(ALINK_VENDOR_ID, SIMCOM_PRODUCT_SIM7100E),
- 	  .driver_info = (kernel_ulong_t)&simcom_sim7100e_blacklist },
-+	/* for SIM7600 modem for NDIS */
-+	{ USB_DEVICE(SIMCOM_SIM7600_VID, SIMCOM_SIM7600_PID),
-+	  .driver_info = (kernel_ulong_t)& simcom_sim7600_blacklist
-+	},
- 	{ USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X060S_X200),
- 	  .driver_info = (kernel_ulong_t)&alcatel_x200_blacklist
- 	},

+ 0 - 3583
board/GfA/Display001/linux_4.4.94_rt19/linux-030-atmel_mxt_ts_backport.patch

@@ -1,3583 +0,0 @@
-diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
-index 700ae2f..2979cf3 100644
---- a/drivers/input/touchscreen/atmel_mxt_ts.c
-+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
-@@ -4,6 +4,7 @@
-  * Copyright (C) 2010 Samsung Electronics Co.Ltd
-  * Copyright (C) 2011-2014 Atmel Corporation
-  * Copyright (C) 2012 Google, Inc.
-+ * Copyright (C) 2016 Zodiac Inflight Innovations
-  *
-  * Author: Joonyoung Shim <jy0922.shim@samsung.com>
-  *
-@@ -22,16 +23,22 @@
- #include <linux/delay.h>
- #include <linux/firmware.h>
- #include <linux/i2c.h>
--#include <linux/platform_data/atmel_mxt_ts.h>
- #include <linux/input/mt.h>
--#include <linux/input/touchscreen.h>
- #include <linux/interrupt.h>
- #include <linux/of.h>
-+#include <linux/property.h>
- #include <linux/slab.h>
-+#include <linux/gpio/consumer.h>
- #include <asm/unaligned.h>
-+#include <media/v4l2-device.h>
-+#include <media/v4l2-ioctl.h>
-+#include <media/videobuf2-v4l2.h>
-+#include <media/videobuf2-vmalloc.h>
- 
- /* Firmware files */
- #define MXT_FW_NAME		"maxtouch.fw"
-+
-+/* Configuration file */
- #define MXT_CFG_NAME		"maxtouch.cfg"
- #define MXT_CFG_MAGIC		"OBP_RAW V1"
- 
-@@ -41,35 +48,62 @@
- #define MXT_INFO_CHECKSUM_SIZE	3
- #define MXT_MAX_BLOCK_WRITE	256
- 
--/* Object types */
--#define MXT_DEBUG_DIAGNOSTIC_T37	37
-+/* Objects */
- #define MXT_GEN_MESSAGE_T5		5
- #define MXT_GEN_COMMAND_T6		6
- #define MXT_GEN_POWER_T7		7
- #define MXT_GEN_ACQUIRE_T8		8
--#define MXT_GEN_DATASOURCE_T53		53
- #define MXT_TOUCH_MULTI_T9		9
-+#define MXT_PROCI_KEYTHRESHOLD_T14	14
- #define MXT_TOUCH_KEYARRAY_T15		15
-+#define MXT_SPT_COMMSCONFIG_T18		18
-+#define MXT_SPT_GPIOPWM_T19		19
- #define MXT_TOUCH_PROXIMITY_T23		23
- #define MXT_TOUCH_PROXKEY_T52		52
- #define MXT_PROCI_GRIPFACE_T20		20
- #define MXT_PROCG_NOISE_T22		22
- #define MXT_PROCI_ONETOUCH_T24		24
-+#define MXT_SPT_SELFTEST_T25		25
- #define MXT_PROCI_TWOTOUCH_T27		27
-+#define MXT_SPT_CTECONFIG_T28		28
-+#define MXT_DEBUG_DIAGNOSTIC_T37	37
-+#define MXT_SPT_USERDATA_T38		38
- #define MXT_PROCI_GRIP_T40		40
- #define MXT_PROCI_PALM_T41		41
- #define MXT_PROCI_TOUCHSUPPRESSION_T42	42
--#define MXT_PROCI_STYLUS_T47		47
--#define MXT_PROCG_NOISESUPPRESSION_T48	48
--#define MXT_SPT_COMMSCONFIG_T18		18
--#define MXT_SPT_GPIOPWM_T19		19
--#define MXT_SPT_SELFTEST_T25		25
--#define MXT_SPT_CTECONFIG_T28		28
--#define MXT_SPT_USERDATA_T38		38
- #define MXT_SPT_DIGITIZER_T43		43
- #define MXT_SPT_MESSAGECOUNT_T44	44
- #define MXT_SPT_CTECONFIG_T46		46
--#define MXT_TOUCH_MULTITOUCHSCREEN_T100 100
-+#define MXT_PROCI_STYLUS_T47		47
-+#define MXT_PROCG_NOISESUPPRESSION_T48	48
-+#define MXT_GEN_DATASOURCE_T53		53
-+#define MXT_PROCI_SHIELDLESS_T56	56
-+#define MXT_SPT_TIMER_T61		61
-+#define MXT_PROCI_LENSBENDING_T65	65
-+#define MXT_SPT_SERIALDATACOMMAND_T68	68
-+#define MXT_SPT_DYNAMICCONFIGURATIONCONTROLLER_T70 70
-+#define MXT_SPT_DYNAMICCONFIGURATIONCONTAINER_T71  71
-+#define MXT_NOISESUPPRESSION_T72		   72
-+#define MXT_SPT_CTESCANCONFIG_T77		   77
-+#define MXT_PROCI_GLOVEDETECTION_T78		   78
-+#define MXT_SPT_TOUCHEVENTTRIGGER_T79		   79
-+#define MXT_PROCI_RETRANSMISSIONCOMPENSATION_T80   80
-+#define MXT_PROCG_NOISESUPACTIVESTYLUS_T86	   86
-+#define MXT_PROCI_SYMBOLGESTUREPROCESSOR_T92	   92
-+#define MXT_PROCI_TOUCHSEQUENCELOGGER_T93	   93
-+#define MXT_TOUCH_MULTITOUCHSCREEN_T100 	   100
-+#define MXT_SPT_AUXTOUCHCONFIG_T104		   104
-+#define MXT_PROCG_NOISESUPSELFCAP_T108		   108
-+#define MXT_SPT_SELFCAPGLOBALCONFIG_T109	   109
-+#define MXT_PROCI_ACTIVESTYLUS_T107		   107
-+#define MXT_SPT_CAPTUNINGPARAMS_T110		   110
-+#define MXT_SPT_SELFCAPCONFIG_T111		   111
-+#define MXT_PROCI_SELFCAPGRIPSUPPRESSION_T112	   112
-+#define MXT_SPT_PROXMEASURECONFIG_T113		   113
-+#define MXT_ACTIVESTYLUSMEASCONFIG_T114		   114
-+#define MXT_SPT_DATACONTAINERCTRL_T118		   118
-+#define MXT_PROCI_HOVERGESTUREPROCESSOR_T129	   129
-+#define MXT_SPT_SELCAPVOLTAGEMODE_T133		   133
- 
- /* MXT_GEN_MESSAGE_T5 object */
- #define MXT_RPTID_NOMSG		0xff
-@@ -82,12 +116,12 @@
- #define MXT_COMMAND_DIAGNOSTIC	5
- 
- /* Define for T6 status byte */
--#define MXT_T6_STATUS_RESET	(1 << 7)
--#define MXT_T6_STATUS_OFL	(1 << 6)
--#define MXT_T6_STATUS_SIGERR	(1 << 5)
--#define MXT_T6_STATUS_CAL	(1 << 4)
--#define MXT_T6_STATUS_CFGERR	(1 << 3)
--#define MXT_T6_STATUS_COMSERR	(1 << 2)
-+#define MXT_T6_STATUS_RESET	BIT(7)
-+#define MXT_T6_STATUS_OFL	BIT(6)
-+#define MXT_T6_STATUS_SIGERR	BIT(5)
-+#define MXT_T6_STATUS_CAL	BIT(4)
-+#define MXT_T6_STATUS_CFGERR	BIT(3)
-+#define MXT_T6_STATUS_COMSERR	BIT(2)
- 
- /* MXT_GEN_POWER_T7 field */
- struct t7_config {
-@@ -100,18 +134,20 @@ struct t7_config {
- 
- /* MXT_TOUCH_MULTI_T9 field */
- #define MXT_T9_CTRL		0
-+#define MXT_T9_XSIZE		3
-+#define MXT_T9_YSIZE		4
- #define MXT_T9_ORIENT		9
- #define MXT_T9_RANGE		18
- 
- /* MXT_TOUCH_MULTI_T9 status */
--#define MXT_T9_UNGRIP		(1 << 0)
--#define MXT_T9_SUPPRESS		(1 << 1)
--#define MXT_T9_AMP		(1 << 2)
--#define MXT_T9_VECTOR		(1 << 3)
--#define MXT_T9_MOVE		(1 << 4)
--#define MXT_T9_RELEASE		(1 << 5)
--#define MXT_T9_PRESS		(1 << 6)
--#define MXT_T9_DETECT		(1 << 7)
-+#define MXT_T9_UNGRIP		BIT(0)
-+#define MXT_T9_SUPPRESS		BIT(1)
-+#define MXT_T9_AMP		BIT(2)
-+#define MXT_T9_VECTOR		BIT(3)
-+#define MXT_T9_MOVE		BIT(4)
-+#define MXT_T9_RELEASE		BIT(5)
-+#define MXT_T9_PRESS		BIT(6)
-+#define MXT_T9_DETECT		BIT(7)
- 
- struct t9_range {
- 	__le16 x;
-@@ -119,36 +155,70 @@ struct t9_range {
- } __packed;
- 
- /* MXT_TOUCH_MULTI_T9 orient */
--#define MXT_T9_ORIENT_SWITCH	(1 << 0)
-+#define MXT_T9_ORIENT_SWITCH	BIT(0)
-+#define MXT_T9_ORIENT_INVERTX	BIT(1)
-+#define MXT_T9_ORIENT_INVERTY	BIT(2)
- 
- /* MXT_SPT_COMMSCONFIG_T18 */
- #define MXT_COMMS_CTRL		0
- #define MXT_COMMS_CMD		1
- 
-+/* MXT_DEBUG_DIAGNOSTIC_T37 */
-+#define MXT_DIAGNOSTIC_PAGEUP	0x01
-+#define MXT_DIAGNOSTIC_DELTAS	0x10
-+#define MXT_DIAGNOSTIC_REFS	0x11
-+#define MXT_DIAGNOSTIC_SIZE	128
-+
-+#define MXT_FAMILY_1386			160
-+#define MXT1386_COLUMNS			3
-+#define MXT1386_PAGES_PER_COLUMN	8
-+
-+struct t37_debug {
-+#ifdef CONFIG_TOUCHSCREEN_ATMEL_MXT_T37
-+	u8 mode;
-+	u8 page;
-+	u8 data[MXT_DIAGNOSTIC_SIZE];
-+#endif
-+};
-+
- /* Define for MXT_GEN_COMMAND_T6 */
- #define MXT_BOOT_VALUE		0xa5
- #define MXT_RESET_VALUE		0x01
- #define MXT_BACKUP_VALUE	0x55
-+#define MXT_BACKUP_W_STOP	0x33
-+
-+/* Define for MXT_PROCI_TOUCHSUPPRESSION_T42 */
-+#define MXT_T42_MSG_TCHSUP	BIT(0)
- 
- /* T100 Multiple Touch Touchscreen */
- #define MXT_T100_CTRL		0
- #define MXT_T100_CFG1		1
- #define MXT_T100_TCHAUX		3
-+#define MXT_T100_XSIZE		9
- #define MXT_T100_XRANGE		13
-+#define MXT_T100_YSIZE		20
- #define MXT_T100_YRANGE		24
-+#define MXT_T100_AUX_OFFSET	6
-+#define MXT_RSVD_RPTIDS		2
-+#define MXT_MIN_RPTID_SEC	18
- 
- #define MXT_T100_CFG_SWITCHXY	BIT(5)
-+#define MXT_T100_CFG_INVERTY	BIT(6)
-+#define MXT_T100_CFG_INVERTX	BIT(7)
- 
- #define MXT_T100_TCHAUX_VECT	BIT(0)
- #define MXT_T100_TCHAUX_AMPL	BIT(1)
- #define MXT_T100_TCHAUX_AREA	BIT(2)
--
- #define MXT_T100_DETECT		BIT(7)
--#define MXT_T100_TYPE_MASK	0x70
-+
-+#define MXT_T100_TYPE_MASK		0x70
-+#define MXT_T100_ENABLE_BIT_MASK	0x01
-+
- 
- enum t100_type {
- 	MXT_T100_TYPE_FINGER		= 1,
- 	MXT_T100_TYPE_PASSIVE_STYLUS	= 2,
-+	MXT_T100_TYPE_ACTIVE_STYLUS	= 3,
- 	MXT_T100_TYPE_HOVERING_FINGER	= 4,
- 	MXT_T100_TYPE_GLOVE		= 5,
- 	MXT_T100_TYPE_LARGE_TOUCH	= 6,
-@@ -160,13 +230,27 @@ enum t100_type {
- #define MXT_TOUCH_MAJOR_DEFAULT		1
- #define MXT_PRESSURE_DEFAULT		1
- 
-+/* Gen2 Active Stylus */
-+#define MXT_T107_STYLUS_STYAUX		42
-+#define MXT_T107_STYLUS_STYAUX_PRESSURE	BIT(0)
-+#define MXT_T107_STYLUS_STYAUX_PEAK	BIT(4)
-+
-+#define MXT_T107_STYLUS_HOVER		BIT(0)
-+#define MXT_T107_STYLUS_TIPSWITCH	BIT(1)
-+#define MXT_T107_STYLUS_BUTTON0		BIT(2)
-+#define MXT_T107_STYLUS_BUTTON1		BIT(3)
-+
- /* Delay times */
- #define MXT_BACKUP_TIME		50	/* msec */
-+#define MXT_RESET_GPIO_TIME	20	/* msec */
-+#define MXT_RESET_INVALID_CHG	100	/* msec */
- #define MXT_RESET_TIME		200	/* msec */
- #define MXT_RESET_TIMEOUT	3000	/* msec */
- #define MXT_CRC_TIMEOUT		1000	/* msec */
-+#define MXT_FW_FLASH_TIME	1000	/* msec */
- #define MXT_FW_RESET_TIME	3000	/* msec */
- #define MXT_FW_CHG_TIMEOUT	300	/* msec */
-+#define MXT_BOOTLOADER_WAIT	3000	/* msec */
- 
- /* Command to unlock bootloader */
- #define MXT_UNLOCK_CMD_MSB	0xaa
-@@ -180,14 +264,16 @@ enum t100_type {
- #define MXT_FRAME_CRC_PASS	0x04
- #define MXT_APP_CRC_FAIL	0x40	/* valid 7 8 bit only */
- #define MXT_BOOT_STATUS_MASK	0x3f
--#define MXT_BOOT_EXTENDED_ID	(1 << 5)
-+#define MXT_BOOT_EXTENDED_ID	BIT(5)
- #define MXT_BOOT_ID_MASK	0x1f
- 
- /* Touchscreen absolute values */
- #define MXT_MAX_AREA		0xff
--
- #define MXT_PIXELS_PER_MM	20
- 
-+/* Debug message size max */
-+#define DEBUG_MSG_MAX		200
-+
- struct mxt_info {
- 	u8 family_id;
- 	u8 variant_id;
-@@ -206,26 +292,84 @@ struct mxt_object {
- 	u8 num_report_ids;
- } __packed;
- 
-+struct mxt_dbg {
-+	u16 t37_address;
-+	u16 diag_cmd_address;
-+	struct t37_debug *t37_buf;
-+	unsigned int t37_pages;
-+	unsigned int t37_nodes;
-+
-+	struct v4l2_device v4l2;
-+	struct v4l2_pix_format format;
-+	struct video_device vdev;
-+	struct vb2_queue queue;
-+	struct mutex lock;
-+	int input;
-+};
-+
-+enum v4l_dbg_inputs {
-+	MXT_V4L_INPUT_DELTAS,
-+	MXT_V4L_INPUT_REFS,
-+	MXT_V4L_INPUT_MAX,
-+};
-+
-+static const struct v4l2_file_operations mxt_video_fops = {
-+	.owner = THIS_MODULE,
-+	.open = v4l2_fh_open,
-+	.release = vb2_fop_release,
-+	.unlocked_ioctl = video_ioctl2,
-+	.read = vb2_fop_read,
-+	.mmap = vb2_fop_mmap,
-+	.poll = vb2_fop_poll,
-+};
-+
-+enum mxt_suspend_mode {
-+	MXT_SUSPEND_DEEP_SLEEP	= 0,
-+	MXT_SUSPEND_T9_CTRL	= 1,
-+};
-+
-+/* Config update context */
-+struct mxt_cfg {
-+	u8 *raw;
-+	size_t raw_size;
-+	off_t raw_pos;
-+
-+	u8 *mem;
-+	size_t mem_size;
-+	int start_ofs;
-+
-+	struct mxt_info info;
-+};
-+
- /* Each client has this additional data */
- struct mxt_data {
- 	struct i2c_client *client;
- 	struct input_dev *input_dev;
-+	struct input_dev *input_dev_sec;
- 	char phys[64];		/* device physical location */
--	const struct mxt_platform_data *pdata;
- 	struct mxt_object *object_table;
--	struct mxt_info info;
-+	struct mxt_info *info;
-+	void *raw_info_block;
- 	unsigned int irq;
- 	unsigned int max_x;
- 	unsigned int max_y;
--	bool invert_x;
--	bool invert_y;
--	bool swap_x_y;
-+	bool invertx;
-+	bool inverty;
- 	bool xy_switch;
-+	u8 xsize;
-+	u8 ysize;
- 	bool in_bootloader;
- 	u16 mem_size;
- 	u8 t100_aux_ampl;
- 	u8 t100_aux_area;
- 	u8 t100_aux_vect;
-+	struct bin_attribute mem_access_attr;
-+	bool debug_enabled;
-+	bool debug_v2_enabled;
-+	u8 *debug_msg_data;
-+	u16 debug_msg_count;
-+	struct bin_attribute debug_msg_attr;
-+	struct mutex debug_msg_lock;
- 	u8 max_reportid;
- 	u32 config_crc;
- 	u32 info_crc;
-@@ -233,10 +377,16 @@ struct mxt_data {
- 	u8 *msg_buf;
- 	u8 t6_status;
- 	bool update_input;
-+	bool update_input_sec;
- 	u8 last_message_count;
- 	u8 num_touchids;
- 	u8 multitouch;
- 	struct t7_config t7_cfg;
-+	unsigned long t15_keystatus;
-+	u8 stylus_aux_pressure;
-+	u8 stylus_aux_peak;
-+	struct mxt_dbg dbg;
-+	struct gpio_desc *reset_gpio;
- 
- 	/* Cached parameters from object table */
- 	u16 T5_address;
-@@ -244,12 +394,52 @@ struct mxt_data {
- 	u8 T6_reportid;
- 	u16 T6_address;
- 	u16 T7_address;
-+	u16 T14_address;
-+	u16 T71_address;
- 	u8 T9_reportid_min;
- 	u8 T9_reportid_max;
--	u8 T19_reportid;
-+	u8 T15_reportid_min;
-+	u8 T15_reportid_max;
-+	u16 T18_address;
-+	u8 T19_reportid_min;
-+	u8 T24_reportid_min;
-+	u8 T24_reportid_max;
-+	u8 T25_reportid_min;
-+	u8 T27_reportid_min;
-+	u8 T27_reportid_max;
-+	u8 T42_reportid_min;
-+	u8 T42_reportid_max;
- 	u16 T44_address;
-+	u8 T46_reportid_min;	
-+	u8 T48_reportid_min;
-+	u8 T56_reportid_min;
-+	u8 T61_reportid_min;
-+	u8 T61_reportid_max;
-+	u8 T65_reportid_min;
-+	u8 T65_reportid_max;
-+	u8 T68_reportid_min;
-+	u8 T70_reportid_min;
-+	u8 T70_reportid_max;
-+	u8 T72_reportid_min;
-+	u8 T80_reportid_min;
-+	u8 T80_reportid_max;
-+	u16 T92_address;
-+	u8 T92_reportid_min;
-+	u16 T93_address;
-+	u8 T93_reportid_min;
- 	u8 T100_reportid_min;
- 	u8 T100_reportid_max;
-+	u16 T107_address;
-+	u8 T108_reportid_min;
-+	u8 T109_reportid_min;
-+	u8 T112_reportid_min;
-+	u8 T112_reportid_max;
-+	u8 T129_reportid_min;
-+	u8 T133_reportid_min;
-+	
-+	/* Cached instance parameter */
-+	u8 T100_instances;
-+	u8 T15_instances;
- 
- 	/* for fw update in bootloader */
- 	struct completion bl_completion;
-@@ -259,23 +449,24 @@ struct mxt_data {
- 
- 	/* for config update handling */
- 	struct completion crc_completion;
--};
- 
--static void mxt_apply_prop_to_x_y(const struct mxt_data *data,
--                             int *x, int *y)
--{
--        if (data->invert_x)
--                *x = data->max_x - *x;
-+	u32 *t19_keymap;
-+	unsigned int t19_num_keys;
- 
--        if (data->invert_y)
--                *y = data->max_y - *y;
-+	u32 *t15_keymap;
-+	unsigned int t15_num_keys;
- 
--        if (data->swap_x_y)
--                swap(*x, *y);
--}
-+	enum mxt_suspend_mode suspend_mode;
- 
-+	/* Indicates whether device is updating configuration */
-+	bool sysfs_updating_config;
- 
-+};
- 
-+struct mxt_vb2_buffer {
-+	struct vb2_buffer	vb;
-+	struct list_head	list;
-+};
- 
- static size_t mxt_obj_size(const struct mxt_object *obj)
- {
-@@ -298,6 +489,7 @@ static bool mxt_object_readable(unsigned int type)
- 	case MXT_TOUCH_KEYARRAY_T15:
- 	case MXT_TOUCH_PROXIMITY_T23:
- 	case MXT_TOUCH_PROXKEY_T52:
-+	case MXT_TOUCH_MULTITOUCHSCREEN_T100:
- 	case MXT_PROCI_GRIPFACE_T20:
- 	case MXT_PROCG_NOISE_T22:
- 	case MXT_PROCI_ONETOUCH_T24:
-@@ -314,6 +506,16 @@ static bool mxt_object_readable(unsigned int type)
- 	case MXT_SPT_USERDATA_T38:
- 	case MXT_SPT_DIGITIZER_T43:
- 	case MXT_SPT_CTECONFIG_T46:
-+	case MXT_PROCI_SHIELDLESS_T56:
-+	case MXT_SPT_TIMER_T61:
-+	case MXT_PROCI_LENSBENDING_T65:
-+	case MXT_SPT_DYNAMICCONFIGURATIONCONTROLLER_T70:
-+	case MXT_SPT_DYNAMICCONFIGURATIONCONTAINER_T71:
-+	case MXT_NOISESUPPRESSION_T72:
-+	case MXT_PROCI_GLOVEDETECTION_T78:
-+	case MXT_SPT_TOUCHEVENTTRIGGER_T79:
-+	case MXT_PROCI_RETRANSMISSIONCOMPENSATION_T80:
-+
- 		return true;
- 	default:
- 		return false;
-@@ -326,6 +528,136 @@ static void mxt_dump_message(struct mxt_data *data, u8 *message)
- 		data->T5_msg_size, message);
- }
- 
-+static void mxt_debug_msg_enable(struct mxt_data *data)
-+{
-+	struct device *dev = &data->client->dev;
-+
-+	if (data->debug_v2_enabled)
-+		return;
-+
-+	mutex_lock(&data->debug_msg_lock);
-+
-+	data->debug_msg_data = kcalloc(DEBUG_MSG_MAX,
-+				data->T5_msg_size, GFP_KERNEL);
-+	if (!data->debug_msg_data)
-+		return;
-+
-+	data->debug_v2_enabled = true;
-+	mutex_unlock(&data->debug_msg_lock);
-+
-+	dev_dbg(dev, "Enabled message output\n");
-+}
-+
-+static void mxt_debug_msg_disable(struct mxt_data *data)
-+{
-+	struct device *dev = &data->client->dev;
-+
-+	if (!data->debug_v2_enabled)
-+		return;
-+
-+	data->debug_v2_enabled = false;
-+
-+	mutex_lock(&data->debug_msg_lock);
-+	kfree(data->debug_msg_data);
-+	data->debug_msg_data = NULL;
-+	data->debug_msg_count = 0;
-+	mutex_unlock(&data->debug_msg_lock);
-+	dev_dbg(dev, "Disabled message output\n");
-+}
-+
-+static void mxt_debug_msg_add(struct mxt_data *data, u8 *msg)
-+{
-+	struct device *dev = &data->client->dev;
-+
-+	mutex_lock(&data->debug_msg_lock);
-+
-+	if (!data->debug_msg_data) {
-+		dev_err(dev, "No buffer!\n");
-+		return;
-+	}
-+
-+	if (data->debug_msg_count < DEBUG_MSG_MAX) {
-+		memcpy(data->debug_msg_data +
-+		       data->debug_msg_count * data->T5_msg_size,
-+		       msg,
-+		       data->T5_msg_size);
-+		data->debug_msg_count++;
-+	} else {
-+		dev_dbg(dev, "Discarding %u messages\n", data->debug_msg_count);
-+		data->debug_msg_count = 0;
-+	}
-+
-+	mutex_unlock(&data->debug_msg_lock);
-+
-+	sysfs_notify(&data->client->dev.kobj, NULL, "debug_notify");
-+}
-+
-+static ssize_t mxt_debug_msg_write(struct file *filp, struct kobject *kobj,
-+	struct bin_attribute *bin_attr, char *buf, loff_t off,
-+	size_t count)
-+{
-+	return -EIO;
-+}
-+
-+static ssize_t mxt_debug_msg_read(struct file *filp, struct kobject *kobj,
-+	struct bin_attribute *bin_attr, char *buf, loff_t off, size_t bytes)
-+{
-+	struct device *dev = container_of(kobj, struct device, kobj);
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	int count;
-+	size_t bytes_read;
-+
-+	if (!data->debug_msg_data) {
-+		dev_err(dev, "No buffer!\n");
-+		return 0;
-+	}
-+
-+	count = bytes / data->T5_msg_size;
-+
-+	if (count > DEBUG_MSG_MAX)
-+		count = DEBUG_MSG_MAX;
-+
-+	mutex_lock(&data->debug_msg_lock);
-+
-+	if (count > data->debug_msg_count)
-+		count = data->debug_msg_count;
-+
-+	bytes_read = count * data->T5_msg_size;
-+
-+	memcpy(buf, data->debug_msg_data, bytes_read);
-+	data->debug_msg_count = 0;
-+
-+	mutex_unlock(&data->debug_msg_lock);
-+
-+	return bytes_read;
-+}
-+
-+static int mxt_debug_msg_init(struct mxt_data *data)
-+{
-+	sysfs_bin_attr_init(&data->debug_msg_attr);
-+	data->debug_msg_attr.attr.name = "debug_msg";
-+	data->debug_msg_attr.attr.mode = 0666;
-+	data->debug_msg_attr.read = mxt_debug_msg_read;
-+	data->debug_msg_attr.write = mxt_debug_msg_write;
-+	data->debug_msg_attr.size = data->T5_msg_size * DEBUG_MSG_MAX;
-+
-+	if (sysfs_create_bin_file(&data->client->dev.kobj,
-+				  &data->debug_msg_attr) < 0) {
-+		dev_err(&data->client->dev, "Failed to create %s\n",
-+			data->debug_msg_attr.attr.name);
-+		return -EINVAL;
-+	}
-+
-+	return 0;
-+}
-+
-+static void mxt_debug_msg_remove(struct mxt_data *data)
-+{
-+	if (data->debug_msg_attr.attr.name)
-+		sysfs_remove_bin_file(&data->client->dev.kobj,
-+				      &data->debug_msg_attr);
-+}
-+
- static int mxt_wait_for_completion(struct mxt_data *data,
- 				   struct completion *comp,
- 				   unsigned int timeout_ms)
-@@ -373,13 +705,21 @@ static int mxt_bootloader_write(struct mxt_data *data,
- {
- 	int ret;
- 	struct i2c_msg msg;
-+	u8 *data_buf;
-+
-+	data_buf = kmalloc(count, GFP_KERNEL);
-+	if (!data_buf)
-+		return -ENOMEM;
-+	
-+	memcpy(&data_buf[0], val, count);
- 
- 	msg.addr = data->bootloader_addr;
- 	msg.flags = data->client->flags & I2C_M_TEN;
- 	msg.len = count;
--	msg.buf = (u8 *)val;
-+	msg.buf = data_buf;
- 
- 	ret = i2c_transfer(data->client->adapter, &msg, 1);
-+
- 	if (ret == 1) {
- 		ret = 0;
- 	} else {
-@@ -395,12 +735,13 @@ static int mxt_lookup_bootloader_address(struct mxt_data *data, bool retry)
- {
- 	u8 appmode = data->client->addr;
- 	u8 bootloader;
-+	u8 family_id = data->info ? data->info->family_id : 0;
- 
- 	switch (appmode) {
- 	case 0x4a:
- 	case 0x4b:
- 		/* Chips after 1664S use different scheme */
--		if (retry || data->info.family_id >= 0xa2) {
-+		if (retry || family_id >= 0xa2) {
- 			bootloader = appmode - 0x24;
- 			break;
- 		}
-@@ -420,6 +761,9 @@ static int mxt_lookup_bootloader_address(struct mxt_data *data, bool retry)
- 	}
- 
- 	data->bootloader_addr = bootloader;
-+
-+	dev_info(&data->client->dev, "Bootloader address: %x\n", bootloader);
-+
- 	return 0;
- }
- 
-@@ -621,13 +965,12 @@ static int mxt_write_reg(struct i2c_client *client, u16 reg, u8 val)
- 	return __mxt_write_reg(client, reg, 1, &val);
- }
- 
--static struct mxt_object *
--mxt_get_object(struct mxt_data *data, u8 type)
-+static struct mxt_object *mxt_get_object(struct mxt_data *data, u8 type)
- {
- 	struct mxt_object *object;
- 	int i;
- 
--	for (i = 0; i < data->info.object_num; i++) {
-+	for (i = 0; i < data->info->object_num; i++) {
- 		object = data->object_table + i;
- 		if (object->type == type)
- 			return object;
-@@ -643,13 +986,13 @@ static void mxt_proc_t6_messages(struct mxt_data *data, u8 *msg)
- 	u8 status = msg[1];
- 	u32 crc = msg[2] | (msg[3] << 8) | (msg[4] << 16);
- 
--	complete(&data->crc_completion);
--
- 	if (crc != data->config_crc) {
- 		data->config_crc = crc;
- 		dev_dbg(dev, "T6 Config Checksum: 0x%06X\n", crc);
- 	}
- 
-+	complete(&data->crc_completion);
-+
- 	/* Detect reset */
- 	if (status & MXT_T6_STATUS_RESET)
- 		complete(&data->reset_completion);
-@@ -687,15 +1030,14 @@ static int mxt_write_object(struct mxt_data *data,
- static void mxt_input_button(struct mxt_data *data, u8 *message)
- {
- 	struct input_dev *input = data->input_dev;
--	const struct mxt_platform_data *pdata = data->pdata;
- 	int i;
- 
--	for (i = 0; i < pdata->t19_num_keys; i++) {
--		if (pdata->t19_keymap[i] == KEY_RESERVED)
-+	for (i = 0; i < data->t19_num_keys; i++) {
-+		if (data->t19_keymap[i] == KEY_RESERVED)
- 			continue;
- 
- 		/* Active-low switch */
--		input_report_key(input, pdata->t19_keymap[i],
-+		input_report_key(input, data->t19_keymap[i],
- 				 !(message[1] & BIT(i)));
- 	}
- }
-@@ -703,8 +1045,14 @@ static void mxt_input_button(struct mxt_data *data, u8 *message)
- static void mxt_input_sync(struct mxt_data *data)
- {
- 	input_mt_report_pointer_emulation(data->input_dev,
--					  data->pdata->t19_num_keys);
--	input_sync(data->input_dev);
-+					  data->t19_num_keys);
-+	
-+	if (data->update_input) 
-+		input_sync(data->input_dev);
-+	
-+	if (data->update_input_sec)
-+		input_sync(data->input_dev_sec);
-+	
- }
- 
- static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
-@@ -717,6 +1065,7 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
- 	int y;
- 	int area;
- 	int amplitude;
-+	int tool;
- 
- 	id = message[0] - data->T9_reportid_min;
- 	status = message[1];
-@@ -759,10 +1108,20 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
- 			mxt_input_sync(data);
- 		}
- 
-+		/* A size of zero indicates touch is from a linked T47 Stylus */
-+		if (area == 0) {
-+			area = MXT_TOUCH_MAJOR_DEFAULT;
-+			tool = MT_TOOL_PEN;
-+		} else {
-+			tool = MT_TOOL_FINGER;
-+		}
-+
-+		/* if active, pressure must be non-zero */
-+		if (!amplitude)
-+			amplitude = MXT_PRESSURE_DEFAULT;
-+
- 		/* Touch active */
--		input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, 1);
--		mxt_apply_prop_to_x_y(data, &x, &y);
--		
-+		input_mt_report_slot_state(input_dev, tool, 1);
- 		input_report_abs(input_dev, ABS_MT_POSITION_X, x);
- 		input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
- 		input_report_abs(input_dev, ABS_MT_PRESSURE, amplitude);
-@@ -779,27 +1138,38 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- {
- 	struct device *dev = &data->client->dev;
- 	struct input_dev *input_dev = data->input_dev;
--	int id;
-+	struct input_dev *input_dev_sec = data->input_dev_sec;
-+	int id = 0;
-+	int id_sec = 0;
- 	u8 status;
- 	u8 type = 0;
--	/*u16*/ int x;
--	/*u16*/ int y;
-+	u16 x;
-+	u16 y;
- 	int distance = 0;
- 	int tool = 0;
- 	u8 major = 0;
- 	u8 pressure = 0;
- 	u8 orientation = 0;
-+	bool hover = false;
-+	
-+	/* Determine id of touch messages only */
-+	id = (message[0] - data->T100_reportid_min - MXT_RSVD_RPTIDS);
-+	
-+	if (id >= MXT_MIN_RPTID_SEC) {
-+		id_sec = (message[0] - data->T100_reportid_min - MXT_MIN_RPTID_SEC - 
-+			MXT_RSVD_RPTIDS);
-+	}
- 
--	id = message[0] - data->T100_reportid_min - 2;
--
--	/* ignore SCRSTATUS events */
--	if (id < 0)
-+	/* Skip SCRSTATUS events */
-+	if (id < 0 || id_sec < 0)
- 		return;
- 
- 	status = message[1];
- 	x = get_unaligned_le16(&message[2]);
- 	y = get_unaligned_le16(&message[4]);
--
-+	
-+	/* Get other auxdata[] bytes if present */
-+	
- 	if (status & MXT_T100_DETECT) {
- 		type = (status & MXT_T100_TYPE_MASK) >> 4;
- 
-@@ -807,6 +1177,7 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- 		case MXT_T100_TYPE_HOVERING_FINGER:
- 			tool = MT_TOOL_FINGER;
- 			distance = MXT_DISTANCE_HOVERING;
-+			hover = true;
- 
- 			if (data->t100_aux_vect)
- 				orientation = message[data->t100_aux_vect];
-@@ -817,6 +1188,7 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- 		case MXT_T100_TYPE_GLOVE:
- 			tool = MT_TOOL_FINGER;
- 			distance = MXT_DISTANCE_ACTIVE_TOUCH;
-+			hover = false;
- 
- 			if (data->t100_aux_area)
- 				major = message[data->t100_aux_area];
-@@ -831,6 +1203,8 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- 
- 		case MXT_T100_TYPE_PASSIVE_STYLUS:
- 			tool = MT_TOOL_PEN;
-+			distance = MXT_DISTANCE_ACTIVE_TOUCH;
-+			hover = false;
- 
- 			/*
- 			 * Passive stylus is reported with size zero so
-@@ -843,6 +1217,30 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- 
- 			break;
- 
-+		case MXT_T100_TYPE_ACTIVE_STYLUS:
-+			/* Report input buttons */
-+			input_report_key(input_dev, BTN_STYLUS,
-+					 message[6] & MXT_T107_STYLUS_BUTTON0);
-+			input_report_key(input_dev, BTN_STYLUS2,
-+					 message[6] & MXT_T107_STYLUS_BUTTON1);
-+
-+			/* stylus in range, but position unavailable */
-+			if (!(message[6] & MXT_T107_STYLUS_HOVER))
-+				break;
-+
-+			tool = MT_TOOL_PEN;
-+			distance = MXT_DISTANCE_ACTIVE_TOUCH;
-+			major = MXT_TOUCH_MAJOR_DEFAULT;
-+
-+			if (!(message[6] & MXT_T107_STYLUS_TIPSWITCH)) {
-+				hover = true;
-+				distance = MXT_DISTANCE_HOVERING;
-+			} else if (data->stylus_aux_pressure) {
-+				pressure = message[data->stylus_aux_pressure];
-+			}
-+
-+			break;
-+
- 		case MXT_T100_TYPE_LARGE_TOUCH:
- 			/* Ignore suppressed touch */
- 			break;
-@@ -857,42 +1255,169 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
- 	 * Values reported should be non-zero if tool is touching the
- 	 * device
- 	 */
--	if (!pressure && type != MXT_T100_TYPE_HOVERING_FINGER)
-+	if (!pressure && !hover)
- 		pressure = MXT_PRESSURE_DEFAULT;
- 
--	input_mt_slot(input_dev, id);
--
-+	if (id >= MXT_MIN_RPTID_SEC) {
-+		input_mt_slot(input_dev_sec, id_sec);
-+	} else {
-+		input_mt_slot(input_dev, id);
-+	}
-+		
- 	if (status & MXT_T100_DETECT) {
--		dev_dbg(dev, "[%u] type:%u x:%u y:%u a:%02X p:%02X v:%02X\n",
-+		
-+		if (id >= MXT_MIN_RPTID_SEC) {
-+			dev_dbg(dev, "id:[%u] type:%u x:%u y:%u a:%02X p:%02X v:%02X\n",
-+			id_sec, type, x, y, major, pressure, orientation);
-+		} else {
-+			dev_dbg(dev, "id:[%u] type:%u x:%u y:%u a:%02X p:%02X v:%02X\n",
- 			id, type, x, y, major, pressure, orientation);
-+		}
-+		
-+		if (id >= MXT_MIN_RPTID_SEC) {	
-+			input_mt_report_slot_state(input_dev_sec, tool, 1);
-+		  	input_report_abs(input_dev_sec, ABS_MT_POSITION_X, x);
-+		  	input_report_abs(input_dev_sec, ABS_MT_POSITION_Y, y);
-+		  	input_report_abs(input_dev_sec, ABS_MT_TOUCH_MAJOR, major);
-+		  	input_report_abs(input_dev_sec, ABS_MT_PRESSURE, pressure);
-+		  	input_report_abs(input_dev_sec, ABS_MT_DISTANCE, distance);
-+		  	input_report_abs(input_dev_sec, ABS_MT_ORIENTATION, orientation);
-+			
-+			if (id == MXT_MIN_RPTID_SEC) {
-+				input_report_abs(input_dev_sec, ABS_X, x);
-+				input_report_abs(input_dev_sec, ABS_Y, y);
-+				input_report_key(input_dev_sec, BTN_TOUCH, 1);
-+			}
-+		} else {
-+		  	input_mt_report_slot_state(input_dev, tool, 1);
-+		  	input_report_abs(input_dev, ABS_MT_POSITION_X, x);
-+		  	input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
-+		  	input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, major);
-+		  	input_report_abs(input_dev, ABS_MT_PRESSURE, pressure);
-+		  	input_report_abs(input_dev, ABS_MT_DISTANCE, distance);
-+		  	input_report_abs(input_dev, ABS_MT_ORIENTATION, orientation);
-+		}
-+	} else {
-+		 
-+		if (id >= MXT_MIN_RPTID_SEC){
-+			dev_dbg(dev, "[%u] release\n", id_sec);
- 
--		input_mt_report_slot_state(input_dev, tool, 1);
--		mxt_apply_prop_to_x_y(data, &x, &y);
--		input_report_abs(input_dev, ABS_MT_POSITION_X, x);
--		input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
--		input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, major);
--		input_report_abs(input_dev, ABS_MT_PRESSURE, pressure);
--		input_report_abs(input_dev, ABS_MT_DISTANCE, distance);
--		input_report_abs(input_dev, ABS_MT_ORIENTATION, orientation);
-+			/* close out slot */
-+			input_mt_report_slot_state(input_dev_sec, 0, 0);
-+
-+			/* Set BTN_TOUCH to 0 */
-+			if (id == MXT_MIN_RPTID_SEC)
-+				input_report_key(input_dev_sec, BTN_TOUCH, 0);
-+
-+		} else {
-+			dev_dbg(dev, "[%u] release\n", id);
-+
-+			/* close out slot */
-+		  	input_mt_report_slot_state(input_dev, 0, 0);
-+		}
-+	}
-+	
-+	if (id >= MXT_MIN_RPTID_SEC) {
-+		data->update_input_sec = true;
- 	} else {
--		dev_dbg(dev, "[%u] release\n", id);
-+		data->update_input = true;
-+	}
-+}
- 
--		/* close out slot */
--		input_mt_report_slot_state(input_dev, 0, 0);
-+static void mxt_proc_t15_messages(struct mxt_data *data, u8 *msg)
-+{
-+	struct input_dev *input_dev = data->input_dev;
-+	struct device *dev = &data->client->dev;
-+	int key;
-+	bool curr_state, new_state;
-+	bool sync = false;
-+	unsigned long keystates = le32_to_cpu(msg[2]);
-+
-+	for (key = 0; key < data->t15_num_keys; key++) {
-+		curr_state = test_bit(key, &data->t15_keystatus);
-+		new_state = test_bit(key, &keystates);
-+
-+		if (!curr_state && new_state) {
-+			dev_dbg(dev, "T15 key press: %u\n", key);
-+			__set_bit(key, &data->t15_keystatus);
-+			input_event(input_dev, EV_KEY,
-+				    data->t15_keymap[key], 1);
-+			sync = true;
-+		} else if (curr_state && !new_state) {
-+			dev_dbg(dev, "T15 key release: %u\n", key);
-+			__clear_bit(key, &data->t15_keystatus);
-+			input_event(input_dev, EV_KEY,
-+				    data->t15_keymap[key], 0);
-+			sync = true;
-+		}
- 	}
- 
--	data->update_input = true;
-+	if (sync)
-+		input_sync(input_dev);
-+}
-+
-+static void mxt_proc_t42_messages(struct mxt_data *data, u8 *msg)
-+{
-+	struct device *dev = &data->client->dev;
-+	u8 status = msg[1];
-+
-+	if (status & MXT_T42_MSG_TCHSUP)
-+		dev_info(dev, "T42 suppress\n");
-+	else
-+		dev_info(dev, "T42 normal\n");
-+}
-+
-+static int mxt_proc_t48_messages(struct mxt_data *data, u8 *msg)
-+{
-+	struct device *dev = &data->client->dev;
-+	u8 status, state;
-+
-+	status = msg[1];
-+	state  = msg[4];
-+
-+	dev_dbg(dev, "T48 state %d status %02X %s%s%s%s%s\n", state, status,
-+		status & 0x01 ? "FREQCHG " : "",
-+		status & 0x02 ? "APXCHG " : "",
-+		status & 0x04 ? "ALGOERR " : "",
-+		status & 0x10 ? "STATCHG " : "",
-+		status & 0x20 ? "NLVLCHG " : "");
-+
-+	return 0;
-+}
-+
-+static void mxt_proc_t92_messages(struct mxt_data *data, u8 *msg)
-+{
-+	struct device *dev = &data->client->dev;
-+	u8 status = msg[1];
-+
-+	dev_info(dev, "T92 long stroke LSTR=%d %d\n",
-+		 (status & 0x80) ? 1 : 0,
-+		 status & 0x0F);
-+}
-+
-+static void mxt_proc_t93_messages(struct mxt_data *data, u8 *msg)
-+{
-+	struct device *dev = &data->client->dev;
-+	u8 status = msg[1];
-+
-+	dev_info(dev, "T93 report double tap %d\n", status);
- }
- 
- static int mxt_proc_message(struct mxt_data *data, u8 *message)
- {
- 	u8 report_id = message[0];
-+	bool dump = data->debug_enabled;
- 
- 	if (report_id == MXT_RPTID_NOMSG)
- 		return 0;
- 
- 	if (report_id == data->T6_reportid) {
- 		mxt_proc_t6_messages(data, message);
-+	} else if (report_id >= data->T42_reportid_min
-+		   && report_id <= data->T42_reportid_max) {
-+		mxt_proc_t42_messages(data, message);
-+	} else if (report_id == data->T48_reportid_min) {
-+		mxt_proc_t48_messages(data, message);
- 	} else if (!data->input_dev) {
- 		/*
- 		 * Do not report events if input device
-@@ -905,13 +1430,26 @@ static int mxt_proc_message(struct mxt_data *data, u8 *message)
- 	} else if (report_id >= data->T100_reportid_min &&
- 		   report_id <= data->T100_reportid_max) {
- 		mxt_proc_t100_message(data, message);
--	} else if (report_id == data->T19_reportid) {
-+	} else if (report_id == data->T19_reportid_min) {
- 		mxt_input_button(data, message);
- 		data->update_input = true;
-+	} else if (report_id >= data->T15_reportid_min
-+		   && report_id <= data->T15_reportid_max) {
-+		mxt_proc_t15_messages(data, message);
-+	} else if (report_id == data->T92_reportid_min) {
-+		mxt_proc_t92_messages(data, message);
-+	} else if (report_id == data->T93_reportid_min) {
-+		mxt_proc_t93_messages(data, message);
- 	} else {
- 		mxt_dump_message(data, message);
- 	}
- 
-+	if (dump)
-+		mxt_dump_message(data, message);
-+
-+	if (data->debug_v2_enabled)
-+		mxt_debug_msg_add(data, message);
-+
- 	return 1;
- }
- 
-@@ -993,9 +1531,14 @@ static irqreturn_t mxt_process_messages_t44(struct mxt_data *data)
- 	}
- 
- end:
--	if (data->update_input) {
-+	if (data->update_input || data->update_input_sec) {
- 		mxt_input_sync(data);
--		data->update_input = false;
-+		
-+		if (data->update_input)
-+			data->update_input = false;
-+		
-+		if (data->update_input_sec)
-+			data->update_input_sec = false;
- 	}
- 
- 	return IRQ_HANDLED;
-@@ -1016,9 +1559,14 @@ static int mxt_process_messages_until_invalid(struct mxt_data *data)
- 			return 0;
- 	} while (--tries);
- 
--	if (data->update_input) {
-+	if (data->update_input || data->update_input_sec ) {
- 		mxt_input_sync(data);
--		data->update_input = false;
-+		
-+		if(data->update_input)
-+			data->update_input = false;
-+		
-+		if(data->update_input_sec)
-+			data->update_input_sec = false;
- 	}
- 
- 	dev_err(dev, "CHG pin isn't cleared\n");
-@@ -1056,9 +1604,14 @@ static irqreturn_t mxt_process_messages(struct mxt_data *data)
- update_count:
- 	data->last_message_count = total_handled;
- 
--	if (data->update_input) {
-+	if (data->update_input || data->update_input_sec) {
- 		mxt_input_sync(data);
--		data->update_input = false;
-+		
-+		if(data->update_input)
-+			data->update_input = false;
-+		
-+		if(data->update_input_sec)
-+			data->update_input_sec = false;
- 	}
- 
- 	return IRQ_HANDLED;
-@@ -1145,7 +1698,7 @@ static int mxt_soft_reset(struct mxt_data *data)
- 		return ret;
- 
- 	/* Ignore CHG line for 100ms after reset */
--	msleep(100);
-+	msleep(MXT_RESET_INVALID_CHG);
- 
- 	mxt_acquire_irq(data);
- 
-@@ -1214,12 +1767,7 @@ static u32 mxt_calculate_crc(u8 *base, off_t start_off, off_t end_off)
- 	return crc;
- }
- 
--static int mxt_prepare_cfg_mem(struct mxt_data *data,
--			       const struct firmware *cfg,
--			       unsigned int data_pos,
--			       unsigned int cfg_start_ofs,
--			       u8 *config_mem,
--			       size_t config_mem_size)
-+static int mxt_prepare_cfg_mem(struct mxt_data *data, struct mxt_cfg *cfg)
- {
- 	struct device *dev = &data->client->dev;
- 	struct mxt_object *object;
-@@ -1230,9 +1778,9 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
- 	u16 reg;
- 	u8 val;
- 
--	while (data_pos < cfg->size) {
-+	while (cfg->raw_pos < cfg->raw_size) {
- 		/* Read type, instance, length */
--		ret = sscanf(cfg->data + data_pos, "%x %x %x%n",
-+		ret = sscanf(cfg->raw + cfg->raw_pos, "%x %x %x%n",
- 			     &type, &instance, &size, &offset);
- 		if (ret == 0) {
- 			/* EOF */
-@@ -1241,20 +1789,20 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
- 			dev_err(dev, "Bad format: failed to parse object\n");
- 			return -EINVAL;
- 		}
--		data_pos += offset;
-+		cfg->raw_pos += offset;
- 
- 		object = mxt_get_object(data, type);
- 		if (!object) {
- 			/* Skip object */
- 			for (i = 0; i < size; i++) {
--				ret = sscanf(cfg->data + data_pos, "%hhx%n",
-+				ret = sscanf(cfg->raw + cfg->raw_pos, "%hhx%n",
- 					     &val, &offset);
- 				if (ret != 1) {
- 					dev_err(dev, "Bad format in T%d at %d\n",
- 						type, i);
- 					return -EINVAL;
- 				}
--				data_pos += offset;
-+				cfg->raw_pos += offset;
- 			}
- 			continue;
- 		}
-@@ -1289,7 +1837,7 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
- 		reg = object->start_address + mxt_obj_size(object) * instance;
- 
- 		for (i = 0; i < size; i++) {
--			ret = sscanf(cfg->data + data_pos, "%hhx%n",
-+			ret = sscanf(cfg->raw + cfg->raw_pos, "%hhx%n",
- 				     &val,
- 				     &offset);
- 			if (ret != 1) {
-@@ -1297,15 +1845,15 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
- 					type, i);
- 				return -EINVAL;
- 			}
--			data_pos += offset;
-+			cfg->raw_pos += offset;
- 
- 			if (i > mxt_obj_size(object))
- 				continue;
- 
--			byte_offset = reg + i - cfg_start_ofs;
-+			byte_offset = reg + i - cfg->start_ofs;
- 
--			if (byte_offset >= 0 && byte_offset < config_mem_size) {
--				*(config_mem + byte_offset) = val;
-+			if (byte_offset >= 0 && byte_offset < cfg->mem_size) {
-+				*(cfg->mem + byte_offset) = val;
- 			} else {
- 				dev_err(dev, "Bad object: reg:%d, T%d, ofs=%d\n",
- 					reg, object->type, byte_offset);
-@@ -1317,22 +1865,21 @@ static int mxt_prepare_cfg_mem(struct mxt_data *data,
- 	return 0;
- }
- 
--static int mxt_upload_cfg_mem(struct mxt_data *data, unsigned int cfg_start,
--			      u8 *config_mem, size_t config_mem_size)
-+static int mxt_upload_cfg_mem(struct mxt_data *data, struct mxt_cfg *cfg)
- {
- 	unsigned int byte_offset = 0;
- 	int error;
- 
- 	/* Write configuration as blocks */
--	while (byte_offset < config_mem_size) {
--		unsigned int size = config_mem_size - byte_offset;
-+	while (byte_offset < cfg->mem_size) {
-+		unsigned int size = cfg->mem_size - byte_offset;
- 
- 		if (size > MXT_MAX_BLOCK_WRITE)
- 			size = MXT_MAX_BLOCK_WRITE;
- 
- 		error = __mxt_write_reg(data->client,
--					cfg_start + byte_offset,
--					size, config_mem + byte_offset);
-+					cfg->start_ofs + byte_offset,
-+					size, cfg->mem + byte_offset);
- 		if (error) {
- 			dev_err(&data->client->dev,
- 				"Config write error, ret=%d\n", error);
-@@ -1366,65 +1913,76 @@ static int mxt_init_t7_power_cfg(struct mxt_data *data);
-  *   <SIZE> - 2-byte object size as hex
-  *   <CONTENTS> - array of <SIZE> 1-byte hex values
-  */
--static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
-+static int mxt_update_cfg(struct mxt_data *data, const struct firmware *fw)
- {
- 	struct device *dev = &data->client->dev;
--	struct mxt_info cfg_info;
-+	struct mxt_cfg cfg;
- 	int ret;
- 	int offset;
--	int data_pos;
- 	int i;
--	int cfg_start_ofs;
- 	u32 info_crc, config_crc, calculated_crc;
--	u8 *config_mem;
--	size_t config_mem_size;
-+	u16 crc_start = 0;
-+
-+	/* Make zero terminated copy of the OBP_RAW file */
-+	cfg.raw = kmemdup(fw->data, fw->size + 1, GFP_KERNEL);
-+	if (!cfg.raw)
-+		return -ENOMEM;
-+	cfg.raw[fw->size] = '\0';
-+	
-+	cfg.raw_size = fw->size;
- 
- 	mxt_update_crc(data, MXT_COMMAND_REPORTALL, 1);
- 
--	if (strncmp(cfg->data, MXT_CFG_MAGIC, strlen(MXT_CFG_MAGIC))) {
-+	if (strncmp(cfg.raw, MXT_CFG_MAGIC, strlen(MXT_CFG_MAGIC))) {
- 		dev_err(dev, "Unrecognised config file\n");
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto release_raw;
- 	}
- 
--	data_pos = strlen(MXT_CFG_MAGIC);
-+	cfg.raw_pos = strlen(MXT_CFG_MAGIC);
- 
- 	/* Load information block and check */
- 	for (i = 0; i < sizeof(struct mxt_info); i++) {
--		ret = sscanf(cfg->data + data_pos, "%hhx%n",
--			     (unsigned char *)&cfg_info + i,
-+		ret = sscanf(cfg.raw + cfg.raw_pos, "%hhx%n",
-+			     (unsigned char *)&cfg.info + i,
- 			     &offset);
- 		if (ret != 1) {
- 			dev_err(dev, "Bad format\n");
--			return -EINVAL;
-+			ret = -EINVAL;
-+			goto release_raw;
- 		}
- 
--		data_pos += offset;
-+		cfg.raw_pos += offset;
- 	}
- 
--	if (cfg_info.family_id != data->info.family_id) {
-+	if (cfg.info.family_id != data->info->family_id) {
- 		dev_err(dev, "Family ID mismatch!\n");
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto release_raw;
- 	}
- 
--	if (cfg_info.variant_id != data->info.variant_id) {
-+	if (cfg.info.variant_id != data->info->variant_id) {
- 		dev_err(dev, "Variant ID mismatch!\n");
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto release_raw;
- 	}
- 
- 	/* Read CRCs */
--	ret = sscanf(cfg->data + data_pos, "%x%n", &info_crc, &offset);
-+	ret = sscanf(cfg.raw + cfg.raw_pos, "%x%n", &info_crc, &offset);
- 	if (ret != 1) {
- 		dev_err(dev, "Bad format: failed to parse Info CRC\n");
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto release_raw;
- 	}
--	data_pos += offset;
-+	cfg.raw_pos += offset;
- 
--	ret = sscanf(cfg->data + data_pos, "%x%n", &config_crc, &offset);
-+	ret = sscanf(cfg.raw + cfg.raw_pos, "%x%n", &config_crc, &offset);
- 	if (ret != 1) {
- 		dev_err(dev, "Bad format: failed to parse Config CRC\n");
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto release_raw;
- 	}
--	data_pos += offset;
-+	cfg.raw_pos += offset;
- 
- 	/*
- 	 * The Info Block CRC is calculated over mxt_info and the object
-@@ -1436,7 +1994,7 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
- 		if (config_crc == 0 || data->config_crc == 0) {
- 			dev_info(dev, "CRC zero, attempting to apply config\n");
- 		} else if (config_crc == data->config_crc) {
--			dev_dbg(dev, "Config CRC 0x%06X: OK\n",
-+			dev_info(dev, "Config CRC 0x%06X: OK. No update required.\n",
- 				 data->config_crc);
- 			return 0;
- 		} else {
-@@ -1449,40 +2007,48 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
- 			 data->info_crc, info_crc);
- 	}
- 
-+	/* Stop T70 Dynamic Configuration before calculation of CRC */
-+
-+	mxt_update_crc(data, MXT_COMMAND_BACKUPNV, MXT_BACKUP_W_STOP);
-+
- 	/* Malloc memory to store configuration */
--	cfg_start_ofs = MXT_OBJECT_START +
--			data->info.object_num * sizeof(struct mxt_object) +
-+	cfg.start_ofs = MXT_OBJECT_START +
-+			data->info->object_num * sizeof(struct mxt_object) +
- 			MXT_INFO_CHECKSUM_SIZE;
--	config_mem_size = data->mem_size - cfg_start_ofs;
--	config_mem = kzalloc(config_mem_size, GFP_KERNEL);
--	if (!config_mem) {
--		dev_err(dev, "Failed to allocate memory\n");
--		return -ENOMEM;
-+	cfg.mem_size = data->mem_size - cfg.start_ofs;
-+	cfg.mem = kzalloc(cfg.mem_size, GFP_KERNEL);
-+	if (!cfg.mem) {
-+		ret = -ENOMEM;
-+		goto release_raw;
- 	}
- 
--	ret = mxt_prepare_cfg_mem(data, cfg, data_pos, cfg_start_ofs,
--				  config_mem, config_mem_size);
-+	ret = mxt_prepare_cfg_mem(data, &cfg);
- 	if (ret)
- 		goto release_mem;
- 
-+
- 	/* Calculate crc of the received configs (not the raw config file) */
--	if (data->T7_address < cfg_start_ofs) {
--		dev_err(dev, "Bad T7 address, T7addr = %x, config offset %x\n",
--			data->T7_address, cfg_start_ofs);
--		ret = 0;
--		goto release_mem;
--	}
-+	
-+	if (data->T14_address)
-+		crc_start = data->T14_address;
-+	else if (data->T71_address)
-+		crc_start = data->T71_address;
-+	else if (data->T7_address)
-+		crc_start = data->T7_address;
-+	else
-+		dev_warn(dev, "Could not find CRC start\n");
- 
--	calculated_crc = mxt_calculate_crc(config_mem,
--					   data->T7_address - cfg_start_ofs,
--					   config_mem_size);
-+	if (crc_start > cfg.start_ofs) {
-+		calculated_crc = mxt_calculate_crc(cfg.mem,
-+						   crc_start - cfg.start_ofs,
-+						   cfg.mem_size);
- 
--	if (config_crc > 0 && config_crc != calculated_crc)
--		dev_warn(dev, "Config CRC error, calculated=%06X, file=%06X\n",
--			 calculated_crc, config_crc);
-+		if (config_crc > 0 && config_crc != calculated_crc)
-+			dev_warn(dev, "Config CRC in file inconsistent, calculated=%06X, file=%06X\n",
-+				 calculated_crc, config_crc);
-+	}
- 
--	ret = mxt_upload_cfg_mem(data, cfg_start_ofs,
--				 config_mem, config_mem_size);
-+	ret = mxt_upload_cfg_mem(data, &cfg);
- 	if (ret)
- 		goto release_mem;
- 
-@@ -1497,25 +2063,13 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *cfg)
- 	/* T7 config may have changed */
- 	mxt_init_t7_power_cfg(data);
- 
-+release_raw:
-+	kfree(cfg.raw);
- release_mem:
--	kfree(config_mem);
-+	kfree(cfg.mem);
- 	return ret;
- }
- 
--static int mxt_get_info(struct mxt_data *data)
--{
--	struct i2c_client *client = data->client;
--	struct mxt_info *info = &data->info;
--	int error;
--
--	/* Read 7-byte info block starting at address 0 */
--	error = __mxt_read_reg(client, 0, sizeof(*info), info);
--	if (error)
--		return error;
--
--	return 0;
--}
--
- static void mxt_free_input_device(struct mxt_data *data)
- {
- 	if (data->input_dev) {
-@@ -1526,60 +2080,65 @@ static void mxt_free_input_device(struct mxt_data *data)
- 
- static void mxt_free_object_table(struct mxt_data *data)
- {
--	kfree(data->object_table);
-+#ifdef CONFIG_TOUCHSCREEN_ATMEL_MXT_T37
-+	video_unregister_device(&data->dbg.vdev);
-+	v4l2_device_unregister(&data->dbg.v4l2);
-+#endif
- 	data->object_table = NULL;
-+	data->info = NULL;
-+	kfree(data->raw_info_block);
-+	data->raw_info_block = NULL;
- 	kfree(data->msg_buf);
- 	data->msg_buf = NULL;
- 	data->T5_address = 0;
- 	data->T5_msg_size = 0;
- 	data->T6_reportid = 0;
- 	data->T7_address = 0;
-+	data->T14_address = 0;
-+	data->T71_address = 0;
- 	data->T9_reportid_min = 0;
- 	data->T9_reportid_max = 0;
--	data->T19_reportid = 0;
-+	data->T15_reportid_min = 0;
-+	data->T15_reportid_max = 0;
-+	data->T18_address = 0;
-+	data->T19_reportid_min = 0;
-+	data->T42_reportid_min = 0;
-+	data->T42_reportid_max = 0;
- 	data->T44_address = 0;
-+	data->T48_reportid_min = 0;
-+	data->T92_reportid_min = 0;
-+	data->T92_address = 0;
-+	data->T93_reportid_min = 0;
-+	data->T93_address = 0;
- 	data->T100_reportid_min = 0;
- 	data->T100_reportid_max = 0;
- 	data->max_reportid = 0;
- }
- 
--static int mxt_get_object_table(struct mxt_data *data)
-+static int mxt_parse_object_table(struct mxt_data *data,
-+				  struct mxt_object *object_table)
- {
- 	struct i2c_client *client = data->client;
--	size_t table_size;
--	struct mxt_object *object_table;
--	int error;
- 	int i;
- 	u8 reportid;
- 	u16 end_address;
--
--	table_size = data->info.object_num * sizeof(struct mxt_object);
--	object_table = kzalloc(table_size, GFP_KERNEL);
--	if (!object_table) {
--		dev_err(&data->client->dev, "Failed to allocate memory\n");
--		return -ENOMEM;
--	}
--
--	error = __mxt_read_reg(client, MXT_OBJECT_START, table_size,
--			object_table);
--	if (error) {
--		kfree(object_table);
--		return error;
--	}
-+	u8 num_instances;
- 
- 	/* Valid Report IDs start counting from 1 */
- 	reportid = 1;
- 	data->mem_size = 0;
--	for (i = 0; i < data->info.object_num; i++) {
-+	for (i = 0; i < data->info->object_num; i++) {
- 		struct mxt_object *object = object_table + i;
- 		u8 min_id, max_id;
- 
- 		le16_to_cpus(&object->start_address);
- 
-+		num_instances = mxt_obj_instances(object);
-+		
- 		if (object->num_report_ids) {
- 			min_id = reportid;
- 			reportid += object->num_report_ids *
--					mxt_obj_instances(object);
-+					num_instances;
- 			max_id = reportid - 1;
- 		} else {
- 			min_id = 0;
-@@ -1594,8 +2153,8 @@ static int mxt_get_object_table(struct mxt_data *data)
- 
- 		switch (object->type) {
- 		case MXT_GEN_MESSAGE_T5:
--			if (data->info.family_id == 0x80 &&
--			    data->info.version < 0x20) {
-+			if (data->info->family_id == 0x80 &&
-+			    data->info->version < 0x20) {
- 				/*
- 				 * On mXT224 firmware versions prior to V2.0
- 				 * read and discard unused CRC byte otherwise
-@@ -1615,25 +2174,114 @@ static int mxt_get_object_table(struct mxt_data *data)
- 		case MXT_GEN_POWER_T7:
- 			data->T7_address = object->start_address;
- 			break;
-+		case MXT_PROCI_KEYTHRESHOLD_T14:
-+			data->T14_address = object->start_address;
-+			break;
-+		case MXT_SPT_DYNAMICCONFIGURATIONCONTAINER_T71:
-+			data->T71_address = object->start_address;
-+			break;
- 		case MXT_TOUCH_MULTI_T9:
- 			data->multitouch = MXT_TOUCH_MULTI_T9;
-+			/* Only handle messages from first T9 instance */
- 			data->T9_reportid_min = min_id;
--			data->T9_reportid_max = max_id;
--			data->num_touchids = object->num_report_ids
--						* mxt_obj_instances(object);
-+			data->T9_reportid_max = min_id +
-+						object->num_report_ids - 1;
-+			data->num_touchids = object->num_report_ids;
-+			break;
-+		case MXT_TOUCH_KEYARRAY_T15:
-+			data->T15_reportid_min = min_id;
-+			data->T15_reportid_max = max_id;
-+			data->T15_instances = num_instances;
-+			break;
-+		case MXT_SPT_COMMSCONFIG_T18:
-+			data->T18_address = object->start_address;
-+			break;
-+		case MXT_SPT_GPIOPWM_T19:
-+			data->T19_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_ONETOUCH_T24:
-+			data->T24_reportid_min = min_id;
-+			data->T24_reportid_max = max_id;
-+			break;
-+		case MXT_SPT_SELFTEST_T25:
-+			data->T25_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_TWOTOUCH_T27:
-+			data->T27_reportid_min = min_id;
-+			data->T27_reportid_max = max_id;
-+			break;
-+		case MXT_PROCI_TOUCHSUPPRESSION_T42:
-+			data->T42_reportid_min = min_id;
-+			data->T42_reportid_max = max_id;
- 			break;
- 		case MXT_SPT_MESSAGECOUNT_T44:
- 			data->T44_address = object->start_address;
- 			break;
--		case MXT_SPT_GPIOPWM_T19:
--			data->T19_reportid = min_id;
-+		case MXT_SPT_CTECONFIG_T46:
-+			data->T46_reportid_min = min_id;
-+			break;
-+		case MXT_PROCG_NOISESUPPRESSION_T48:
-+			data->T48_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_SHIELDLESS_T56:
-+			data->T56_reportid_min = min_id;
-+			break;
-+		case MXT_SPT_TIMER_T61:
-+			data->T61_reportid_min = min_id;
-+			data->T61_reportid_max = max_id;
-+			break;
-+		case MXT_PROCI_LENSBENDING_T65:
-+			data->T65_reportid_min = min_id;
-+			data->T65_reportid_max = max_id;
-+			break;
-+		case MXT_SPT_SERIALDATACOMMAND_T68:
-+			data->T68_reportid_min = min_id;
-+			break;
-+			case MXT_SPT_DYNAMICCONFIGURATIONCONTROLLER_T70:
-+			data->T70_reportid_min = min_id;
-+			data->T70_reportid_max = max_id;
-+			break;
-+		case MXT_NOISESUPPRESSION_T72:
-+			data->T72_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_RETRANSMISSIONCOMPENSATION_T80:
-+			data->T80_reportid_min = min_id;
-+			data->T80_reportid_max = max_id;
-+			break;				
-+		case MXT_PROCI_SYMBOLGESTUREPROCESSOR_T92:
-+			data->T92_reportid_min = min_id;
-+			data->T92_address = object->start_address;
-+			break;
-+		case MXT_PROCI_TOUCHSEQUENCELOGGER_T93:
-+			data->T93_reportid_min = min_id;
-+			data->T93_address = object->start_address;
- 			break;
- 		case MXT_TOUCH_MULTITOUCHSCREEN_T100:
- 			data->multitouch = MXT_TOUCH_MULTITOUCHSCREEN_T100;
- 			data->T100_reportid_min = min_id;
- 			data->T100_reportid_max = max_id;
-+			data->T100_instances = num_instances;
- 			/* first two report IDs reserved */
--			data->num_touchids = object->num_report_ids - 2;
-+			data->num_touchids = object->num_report_ids - MXT_RSVD_RPTIDS;
-+			break;
-+		case MXT_PROCI_ACTIVESTYLUS_T107:
-+			data->T107_address = object->start_address;
-+			break;
-+		case MXT_PROCG_NOISESUPSELFCAP_T108:
-+			data->T108_reportid_min = min_id;
-+			break;
-+		case MXT_SPT_SELFCAPGLOBALCONFIG_T109:
-+			data->T109_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_SELFCAPGRIPSUPPRESSION_T112:
-+			data->T112_reportid_min = min_id;
-+			data->T112_reportid_max = max_id;
-+			break;
-+		case MXT_SPT_SELCAPVOLTAGEMODE_T133:
-+			data->T133_reportid_min = min_id;
-+			break;
-+		case MXT_PROCI_HOVERGESTUREPROCESSOR_T129:
-+			data->T129_reportid_min = min_id;
- 			break;
- 		}
- 
-@@ -1646,28 +2294,106 @@ static int mxt_get_object_table(struct mxt_data *data)
- 
- 	/* Store maximum reportid */
- 	data->max_reportid = reportid;
--
-+	
- 	/* If T44 exists, T5 position has to be directly after */
- 	if (data->T44_address && (data->T5_address != data->T44_address + 1)) {
- 		dev_err(&client->dev, "Invalid T44 position\n");
--		error = -EINVAL;
--		goto free_object_table;
-+		return -EINVAL;
- 	}
- 
- 	data->msg_buf = kcalloc(data->max_reportid,
- 				data->T5_msg_size, GFP_KERNEL);
--	if (!data->msg_buf) {
--		dev_err(&client->dev, "Failed to allocate message buffer\n");
-+	if (!data->msg_buf)
-+		return -ENOMEM;
-+
-+	return 0;
-+}
-+
-+static int mxt_read_info_block(struct mxt_data *data)
-+{
-+	struct i2c_client *client = data->client;
-+	int error;
-+	size_t size;
-+	void *id_buf, *buf;
-+	uint8_t num_objects;
-+	u32 calculated_crc;
-+	u8 *crc_ptr;
-+
-+	/* If info block already allocated, free it */
-+	if (data->raw_info_block)
-+		mxt_free_object_table(data);
-+
-+	/* Read 7-byte ID information block starting at address 0 */
-+	size = sizeof(struct mxt_info);
-+	id_buf = kzalloc(size, GFP_KERNEL);
-+	if (!id_buf)
-+		return -ENOMEM;
-+
-+	error = __mxt_read_reg(client, 0, size, id_buf);
-+	if (error)
-+		goto err_free_mem;
-+
-+	/* Resize buffer to give space for rest of info block */
-+	num_objects = ((struct mxt_info *)id_buf)->object_num;
-+	size += (num_objects * sizeof(struct mxt_object))
-+		+ MXT_INFO_CHECKSUM_SIZE;
-+
-+	buf = krealloc(id_buf, size, GFP_KERNEL);
-+	if (!buf) {
- 		error = -ENOMEM;
--		goto free_object_table;
-+		goto err_free_mem;
-+	}
-+	id_buf = buf;
-+
-+	/* Read rest of info block */
-+	error = __mxt_read_reg(client, MXT_OBJECT_START,
-+			       size - MXT_OBJECT_START,
-+			       id_buf + MXT_OBJECT_START);
-+	if (error)
-+		goto err_free_mem;
-+
-+	/* Extract & calculate checksum */
-+	crc_ptr = id_buf + size - MXT_INFO_CHECKSUM_SIZE;
-+	data->info_crc = crc_ptr[0] | (crc_ptr[1] << 8) | (crc_ptr[2] << 16);
-+
-+	calculated_crc = mxt_calculate_crc(id_buf, 0,
-+					   size - MXT_INFO_CHECKSUM_SIZE);
-+
-+	/*
-+	 * CRC mismatch can be caused by data corruption due to I2C comms
-+	 * issue or else device is not using Object Based Protocol (eg i2c-hid)
-+	 */
-+	if ((data->info_crc == 0) || (data->info_crc != calculated_crc)) {
-+		dev_err(&client->dev,
-+			"Info Block CRC error calculated=0x%06X read=0x%06X\n",
-+			calculated_crc, data->info_crc);
-+		error = -EIO;
-+		goto err_free_mem;
-+	}
-+
-+	data->raw_info_block = id_buf;
-+	data->info = (struct mxt_info *)id_buf;
-+
-+	dev_info(&client->dev,
-+		 "Family: %u Variant: %u Firmware V%u.%u.%02X Objects: %u\n",
-+		 data->info->family_id, data->info->variant_id,
-+		 data->info->version >> 4, data->info->version & 0xf,
-+		 data->info->build, data->info->object_num);
-+
-+	/* Parse object table information */
-+	error = mxt_parse_object_table(data, id_buf + MXT_OBJECT_START);
-+	if (error) {
-+		dev_err(&client->dev, "Error %d parsing object table\n", error);
-+		mxt_free_object_table(data);
-+		goto err_free_mem;
- 	}
- 
--	data->object_table = object_table;
-+	data->object_table = (struct mxt_object *)(id_buf + MXT_OBJECT_START);
- 
- 	return 0;
- 
--free_object_table:
--	mxt_free_object_table(data);
-+err_free_mem:
-+	kfree(id_buf);
- 	return error;
- }
- 
-@@ -1684,6 +2410,18 @@ static int mxt_read_t9_resolution(struct mxt_data *data)
- 		return -EINVAL;
- 
- 	error = __mxt_read_reg(client,
-+			       object->start_address + MXT_T9_XSIZE,
-+			       sizeof(data->xsize), &data->xsize);
-+	if (error)
-+		return error;
-+
-+	error = __mxt_read_reg(client,
-+			       object->start_address + MXT_T9_YSIZE,
-+			       sizeof(data->ysize), &data->ysize);
-+	if (error)
-+		return error;
-+
-+	error = __mxt_read_reg(client,
- 			       object->start_address + MXT_T9_RANGE,
- 			       sizeof(range), &range);
- 	if (error)
-@@ -1699,11 +2437,61 @@ static int mxt_read_t9_resolution(struct mxt_data *data)
- 		return error;
- 
- 	data->xy_switch = orient & MXT_T9_ORIENT_SWITCH;
-+	data->invertx = orient & MXT_T9_ORIENT_INVERTX;
-+	data->inverty = orient & MXT_T9_ORIENT_INVERTY;
-+
-+	return 0;
-+}
-+
-+static int mxt_set_up_active_stylus(struct input_dev *input_dev,
-+				    struct mxt_data *data)
-+{
-+	struct i2c_client *client = data->client;
-+	int error;
-+	struct mxt_object *object;
-+	u8 styaux;
-+	int aux;
-+	u8 ctrl;
-+
-+	object = mxt_get_object(data, MXT_PROCI_ACTIVESTYLUS_T107);
-+	if (!object)
-+		return 0;
-+
-+	error = __mxt_read_reg(client, object->start_address, 1, &ctrl);
-+	if (error)
-+		return error;
-+
-+	/* Check enable bit */
-+	if (!(ctrl & 0x01))
-+		return 0;
-+
-+	error = __mxt_read_reg(client,
-+			       object->start_address + MXT_T107_STYLUS_STYAUX,
-+			       1, &styaux);
-+	if (error)
-+		return error;
-+
-+	/* map aux bits */
-+	aux = 7;
-+
-+	if (styaux & MXT_T107_STYLUS_STYAUX_PRESSURE)
-+		data->stylus_aux_pressure = aux++;
-+
-+	if (styaux & MXT_T107_STYLUS_STYAUX_PEAK)
-+		data->stylus_aux_peak = aux++;
-+
-+	input_set_capability(input_dev, EV_KEY, BTN_STYLUS);
-+	input_set_capability(input_dev, EV_KEY, BTN_STYLUS2);
-+	input_set_abs_params(input_dev, ABS_MT_TOOL_TYPE, 0, MT_TOOL_MAX, 0, 0);
-+
-+	dev_dbg(&client->dev,
-+		"T107 active stylus, aux map pressure:%u peak:%u\n",
-+		data->stylus_aux_pressure, data->stylus_aux_peak);
- 
- 	return 0;
- }
- 
--static int mxt_read_t100_config(struct mxt_data *data)
-+static int mxt_read_t100_config(struct mxt_data *data, u8 instance)
- {
- 	struct i2c_client *client = data->client;
- 	int error;
-@@ -1711,14 +2499,28 @@ static int mxt_read_t100_config(struct mxt_data *data)
- 	u16 range_x, range_y;
- 	u8 cfg, tchaux;
- 	u8 aux;
-+	u16 obj_size = 0;
-+	u8 T100_enable;
- 
- 	object = mxt_get_object(data, MXT_TOUCH_MULTITOUCHSCREEN_T100);
- 	if (!object)
- 		return -EINVAL;
--
-+	
-+	if (instance == 2) {
-+		T100_enable = object->start_address + mxt_obj_size(object) + MXT_T100_CTRL;
-+		
-+		if ((T100_enable & MXT_T100_ENABLE_BIT_MASK) == 0x01 ){
-+			obj_size = mxt_obj_size(object);
-+		} else {
-+			dev_info(&client->dev, "T100 secondary input device not enabled\n");
-+			
-+			return 1;
-+		}	
-+	}
-+				
- 	/* read touchscreen dimensions */
- 	error = __mxt_read_reg(client,
--			       object->start_address + MXT_T100_XRANGE,
-+			       object->start_address + obj_size + MXT_T100_XRANGE,
- 			       sizeof(range_x), &range_x);
- 	if (error)
- 		return error;
-@@ -1726,30 +2528,44 @@ static int mxt_read_t100_config(struct mxt_data *data)
- 	data->max_x = get_unaligned_le16(&range_x);
- 
- 	error = __mxt_read_reg(client,
--			       object->start_address + MXT_T100_YRANGE,
-+			       object->start_address + obj_size + MXT_T100_YRANGE,
- 			       sizeof(range_y), &range_y);
- 	if (error)
- 		return error;
- 
- 	data->max_y = get_unaligned_le16(&range_y);
- 
-+	error = __mxt_read_reg(client,
-+			       object->start_address + obj_size + MXT_T100_XSIZE,
-+			       sizeof(data->xsize), &data->xsize);
-+	if (error)
-+		return error;
-+
-+	error = __mxt_read_reg(client,
-+			       object->start_address + obj_size + MXT_T100_YSIZE,
-+			       sizeof(data->ysize), &data->ysize);
-+	if (error)
-+		return error;
-+
- 	/* read orientation config */
- 	error =  __mxt_read_reg(client,
--				object->start_address + MXT_T100_CFG1,
-+				object->start_address + obj_size + MXT_T100_CFG1,
- 				1, &cfg);
- 	if (error)
- 		return error;
- 
- 	data->xy_switch = cfg & MXT_T100_CFG_SWITCHXY;
-+	data->invertx = cfg & MXT_T100_CFG_INVERTX;
-+	data->inverty = cfg & MXT_T100_CFG_INVERTY;
- 
- 	/* allocate aux bytes */
- 	error =  __mxt_read_reg(client,
--				object->start_address + MXT_T100_TCHAUX,
-+				object->start_address + obj_size+ MXT_T100_TCHAUX,
- 				1, &tchaux);
- 	if (error)
- 		return error;
- 
--	aux = 6;
-+	aux = MXT_T100_AUX_OFFSET;
- 
- 	if (tchaux & MXT_T100_TCHAUX_VECT)
- 		data->t100_aux_vect = aux++;
-@@ -1763,7 +2579,7 @@ static int mxt_read_t100_config(struct mxt_data *data)
- 	dev_dbg(&client->dev,
- 		"T100 aux mappings vect:%u ampl:%u area:%u\n",
- 		data->t100_aux_vect, data->t100_aux_ampl, data->t100_aux_area);
--
-+				
- 	return 0;
- }
- 
-@@ -1773,7 +2589,6 @@ static void mxt_input_close(struct input_dev *dev);
- static void mxt_set_up_as_touchpad(struct input_dev *input_dev,
- 				   struct mxt_data *data)
- {
--	const struct mxt_platform_data *pdata = data->pdata;
- 	int i;
- 
- 	input_dev->name = "Atmel maXTouch Touchpad";
-@@ -1787,21 +2602,136 @@ static void mxt_set_up_as_touchpad(struct input_dev *input_dev,
- 	input_abs_set_res(input_dev, ABS_MT_POSITION_Y,
- 			  MXT_PIXELS_PER_MM);
- 
--	for (i = 0; i < pdata->t19_num_keys; i++)
--		if (pdata->t19_keymap[i] != KEY_RESERVED)
-+	for (i = 0; i < data->t19_num_keys; i++)
-+		if (data->t19_keymap[i] != KEY_RESERVED)
- 			input_set_capability(input_dev, EV_KEY,
--					     pdata->t19_keymap[i]);
-+					     data->t19_keymap[i]);
-+}
-+
-+static int mxt_init_secondary_input(struct mxt_data *data)
-+{
-+	struct device *dev = &data->client->dev;
-+	struct input_dev *input_dev_sec;
-+	unsigned int num_mt_slots;
-+	unsigned int mt_flags = 0;
-+	int error;
-+	
-+	switch (data->multitouch) {
-+	case MXT_TOUCH_MULTITOUCHSCREEN_T100:
-+		num_mt_slots = data->num_touchids; 
-+		error = mxt_read_t100_config(data, 2);
-+		if (error) {
-+			dev_info(dev, "Failed to read T100 config\n");
-+			return -ENXIO;
-+		}
-+		break;
-+
-+	default:
-+		dev_err(dev, "Invalid multitouch object\n");
-+		return -EINVAL;
-+	}
-+
-+	/* Handle default values and orientation switch */
-+	if (data->max_x == 0)
-+		data->max_x = 1023;
-+
-+	if (data->max_y == 0)
-+		data->max_y = 1023;
-+
-+	if (data->xy_switch)
-+		swap(data->max_x, data->max_y);
-+
-+	dev_info(dev, "Secondary touchscreen size {x,y} = {%u,%u}\n", data->max_x, data->max_y);
-+
-+	/* Register input device */
-+	input_dev_sec = input_allocate_device();
-+	if (!input_dev_sec)
-+		return -ENOMEM;
-+
-+	input_dev_sec->name = "maXTouch Secondary Touchscreen";
-+	input_dev_sec->phys = data->phys;
-+	input_dev_sec->id.bustype = BUS_I2C;
-+	input_dev_sec->dev.parent = dev;
-+	input_dev_sec->open = mxt_input_open;
-+	input_dev_sec->close = mxt_input_close;
-+
-+	input_set_capability(input_dev_sec, EV_KEY, BTN_TOUCH);
-+
-+	/* For single touch */
-+	input_set_abs_params(input_dev_sec, ABS_X, 0, data->max_x, 0, 0);
-+	input_set_abs_params(input_dev_sec, ABS_Y, 0, data->max_y, 0, 0);
-+
-+	if ((data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
-+	     data->t100_aux_ampl)) {
-+		input_set_abs_params(input_dev_sec, ABS_PRESSURE, 0, 255, 0, 0);
-+	}
-+
-+	mt_flags |= INPUT_MT_DIRECT;
-+
-+	/* For multi touch */
-+	error = input_mt_init_slots(input_dev_sec, num_mt_slots, mt_flags);
-+	if (error) {
-+		dev_err(dev, "Error %d initialising slots\n", error);
-+		goto err_free_mem;
-+	}
-+
-+	if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100) {
-+		input_set_abs_params(input_dev_sec, ABS_MT_TOOL_TYPE,
-+				     0, MT_TOOL_MAX, 0, 0);
-+		input_set_abs_params(input_dev_sec, ABS_MT_DISTANCE,
-+				     MXT_DISTANCE_ACTIVE_TOUCH,
-+				     MXT_DISTANCE_HOVERING,
-+				     0, 0);
-+	}
-+
-+	input_set_abs_params(input_dev_sec, ABS_MT_POSITION_X,
-+			     0, data->max_x, 0, 0);
-+	input_set_abs_params(input_dev_sec, ABS_MT_POSITION_Y,
-+			     0, data->max_y, 0, 0);
-+
-+	if ((data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
-+	     data->t100_aux_area)) {
-+		input_set_abs_params(input_dev_sec, ABS_MT_TOUCH_MAJOR,
-+				     0, MXT_MAX_AREA, 0, 0);
-+	}
-+
-+	if ((data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
-+	     data->t100_aux_ampl)) {
-+		input_set_abs_params(input_dev_sec, ABS_MT_PRESSURE,
-+				     0, 255, 0, 0);
-+	}
-+
-+	if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
-+	    data->t100_aux_vect) {
-+		input_set_abs_params(input_dev_sec, ABS_MT_ORIENTATION,
-+				     0, 255, 0, 0);
-+	}
-+
-+	input_set_drvdata(input_dev_sec, data);
-+
-+	error = input_register_device(input_dev_sec);
-+	if (error) {
-+		dev_err(dev, "Error %d registering input device\n", error);
-+		goto err_free_mem;
-+	}
-+
-+	data->input_dev_sec = input_dev_sec;
-+
-+	return 0;
-+
-+err_free_mem:
-+	input_free_device(input_dev_sec);
-+	return error;
- }
- 
- static int mxt_initialize_input_device(struct mxt_data *data)
- {
--	const struct mxt_platform_data *pdata = data->pdata;
- 	struct device *dev = &data->client->dev;
- 	struct input_dev *input_dev;
- 	int error;
- 	unsigned int num_mt_slots;
- 	unsigned int mt_flags = 0;
--	struct device_node *np = dev->of_node;
-+	int i;
- 	
- 	switch (data->multitouch) {
- 	case MXT_TOUCH_MULTI_T9:
-@@ -1812,8 +2742,8 @@ static int mxt_initialize_input_device(struct mxt_data *data)
- 		break;
- 
- 	case MXT_TOUCH_MULTITOUCHSCREEN_T100:
--		num_mt_slots = data->num_touchids;
--		error = mxt_read_t100_config(data);
-+		num_mt_slots = (data->num_touchids);
-+		error = mxt_read_t100_config(data, 1);
- 		if (error)
- 			dev_warn(dev, "Failed to read T100 config\n");
- 		break;
-@@ -1833,15 +2763,12 @@ static int mxt_initialize_input_device(struct mxt_data *data)
- 	if (data->xy_switch)
- 		swap(data->max_x, data->max_y);
- 
--	dev_info(dev, "Touchscreen size X%uY%u\n", data->max_x, data->max_y);
-+	dev_info(dev, "Touchscreen size {x,y} = {%u,%u}\n", data->max_x, data->max_y);
- 
- 	/* Register input device */
- 	input_dev = input_allocate_device();
--	if (!input_dev) {
--		dev_err(dev, "Failed to allocate memory\n");
-+	if (!input_dev)
- 		return -ENOMEM;
--	}
--
- 
- 	input_dev->name = "Atmel maXTouch Touchscreen";
- 	input_dev->phys = data->phys;
-@@ -1863,7 +2790,7 @@ static int mxt_initialize_input_device(struct mxt_data *data)
- 	}
- 
- 	/* If device has buttons we assume it is a touchpad */
--	if (pdata->t19_num_keys) {
-+	if (data->t19_num_keys) {
- 		mxt_set_up_as_touchpad(input_dev, data);
- 		mt_flags |= INPUT_MT_POINTER;
- 	} else {
-@@ -1905,22 +2832,28 @@ static int mxt_initialize_input_device(struct mxt_data *data)
- 				     0, 255, 0, 0);
- 	}
- 
--	if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
--	    data->t100_aux_vect) {
-+	if (data->multitouch == MXT_TOUCH_MULTI_T9 ||
-+	    (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
-+	    data->t100_aux_vect)) {
- 		input_set_abs_params(input_dev, ABS_MT_ORIENTATION,
- 				     0, 255, 0, 0);
- 	}
- 
-+	/* For T107 Active Stylus */
- 	if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
--	    data->t100_aux_ampl) {
--		input_set_abs_params(input_dev, ABS_MT_PRESSURE,
--				     0, 255, 0, 0);
-+	    data->T107_address) {
-+		error = mxt_set_up_active_stylus(input_dev, data);
-+		if (error)
-+			dev_warn(dev, "Failed to read T107 config\n");
- 	}
- 
--	if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 &&
--	    data->t100_aux_vect) {
--		input_set_abs_params(input_dev, ABS_MT_ORIENTATION,
--				     0, 255, 0, 0);
-+	/* For T15 Key Array */
-+	if (data->T15_reportid_min) {
-+		data->t15_keystatus = 0;
-+
-+		for (i = 0; i < data->t15_num_keys; i++)
-+			input_set_capability(input_dev, EV_KEY,
-+					data->t15_keymap[i]);
- 	}
- 
- 	input_set_drvdata(input_dev, data);
-@@ -1933,17 +2866,6 @@ static int mxt_initialize_input_device(struct mxt_data *data)
- 
- 	data->input_dev = input_dev;
- 
--	if (np) {
--		data->invert_x = of_property_read_bool(np, "invert_x")?1:0;
--		data->invert_y = of_property_read_bool(np, "invert_y")?1:0;
--        	data->swap_x_y = of_property_read_bool(np, "swap_x_y")?1:0;
--        	
--        	dev_info(dev, "loaded toucscreen properties\n");
--        	dev_info(dev, "touchscreen-inverted-x %d\n", data->invert_x);
--        	dev_info(dev, "touchscreen-inverted-y %d\n", data->invert_y);
--        	dev_info(dev, "touchscreen-swap-x-y %d\n", data->swap_x_y);
--        }
--
- 	return 0;
- 
- err_free_mem:
-@@ -1951,6 +2873,8 @@ err_free_mem:
- 	return error;
- }
- 
-+static int mxt_sysfs_init(struct mxt_data *data);
-+static void mxt_sysfs_remove(struct mxt_data *data);
- static int mxt_configure_objects(struct mxt_data *data,
- 				 const struct firmware *cfg);
- 
-@@ -1967,7 +2891,7 @@ static int mxt_initialize(struct mxt_data *data)
- 	int error;
- 
- 	while (1) {
--		error = mxt_get_info(data);
-+		error = mxt_read_info_block(data);
- 		if (!error)
- 			break;
- 
-@@ -1998,31 +2922,21 @@ static int mxt_initialize(struct mxt_data *data)
- 		msleep(MXT_FW_RESET_TIME);
- 	}
- 
--	/* Get object table information */
--	error = mxt_get_object_table(data);
--	if (error) {
--		dev_err(&client->dev, "Error %d reading object table\n", error);
--		return error;
--	}
--
- 	error = mxt_acquire_irq(data);
- 	if (error)
--		goto err_free_object_table;
-+		return error;
- 
-+	/* Only works when driver compiled as module */
- 	error = request_firmware_nowait(THIS_MODULE, true, MXT_CFG_NAME,
- 					&client->dev, GFP_KERNEL, data,
- 					mxt_config_cb);
- 	if (error) {
- 		dev_err(&client->dev, "Failed to invoke firmware loader: %d\n",
- 			error);
--		goto err_free_object_table;
-+		return error;
- 	}
- 
- 	return 0;
--
--err_free_object_table:
--	mxt_free_object_table(data);
--	return error;
- }
- 
- static int mxt_set_t7_power_cfg(struct mxt_data *data, u8 sleep)
-@@ -2042,7 +2956,7 @@ static int mxt_set_t7_power_cfg(struct mxt_data *data, u8 sleep)
- 	if (error)
- 		return error;
- 
--	dev_dbg(dev, "Set T7 ACTV:%d IDLE:%d\n",
-+	dev_dbg(dev, "Set T7 ACTV:%d IDLE:%d\n",	
- 		new_config->active, new_config->idle);
- 
- 	return 0;
-@@ -2079,48 +2993,478 @@ recheck:
- 	return 0;
- }
- 
--static int mxt_configure_objects(struct mxt_data *data,
--				 const struct firmware *cfg)
-+#ifdef CONFIG_TOUCHSCREEN_ATMEL_MXT_T37
-+static u16 mxt_get_debug_value(struct mxt_data *data, unsigned int x,
-+			       unsigned int y)
- {
--	struct device *dev = &data->client->dev;
--	struct mxt_info *info = &data->info;
--	int error;
--
--	error = mxt_init_t7_power_cfg(data);
--	if (error) {
--		dev_err(dev, "Failed to initialize power cfg\n");
--		return error;
-+	struct mxt_info *info = data->info;
-+	struct mxt_dbg *dbg = &data->dbg;
-+	unsigned int ofs, page;
-+	unsigned int col = 0;
-+	unsigned int col_width;
-+
-+	if (info->family_id == MXT_FAMILY_1386) {
-+		col_width = info->matrix_ysize / MXT1386_COLUMNS;
-+		col = y / col_width;
-+		y = y % col_width;
-+	} else {
-+		col_width = info->matrix_ysize;
- 	}
- 
--	if (cfg) {
--		error = mxt_update_cfg(data, cfg);
--		if (error)
--			dev_warn(dev, "Error %d updating config\n", error);
--	}
-+	ofs = (y + (x * col_width)) * sizeof(u16);
-+	page = ofs / MXT_DIAGNOSTIC_SIZE;
-+	ofs %= MXT_DIAGNOSTIC_SIZE;
- 
--	if (data->multitouch) {
--		error = mxt_initialize_input_device(data);
--		if (error)
--			return error;
--	} else {
--		dev_warn(dev, "No touch object detected\n");
--	}
-+	if (info->family_id == MXT_FAMILY_1386)
-+		page += col * MXT1386_PAGES_PER_COLUMN;
- 
--	dev_info(dev,
--		 "Family: %u Variant: %u Firmware V%u.%u.%02X Objects: %u\n",
--		 info->family_id, info->variant_id, info->version >> 4,
--		 info->version & 0xf, info->build, info->object_num);
-+	return get_unaligned_le16(&dbg->t37_buf[page].data[ofs]);
-+}
-+
-+static int mxt_convert_debug_pages(struct mxt_data *data, u16 *outbuf)
-+{
-+	struct mxt_dbg *dbg = &data->dbg;
-+	unsigned int x = 0;
-+	unsigned int y = 0;
-+	unsigned int i, rx, ry;
-+
-+	for (i = 0; i < dbg->t37_nodes; i++) {
-+		/* Handle orientation */
-+		rx = data->xy_switch ? y : x;
-+		ry = data->xy_switch ? x : y;
-+		rx = data->invertx ? (data->xsize - 1 - rx) : rx;
-+		ry = data->inverty ? (data->ysize - 1 - ry) : ry;
-+
-+		outbuf[i] = mxt_get_debug_value(data, rx, ry);
-+
-+		/* Next value */
-+		if (++x >= (data->xy_switch ? data->ysize : data->xsize)) {
-+			x = 0;
-+			y++;
-+		}
-+	}
- 
- 	return 0;
- }
- 
--/* Firmware Version is returned as Major.Minor.Build */
--static ssize_t mxt_fw_version_show(struct device *dev,
--				   struct device_attribute *attr, char *buf)
-+static int mxt_read_diagnostic_debug(struct mxt_data *data, u8 mode,
-+				     u16 *outbuf)
- {
--	struct mxt_data *data = dev_get_drvdata(dev);
--	struct mxt_info *info = &data->info;
--	return scnprintf(buf, PAGE_SIZE, "%u.%u.%02X\n",
-+	struct mxt_dbg *dbg = &data->dbg;
-+	int retries = 0;
-+	int page;
-+	int ret;
-+	u8 cmd = mode;
-+	struct t37_debug *p;
-+	u8 cmd_poll;
-+
-+	for (page = 0; page < dbg->t37_pages; page++) {
-+		p = dbg->t37_buf + page;
-+
-+		ret = mxt_write_reg(data->client, dbg->diag_cmd_address,
-+				    cmd);
-+		if (ret)
-+			return ret;
-+
-+		retries = 0;
-+		msleep(20);
-+wait_cmd:
-+		/* Read back command byte */
-+		ret = __mxt_read_reg(data->client, dbg->diag_cmd_address,
-+				     sizeof(cmd_poll), &cmd_poll);
-+		if (ret)
-+			return ret;
-+
-+		/* Field is cleared once the command has been processed */
-+		if (cmd_poll) {
-+			if (retries++ > 100)
-+				return -EINVAL;
-+
-+			msleep(20);
-+			goto wait_cmd;
-+		}
-+
-+		/* Read T37 page */
-+		ret = __mxt_read_reg(data->client, dbg->t37_address,
-+				     sizeof(struct t37_debug), p);
-+		if (ret)
-+			return ret;
-+
-+		if (p->mode != mode || p->page != page) {
-+			dev_err(&data->client->dev, "T37 page mismatch\n");
-+			return -EINVAL;
-+		}
-+
-+		dev_dbg(&data->client->dev, "%s page:%d retries:%d\n",
-+			__func__, page, retries);
-+
-+		/* For remaining pages, write PAGEUP rather than mode */
-+		cmd = MXT_DIAGNOSTIC_PAGEUP;
-+	}
-+
-+	return mxt_convert_debug_pages(data, outbuf);
-+}
-+
-+static int mxt_queue_setup(struct vb2_queue *q,
-+		       unsigned int *nbuffers, unsigned int *nplanes,
-+		       unsigned int sizes[], struct device *alloc_devs[])
-+{
-+	struct mxt_data *data = q->drv_priv;
-+	size_t size = data->dbg.t37_nodes * sizeof(u16);
-+
-+	if (*nplanes)
-+		return sizes[0] < size ? -EINVAL : 0;
-+
-+	*nplanes = 1;
-+	sizes[0] = size;
-+
-+	return 0;
-+}
-+
-+static void mxt_buffer_queue(struct vb2_buffer *vb)
-+{
-+	struct mxt_data *data = vb2_get_drv_priv(vb->vb2_queue);
-+	u16 *ptr;
-+	int ret;
-+	u8 mode;
-+
-+	ptr = vb2_plane_vaddr(vb, 0);
-+	if (!ptr) {
-+		dev_err(&data->client->dev, "Error acquiring frame ptr\n");
-+		goto fault;
-+	}
-+
-+	switch (data->dbg.input) {
-+	case MXT_V4L_INPUT_DELTAS:
-+	default:
-+		mode = MXT_DIAGNOSTIC_DELTAS;
-+		break;
-+
-+	case MXT_V4L_INPUT_REFS:
-+		mode = MXT_DIAGNOSTIC_REFS;
-+		break;
-+	}
-+
-+	ret = mxt_read_diagnostic_debug(data, mode, ptr);
-+	if (ret)
-+		goto fault;
-+
-+	vb2_set_plane_payload(vb, 0, data->dbg.t37_nodes * sizeof(u16));
-+	vb2_buffer_done(vb, VB2_BUF_STATE_DONE);
-+	return;
-+
-+fault:
-+	vb2_buffer_done(vb, VB2_BUF_STATE_ERROR);
-+}
-+
-+/* V4L2 structures */
-+static const struct vb2_ops mxt_queue_ops = {
-+	.queue_setup		= mxt_queue_setup,
-+	.buf_queue		= mxt_buffer_queue,
-+	.wait_prepare		= vb2_ops_wait_prepare,
-+	.wait_finish		= vb2_ops_wait_finish,
-+};
-+
-+static const struct vb2_queue mxt_queue = {
-+	.type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
-+	.io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ,
-+	.buf_struct_size = sizeof(struct mxt_vb2_buffer),
-+	.ops = &mxt_queue_ops,
-+	.mem_ops = &vb2_vmalloc_memops,
-+	.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC,
-+	.min_buffers_needed = 1,
-+};
-+
-+static int mxt_vidioc_querycap(struct file *file, void *priv,
-+				 struct v4l2_capability *cap)
-+{
-+	struct mxt_data *data = video_drvdata(file);
-+
-+	strlcpy(cap->driver, "atmel_mxt_ts", sizeof(cap->driver));
-+	strlcpy(cap->card, "atmel_mxt_ts touch", sizeof(cap->card));
-+	snprintf(cap->bus_info, sizeof(cap->bus_info),
-+		 "I2C:%s", dev_name(&data->client->dev));
-+	return 0;
-+}
-+
-+static int mxt_vidioc_enum_input(struct file *file, void *priv,
-+				   struct v4l2_input *i)
-+{
-+	if (i->index >= MXT_V4L_INPUT_MAX)
-+		return -EINVAL;
-+
-+	i->type = V4L2_INPUT_TYPE_TOUCH;
-+
-+	switch (i->index) {
-+	case MXT_V4L_INPUT_REFS:
-+		strlcpy(i->name, "Mutual Capacitance References",
-+			sizeof(i->name));
-+		break;
-+	case MXT_V4L_INPUT_DELTAS:
-+		strlcpy(i->name, "Mutual Capacitance Deltas", sizeof(i->name));
-+		break;
-+	}
-+
-+	return 0;
-+}
-+
-+static int mxt_set_input(struct mxt_data *data, unsigned int i)
-+{
-+	struct v4l2_pix_format *f = &data->dbg.format;
-+
-+	if (i >= MXT_V4L_INPUT_MAX)
-+		return -EINVAL;
-+
-+	if (i == MXT_V4L_INPUT_DELTAS)
-+		f->pixelformat = V4L2_TCH_FMT_DELTA_TD16;
-+	else
-+		f->pixelformat = V4L2_TCH_FMT_TU16;
-+
-+	f->width = data->xy_switch ? data->ysize : data->xsize;
-+	f->height = data->xy_switch ? data->xsize : data->ysize;
-+	f->field = V4L2_FIELD_NONE;
-+	f->colorspace = V4L2_COLORSPACE_RAW;
-+	f->bytesperline = f->width * sizeof(u16);
-+	f->sizeimage = f->width * f->height * sizeof(u16);
-+
-+	data->dbg.input = i;
-+
-+	return 0;
-+}
-+
-+static int mxt_vidioc_s_input(struct file *file, void *priv, unsigned int i)
-+{
-+	return mxt_set_input(video_drvdata(file), i);
-+}
-+
-+static int mxt_vidioc_g_input(struct file *file, void *priv, unsigned int *i)
-+{
-+	struct mxt_data *data = video_drvdata(file);
-+
-+	*i = data->dbg.input;
-+
-+	return 0;
-+}
-+
-+static int mxt_vidioc_fmt(struct file *file, void *priv, struct v4l2_format *f)
-+{
-+	struct mxt_data *data = video_drvdata(file);
-+
-+	f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-+	f->fmt.pix = data->dbg.format;
-+
-+	return 0;
-+}
-+
-+static int mxt_vidioc_enum_fmt(struct file *file, void *priv,
-+				 struct v4l2_fmtdesc *fmt)
-+{
-+	if (fmt->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-+		return -EINVAL;
-+
-+	switch (fmt->index) {
-+	case 0:
-+		fmt->pixelformat = V4L2_TCH_FMT_TU16;
-+		break;
-+
-+	case 1:
-+		fmt->pixelformat = V4L2_TCH_FMT_DELTA_TD16;
-+		break;
-+
-+	default:
-+		return -EINVAL;
-+	}
-+
-+	return 0;
-+}
-+
-+static int mxt_vidioc_g_parm(struct file *file, void *fh,
-+			     struct v4l2_streamparm *a)
-+{
-+	if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-+		return -EINVAL;
-+
-+	a->parm.capture.readbuffers = 1;
-+	a->parm.capture.timeperframe.numerator = 1;
-+	a->parm.capture.timeperframe.denominator = 10;
-+	return 0;
-+}
-+
-+static const struct v4l2_ioctl_ops mxt_video_ioctl_ops = {
-+	.vidioc_querycap        = mxt_vidioc_querycap,
-+
-+	.vidioc_enum_fmt_vid_cap = mxt_vidioc_enum_fmt,
-+	.vidioc_s_fmt_vid_cap   = mxt_vidioc_fmt,
-+	.vidioc_g_fmt_vid_cap   = mxt_vidioc_fmt,
-+	.vidioc_try_fmt_vid_cap	= mxt_vidioc_fmt,
-+	.vidioc_g_parm		= mxt_vidioc_g_parm,
-+
-+	.vidioc_enum_input      = mxt_vidioc_enum_input,
-+	.vidioc_g_input         = mxt_vidioc_g_input,
-+	.vidioc_s_input         = mxt_vidioc_s_input,
-+
-+	.vidioc_reqbufs         = vb2_ioctl_reqbufs,
-+	.vidioc_create_bufs     = vb2_ioctl_create_bufs,
-+	.vidioc_querybuf        = vb2_ioctl_querybuf,
-+	.vidioc_qbuf            = vb2_ioctl_qbuf,
-+	.vidioc_dqbuf           = vb2_ioctl_dqbuf,
-+	.vidioc_expbuf          = vb2_ioctl_expbuf,
-+
-+	.vidioc_streamon        = vb2_ioctl_streamon,
-+	.vidioc_streamoff       = vb2_ioctl_streamoff,
-+};
-+
-+static const struct video_device mxt_video_device = {
-+	.name = "Atmel maxTouch",
-+	.fops = &mxt_video_fops,
-+	.ioctl_ops = &mxt_video_ioctl_ops,
-+	.release = video_device_release_empty,
-+	.device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_TOUCH |
-+		       V4L2_CAP_READWRITE | V4L2_CAP_STREAMING,
-+};
-+
-+static void mxt_debug_init(struct mxt_data *data)
-+{
-+	struct mxt_info *info = data->info;
-+	struct mxt_dbg *dbg = &data->dbg;
-+	struct mxt_object *object;
-+	int error;
-+
-+	object = mxt_get_object(data, MXT_GEN_COMMAND_T6);
-+	if (!object)
-+		goto error;
-+
-+	dbg->diag_cmd_address = object->start_address + MXT_COMMAND_DIAGNOSTIC;
-+
-+	object = mxt_get_object(data, MXT_DEBUG_DIAGNOSTIC_T37);
-+	if (!object)
-+		goto error;
-+
-+	if (mxt_obj_size(object) != sizeof(struct t37_debug)) {
-+		dev_warn(&data->client->dev, "Bad T37 size");
-+		goto error;
-+	}
-+
-+	dbg->t37_address = object->start_address;
-+
-+	/* Calculate size of data and allocate buffer */
-+	dbg->t37_nodes = data->xsize * data->ysize;
-+
-+	if (info->family_id == MXT_FAMILY_1386)
-+		dbg->t37_pages = MXT1386_COLUMNS * MXT1386_PAGES_PER_COLUMN;
-+	else
-+		dbg->t37_pages = DIV_ROUND_UP(data->xsize *
-+					      info->matrix_ysize *
-+					      sizeof(u16),
-+					      sizeof(dbg->t37_buf->data));
-+
-+	dbg->t37_buf = devm_kmalloc_array(&data->client->dev, dbg->t37_pages,
-+					  sizeof(struct t37_debug), GFP_KERNEL);
-+	if (!dbg->t37_buf)
-+		goto error;
-+
-+	/* init channel to zero */
-+	mxt_set_input(data, 0);
-+
-+	/* register video device */
-+	snprintf(dbg->v4l2.name, sizeof(dbg->v4l2.name), "%s", "atmel_mxt_ts");
-+	error = v4l2_device_register(&data->client->dev, &dbg->v4l2);
-+	if (error)
-+		goto error;
-+
-+	/* initialize the queue */
-+	mutex_init(&dbg->lock);
-+	dbg->queue = mxt_queue;
-+	dbg->queue.drv_priv = data;
-+	dbg->queue.lock = &dbg->lock;
-+	dbg->queue.dev = &data->client->dev;
-+
-+	error = vb2_queue_init(&dbg->queue);
-+	if (error)
-+		goto error_unreg_v4l2;
-+
-+	dbg->vdev = mxt_video_device;
-+	dbg->vdev.v4l2_dev = &dbg->v4l2;
-+	dbg->vdev.lock = &dbg->lock;
-+	dbg->vdev.vfl_dir = VFL_DIR_RX;
-+	dbg->vdev.queue = &dbg->queue;
-+	video_set_drvdata(&dbg->vdev, data);
-+
-+	error = video_register_device(&dbg->vdev, VFL_TYPE_TOUCH, -1);
-+	if (error)
-+		goto error_unreg_v4l2;
-+
-+	return;
-+
-+error_unreg_v4l2:
-+	v4l2_device_unregister(&dbg->v4l2);
-+error:
-+	dev_warn(&data->client->dev, "Error initializing T37\n");
-+}
-+#else
-+static void mxt_debug_init(struct mxt_data *data)
-+{
-+}
-+#endif
-+
-+static int mxt_configure_objects(struct mxt_data *data,
-+				 const struct firmware *cfg)
-+{
-+	struct device *dev = &data->client->dev;
-+	int error;
-+
-+	error = mxt_init_t7_power_cfg(data);
-+	if (error) {
-+		dev_err(dev, "Failed to initialize power cfg\n");
-+		return error;
-+	}
-+
-+	if (cfg) {
-+		error = mxt_update_cfg(data, cfg);
-+		if (error)
-+			dev_warn(dev, "Error %d updating config\n", error);
-+	}
-+	
-+	if (!data->sysfs_updating_config) {
-+		if (data->multitouch) {
-+			dev_info(dev, "Registering devices\n");
-+			error = mxt_initialize_input_device(data);
-+			if (error)
-+				return error;
-+			
-+			if (data->T100_instances > 1) {
-+			    error = mxt_init_secondary_input(data);
-+			    if (error)
-+				    dev_warn(dev, "Error %d registering secondary device\n", error);
-+			}
-+		} else {
-+			dev_warn(dev, "No touch object detected\n");
-+		}
-+	}
-+	
-+	data->sysfs_updating_config = false;
-+	
-+	mxt_debug_init(data);
-+
-+	return 0;
-+}
-+
-+/* Configuration crc check sum is returned as hex xxxxxx */
-+static ssize_t mxt_config_crc_show(struct device *dev,
-+		struct device_attribute *attr, char *buf)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+
-+	return scnprintf(buf, PAGE_SIZE, "%06x\n", data->config_crc);
-+}
-+
-+/* Firmware Version is returned as Major.Minor.Build */
-+static ssize_t mxt_fw_version_show(struct device *dev,
-+				   struct device_attribute *attr, char *buf)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	struct mxt_info *info = data->info;
-+	return scnprintf(buf, PAGE_SIZE, "%u.%u.%02X\n",
- 			 info->version >> 4, info->version & 0xf, info->build);
- }
- 
-@@ -2129,7 +3473,7 @@ static ssize_t mxt_hw_version_show(struct device *dev,
- 				   struct device_attribute *attr, char *buf)
- {
- 	struct mxt_data *data = dev_get_drvdata(dev);
--	struct mxt_info *info = &data->info;
-+	struct mxt_info *info = data->info;
- 	return scnprintf(buf, PAGE_SIZE, "%u.%u\n",
- 			 info->family_id, info->variant_id);
- }
-@@ -2168,7 +3512,7 @@ static ssize_t mxt_object_show(struct device *dev,
- 		return -ENOMEM;
- 
- 	error = 0;
--	for (i = 0; i < data->info.object_num; i++) {
-+	for (i = 0; i < data->info->object_num; i++) {
- 		object = data->object_table + i;
- 
- 		if (!mxt_object_readable(object->type))
-@@ -2232,12 +3576,19 @@ static int mxt_load_fw(struct device *dev, const char *fn)
- 	if (ret) {
- 		dev_err(dev, "Unable to open firmware %s\n", fn);
- 		return ret;
--	}
-+	} else {
-+
-+		dev_info(dev, "Opened firmware file: %s\n", fn);
-+	}  
- 
- 	/* Check for incorrect enc file */
- 	ret = mxt_check_firmware_format(dev, fw);
--	if (ret)
-+
-+	if (ret) {
- 		goto release_firmware;
-+	} else {
-+		dev_info(dev, "File format is okay\n");		
-+	}
- 
- 	if (!data->in_bootloader) {
- 		/* Change to the bootloader mode */
-@@ -2245,18 +3596,21 @@ static int mxt_load_fw(struct device *dev, const char *fn)
- 
- 		ret = mxt_t6_command(data, MXT_COMMAND_RESET,
- 				     MXT_BOOT_VALUE, false);
--		if (ret)
-+		if (ret) {
- 			goto release_firmware;
-+		} else {
-+			dev_info(dev, "Sent bootloader command.\n");
-+		}
- 
- 		msleep(MXT_RESET_TIME);
- 
- 		/* Do not need to scan since we know family ID */
- 		ret = mxt_lookup_bootloader_address(data, 0);
--		if (ret)
-+		if (ret) {
- 			goto release_firmware;
--
--		mxt_free_input_device(data);
--		mxt_free_object_table(data);
-+		} else {
-+			dev_info(dev, "Found bootloader I2C address\n");
-+		}	
- 	} else {
- 		enable_irq(data->irq);
- 	}
-@@ -2289,7 +3643,7 @@ static int mxt_load_fw(struct device *dev, const char *fn)
- 		frame_size += 2;
- 
- 		/* Write one frame to device */
--		ret = mxt_bootloader_write(data, fw->data + pos, frame_size);
-+		ret = mxt_bootloader_write(data, &fw->data[pos], frame_size);
- 		if (ret)
- 			goto disable_irq;
- 
-@@ -2310,17 +3664,16 @@ static int mxt_load_fw(struct device *dev, const char *fn)
- 			frame++;
- 		}
- 
--		if (frame % 50 == 0)
--			dev_dbg(dev, "Sent %d frames, %d/%zd bytes\n",
-+		if (pos >= fw->size) {
-+			dev_info(dev, "Sent %u frames, %zu bytes\n",
-+				frame, fw->size);
-+		}
-+		else if (frame % 50 == 0) {
-+			dev_info(dev, "Sent %u frames, %d/%zu bytes\n",
- 				frame, pos, fw->size);
-+		}
- 	}
- 
--	/* Wait for flash. */
--	ret = mxt_wait_for_completion(data, &data->bl_completion,
--				      MXT_FW_RESET_TIME);
--	if (ret)
--		goto disable_irq;
--
- 	dev_dbg(dev, "Sent %d frames, %d bytes\n", frame, pos);
- 
- 	/*
-@@ -2328,7 +3681,13 @@ static int mxt_load_fw(struct device *dev, const char *fn)
- 	 * the CHG line after bootloading has finished, so ignore potential
- 	 * errors.
- 	 */
--	mxt_wait_for_completion(data, &data->bl_completion, MXT_FW_RESET_TIME);
-+
-+	msleep(MXT_BOOTLOADER_WAIT);	/* Wait for chip to leave bootloader*/
-+	
-+	ret = mxt_wait_for_completion(data, &data->bl_completion,
-+				      MXT_BOOTLOADER_WAIT);
-+	if (ret)
-+		goto disable_irq;
- 
- 	data->in_bootloader = false;
- 
-@@ -2345,32 +3704,204 @@ static ssize_t mxt_update_fw_store(struct device *dev,
- {
- 	struct mxt_data *data = dev_get_drvdata(dev);
- 	int error;
--
-+	
- 	error = mxt_load_fw(dev, MXT_FW_NAME);
- 	if (error) {
- 		dev_err(dev, "The firmware update failed(%d)\n", error);
- 		count = error;
- 	} else {
- 		dev_info(dev, "The firmware update succeeded\n");
-+	}
-+	
-+	data->sysfs_updating_config = true;		
-+	
-+	msleep(MXT_FW_FLASH_TIME);
-+	
-+	error = mxt_acquire_irq(data);
-+	if (error)
-+		return error;
-+	
-+	/* Only works when driver compiled as module */
-+	error = request_firmware_nowait(THIS_MODULE, true, MXT_CFG_NAME,
-+					dev, GFP_KERNEL, data,
-+					mxt_config_cb);
-+	if (error) {
-+		dev_err(dev, "Failed to invoke firmware loader: %d\n",
-+			error);
-+		return error;
-+		
-+	}
-+	
-+	return count;
-+}
- 
--		error = mxt_initialize(data);
--		if (error)
--			return error;
-+static ssize_t mxt_update_cfg_store(struct device *dev,
-+		struct device_attribute *attr,
-+		const char *buf, size_t count)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	const struct firmware *cfg;
-+	int ret;
-+
-+	ret = request_firmware(&cfg, MXT_CFG_NAME, dev);
-+	if (ret < 0) {
-+		dev_err(dev, "Failure to request config file %s\n",
-+			MXT_CFG_NAME);
-+		ret = -ENOENT;
-+		goto out;
-+	} else {
-+		dev_info(dev, "Found configuration file: %s\n",
-+			MXT_CFG_NAME);
- 	}
-+	
-+	data->sysfs_updating_config = true;
- 
--	return count;
-+	if (data->suspend_mode == MXT_SUSPEND_DEEP_SLEEP) {
-+		mxt_set_t7_power_cfg(data, MXT_POWER_CFG_RUN);
-+	}
-+
-+	ret = mxt_configure_objects(data, cfg);
-+	if (ret)
-+		goto release;
-+
-+	ret = count;
-+
-+release:
-+	release_firmware(cfg);
-+out:
-+	return ret;
-+}
-+
-+static ssize_t mxt_debug_enable_show(struct device *dev,
-+	struct device_attribute *attr, char *buf)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	char c;
-+
-+	c = data->debug_enabled ? '1' : '0';
-+	return scnprintf(buf, PAGE_SIZE, "%c\n", c);
-+}
-+
-+static ssize_t mxt_debug_notify_show(struct device *dev,
-+	struct device_attribute *attr, char *buf)
-+{
-+	return sprintf(buf, "0\n");
-+}
-+
-+static ssize_t mxt_debug_v2_enable_store(struct device *dev,
-+	struct device_attribute *attr, const char *buf, size_t count)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	u8 i;
-+	ssize_t ret;
-+
-+	if (kstrtou8(buf, 0, &i) == 0 && i < 2) {
-+		if (i == 1)
-+			mxt_debug_msg_enable(data);
-+		else
-+			mxt_debug_msg_disable(data);
-+
-+		ret = count;
-+	} else {
-+		dev_dbg(dev, "debug_enabled write error\n");
-+		ret = -EINVAL;
-+	}
-+
-+	return ret;
-+}
-+
-+static ssize_t mxt_debug_enable_store(struct device *dev,
-+	struct device_attribute *attr, const char *buf, size_t count)
-+{
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	u8 i;
-+	ssize_t ret;
-+
-+	if (kstrtou8(buf, 0, &i) == 0 && i < 2) {
-+		data->debug_enabled = (i == 1);
-+
-+		dev_dbg(dev, "%s\n", i ? "debug enabled" : "debug disabled");
-+		ret = count;
-+	} else {
-+		dev_dbg(dev, "debug_enabled write error\n");
-+		ret = -EINVAL;
-+	}
-+
-+	return ret;
-+}
-+
-+static int mxt_check_mem_access_params(struct mxt_data *data, loff_t off,
-+				       size_t *count)
-+{
-+	if (off >= data->mem_size)
-+		return -EIO;
-+
-+	if (off + *count > data->mem_size)
-+		*count = data->mem_size - off;
-+
-+	if (*count > MXT_MAX_BLOCK_WRITE)
-+		*count = MXT_MAX_BLOCK_WRITE;
-+
-+	return 0;
-+}
-+
-+static ssize_t mxt_mem_access_read(struct file *filp, struct kobject *kobj,
-+	struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count)
-+{
-+	struct device *dev = container_of(kobj, struct device, kobj);
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	int ret = 0;
-+
-+	ret = mxt_check_mem_access_params(data, off, &count);
-+	if (ret < 0)
-+		return ret;
-+
-+	if (count > 0)
-+		ret = __mxt_read_reg(data->client, off, count, buf);
-+
-+	return ret == 0 ? count : ret;
-+}
-+
-+static ssize_t mxt_mem_access_write(struct file *filp, struct kobject *kobj,
-+	struct bin_attribute *bin_attr, char *buf, loff_t off,
-+	size_t count)
-+{
-+	struct device *dev = container_of(kobj, struct device, kobj);
-+	struct mxt_data *data = dev_get_drvdata(dev);
-+	int ret = 0;
-+
-+	ret = mxt_check_mem_access_params(data, off, &count);
-+	if (ret < 0)
-+		return ret;
-+
-+	if (count > 0)
-+		ret = __mxt_write_reg(data->client, off, count, buf);
-+
-+	return ret == 0 ? count : ret;
- }
- 
- static DEVICE_ATTR(fw_version, S_IRUGO, mxt_fw_version_show, NULL);
- static DEVICE_ATTR(hw_version, S_IRUGO, mxt_hw_version_show, NULL);
- static DEVICE_ATTR(object, S_IRUGO, mxt_object_show, NULL);
-+static DEVICE_ATTR(update_cfg, S_IWUSR, NULL, mxt_update_cfg_store);
-+static DEVICE_ATTR(config_crc, S_IRUGO, mxt_config_crc_show, NULL);
- static DEVICE_ATTR(update_fw, S_IWUSR, NULL, mxt_update_fw_store);
-+static DEVICE_ATTR(debug_enable, S_IWUSR | S_IRUSR, mxt_debug_enable_show,
-+		   mxt_debug_enable_store);
-+static DEVICE_ATTR(debug_v2_enable, S_IWUSR | S_IRUSR, NULL,
-+		   mxt_debug_v2_enable_store);
-+static DEVICE_ATTR(debug_notify, S_IRUGO, mxt_debug_notify_show, NULL);
- 
- static struct attribute *mxt_attrs[] = {
- 	&dev_attr_fw_version.attr,
- 	&dev_attr_hw_version.attr,
- 	&dev_attr_object.attr,
-+	&dev_attr_update_cfg.attr,
-+	&dev_attr_config_crc.attr,
- 	&dev_attr_update_fw.attr,
-+	&dev_attr_debug_enable.attr,
-+	&dev_attr_debug_v2_enable.attr,
-+	&dev_attr_debug_notify.attr,
- 	NULL
- };
- 
-@@ -2378,9 +3909,54 @@ static const struct attribute_group mxt_attr_group = {
- 	.attrs = mxt_attrs,
- };
- 
-+static int mxt_sysfs_init(struct mxt_data *data)
-+{
-+	struct i2c_client *client = data->client;
-+	int error;
-+
-+	error = sysfs_create_group(&client->dev.kobj, &mxt_attr_group);
-+	if (error) {
-+		dev_err(&client->dev, "Failure %d creating sysfs group\n",
-+			error);
-+		return error;
-+	}
-+
-+	sysfs_bin_attr_init(&data->mem_access_attr);
-+	data->mem_access_attr.attr.name = "mem_access";
-+	data->mem_access_attr.attr.mode = S_IRUGO | S_IWUSR;
-+	data->mem_access_attr.read = mxt_mem_access_read;
-+	data->mem_access_attr.write = mxt_mem_access_write;
-+	data->mem_access_attr.size = data->mem_size;
-+
-+	error = sysfs_create_bin_file(&client->dev.kobj,
-+				  &data->mem_access_attr);
-+	if (error) {
-+		dev_err(&client->dev, "Failed to create %s\n",
-+			data->mem_access_attr.attr.name);
-+		goto err_remove_sysfs_group;
-+	}
-+
-+	return 0;
-+
-+err_remove_sysfs_group:
-+	sysfs_remove_group(&client->dev.kobj, &mxt_attr_group);
-+	return error;
-+}
-+
-+static void mxt_sysfs_remove(struct mxt_data *data)
-+{
-+	struct i2c_client *client = data->client;
-+
-+	if (data->mem_access_attr.attr.name)
-+		sysfs_remove_bin_file(&client->dev.kobj,
-+				      &data->mem_access_attr);
-+
-+	sysfs_remove_group(&client->dev.kobj, &mxt_attr_group);
-+}
-+
- static void mxt_start(struct mxt_data *data)
- {
--	switch (data->pdata->suspend_mode) {
-+	switch (data->suspend_mode) {
- 	case MXT_SUSPEND_T9_CTRL:
- 		mxt_soft_reset(data);
- 
-@@ -2398,12 +3974,11 @@ static void mxt_start(struct mxt_data *data)
- 		mxt_t6_command(data, MXT_COMMAND_CALIBRATE, 1, false);
- 		break;
- 	}
--
- }
- 
- static void mxt_stop(struct mxt_data *data)
- {
--	switch (data->pdata->suspend_mode) {
-+	switch (data->suspend_mode) {
- 	case MXT_SUSPEND_T9_CTRL:
- 		/* Touch disable */
- 		mxt_write_object(data,
-@@ -2433,131 +4008,75 @@ static void mxt_input_close(struct input_dev *dev)
- 	mxt_stop(data);
- }
- 
--#ifdef CONFIG_OF
--static const struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client)
-+static int mxt_parse_device_properties(struct mxt_data *data)
- {
--	struct mxt_platform_data *pdata;
--	struct device_node *np = client->dev.of_node;
-+	static const char keymap_property[] = "linux,gpio-keymap";
-+	struct device *dev = &data->client->dev;
- 	u32 *keymap;
--	int proplen, ret;
--
--	if (!np)
--		return ERR_PTR(-ENOENT);
--
--	pdata = devm_kzalloc(&client->dev, sizeof(*pdata), GFP_KERNEL);
--	if (!pdata)
--		return ERR_PTR(-ENOMEM);
-+	int n_keys;
-+	int error;
- 
--	if (of_find_property(np, "linux,gpio-keymap", &proplen)) {
--		pdata->t19_num_keys = proplen / sizeof(u32);
-+	if (device_property_present(dev, keymap_property)) {
-+		n_keys = device_property_read_u32_array(dev, keymap_property,
-+							NULL, 0);
-+		if (n_keys <= 0) {
-+			error = n_keys < 0 ? n_keys : -EINVAL;
-+			dev_err(dev, "invalid/malformed '%s' property: %d\n",
-+				keymap_property, error);
-+			return error;
-+		}
- 
--		keymap = devm_kzalloc(&client->dev,
--				pdata->t19_num_keys * sizeof(keymap[0]),
--				GFP_KERNEL);
-+		keymap = devm_kmalloc_array(dev, n_keys, sizeof(*keymap),
-+					    GFP_KERNEL);
- 		if (!keymap)
--			return ERR_PTR(-ENOMEM);
-+			return -ENOMEM;
- 
--		ret = of_property_read_u32_array(np, "linux,gpio-keymap",
--						 keymap, pdata->t19_num_keys);
--		if (ret)
--			dev_warn(&client->dev,
--				 "Couldn't read linux,gpio-keymap: %d\n", ret);
-+		error = device_property_read_u32_array(dev, keymap_property,
-+						       keymap, n_keys);
-+		if (error) {
-+			dev_err(dev, "failed to parse '%s' property: %d\n",
-+				keymap_property, error);
-+			return error;
-+		}
- 
--		pdata->t19_keymap = keymap;
-+		data->t19_keymap = keymap;
-+		data->t19_num_keys = n_keys;
- 	}
- 
--	pdata->suspend_mode = MXT_SUSPEND_DEEP_SLEEP;
--
--	return pdata;
--}
--#else
--static const struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client)
--{
--	return ERR_PTR(-ENOENT);
-+	return 0;
- }
--#endif
--
--#ifdef CONFIG_ACPI
--
--struct mxt_acpi_platform_data {
--	const char *hid;
--	struct mxt_platform_data pdata;
--};
--
--static unsigned int samus_touchpad_buttons[] = {
--	KEY_RESERVED,
--	KEY_RESERVED,
--	KEY_RESERVED,
--	BTN_LEFT
--};
- 
--static struct mxt_acpi_platform_data samus_platform_data[] = {
-+static const struct dmi_system_id chromebook_T9_suspend_dmi[] = {
- 	{
--		/* Touchpad */
--		.hid	= "ATML0000",
--		.pdata	= {
--			.t19_num_keys	= ARRAY_SIZE(samus_touchpad_buttons),
--			.t19_keymap	= samus_touchpad_buttons,
--		},
--	},
--	{
--		/* Touchscreen */
--		.hid	= "ATML0001",
--	},
--	{ }
--};
--
--static unsigned int chromebook_tp_buttons[] = {
--	KEY_RESERVED,
--	KEY_RESERVED,
--	KEY_RESERVED,
--	KEY_RESERVED,
--	KEY_RESERVED,
--	BTN_LEFT
--};
--
--static struct mxt_acpi_platform_data chromebook_platform_data[] = {
--	{
--		/* Touchpad */
--		.hid	= "ATML0000",
--		.pdata	= {
--			.t19_num_keys	= ARRAY_SIZE(chromebook_tp_buttons),
--			.t19_keymap	= chromebook_tp_buttons,
--		},
--	},
--	{
--		/* Touchscreen */
--		.hid	= "ATML0001",
--	},
--	{ }
--};
--
--static const struct dmi_system_id mxt_dmi_table[] = {
--	{
--		/* 2015 Google Pixel */
--		.ident = "Chromebook Pixel 2",
- 		.matches = {
- 			DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
--			DMI_MATCH(DMI_PRODUCT_NAME, "Samus"),
-+			DMI_MATCH(DMI_PRODUCT_NAME, "Link"),
- 		},
--		.driver_data = samus_platform_data,
- 	},
- 	{
--		/* Other Google Chromebooks */
--		.ident = "Chromebook",
- 		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
-+			DMI_MATCH(DMI_PRODUCT_NAME, "Peppy"),
- 		},
--		.driver_data = chromebook_platform_data,
- 	},
- 	{ }
- };
- 
--static const struct mxt_platform_data *mxt_parse_acpi(struct i2c_client *client)
-+static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
- {
--	struct acpi_device *adev;
--	const struct dmi_system_id *system_id;
--	const struct mxt_acpi_platform_data *acpi_pdata;
-+	struct mxt_data *data;
-+	int error;
-+
-+	/*
-+	 * Ignore devices that do not have device properties attached to
-+	 * them, as we need help determining whether we are dealing with
-+	 * touch screen or touchpad.
-+	 *
-+	 * So far on x86 the only users of Atmel touch controllers are
-+	 * Chromebooks, and chromeos_laptop driver will ensure that
-+	 * necessary properties are provided (if firmware does not do that).
-+	 */
-+	if (!device_property_present(&client->dev, "compatible"))
-+		return -ENXIO;
- 
- 	/*
- 	 * Ignore ACPI devices representing bootloader mode.
-@@ -2569,79 +4088,17 @@ static const struct mxt_platform_data *mxt_parse_acpi(struct i2c_client *client)
- 	 * application mode addresses were all above 0x40, so we'll use it
- 	 * as a threshold.
- 	 */
--	if (client->addr < 0x40)
--		return ERR_PTR(-ENXIO);
--
--	adev = ACPI_COMPANION(&client->dev);
--	if (!adev)
--		return ERR_PTR(-ENOENT);
--
--	system_id = dmi_first_match(mxt_dmi_table);
--	if (!system_id)
--		return ERR_PTR(-ENOENT);
-+	if (ACPI_COMPANION(&client->dev) && client->addr < 0x40)
-+		return -ENXIO;
- 
--	acpi_pdata = system_id->driver_data;
--	if (!acpi_pdata)
--		return ERR_PTR(-ENOENT);
--
--	while (acpi_pdata->hid) {
--		if (!strcmp(acpi_device_hid(adev), acpi_pdata->hid))
--			return &acpi_pdata->pdata;
--
--		acpi_pdata++;
--	}
--
--	return ERR_PTR(-ENOENT);
--}
--#else
--static const struct mxt_platform_data *mxt_parse_acpi(struct i2c_client *client)
--{
--	return ERR_PTR(-ENOENT);
--}
--#endif
--
--static const struct mxt_platform_data *
--mxt_get_platform_data(struct i2c_client *client)
--{
--	const struct mxt_platform_data *pdata;
--
--	pdata = dev_get_platdata(&client->dev);
--	if (pdata)
--		return pdata;
--
--	pdata = mxt_parse_dt(client);
--	if (!IS_ERR(pdata) || PTR_ERR(pdata) != -ENOENT)
--		return pdata;
--
--	pdata = mxt_parse_acpi(client);
--	if (!IS_ERR(pdata) || PTR_ERR(pdata) != -ENOENT)
--		return pdata;
--
--	dev_err(&client->dev, "No platform data specified\n");
--	return ERR_PTR(-EINVAL);
--}
--
--static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
--{
--	struct mxt_data *data;
--	const struct mxt_platform_data *pdata;
--	int error;
--
--	pdata = mxt_get_platform_data(client);
--	if (IS_ERR(pdata))
--		return PTR_ERR(pdata);
--
--	data = kzalloc(sizeof(struct mxt_data), GFP_KERNEL);
--	if (!data) {
--		dev_err(&client->dev, "Failed to allocate memory\n");
-+	data = devm_kzalloc(&client->dev, sizeof(struct mxt_data), GFP_KERNEL);
-+	if (!data)
- 		return -ENOMEM;
--	}
- 
- 	snprintf(data->phys, sizeof(data->phys), "i2c-%u-%04x/input0",
- 		 client->adapter->nr, client->addr);
- 
- 	data->client = client;
--	data->pdata = pdata;
- 	data->irq = client->irq;
- 	i2c_set_clientdata(client, data);
- 
-@@ -2649,48 +4106,78 @@ static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
- 	init_completion(&data->reset_completion);
- 	init_completion(&data->crc_completion);
- 
--	error = request_threaded_irq(client->irq, NULL, mxt_interrupt,
--				     pdata->irqflags | IRQF_ONESHOT,
--				     client->name, data);
-+	data->suspend_mode = dmi_check_system(chromebook_T9_suspend_dmi) ?
-+		MXT_SUSPEND_T9_CTRL : MXT_SUSPEND_DEEP_SLEEP;
-+
-+	error = mxt_parse_device_properties(data);
-+	if (error)
-+		return error;
-+
-+	data->reset_gpio = devm_gpiod_get_optional(&client->dev,
-+						   "reset", GPIOD_OUT_LOW);
-+	if (IS_ERR(data->reset_gpio)) {
-+		error = PTR_ERR(data->reset_gpio);
-+		dev_err(&client->dev, "Failed to get reset gpio: %d\n", error);
-+		return error;
-+	} else {
-+		dev_dbg(&client->dev, "Got Reset GPIO\n");
-+	  }
-+
-+	error = devm_request_threaded_irq(&client->dev, client->irq,
-+					  NULL, mxt_interrupt, IRQF_ONESHOT,
-+					  client->name, data);
- 	if (error) {
- 		dev_err(&client->dev, "Failed to register interrupt\n");
--		goto err_free_mem;
-+		return error;
- 	}
- 
- 	disable_irq(client->irq);
- 
-+	if(!(IS_ERR(data->reset_gpio))) {
-+		gpiod_direction_output(data->reset_gpio, 1);	/* GPIO in device tree is active-low */
-+		dev_dbg(&client->dev, "Direction is ouput\n");
-+	}
-+	
-+	if(!(IS_ERR(data->reset_gpio))) {
-+		dev_info(&client->dev, "Resetting chip\n");
-+		msleep(MXT_RESET_GPIO_TIME);
-+		gpiod_set_value(data->reset_gpio, 1);
-+		msleep(MXT_RESET_INVALID_CHG);
-+		gpiod_set_value(data->reset_gpio, 0);
-+	}
-+
- 	error = mxt_initialize(data);
- 	if (error)
--		goto err_free_irq;
-+		return error;
- 
--	error = sysfs_create_group(&client->dev.kobj, &mxt_attr_group);
--	if (error) {
--		dev_err(&client->dev, "Failure %d creating sysfs group\n",
--			error);
--		goto err_free_object;
--	}
-+	/* Removed the mxt_sys_init and mxt_debug_msg_init */
-+	/* out of mxt_initialize to avoid duplicate inits */
-+
-+	error = mxt_sysfs_init(data);
-+	if (error)
-+		return error;
-+
-+	error = mxt_debug_msg_init(data);
-+	if (error)
-+		return error;
-+
-+	mutex_init(&data->debug_msg_lock);
- 
- 	return 0;
- 
--err_free_object:
--	mxt_free_input_device(data);
--	mxt_free_object_table(data);
--err_free_irq:
--	free_irq(client->irq, data);
--err_free_mem:
--	kfree(data);
--	return error;
- }
- 
- static int mxt_remove(struct i2c_client *client)
- {
- 	struct mxt_data *data = i2c_get_clientdata(client);
- 
-+	mxt_debug_msg_remove(data);	
-+	mxt_sysfs_remove(data);
-+
-+	disable_irq(data->irq);
- 	sysfs_remove_group(&client->dev.kobj, &mxt_attr_group);
--	free_irq(data->irq, data);
- 	mxt_free_input_device(data);
- 	mxt_free_object_table(data);
--	kfree(data);
- 
- 	return 0;
- }
-@@ -2737,6 +4224,11 @@ static SIMPLE_DEV_PM_OPS(mxt_pm_ops, mxt_suspend, mxt_resume);
- 
- static const struct of_device_id mxt_of_match[] = {
- 	{ .compatible = "atmel,maxtouch", },
-+	/* Compatibles listed below are deprecated */
-+	{ .compatible = "atmel,qt602240_ts", },
-+	{ .compatible = "atmel,atmel_mxt_ts", },
-+	{ .compatible = "atmel,atmel_mxt_tp", },
-+	{ .compatible = "atmel,mXT224", },
- 	{},
- };
- MODULE_DEVICE_TABLE(of, mxt_of_match);
-@@ -2763,7 +4255,7 @@ MODULE_DEVICE_TABLE(i2c, mxt_id);
- static struct i2c_driver mxt_driver = {
- 	.driver = {
- 		.name	= "atmel_mxt_ts",
--		.of_match_table = of_match_ptr(mxt_of_match),
-+		.of_match_table = mxt_of_match,
- 		.acpi_match_table = ACPI_PTR(mxt_acpi_id),
- 		.pm	= &mxt_pm_ops,
- 	},

+ 0 - 26
board/GfA/Display001/linux_4.4.94_rt19/linux-031-setdf1307-output-and-correction-register.patch

@@ -1,26 +0,0 @@
-diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
-index ca2ab84..2e93def 100644
---- a/drivers/rtc/rtc-ds1307.c
-+++ b/drivers/rtc/rtc-ds1307.c
-@@ -404,7 +404,11 @@ static int ds1307_set_time(struct device *dev, struct rtc_time *t)
- 	buf[DS1307_REG_WDAY] = bin2bcd(t->tm_wday + 1);
- 	buf[DS1307_REG_MDAY] = bin2bcd(t->tm_mday);
- 	buf[DS1307_REG_MONTH] = bin2bcd(t->tm_mon + 1);
--
-+	
-+	/* set correction register to zero and output to off*/
-+	buf[7] = 0x80;
-+	buf[8] = 0x00;
-+	
- 	/* assume 20YY not 19YY */
- 	tmp = t->tm_year - 100;
- 	buf[DS1307_REG_YEAR] = bin2bcd(tmp);
-@@ -435,7 +439,7 @@ static int ds1307_set_time(struct device *dev, struct rtc_time *t)
- 	dev_dbg(dev, "%s: %7ph\n", "write", buf);
- 
- 	result = ds1307->write_block_data(ds1307->client,
--		ds1307->offset, 7, buf);
-+		ds1307->offset, 9, buf);
- 	if (result < 0) {
- 		dev_err(dev, "%s error %d\n", "write", result);
- 		return result;

+ 0 - 13
board/GfA/Display001/linux_4.4.94_rt19/linux-032-fix-gcc-8.patch

@@ -1,13 +0,0 @@
-diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
-index 35c9db85..cd8b5891 100644
---- a/arch/arm/include/asm/uaccess.h
-+++ b/arch/arm/include/asm/uaccess.h
-@@ -251,7 +251,7 @@ extern int __put_user_8(void *, unsigned long long);
- 	({								\
- 		unsigned long __limit = current_thread_info()->addr_limit - 1; \
- 		const typeof(*(p)) __user *__tmp_p = (p);		\
--		register const typeof(*(p)) __r2 asm("r2") = (x);	\
-+		register typeof(*(p)) __r2 asm("r2") = (x);	\
- 		register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
- 		register unsigned long __l asm("r1") = __limit;		\
- 		register int __e asm("r0");				\

+ 0 - 38
board/GfA/Display001/linux_4.4.94_rt19/linux-033-fix-syscall-return-binutils-2.29.patch

@@ -1,38 +0,0 @@
-diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
-index c3bd6cb..d9298bf 100644
---- a/arch/arm/kernel/entry-common.S
-+++ b/arch/arm/kernel/entry-common.S
-@@ -32,6 +32,7 @@
-  * features make this path too inefficient.
-  */
- ret_fast_syscall:
-+__ret_fast_syscall:
-  UNWIND(.fnstart	)
-  UNWIND(.cantunwind	)
- 	disable_irq_notrace			@ disable interrupts
-@@ -59,6 +60,7 @@ fast_work_pending:
-  * r0 first to avoid needing to save registers around each C function call.
-  */
- ret_fast_syscall:
-+__ret_fast_syscall:
-  UNWIND(.fnstart	)
-  UNWIND(.cantunwind	)
- 	str	r0, [sp, #S_R0 + S_OFF]!	@ save returned r0
-@@ -229,7 +231,7 @@ local_restart:
- 	bne	__sys_trace
- 
- 	cmp	scno, #NR_syscalls		@ check upper syscall limit
--	badr	lr, ret_fast_syscall		@ return address
-+	badr	lr, __ret_fast_syscall		@ return address
- 	ldrcc	pc, [tbl, scno, lsl #2]		@ call sys_* routine
- 
- 	add	r1, sp, #S_OFF
-@@ -251,7 +253,7 @@ local_restart:
- 9001:
- 	sub	lr, lr, #4
- 	str	lr, [sp, #S_PC]
--	b	ret_fast_syscall
-+	b	__ret_fast_syscall
- #endif
- ENDPROC(vector_swi)
- 

+ 0 - 218
board/GfA/Display001/linux_4.4.94_rt19/linux-034-edt-ft5x06-add-mg1-device.patch

@@ -1,218 +0,0 @@
-diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c
-index c2d6385..c2aaa20 100644
---- a/drivers/input/touchscreen/edt-ft5x06.c
-+++ b/drivers/input/touchscreen/edt-ft5x06.c
-@@ -62,6 +62,13 @@
- #define M12_REGISTER_NUM_Y		0x95
- #define M12_REGISTER_REPORT_RATE	0x88
- 
-+#define MG1_REGISTER_THRESHOLD		0x80
-+#define MG1_REGISTER_GAIN		0x92
-+#define MG1_REGISTER_OFFSET		0x93
-+#define MG1_REGISTER_NUM_X		0x94
-+#define MG1_REGISTER_NUM_Y		0x95
-+#define MG1_REGISTER_REPORT_RATE	0x88
-+
- #define NO_REGISTER			0xff
- 
- #define WORK_REGISTER_OPMODE		0x3c
-@@ -82,6 +89,7 @@ enum edt_ver {
- 	M06,
- 	M09,
- 	M12,
-+	MG1,
- };
- 
- struct edt_reg_addr {
-@@ -185,7 +193,7 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 	struct edt_ft5x06_ts_data *tsdata = dev_id;
- 	struct device *dev = &tsdata->client->dev;
- 	u8 cmd;
--	u8 rdbuf[29];
-+	u8 rdbuf[30];
- 	int i, type, x, y, id;
- 	int offset, tplen, datalen;
- 	int error;
-@@ -206,6 +214,13 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
- 		datalen = 29;
- 		break;
- 
-+	case MG1:	
-+		cmd = 0x02;
-+		offset = 1;
-+		tplen = 6;
-+		datalen = 29;
-+		break;
-+
- 	default:
- 		goto out;
- 	}
-@@ -298,6 +313,7 @@ static int edt_ft5x06_register_write(struct edt_ft5x06_ts_data *tsdata,
- 		
- 	case M12:
- 	case M09:
-+	case MG1:
- 		wrbuf[0] = addr;
- 		wrbuf[1] = value;
- 
-@@ -337,6 +353,7 @@ static int edt_ft5x06_register_read(struct edt_ft5x06_ts_data *tsdata,
- 
-         case M12:
- 	case M09:
-+	case MG1:
- 		wrbuf[0] = addr;
- 		error = edt_ft5x06_ts_readwrite(tsdata->client, 1,
- 						wrbuf, 1, rdbuf);
-@@ -359,10 +376,11 @@ struct edt_ft5x06_attribute {
- 	u8 addr_m06;
- 	u8 addr_m09;
- 	u8 addr_m12;
-+	u8 addr_mg1;
- };
- 
--#define EDT_ATTR(_field, _mode, _addr_m06, _addr_m09, _addr_m12,			\
--		_limit_low, _limit_high)				\
-+#define EDT_ATTR(_field, _mode, _addr_m06, _addr_m09, _addr_m12, 	\
-+		_addr_mg1, _limit_low, _limit_high)			\
- 	struct edt_ft5x06_attribute edt_ft5x06_attr_##_field = {	\
- 		.dattr = __ATTR(_field, _mode,				\
- 				edt_ft5x06_setting_show,		\
-@@ -371,6 +389,7 @@ struct edt_ft5x06_attribute {
- 		.addr_m06 = _addr_m06,					\
- 		.addr_m09 = _addr_m09,					\
- 		.addr_m12 = _addr_m12,					\
-+		.addr_mg1 = _addr_mg1,					\
- 		.limit_low = _limit_low,				\
- 		.limit_high = _limit_high,				\
- 	}
-@@ -405,6 +424,10 @@ static ssize_t edt_ft5x06_setting_show(struct device *dev,
- 		addr = attr->addr_m12;
- 		break;
- 
-+        case MG1:
-+		addr = attr->addr_mg1;
-+		break;
-+
- 	case M09:
- 		addr = attr->addr_m09;
- 		break;
-@@ -478,6 +501,10 @@ static ssize_t edt_ft5x06_setting_store(struct device *dev,
- 		addr = attr->addr_m12;
- 		break;
- 
-+        case MG1:
-+		addr = attr->addr_mg1;
-+		break;
-+
- 	case M09:
- 		addr = attr->addr_m09;
- 		break;
-@@ -504,13 +531,13 @@ out:
- }
- 
- static EDT_ATTR(gain, S_IWUSR | S_IRUGO, WORK_REGISTER_GAIN,
--		M09_REGISTER_GAIN, M12_REGISTER_GAIN, 0, 31);
-+		M09_REGISTER_GAIN, M12_REGISTER_GAIN, MG1_REGISTER_GAIN, 0, 31);
- static EDT_ATTR(offset, S_IWUSR | S_IRUGO, WORK_REGISTER_OFFSET,
--		M09_REGISTER_OFFSET, M12_REGISTER_OFFSET, 0, 31);
-+		M09_REGISTER_OFFSET, M12_REGISTER_OFFSET, MG1_REGISTER_OFFSET, 0, 31);
- static EDT_ATTR(threshold, S_IWUSR | S_IRUGO, WORK_REGISTER_THRESHOLD,
--		M09_REGISTER_THRESHOLD, M12_REGISTER_THRESHOLD, 1, 255);
-+		M09_REGISTER_THRESHOLD, M12_REGISTER_THRESHOLD, MG1_REGISTER_THRESHOLD, 1, 255);
- static EDT_ATTR(report_rate, S_IWUSR | S_IRUGO, WORK_REGISTER_REPORT_RATE,
--		M09_REGISTER_REPORT_RATE, M12_REGISTER_REPORT_RATE, 3, 14);
-+		M09_REGISTER_REPORT_RATE, M12_REGISTER_REPORT_RATE, MG1_REGISTER_REPORT_RATE, 3, 14);
- 
- static struct attribute *edt_ft5x06_attrs[] = {
- 	&edt_ft5x06_attr_gain.dattr.attr,
-@@ -545,7 +572,7 @@ static int edt_ft5x06_factory_mode(struct edt_ft5x06_ts_data *tsdata)
- 	}
- 
- 	/* mode register is 0x3c when in the work mode */
--	if ((tsdata->version == M09) || (tsdata->version == M12)) 
-+	if ((tsdata->version == M09) || (tsdata->version == M12) || (tsdata->version == MG1)) 
- 		goto m09_out;
- 
- 	error = edt_ft5x06_register_write(tsdata, WORK_REGISTER_OPMODE, 0x03);
-@@ -583,7 +610,7 @@ err_out:
- 	return error;
- 
- m09_out:
--	dev_err(&client->dev, "No factory mode support for M09 and M12\n");
-+	dev_err(&client->dev, "No factory mode support for M09, M12 and MG1\n");
- 	return -EINVAL;
- 
- }
-@@ -988,6 +1015,10 @@ static int edt_ft5x06_ts_identify(struct i2c_client *client,
- 	error = edt_ft5x06_ts_readwrite(client, 1, "\xbb",
- 					EDT_NAME_LEN - 1,
- 					rdbuf);
-+					
-+	printk(KERN_INFO "EDT-TC: %s: err %d rdbuf %s\n", __func__, 
-+		error, rdbuf);
-+
- 	if (error)
- 		return error;
- 
-@@ -1025,6 +1056,21 @@ static int edt_ft5x06_ts_identify(struct i2c_client *client,
- 
- 		snprintf(model_name, EDT_NAME_LEN, "EP0%i%i0M12",
- 			rdbuf[0] >> 4, rdbuf[0] & 0x0F);
-+	}else if (!(strncasecmp(rdbuf + 6, "MG1", 3))) {
-+		tsdata->version = MG1;
-+		error = edt_ft5x06_ts_readwrite(client, 1, "\xA6",
-+						2, rdbuf);
-+		if (error)
-+			return error;
-+
-+		strlcpy(fw_version, rdbuf, 2);
-+		error = edt_ft5x06_ts_readwrite(client, 1, "\xA8",
-+						1, rdbuf);
-+		if (error)
-+			return error;
-+
-+		snprintf(model_name, EDT_NAME_LEN, "EP0%i%i0MG1",
-+			rdbuf[0] >> 4, rdbuf[0] & 0x0F);
- 	} else {
- 		tsdata->version = M09;
- 
-@@ -1070,6 +1116,12 @@ static void edt_ft5x06_ts_get_dt_defaults(struct device_node *np,
-               EDT_GET_PROP(offset_M12, reg_addr->reg_offset);
-               break;
- 
-+	     case MG1:
-+	      EDT_GET_PROP(threshold_MG1, reg_addr->reg_threshold);
-+              EDT_GET_PROP(gain_MG1, reg_addr->reg_gain);
-+              EDT_GET_PROP(offset_MG1, reg_addr->reg_offset);
-+              break;
-+
- 	     case M09:
- 	      EDT_GET_PROP(threshold_M09, reg_addr->reg_threshold);
-               EDT_GET_PROP(gain_M09, reg_addr->reg_gain);
-@@ -1115,6 +1167,10 @@ edt_ft5x06_ts_get_parameters(struct edt_ft5x06_ts_data *tsdata)
- 						reg_addr->reg_report_rate);
- 	tsdata->num_x = edt_ft5x06_register_read(tsdata, reg_addr->reg_num_x);
- 	tsdata->num_y = edt_ft5x06_register_read(tsdata, reg_addr->reg_num_y);
-+	
-+        printk(KERN_INFO "EDT-TC:: %s ::VERS %d NUMX %d NUMY %d\n", __func__, 
-+        	tsdata->version, tsdata->num_x, tsdata->num_y);
-+        	
- 
- 	if(tsdata->max_x == 0)	
- 		tsdata->max_x = tsdata->num_x * 64;
-@@ -1147,6 +1203,15 @@ edt_ft5x06_ts_set_regs(struct edt_ft5x06_ts_data *tsdata)
- 		reg_addr->reg_num_y = M12_REGISTER_NUM_Y;
- 		break;
- 
-+        case MG1:
-+		reg_addr->reg_threshold = MG1_REGISTER_THRESHOLD;
-+		reg_addr->reg_report_rate = MG1_REGISTER_REPORT_RATE;
-+		reg_addr->reg_gain = MG1_REGISTER_GAIN;
-+		reg_addr->reg_offset = MG1_REGISTER_OFFSET;
-+		reg_addr->reg_num_x = MG1_REGISTER_NUM_X;
-+		reg_addr->reg_num_y = MG1_REGISTER_NUM_Y;
-+		break;
-+
- 	case M09:
- 		reg_addr->reg_threshold = M09_REGISTER_THRESHOLD;
- 		reg_addr->reg_report_rate = M09_REGISTER_REPORT_RATE;

+ 1 - 1
board/GfA/Display001/post-build_4.4.sh

@@ -82,5 +82,5 @@ mkdir -p $TARGETDIR/usr/lib/fonts
 cp $TARGETDIR/usr/share/fonts/dejavu/* $TARGETDIR/usr/lib/fonts
 cp $TARGETDIR/usr/share/fonts/liberation/* $TARGETDIR/usr/lib/fonts
 #------------------------------------
-echo "GfA-Display001 Rel 1.0 Build $BUILD ($BUILDDATE)" > $TARGETDIR/etc/BUILD
+echo "GfA-SOPINEA64 Rel 1.0 Build $BUILD ($BUILDDATE)" > $TARGETDIR/etc/BUILD
 

+ 0 - 0
board/GfA/Display001/rootfs/etc/init.d/S99pruuart → board/GfA/Display001/rootfs/etc/init.d/M99pruuart


+ 0 - 0
board/GfA/Display001/rootfs/etc/init.d/S99rtc_GfA → board/GfA/Display001/rootfs/etc/init.d/M99rtc_GfA


+ 0 - 34
board/GfA/Display001/rootfs/root/Display2To_10inch.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display002_10.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/Display2To_4_3inch.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display002_4.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/Display2To_7inch.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display002_7.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/Display2To_7inch_rs485.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display002_7_rs485.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/DisplayTo_10inch.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display001_10.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/DisplayTo_10inch_30Hz.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display001_10_30Hz.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/DisplayTo_15inch.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display001_15.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/DisplayTo_4_3inch.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display001_4.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/DisplayTo_4_3inch_2020.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display001_4_2020.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/DisplayTo_4_3inch_nopruss.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display001_4_nopruss.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/DisplayTo_5_7inch.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display001_5.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/DisplayTo_7inch.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display001_7.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/DisplayTo_7inch_30Hz.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display001_7_30Hz.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/DisplayTo_7inch_gain1.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display001_7_gain1.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

+ 0 - 34
board/GfA/Display001/rootfs/root/DisplayTo_7inch_rru.sh

@@ -1,34 +0,0 @@
-#!/bin/sh
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-
-from=/var/tmp/mnt/Display001_rru.dtb
-to=/var/tmp/mnt/Display001.dtb
-
-such="root=/dev/mmcblk1"
-grep -q $such /proc/cmdline
-if [ $? == 0 ]
-then
-	bootpart="/dev/mmcblk1p1"
-else
-	bootpart="/dev/mmcblk0p1"
-fi  
-
-echo "Bootpart == $bootpart"
-                
-mkdir /var/tmp/mnt
-mount $bootpart /var/tmp/mnt
-
-if [ -e $from ]
-then
-	echo "copy $from --> $to"
-	cp $from $to
-	sync
-	echo "pls. reboot !!"
-else
-	echo " no such file $from"
-fi
-
-umount /var/tmp/mnt 2> /dev/null
-rm -rf /var/tmp/mnt 2> /dev/null
-

BIN
board/GfA/Display001/rootfs/root/touchinteraction


+ 6 - 0
board/GfA/Display001/sopine/boot.cmd

@@ -0,0 +1,6 @@
+setenv bootargs console=ttyS0,115200 cma=256M earlyprintk root=/dev/mmcblk0p2 rootwait
+
+fatload mmc 0 $kernel_addr_r Image
+fatload mmc 0 $fdt_addr_r SOPINEA64.dtb
+
+booti $kernel_addr_r - $fdt_addr_r

+ 39 - 0
board/GfA/Display001/sopine/genimage.cfg

@@ -0,0 +1,39 @@
+image boot.vfat {
+	vfat {
+		files = {
+			"Image",
+			"SOPINEA64.dtb",
+			"boot.scr"
+		}
+	}
+	size = 64M
+}
+
+image sdcard.img {
+	hdimage {
+	}
+
+	partition spl {
+		in-partition-table = "no"
+		image = "sunxi-spl.bin"
+		offset = 8192
+	}
+
+	partition u-boot {
+		in-partition-table = "no"
+		image = "u-boot.itb"
+		offset = 40K
+		size = 1M # 1MB - 40K
+	}
+
+	partition boot {
+		partition-type = 0xC
+		bootable = "true"
+		image = "boot.vfat"
+	}
+
+	partition rootfs {
+		partition-type = 0x83
+		image = "rootfs.ext4"
+	}
+}

+ 38 - 0
board/GfA/Display001/sopine/readme.txt

@@ -0,0 +1,38 @@
+Intro
+=====
+
+This default configuration will allow you to start experimenting with the
+buildroot environment for the SoPine. With the current configuration
+it will bring-up the board, and allow access through the serial console.
+
+SoPINE link:
+https://www.pine64.org/?page_id=1491
+
+Wiki link:
+https://openedev.amarulasolutions.com/display/ODWIKI/SoPine
+
+This configuration uses U-Boot mainline and kernel mainline.
+
+How to build
+============
+
+    $ make pine64_sopine_defconfig
+
+    $ make
+
+Note: you will need access to the internet to download the required
+sources.
+
+How to write the SD card
+========================
+
+Once the build process is finished you will have an image called "sdcard.img"
+in the output/images/ directory.
+
+Copy the bootable "sdcard.img" onto an SD card with "dd":
+
+  $ sudo dd if=output/images/sdcard.img of=/dev/sdX
+  $ sudo sync
+
+Insert the micro SDcard in your SoPine and power it up. The console
+is on the serial line, 115200 8N1.

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác