Chipsee 7 inch LCD support in Linux kernel 3.14

匿名 (未验证) 提交于 2019-12-03 10:24:21

问题:

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,

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!