* [PATCH 1/2] regulator: ltc3589: make IRQ optional
2016-01-20 12:29 PATCH [0/2] ARM: dts: am33xx: add support for Ka-Ro electronics TX48-7020 module Lothar Waßmann
@ 2016-01-20 12:29 ` Lothar Waßmann
2016-01-20 16:42 ` Mark Brown
2016-01-20 17:29 ` Grygorii Strashko
2016-01-20 12:29 ` [PATCH 2/2] ARM: dts: am33xx: add support for Ka-Ro electronics TX48-7020 module Lothar Waßmann
1 sibling, 2 replies; 19+ messages in thread
From: Lothar Waßmann @ 2016-01-20 12:29 UTC (permalink / raw)
To: linux-arm-kernel
On the AM335x SoC rev. <= 1.0 the "Input Function of the EXTINTn
Terminal is Inverted", for which the only remedy is to "Use an active
high interrupt source or use an external inverter to change the
polarity of any active low interrupt source."
This pin is used as IRQ pin for the LTC3589 PMIC on the Ka-Ro
electronics TX48 module. Make the IRQ optional in the driver and use a
polling routine instead if no IRQ is specified in DT.
Otherwise the driver will continuously generate interrupts and make
the system unusable.
Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de>
---
drivers/regulator/ltc3589.c | 49 +++++++++++++++++++++++++++++++++++++++++----
1 file changed, 45 insertions(+), 4 deletions(-)
diff --git a/drivers/regulator/ltc3589.c b/drivers/regulator/ltc3589.c
index 972c386..fff90cd 100644
--- a/drivers/regulator/ltc3589.c
+++ b/drivers/regulator/ltc3589.c
@@ -65,6 +65,8 @@
#define LTC3589_VCCR_SW3_GO BIT(4)
#define LTC3589_VCCR_LDO2_GO BIT(6)
+#define POLL_PERIOD 1000
+
enum ltc3589_variant {
LTC3589,
LTC3589_1,
@@ -97,6 +99,7 @@ struct ltc3589 {
enum ltc3589_variant variant;
struct ltc3589_regulator regulator_descs[LTC3589_NUM_REGULATORS];
struct regulator_dev *regulators[LTC3589_NUM_REGULATORS];
+ struct delayed_work poll_timer;
};
static const int ltc3589_ldo4[] = {
@@ -407,11 +410,10 @@ static const struct regmap_config ltc3589_regmap_config = {
.cache_type = REGCACHE_RBTREE,
};
-
-static irqreturn_t ltc3589_isr(int irq, void *dev_id)
+static inline void ltc3589_handle_irq(struct ltc3589 *ltc3589)
{
- struct ltc3589 *ltc3589 = dev_id;
- unsigned int i, irqstat, event;
+ u32 irqstat, event;
+ int i;
regmap_read(ltc3589->regmap, LTC3589_IRQSTAT, &irqstat);
@@ -431,6 +433,24 @@ static irqreturn_t ltc3589_isr(int irq, void *dev_id)
/* Clear warning condition */
regmap_write(ltc3589->regmap, LTC3589_CLIRQ, 0);
+}
+
+static void ltc3589_poll_func(struct work_struct *work)
+{
+ struct ltc3589 *ltc3589 = container_of(work, struct ltc3589,
+ poll_timer.work);
+ unsigned long timeout = msecs_to_jiffies(POLL_PERIOD);
+
+ ltc3589_handle_irq(ltc3589);
+
+ schedule_delayed_work(<c3589->poll_timer, timeout);
+}
+
+static irqreturn_t ltc3589_isr(int irq, void *dev_id)
+{
+ struct ltc3589 *ltc3589 = dev_id;
+
+ ltc3589_handle_irq(ltc3589);
return IRQ_HANDLED;
}
@@ -519,6 +539,16 @@ static int ltc3589_probe(struct i2c_client *client,
return ret;
}
}
+ if (client->irq <= 0) {
+ dev_warn(dev,
+ "No interrupt configured; poll for thermal shutdown and undervoltage events\n");
+
+ INIT_DELAYED_WORK(<c3589->poll_timer, ltc3589_poll_func);
+ schedule_delayed_work(<c3589->poll_timer,
+ msecs_to_jiffies(POLL_PERIOD));
+
+ return 0;
+ }
ret = devm_request_threaded_irq(dev, client->irq, NULL, ltc3589_isr,
IRQF_TRIGGER_LOW | IRQF_ONESHOT,
@@ -531,6 +561,16 @@ static int ltc3589_probe(struct i2c_client *client,
return 0;
}
+static int ltc3589_remove(struct i2c_client *client)
+{
+ struct ltc3589 *ltc3589 = i2c_get_clientdata(client);
+
+ if (client->irq <= 0)
+ cancel_delayed_work(<c3589->poll_timer);
+
+ return 0;
+}
+
static struct i2c_device_id ltc3589_i2c_id[] = {
{ "ltc3589", LTC3589 },
{ "ltc3589-1", LTC3589_1 },
@@ -544,6 +584,7 @@ static struct i2c_driver ltc3589_driver = {
.name = DRIVER_NAME,
},
.probe = ltc3589_probe,
+ .remove = ltc3589_remove,
.id_table = ltc3589_i2c_id,
};
module_i2c_driver(ltc3589_driver);
--
2.1.4
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH 2/2] ARM: dts: am33xx: add support for Ka-Ro electronics TX48-7020 module
2016-01-20 12:29 PATCH [0/2] ARM: dts: am33xx: add support for Ka-Ro electronics TX48-7020 module Lothar Waßmann
2016-01-20 12:29 ` [PATCH 1/2] regulator: ltc3589: make IRQ optional Lothar Waßmann
@ 2016-01-20 12:29 ` Lothar Waßmann
2016-01-20 16:32 ` Robert Nelson
1 sibling, 1 reply; 19+ messages in thread
From: Lothar Waßmann @ 2016-01-20 12:29 UTC (permalink / raw)
To: linux-arm-kernel
The TX48-7020 is a Computer On Module manufactured by
Ka-Ro electronics GmbH with the following characteristics:
Processor TI Sitara AM3354 720 MHz ARM Cortex-A8
RAM 256MB DDR3 SDRAM
ROM 128MB NAND Flash
RTC DS1339 Real Time Clock
Power supply Single 3.1V to 5.5V
Size 26mm SO-DIMM
Temp. Range -40?C..85?C
Signed-off-by: Lothar Wa?mann <LW@KARO-electronics.de>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/am335x-tx48.dts | 917 ++++++++++++++++++++++++++++++++++++++
2 files changed, 918 insertions(+)
create mode 100644 arch/arm/boot/dts/am335x-tx48.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index a4a6d70..13f7e9a 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -483,6 +483,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
am335x-shc.dtb \
am335x-sbc-t335.dtb \
am335x-sl50.dtb \
+ am335x-tx48.dtb \
am335x-wega-rdk.dtb
dtb-$(CONFIG_ARCH_OMAP4) += \
omap4-duovero-parlor.dtb \
diff --git a/arch/arm/boot/dts/am335x-tx48.dts b/arch/arm/boot/dts/am335x-tx48.dts
new file mode 100644
index 0000000..7ad92c9
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-tx48.dts
@@ -0,0 +1,917 @@
+/*
+ * Copyright (C) 2013 Ka-Ro electronics GmbH - http://www.karo-electronics.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 <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+ model = "Ka-Ro electronics TX48 module (TI AM335x)";
+ compatible = "karo,am335x-tx48", "ti,am33xx";
+
+ aliases {
+ can0 = &dcan0;
+ can1 = &dcan1;
+ display = &display;
+ lcdif_23bit_pins_a = &pinctrl_lcd_23bit;
+ lcdif_24bit_pins_a = &pinctrl_lcd_24bit;
+ reg_can_xcvr = ®_can_xcvr;
+ usbhost = &usb1;
+ usbotg = &usb0;
+ };
+
+ cpus {
+ cpu at 0 {
+ cpu0-supply = <&sw2_reg>;
+ };
+ };
+
+ clocks {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ mclk: clock at 0 {
+ compatible = "fixed-clock";
+ reg = <0>;
+ #clock-cells = <0>;
+ clock-frequency = <26000000>;
+ };
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0 0>; /* will be set up by bootloader */
+ };
+
+ backlight: backlight at 0 {
+ compatible = "pwm-backlight";
+ pwms = <&ehrpwm0 0 500000 PWM_POLARITY_INVERTED>;
+ power-supply = <&bb_out_reg>;
+ /*
+ * a poor man's way to create a 1:1 relationship between
+ * the PWM value and the actual duty cycle
+ */
+ 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 = <50>;
+ };
+
+ display: panel {
+ compatible = "ti,tilcdc,panel";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lcd_24bit &pinctrl_lcd_pwr &pinctrl_lcd_rst>;
+ enable-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
+ status = "okay";
+
+ panel-info {
+ ac-bias = <255>;
+ ac-bias-intrpt = <0>;
+ dma-burst-sz = <16>;
+ bpp = <24>;
+ fdd = <0x80>;
+ sync-edge = <1>;
+ sync-ctrl = <1>;
+ raster-order = <0>;
+ fifo-th = <0>;
+ invert-pxl-clk;
+ };
+
+ display-timings {
+ VGA {
+ clock-frequency = <25200000>;
+ hactive = <640>;
+ vactive = <480>;
+ hback-porch = <48>;
+ hsync-len = <96>;
+ hfront-porch = <16>;
+ vback-porch = <31>;
+ vsync-len = <2>;
+ vfront-porch = <12>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <1>;
+ };
+
+ ETV570 {
+ clock-frequency = <25200000>;
+ hactive = <640>;
+ vactive = <480>;
+ hback-porch = <114>;
+ hsync-len = <30>;
+ hfront-porch = <16>;
+ vback-porch = <32>;
+ vsync-len = <3>;
+ vfront-porch = <10>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <1>;
+ };
+
+ ET0350 {
+ clock-frequency = <6413760>;
+ hactive = <320>;
+ vactive = <240>;
+ hback-porch = <34>;
+ hsync-len = <34>;
+ hfront-porch = <20>;
+ vback-porch = <15>;
+ vsync-len = <3>;
+ vfront-porch = <4>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <1>;
+ };
+
+ ET0430 {
+ clock-frequency = <9009000>;
+ hactive = <480>;
+ vactive = <272>;
+ hback-porch = <2>;
+ hsync-len = <41>;
+ hfront-porch = <2>;
+ vback-porch = <2>;
+ vsync-len = <10>;
+ vfront-porch = <2>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <1>;
+ };
+
+ ET0500 {
+ clock-frequency = <33264000>;
+ hactive = <800>;
+ vactive = <480>;
+ hback-porch = <88>;
+ hsync-len = <128>;
+ hfront-porch = <40>;
+ vback-porch = <33>;
+ vsync-len = <2>;
+ vfront-porch = <10>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <1>;
+ };
+
+ ET0700 { /* same as ET0500 */
+ clock-frequency = <33264000>;
+ hactive = <800>;
+ vactive = <480>;
+ hback-porch = <88>;
+ hsync-len = <128>;
+ hfront-porch = <40>;
+ vback-porch = <33>;
+ vsync-len = <2>;
+ vfront-porch = <10>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <1>;
+ };
+
+ ETQ570 {
+ clock-frequency = <6596040>;
+ hactive = <320>;
+ vactive = <240>;
+ hback-porch = <38>;
+ hsync-len = <30>;
+ hfront-porch = <30>;
+ vback-porch = <16>;
+ vsync-len = <3>;
+ vfront-porch = <4>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <1>;
+ };
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_led>;
+
+ heartbeat {
+ label = "heartbeat";
+ gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "heartbeat";
+ };
+ };
+
+ matrix_keypad: matrix_keypad at 0 {
+ compatible = "gpio-matrix-keypad";
+ debounce-delay-ms = <5>;
+ col-scan-delay-us = <2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_matrix_keypad0>;
+ linux,wakeup;
+
+ row-gpios = <
+ &gpio0 19 GPIO_ACTIVE_HIGH
+ &gpio0 20 GPIO_ACTIVE_HIGH
+ &gpio2 1 GPIO_ACTIVE_HIGH
+ &gpio2 0 GPIO_ACTIVE_HIGH
+ >;
+
+ col-gpios = <
+ &gpio2 26 GPIO_ACTIVE_HIGH
+ &gpio3 17 GPIO_ACTIVE_HIGH
+ &gpio0 7 GPIO_ACTIVE_HIGH
+ &gpio1 28 GPIO_ACTIVE_HIGH
+ >;
+
+ linux,keymap = <
+ 0x00000074 /* POWER */
+ >;
+ };
+
+ regulators {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ reg_lcd_pwr: regulator at 0 {
+ compatible = "regulator-fixed";
+ reg = <0>;
+ regulator-name = "LCD power";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lcd_pwr>;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio1 22 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ reg_can_xcvr: regulator at 2 {
+ compatible = "regulator-fixed";
+ reg = <2>;
+ regulator-name = "can-xcvr";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_can_xcvr>;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio0 22 GPIO_ACTIVE_LOW>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ reg_usbotg: regulator at 3 {
+ compatible = "regulator-fixed";
+ reg = <3>;
+ regulator-name = "usbotg-vbus";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reg_usbotg>;
+ gpio = <&gpio2 30 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+ };
+
+ sound {
+ compatible = "ti,am335x-tx48-audio";
+ ti,model = "TX48-SGTL5000";
+ ti,audio-codec = <&sgtl5000>;
+ ti,mcasp-controller = <&mcasp1>;
+ };
+};
+
+&am33xx_pinmux {
+ cpsw_default: cpsw_default {
+ pinctrl-single,pins = <
+ /* Slave 1 */
+ 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs_dv */
+ 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */
+ 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */
+ 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */
+ 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */
+ 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */
+ 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */
+ 0x144 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* rmii1_ref_clk.rmii1_refclk */
+ 0x1e4 (PIN_INPUT_PULLUP | MUX_MODE7) /* emu0.gpio3_7 */
+ 0x1e8 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* emu1.gpio3_8 */
+ >;
+ };
+
+ cpsw_sleep: cpsw_sleep {
+ pinctrl-single,pins = <
+ /* Slave 1 reset value */
+ 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ 0x1e4 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ 0x1e8 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ >;
+ };
+
+ davinci_mdio_default: davinci_mdio_default {
+ pinctrl-single,pins = <
+ /* MDIO */
+ 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
+ 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
+ >;
+ };
+
+ davinci_mdio_sleep: davinci_mdio_sleep {
+ pinctrl-single,pins = <
+ /* MDIO reset value */
+ 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
+ >;
+ };
+
+ pinctrl_can_xcvr: can-xcvr-grp {
+ pinctrl-single,pins = <
+ 0x20 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad8.gpio0_22 CAN Transceiver Enable */
+ >;
+ };
+
+ pinctrl_cspi0: cspi0grp-1 {
+ pinctrl-single,pins = <
+ 0x15c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 CSPI_SS */
+ 0x160 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* spi0_cs1.spi0_cs1 CSPI_SS*/
+ 0x154 (PIN_OUTPUT | MUX_MODE0) /* spi0_d0.spi0_d0 CSPI_MOSI*/
+ 0x158 (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 CSPI_MISO*/
+ 0x150 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* spi0_sclk.spi0_sclk CSPI_SCLK */
+ >;
+ };
+
+ pinctrl_dcan0: dcan0grp-1 {
+ pinctrl-single,pins = <
+ 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd3.dcan0_tx TXCAN */
+ 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_txd2.dcan0_rx RXCAN */
+ >;
+ };
+
+ pinctrl_dcan1: dcan1grp-1 { // USB-OTG / 2nd CAN
+ pinctrl-single,pins = <
+ 0x100 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mmc0_clk.dcan1_tx USBOTG_VBUSEN */
+ 0x104 (PIN_INPUT_PULLUP | MUX_MODE4) /* mmc0_cmd.dcan1_rx #USBOTG_OC */
+ >;
+ };
+
+ pinctrl_gpmc_1: gpmcgrp-1 {
+ pinctrl-single,pins = <
+ 0x00 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
+ 0x04 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
+ 0x08 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
+ 0x0c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
+ 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
+ 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
+ 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
+ 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
+ 0x9c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_ben0_cle.gpmc_ben0_cle */
+ 0x90 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
+ 0x7c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
+ 0x94 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_oe_re.gpmc_oe_re */
+ 0x98 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_wen.gpmc_wen */
+ 0x74 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* gpmc_wpn.gpmc_wpn */
+ 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
+ >;
+ };
+
+ pinctrl_i2c0_1: i2c0grp-1 {
+ pinctrl-single,pins = <
+ 0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda I2C_DATA */
+ 0x18c (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl I2C_CLK */
+ >;
+ };
+
+ pinctrl_lcd_pwr: lcdpwrgrp {
+ pinctrl-single,pins = <
+ 0x58 (PIN_OUTPUT | MUX_MODE7) /* gpmc_a6.gpio1_22 */
+ >;
+ };
+
+ pinctrl_lcd_rst: lcdrstgrp {
+ pinctrl-single,pins = <
+ 0x4c (PIN_OUTPUT | MUX_MODE7) /* gpmc_a3.gpio1_19 */
+ >;
+ };
+
+ pinctrl_lcd_23bit: lcd0grp1 {
+ pinctrl-single,pins = <
+ 0x2c (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad11.lcd_data20 LD1 */
+ 0x38 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad14.lcd_data17 LD2 */
+ 0xcc (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data11.lcd_data11 LD3 */
+ 0xd0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data12.lcd_data12 LD4 */
+ 0xd4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data13.lcd_data13 LD5 */
+ 0xd8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data14.lcd_data14 LD6 */
+ 0xdc (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data15.lcd_data15 LD7 */
+ 0x24 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad9.lcd_data22 LD8 */
+ 0x30 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad12.lcd_data19 LD9 */
+ 0xb4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data5.lcd_data5 LD10 */
+ 0xb8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data6.lcd_data6 LD11 */
+ 0xbc (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data7.lcd_data7 LD12 */
+ 0xc0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data8.lcd_data8 LD13 */
+ 0xc4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data9.lcd_data9 LD14 */
+ 0xc8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data10.lcd_data10 LD15 */
+ 0x28 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad10.lcd_data21 LD16 */
+ 0x34 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad13.lcd_data18 LD17 */
+ 0x3c (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad15.lcd_data16 LD18 */
+ 0xa0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data0.lcd_data0 LD19 */
+ 0xa4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data1.lcd_data1 LD20 */
+ 0xa8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data2.lcd_data2 LD21 */
+ 0xac (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data3.lcd_data3 LD22 */
+ 0xb0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data4.lcd_data4 LD23 */
+ 0xe4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_hsync.lcd_hsync HSYNC */
+ 0xe0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_vsync.lcd_vsync VSYNC */
+ 0xec (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en OE_ACD */
+ 0xe8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_pclk.lcd_pclk LSCLK */
+ >;
+ };
+
+ pinctrl_lcd_24bit: lcd0grp2 {
+ pinctrl-single,pins = <
+ 0x20 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad8.lcd_data23 LD0 */
+ 0x2c (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad11.lcd_data20 LD1 */
+ 0x38 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad14.lcd_data17 LD2 */
+ 0xcc (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data11.lcd_data11 LD3 */
+ 0xd0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data12.lcd_data12 LD4 */
+ 0xd4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data13.lcd_data13 LD5 */
+ 0xd8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data14.lcd_data14 LD6 */
+ 0xdc (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data15.lcd_data15 LD7 */
+ 0x24 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad9.lcd_data22 LD8 */
+ 0x30 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad12.lcd_data19 LD9 */
+ 0xb4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data5.lcd_data5 LD10 */
+ 0xb8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data6.lcd_data6 LD11 */
+ 0xbc (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data7.lcd_data7 LD12 */
+ 0xc0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data8.lcd_data8 LD13 */
+ 0xc4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data9.lcd_data9 LD14 */
+ 0xc8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data10.lcd_data10 LD15 */
+ 0x28 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad10.lcd_data21 LD16 */
+ 0x34 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad13.lcd_data18 LD17 */
+ 0x3c (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_ad15.lcd_data16 LD18 */
+ 0xa0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data0.lcd_data0 LD19 */
+ 0xa4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data1.lcd_data1 LD20 */
+ 0xa8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data2.lcd_data2 LD21 */
+ 0xac (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data3.lcd_data3 LD22 */
+ 0xb0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_data4.lcd_data4 LD23 */
+ 0xe4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_hsync.lcd_hsync HSYNC */
+ 0xe0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_vsync.lcd_vsync VSYNC */
+ 0xec (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en OE_ACD */
+ 0xe8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_pclk.lcd_pclk LSCLK */
+ >;
+ };
+
+ pinctrl_led: ledgrp {
+ pinctrl-single,pins = <
+ 0x68 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a10.gpio1_26 */
+ >;
+ };
+
+ pinctrl_matrix_keypad0: matrix-keypad0 {
+ pinctrl-single,pins = <
+ 0xf0 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* mmc0_dat3.gpio2_26 KP_COL0 */
+ 0x19c (PIN_OUTPUT_PULLUP | MUX_MODE7) /* mcasp0_ahclkr.gpio3_17 KP_COL1 */
+ 0x164 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* ecap0_in_pwm0_out.gpio0_7 KP_COL2 */
+ 0x78 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_ben1.gpio1_28 KP_COL3 */
+ 0x1b0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* xdma_event_intr0.gpio0_19 KP_ROW0 */
+ 0x1b4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* xdma_event_intr1.gpio0_20 KP_ROW1 */
+ 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_clk.gpio2_1 KP_ROW2 */
+ 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn3.gpio2_0 KP_ROW3 */
+ >;
+ };
+
+ pinctrl_mmc1: mmc1grp-1 {
+ pinctrl-single,pins = <
+ 0x194 (PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_fsx.gpio3_15 SD1_CD */
+ 0x12c (PIN_INPUT_PULLUP | MUX_MODE4) /* mii1_tx_clk.mmc1_dat0 SD1_DAT0 */
+ 0x130 (PIN_INPUT_PULLUP | MUX_MODE4) /* mii1_rx_clk.mmc1_dat1 SD1_DAT1 */
+ 0x134 (PIN_INPUT_PULLUP | MUX_MODE4) /* mii1_rxd3.mmc1_dat2 SD1_DAT2 */
+ 0x138 (PIN_INPUT_PULLUP | MUX_MODE4) /* mii1_rxd2.mmc1_dat3 SD1_DAT3 */
+ 0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_cs2.mmc1_cmd SD1_CMD */
+ 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_cs1.mmc1_clk SD1_CLK */
+ >;
+ };
+
+ pinctrl_ow0: ow0grp-1 {
+ pinctrl-single,pins = <
+ 0xf4 (PIN_INPUT_PULLUP | MUX_MODE7) /* mmc0_dat2.gpio2_27 OWDAT */
+ >;
+ };
+
+ pinctrl_pwm0: pwm0grp-11 {
+ pinctrl-single,pins = <
+ 0x190 (PIN_OUTPUT_PULLUP | MUX_MODE1) /* mcasp0_aclkx.ehrpwm0a PWM */
+ >;
+ };
+
+ pinctrl_reg_usbotg: reg-usbotggrp-1 {
+ pinctrl-single,pins = <
+ 0x100 (PIN_OUTPUT | MUX_MODE7) /* mmc0_clk.gpio2_30 USBOTG_VBUSEN */
+ 0x104 (PIN_INPUT_PULLUP | MUX_MODE7) /* mmc0_cmd.gpio2_31 #USBOTG_OC */
+ >;
+ };
+
+ pinctrl_ssi_1: ssi1grp-1 {
+ pinctrl-single,pins = <
+ 0x1a8 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_axr1.mcasp1_axr0 SSI1_RXD */
+ 0x1ac (PIN_OUTPUT | MUX_MODE3) /* mcasp0_ahclkx.mcasp1_axr1 SSI1_TXD */
+ 0x1a0 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_aclkr.mcasp1_aclkx SSI1_CLK */
+ 0x1a4 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcasp0_fsr.mcasp1_fsx SSI1_FS */
+ >;
+ };
+
+ pinctrl_tsc2007: tsc2007grp-1 {
+ pinctrl-single,pins = <
+ 0x198 (PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_axr0.gpio3_16 SSI1_INT */
+ >;
+ };
+
+ pinctrl_uart0_1: uart0grp-1 {
+ pinctrl-single,pins = <
+ 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd TXD */
+ 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd RXD */
+ 0x168 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_ctsn.uart0_ctsn RTS/CTS IN */
+ 0x16c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_rtsn.uart0_rtsn CTS/RTS OUT */
+ >;
+ };
+
+ pinctrl_uart1_1: uart1grp-1 {
+ pinctrl-single,pins = <
+ 0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd TXD */
+ 0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd RXD */
+ 0x178 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_ctsn.uart1_ctsn RTS/CTS IN */
+ 0x17c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn CTS/RTS OUT */
+ >;
+ };
+
+ pinctrl_uart5_1: uart5grp-1 {
+ pinctrl-single,pins = <
+ 0x118 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* mii1_rxdv.uart5_txd TXD */
+ 0x108 (PIN_INPUT_PULLUP | MUX_MODE3) /* mii1_col.uart5_rxd RXD */
+ 0xf8 (PIN_INPUT_PULLUP | MUX_MODE2) /* mmc0_dat1.uart5_ctsn RTS/CTS IN */
+ 0xfc (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mmc0_dat0.uart5_rtsn CTS/RTS OUT */
+ >;
+ };
+
+ pinctrl_usbhost: usbhostgrp-1 {
+ pinctrl-single,pins = <
+ 0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* usb1_drvvbus.usb1_drvvbus USBH_VBUSEN */
+ 0x21c (PIN_INPUT_PULLUP | MUX_MODE7) /* usb0_drvvbus.gpio0_18 #USBH_OC */
+ >;
+ };
+};
+
+&cppi41dma {
+ status = "okay";
+};
+
+&cpsw_emac0 {
+ phy_id = <&davinci_mdio>, <0>;
+ phy-mode = "rmii";
+};
+
+&cpsw_emac1 {
+ phy_id = <&davinci_mdio>, <1>;
+ phy-mode = "rmii";
+ status = "disabled";
+};
+
+&davinci_mdio {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&davinci_mdio_default>;
+ pinctrl-1 = <&davinci_mdio_sleep>;
+ status = "okay";
+};
+
+&dcan0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_dcan0>;
+ status = "okay";
+};
+
+&dcan1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_dcan1>;
+ status = "okay";
+};
+
+&ehrpwm0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pwm0>;
+ status = "okay";
+};
+
+&elm {
+ status = "okay";
+};
+
+&epwmss0 {
+ status = "okay";
+};
+
+&gpio0 {
+ ti,gpio-always-on;
+};
+
+&gpio1 {
+ ti,gpio-always-on;
+};
+
+&gpio2 {
+ ti,gpio-always-on;
+};
+
+&gpio3 {
+ ti,gpio-always-on;
+};
+
+&gpmc {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpmc_1>;
+ ranges = <0 0 0x08000000 0x2000>; /* CS0: NAND */
+ status = "okay";
+
+ nand at 0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0 0 0>;
+ nand-bus-width = <8>;
+ nand-on-flash-bbt;
+ ti,elm-id = <&elm>;
+ ti,nand-ecc-opt = "bch8";
+ ti,nand-xfer-type = "polled";
+ gpmc,device-nand = "true";
+ gpmc,device-width = <1>;
+ gpmc,sync-clk-ps = <0>;
+ gpmc,cs-on-ns = <0>;
+ gpmc,cs-rd-off-ns = <20>;
+ gpmc,cs-wr-off-ns = <25>;
+ gpmc,adv-on-ns = <0>;
+ gpmc,adv-rd-off-ns = <0>;
+ gpmc,adv-wr-off-ns = <0>;
+ gpmc,we-off-ns = <10>;
+ gpmc,oe-off-ns = <25>;
+ gpmc,access-ns = <25>;
+ gpmc,rd-cycle-ns = <30>;
+ gpmc,wr-cycle-ns = <30>;
+ gpmc,wr-access-ns = <15>;
+ gpmc,wr-data-mux-bus-ns = <0>;
+ gpmc,bus-turnaround-ns = <100>;
+ gpmc,cycle2cycle-delay-ns = <100>;
+ gpmc,cycle2cycle-samecsen;
+ gpmc,clk-activation-ns = <0>;
+ gpmc,wait-monitoring-ns = <0>;
+ gpmc,wait-on-read = "true";
+ gpmc,wait-on-write = "true";
+
+ /* partitions will be filled in by U-Boot */
+ };
+};
+
+&i2c0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c0_1>;
+ status = "okay";
+
+ rtc1: ds1339 at 68 {
+ compatible = "dallas,ds1339";
+ reg = <0x68>;
+ };
+
+ pmic: lt3589 at 34 {
+ compatible = "lltc,ltc3589-2";
+ reg = <0x34>;
+
+ regulators {
+ sw1_reg: sw1 {
+ regulator-min-microvolt = <591930>;
+ regulator-max-microvolt = <1224671>;
+ lltc,fb-voltage-divider = <100000 158000>;
+ regulator-name = "vdd_core";
+ regulator-ramp-delay = <7000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ sw2_reg: sw2 {
+ regulator-min-microvolt = <704544>;
+ regulator-max-microvolt = <1363627>;
+ lltc,fb-voltage-divider = <180000 220000>;
+ regulator-name = "vdd_mpu";
+ regulator-ramp-delay = <7000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ sw3_reg: sw3 {
+ regulator-min-microvolt = <1364186>;
+ regulator-max-microvolt = <1670426>;
+ lltc,fb-voltage-divider = <270000 220000>;
+ regulator-name = "vdds_ddr";
+ regulator-ramp-delay = <7000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ bb_out_reg: bb-out {
+ regulator-min-microvolt = <3387341>;
+ regulator-max-microvolt = <3387341>;
+ lltc,fb-voltage-divider = <511000 158000>;
+ regulator-name = "vddio";
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ldo1_reg: ldo1 {
+ regulator-min-microvolt = <1781818>;
+ regulator-max-microvolt = <1781818>;
+ lltc,fb-voltage-divider = <270000 220000>;
+ regulator-name = "vdds_rtc";
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ldo2_reg: ldo2 {
+ regulator-min-microvolt = <1799991>;
+ regulator-max-microvolt = <1833324>;
+ lltc,fb-voltage-divider = <300000 180000>;
+ regulator-name = "vdd_etn";
+ regulator-ramp-delay = <7000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ldo3_reg: ldo3 {
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-name = "vdds";
+ };
+
+ ldo4_reg: ldo4 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <3200000>;
+ regulator-name = "vpp";
+ };
+ };
+ };
+
+ sgtl5000: sgtl5000 at 0a {
+ compatible = "fsl,sgtl5000";
+ reg = <0x0a>;
+ VDDA-supply = <&bb_out_reg>;
+ VDDIO-supply = <&bb_out_reg>;
+ clocks = <&mclk>;
+ };
+
+ touchscreen: tsc2007 at 48 {
+ compatible = "ti,tsc2007";
+ reg = <0x48>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <16 2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_tsc2007>;
+ gpios = <&gpio3 16 GPIO_ACTIVE_LOW>;
+ ti,x-plate-ohms = <660>;
+ };
+
+ polytouch: edt-ft5x06 at 38 {
+ compatible = "edt,edt-ft5x06";
+ reg = <0x38>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <17 2>;
+ reset-gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&lcdc {
+ status = "okay";
+};
+
+&mac {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&cpsw_default>;
+ pinctrl-1 = <&cpsw_sleep>;
+ status = "okay";
+};
+
+&mcasp1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_ssi_1>;
+ op-mode = <0>; /* MCASP_IIS_MODE */
+ tdm-slots = <2>;
+ serial-dir = <2 1 0 0>; /* 0: INACTIVE, 1: TX, 2: RX */
+ tx-num-evt = <32>;
+ rx-num-evt = <32>;
+ status = "okay";
+};
+
+&mmc1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_mmc1>;
+ cd-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
+ vmmc-supply = <&bb_out_reg>;
+ status = "okay";
+};
+
+&phy_sel {
+ rmii-clock-ext;
+};
+
+&spi0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_cspi0>;
+ ti,spi-num-cs = <2>;
+ ti,pindir-d0-out-d1-in;
+ status = "okay";
+
+ spidev0: spi at 0 {
+ compatible = "spidev";
+ reg = <0>;
+ spi-max-frequency = <375000>;
+ };
+
+ spidev1: spi at 1 {
+ compatible = "spidev";
+ reg = <1>;
+ spi-max-frequency = <375000>;
+ };
+};
+
+&tscadc {
+ status = "okay";
+
+ tsc {
+ ti,wires = <4>;
+ ti,x-plate-resistance = <660>;
+ ti,coordinate-readouts = <5>;
+ ti,wire-config = <0x01 0x10 0x23 0x32>;
+ };
+
+ adc {
+ ti,adc-channels = <4 5 6 7>;
+ };
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart0_1>;
+ status = "okay";
+};
+
+&uart1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart1_1>;
+ status = "okay";
+};
+
+&uart5 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart5_1>;
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+};
+
+&usb_ctrl_mod {
+ status = "okay";
+};
+
+&usb0 {
+ dr_mode = "peripheral";
+ status = "okay";
+};
+
+&usb0_phy {
+ vcc-supply = <®_usbotg>;
+ status = "okay";
+};
+
+&usb1 {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&usb1_phy {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usbhost>;
+ status = "okay";
+};
--
2.1.4
^ permalink raw reply related [flat|nested] 19+ messages in thread