mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-12-08 23:03:46 +00:00
3e0cec6cd8
Add mcp23s08 and tps65217 backlight drivers, which are required to get use of chiliboard LCD shield. mcp23s08 is a I2C GPIO expander needed to enable LCD. Add I2C GPIO expander needed to put LCD_EN pin high. Note, than previously that was not needed, because initial batch of LCD shields had pull-up resistors instead of pull-down. Update checksums and bump up pkgrel.
191 lines
6.4 KiB
Diff
191 lines
6.4 KiB
Diff
From e92c1ac1adb612ed061fd8d7e7fb1f85de18ad83 Mon Sep 17 00:00:00 2001
|
|
From: Mateusz Salamon <m.salamon@grinn-global.com>
|
|
Date: Fri, 20 May 2016 14:31:51 +0200
|
|
Subject: [PATCH] add lcd cape for chiliboard
|
|
|
|
---
|
|
arch/arm/boot/dts/Makefile | 1 +
|
|
arch/arm/boot/dts/am335x-chiliboard-lcd.dts | 159 ++++++++++++++++++++++++++++
|
|
2 files changed, 160 insertions(+)
|
|
create mode 100644 arch/arm/boot/dts/am335x-chiliboard-lcd.dts
|
|
|
|
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
|
|
index eff87a344566..905b65a31465 100644
|
|
--- a/arch/arm/boot/dts/Makefile
|
|
+++ b/arch/arm/boot/dts/Makefile
|
|
@@ -620,6 +620,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
|
|
am335x-bonegreen.dtb \
|
|
am335x-bonegreen-wireless.dtb \
|
|
am335x-chiliboard.dtb \
|
|
+ am335x-chiliboard-lcd.dtb \
|
|
am335x-cm-t335.dtb \
|
|
am335x-evm.dtb \
|
|
am335x-evmsk.dtb \
|
|
diff --git a/arch/arm/boot/dts/am335x-chiliboard-lcd.dts b/arch/arm/boot/dts/am335x-chiliboard-lcd.dts
|
|
new file mode 100644
|
|
index 000000000000..bea28f9e6163
|
|
--- /dev/null
|
|
+++ b/arch/arm/boot/dts/am335x-chiliboard-lcd.dts
|
|
@@ -0,0 +1,159 @@
|
|
+/*
|
|
+ * Copyright (C) 2016 Grinn Sp. z o.o.
|
|
+ * Author: Mateusz Salamon <m.salamon@grinn-global.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.
|
|
+ */
|
|
+#include "am335x-chiliboard.dts"
|
|
+
|
|
+/ {
|
|
+ panel {
|
|
+ compatible = "ti,tilcdc,panel";
|
|
+ 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 {
|
|
+ /* YEEBO YB-YG800480S01A-T-A0 */
|
|
+ 800x480p62 {
|
|
+ clock-frequency = <33300000>;
|
|
+ hactive = <800>;
|
|
+ vactive = <480>;
|
|
+ hfront-porch = <210>;
|
|
+ hback-porch = <46>;
|
|
+ hsync-len = <2>;
|
|
+ vback-porch = <23>;
|
|
+ vfront-porch = <22>;
|
|
+ vsync-len = <2>;
|
|
+ hsync-active = <1>;
|
|
+ vsync-active = <1>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&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 */
|
|
+ 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 */
|
|
+ >;
|
|
+ };
|
|
+};
|
|
+/* LCD */
|
|
+&lcdc {
|
|
+ status = "okay";
|
|
+ pinctrl-names = "default", "sleep";
|
|
+ pinctrl-0 = <&lcd_pins_default>;
|
|
+ pinctrl-1 = <&lcd_pins_sleep>;
|
|
+};
|
|
+
|
|
+&tscadc {
|
|
+ status = "okay";
|
|
+ tsc {
|
|
+ ti,wires = <4>;
|
|
+ ti,x-plate-resistance = <200>;
|
|
+ ti,coordinate-readouts = <5>;
|
|
+ ti,wire-config = <0x00 0x11 0x22 0x33>;
|
|
+ };
|
|
+
|
|
+ adc {
|
|
+ ti,adc-channels = <4 5 6 7>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&tps {
|
|
+ backlight {
|
|
+ compatible = "ti,tps65217-bl";
|
|
+ fdim = <100>; /* 100Hz,200Hz,500Hz,1000Hz */
|
|
+ isel = <1>; /* 1 - ISET1, 2 - ISET 2 */
|
|
+ default-brightness = <50>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&i2c0 {
|
|
+ mcp23008: mcp23008@20 {
|
|
+ compatible = "microchip,mcp23008";
|
|
+ gpio-controller;
|
|
+ #gpio-cells = <2>;
|
|
+ reg = <0x20>;
|
|
+
|
|
+ lcd_en {
|
|
+ gpio-hog;
|
|
+ gpios = <7 0>; /* TODO: ACTIVE_HIGH? */
|
|
+ output-high;
|
|
+ line-name = "lcd-en";
|
|
+ };
|
|
+ };
|
|
+};
|
|
--
|
|
2.15.0
|
|
|