Has anybody ported Chipsee 7 inch LCD on Linux kernel 3.14 or later ?
Is there any patch available for the same ?
If no patches any suggestion porting Chipsee LCD support from Linux kernel 3.8 to Linux kernel 3.14 ?
Update:
`/* * 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>; status = "okay"; ti,vcc-aux-disable-is-sleep; }; */ &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 */ >; }; chipsee_lcd_pins: pinmux_chipsee_lcd_pins { 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 */ >; }; pwm_bl_pins: pinmux_pwm_bl_pins { pinctrl-single,pins = < 0x48 0x06 /* gpmc_a2.ehrpwm1a, OMAP_MUX_MODE6 | 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 */ >; }; 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 */ >; }; chipsee_uart1_pins: pinmux_chipsee_uart1_pins { 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 */ >; }; }; /* * To consider voltage drop between PMIC and SoC, * tolerance value is reduced to 2% from 4% and * voltage value is increased as a precaution. */ /* kHz uV */ /* &cpus { &cpu@0 { operating-points = < 1000000 1350000 800000 1300000 600000 1112000 300000 969000 >; }; }; */ /{ ocp { uartt0:serial@44e09000 { status = "okay"; }; /* epwmss1: epwmss@48302000 { status = "okay"; ehrpwm1: ehrpwm@48302200 { 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 = <101>; }; index to the array above */ gpio-leds { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <&userled_pins>; led0 { label = "beaglebone:green:usr0"; gpios = <&gpio3 4 0>; linux,default-trigger = "heartbeat"; default-state = "off"; }; led1 { label = "beaglebone:green:usr1"; gpios = <&gpio3 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 = <&gpio1 7 0x1>; gpio-key,wakeup; autorepeat; }; button@2 { debounce_interval = <50>; linux,code = <106>; label = "right"; gpios = <&gpio2 28 0x1>; gpio-key,wakeup; autorepeat; }; button@3 { debounce_interval = <50>; linux,code = <103>; label = "up"; gpios = <&gpio2 16 0x1>; gpio-key,wakeup; autorepeat; }; button@4 { debounce_interval = <50>; linux,code = <108>; label = "down"; gpios = <&gpio2 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 = <&chipsee_gpio_pins>; /* declare your gpios */ cap_touch_int { gpio-name = "cap_touch_int"; gpio = <&gpio2 17 0x00>; input; }; buzzer { gpio-name = "buzzer"; gpio = <&gpio3 3 0x00>; output; init-low; }; }; rtc@44e3e000 { ti,system-power-controller; status = "okay"; }; panel { compatible = "tilcdc,panel"; pinctrl-names = "default"; pinctrl-0 = <&chipsee_lcd_pins>; panel-info { ac-bias = <255>; ac-bias-intrpt = <0>; dma-burst-sz = <16>; bpp = <32>; fdd = <0x80>; tft-alt-mode = <0>; stn-565-mode = <0>; mono-8bit-mode = <0>; sync-edge = <0>; sync-ctrl = <0>; raster-order = <1>; fifo-th = <0>; }; display-timings { native-mode = <&timing0>; timing0: 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>; }; }; }; fb { compatible = "ti,am33xx-tilcdc"; reg = <0x4830e000 0x1000>; interrupt-parent = <&intc>; interrupts = <36>; ti,hwmods = "lcdc"; ti,allow-non-reduced-blanking-modes; }; tscadc { compatible = "ti,ti-tscadc"; reg = <0x44e0d000 0x1000>; interrupt-parent = <&intc>; interrupts = <16>; ti,hwmods = "adc_tsc"; status = "okay"; tsc { ti,wires = <4>; ti,x-plate-resistance = <200>; ti,steps-to-config= <5>; ti,x-min= <0xCB>; ti,x-max= <0xFFF>; ti,x-inverted= <0>; ti,y-min= <0xC8>; ti,y-max= <0xFFF>; ti,y-inverted= <0>; }; adc { ti,adc-channels = <4 5 6 7>; }; }; sound { compatible = "ti,da830-evm-audio"; ti,model = "DA830 EVM"; ti,audio-codec = <&tlv320aic3x>; ti,mcasp-controller = <&mcasp0>; ti,codec-clock-rate = <12000000>; ti,audio-routing = "Headphone Jack", "HPLOUT", "Headphone Jack", "HPROUT", "MIC3L", "Mic Bias 2V", "MIC3R", "Mic Bias 2V", "Mic Bias 2V", "Mic Jack"; }; }; }; &mcasp0 { pinctrl-names = "default"; pinctrl-0 = <&chipsee_audio_pins>; status = "okay"; op-mode = <0>; /* MCASP_IIS_MODE */ tdm-slots = <2>; num-serializer = <16>; serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 >; tx-num-evt = <1>; rx-num-evt = <1>; }; &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>; ft5x06_ts: ft5x06_ts@38 { compatible = "ft5x06_ts"; reg = <0x38>; interrupt-parent = <&gpio2>; interrupts = <17>; }; tlv320aic3x: tlv320aic3x@1b { compatible = "ti,tlv320aic3x"; reg = <0x1b>; status = "okay"; }; }; #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; }; }; }; &uart1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&chipsee_uart1_pins>; }; &uart2 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&chipsee_uart2_pins>; }; &uart4 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&chipsee_uart4_pins>; }; &dcan0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&chipsee_dcan0_pins>; }; &cpsw_emac0 { phy_id = <&davinci_mdio>, <0>; }; &cpsw_emac1 { phy_id = <&davinci_mdio>, <1>; }; &mmc1 { pinctrl-names = "default"; pinctrl-0 = <&mmc1_pins>; bus-width = <0x4>; cd-gpios = <&gpio1 6 0>; /* gpio1 is misnamed, 0 == GPIO_ACTIVE_HIGH */ cd-inverted; status = "okay"; vmmc-supply = <&ldo3_reg>; ti,vcc-aux-disable-is-sleep; }; &edma { ti,edma-xbar-event-map = <32 12>, /* gpevt2 -> 12 */ <30 20>; /* xdma_event_intr2 -> 20 */ }; &sham { status = "okay"; }; &aes { status = "okay"; }; &usb { interface_type = <1>; power = <250>; status = "okay"; }; &ldo3_reg { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; /* rstctl { status = "okay"; compatible = "gpio-rctrl"; pinctrl-names = "default"; pinctrl-0 = <&rstctl_pins>; #reset-cells = <2>; gpios = <&gpio2 20 0x00>; gpio-names = "eMMC_RSTn"; }; */ &mmc1 { vmmc-supply = <&vmmcsd_fixed>; }; /* &mmc2 { vmmc-supply = <&vmmcsd_fixed>; bus-width = <8>; ti,non-removable; status = "disabled"; reset = <&rstctl 0 0>; reset-names = "eMMC_RSTn-CONSUMER"; }; */ `
After changing devicetree as above, i get following output,