ARM: OMAP2+: dts: cm-t335: initial support
cover ARM: OMAP2+: dts: cm-t335: initial support
Add basic support for CompuLab cm-t335 module based on AM335X SoC.
CM-T335 is a tiny computer-on-module (CoM) / system-on-module (SoM) The module is built around the Texas Instruments Sitara AM3352/4 system-on-chip.
The CPU is supplemented with up-to 512MB DDR3 and up-to 1GB of on-board NAND storage, WiFi connected to SPI, Bluetooth, Analog audio, Gigabit Ethernet, CAN bus.
Ilya Ledvich (6):
ARM: OMAP2+: dts: cm-t335: add initial support
ARM: OMAP2+: dts: cm-t335: add basic support for I2C
ARM: OMAP2+: dts: cm-t335: add support for NAND flash
ARM: OMAP2+: dts: cm-t335: add support for MMC
ARM: OMAP2+: dts: cm-t335: add support for network device
ARM: OMAP2+: dts: cm-t335: add support for PWM backlight
.../devicetree/bindings/arm/omap/omap.txt | 3 + arch/arm/boot/dts/Makefile | 7 +- arch/arm/boot/dts/am335x-cm-t335.dts | 347 +++++++++++++++++++++ 3 files changed, 354 insertions(+), 3 deletions(-) create mode 100644 arch/arm/boot/dts/am335x-cm-t335.dts
Signature · 1 line
2.6.0
PATCH 1/6 ARM: OMAP2+: dts: cm-t335: add initial support
From: Ilya Ledvich <[email protected]>
Add basic support for CompuLab cm-t335 module based on AM335X SoC.
CM-T335 is a tiny computer-on-module (CoM) / system-on-module (SoM) The module is built around the Texas Instruments Sitara AM3352/4 system-on-chip.
The CPU is supplemented with up-to 512MB DDR3 and up-to 1GB of on-board NAND storage, WiFi connected to SPI, Bluetooth, Analog audio, Gigabit Ethernet, CAN bus.
Current patch adds support:
UART0 and GPIO LED
Detailed description can be found at the module site:
http://www.compulab.co.il/products/computer-on-modules/cm-t335/
[uri.mashiach at compulab.co.il: the default RAM amount reduced to 128MB to support also the minimal module configuration]
--- .../devicetree/bindings/arm/omap/omap.txt | 3 ++ arch/arm/boot/dts/Makefile | 7 +-- arch/arm/boot/dts/am335x-cm-t335.dts | 62 ++++++++++++++++++++++ 3 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 arch/arm/boot/dts/am335x-cm-t335.dts
Documentation/devicetree/bindings/arm/omap/omap.txt +3 -0
@@ -138,6 +138,9 @@ Boards: - AM335X phyBOARD-WEGA: Single Board Computer dev kit compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx" +- AM335X CM-T335 : System On Module, built around the Sitara AM3352/4 + compatible = "compulab,cm-t335", "ti,am33xx" + - OMAP5 EVM : Evaluation Module compatible = "ti,omap5-evm", "ti,omap5"
arch/arm/boot/dts/Makefile +4 -3
@@ -446,13 +446,14 @@ dtb-$(CONFIG_SOC_AM33XX) += \ am335x-base0033.dtb \ am335x-bone.dtb \ am335x-boneblack.dtb \ - am335x-sl50.dtb \ + am335x-chiliboard.dtb \ + am335x-cm-t335.dtb \ am335x-evm.dtb \ am335x-evmsk.dtb \ + am335x-lxm.dtb \ am335x-nano.dtb \ am335x-pepper.dtb \ - am335x-lxm.dtb \ - am335x-chiliboard.dtb \ + am335x-sl50.dtb \ am335x-wega-rdk.dtb dtb-$(CONFIG_ARCH_OMAP4) += \ omap4-duovero-parlor.dtb \
arch/arm/boot/dts/am335x-cm-t335.dts new file +62 -0
62 lines not on this page · raw message
Signature · 1 line
2.6.0
PATCH 1/6 ARM: OMAP2+: dts: cm-t335: add initial support
Gentle ping
Quoted 135 lines · Uri Mashiach
From: Ilya Ledvich <[email protected]>
Add basic support for CompuLab cm-t335 module based on AM335X SoC.
CM-T335 is a tiny computer-on-module (CoM) / system-on-module (SoM) The module is built around the Texas Instruments Sitara AM3352/4 system-on-chip.
The CPU is supplemented with up-to 512MB DDR3 and up-to 1GB of on-board NAND storage, WiFi connected to SPI, Bluetooth, Analog audio, Gigabit Ethernet, CAN bus.
Current patch adds support:
UART0 and GPIO LEDDetailed description can be found at the module site:
http://www.compulab.co.il/products/computer-on-modules/cm-t335/Acked-by Igor Grinberg <[email protected]>Signed-off-by Ilya Ledvich <[email protected]>[uri.mashiach at compulab.co.il: the default RAM amount reduced to 128MB to support also the minimal module configuration]
Signed-off-by Uri Mashiach <[email protected]>--- .../devicetree/bindings/arm/omap/omap.txt | 3 ++ arch/arm/boot/dts/Makefile | 7 +-- arch/arm/boot/dts/am335x-cm-t335.dts | 62 ++++++++++++++++++++++ 3 files changed, 69 insertions(+), 3 deletions(-)create mode 100644
arch/arm/boot/dts/am335x-cm-t335.dtsDocumentation/devicetree/bindings/arm/omap/omap.txt +3
-0@@ -138,6 +138,9 @@ Boards: - AM335X phyBOARD-WEGA: Single Board Computer dev kit compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx" +- AM335X CM-T335 : System On Module, built around the Sitara AM3352/4 + compatible = "compulab,cm-t335", "ti,am33xx" + - OMAP5 EVM : Evaluation Module compatible = "ti,omap5-evm", "ti,omap5"arch/arm/boot/dts/Makefile +4
-3@@ -446,13 +446,14 @@ dtb-$(CONFIG_SOC_AM33XX) += \ am335x-base0033.dtb \ am335x-bone.dtb \ am335x-boneblack.dtb \ - am335x-sl50.dtb \ + am335x-chiliboard.dtb \ + am335x-cm-t335.dtb \ am335x-evm.dtb \ am335x-evmsk.dtb \ + am335x-lxm.dtb \ am335x-nano.dtb \ am335x-pepper.dtb \ - am335x-lxm.dtb \ - am335x-chiliboard.dtb \ + am335x-sl50.dtb \ am335x-wega-rdk.dtb dtb-$(CONFIG_ARCH_OMAP4) += \ omap4-duovero-parlor.dtb \arch/arm/boot/dts/am335x-cm-t335.dts new file +62
-0@@ -0,0 +1,62 @@ +/* + * am335x-cm-t335.dts - Device Tree file for Compulab CM-T335 + * + * Copyright (C) 2014 - 2015 CompuLab Ltd. - http://www.compulab.co.il/ + * + * 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" + +/ { + model = "CompuLab CM-T335"; + compatible = "compulab,cm-t335", "ti,am33xx"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x8000000>; /* 128 MB */ + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&gpio_led_pins>; + led at 0 { + label = "cm_t335:green"; + gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; /* gpio2_0 */ + linux,default-trigger = "heartbeat"; + }; + }; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <>; + + gpio_led_pins: pinmux_gpio_led_pins { + pinctrl-single,pins = < + 0x88 (PIN_OUTPUT | MUX_MODE7) /* gpmc_csn3.gpio2_0 */ + >; + }; + + uart0_pins: pinmux_uart0_pins { + pinctrl-single,pins = < + /* uart0_rxd.uart0_rxd */ + 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) + /* uart0_txd.uart0_txd */ + 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) + >; + }; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pins>; + + status = "okay"; +}; +
PATCH 1/6 ARM: OMAP2+: dts: cm-t335: add initial support
In reply to Uri MashiachHi Uri,
Quoted 17 lines · Uri Mashiach
From: Ilya Ledvich <[email protected]>
Add basic support for CompuLab cm-t335 module based on AM335X SoC.
CM-T335 is a tiny computer-on-module (CoM) / system-on-module (SoM) The module is built around the Texas Instruments Sitara AM3352/4 system-on-chip.
The CPU is supplemented with up-to 512MB DDR3 and up-to 1GB of on-board NAND storage, WiFi connected to SPI, Bluetooth, Analog audio, Gigabit Ethernet, CAN bus.
Current patch adds support:
UART0 and GPIO LEDDetailed description can be found at the module site:
http://www.compulab.co.il/products/computer-on-modules/cm-t335/
[...]
Quoted 6 lines
arch/arm/boot/dts/am335x-cm-t335.dts new file +0
-0@@ -0,0 +1,62 @@
[...]
Quoted 6 lines
+&am33xx_pinmux {
arch/arm/boot/dts/am335x-cm-t335.dts new file +5
-0+ pinctrl-names = "default"; + pinctrl-0 = <>; + + gpio_led_pins: pinmux_gpio_led_pins { + pinctrl-single,pins = <
arch/arm/boot/dts/am335x-cm-t335.dts line 51
Quoted 10 lines
arch/arm/boot/dts/am335x-cm-t335.dts new file +10
-0+ 0x88 (PIN_OUTPUT | MUX_MODE7) /* gpmc_csn3.gpio2_0 */ + >; + }; + + uart0_pins: pinmux_uart0_pins { + pinctrl-single,pins = < + /* uart0_rxd.uart0_rxd */ + 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) + /* uart0_txd.uart0_txd */ + 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)
Can we use AM33XX_IOPAD macro here?
and may be other patches too?
[...]
Signature · 2 lines
Regards, Igor.
PATCH 2/6 ARM: OMAP2+: dts: cm-t335: add basic support for I2C
In reply to Uri MashiachFrom: Ilya Ledvich <[email protected]>
Add pinmux configuration for I2C0 and I2C1 pins. Add description for I2C0 bus, set clock frequency to 400kHz. Add child nodes for 24c02 EEPROM and em3027 RTC on I2C0 bus.
--- arch/arm/boot/dts/am335x-cm-t335.dts | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+)
arch/arm/boot/dts/am335x-cm-t335.dts +37 -0
@@ -37,6 +37,24 @@ pinctrl-names = "default"; pinctrl-0 = <>; + i2c0_pins: pinmux_i2c0_pins { + pinctrl-single,pins = < + /* i2c0_sda.i2c0_sda */ + 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) + /* i2c0_scl.i2c0_scl */ + 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) + >; + }; + + i2c1_pins: pinmux_i2c1_pins { + pinctrl-single,pins = < + /* uart0_ctsn.i2c1_sda */ + 0x168 (PIN_INPUT_PULLUP | MUX_MODE2) + /* uart0_rtsn.i2c1_scl */ + 0x16c (PIN_INPUT_PULLUP | MUX_MODE2) + >; + }; + gpio_led_pins: pinmux_gpio_led_pins { pinctrl-single,pins = < 0x88 (PIN_OUTPUT | MUX_MODE7) /* gpmc_csn3.gpio2_0 */
@@ -60,3 +78,22 @@ status = "okay"; }; +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins>; + + status = "okay"; + clock-frequency = <400000>; + + eeprom: 24c02 at 50 { + compatible = "atmel,24c02"; + reg = <0x50>; + pagesize = <16>; + }; + + ext_rtc: em3027 at 56 { + compatible = "emmicro,em3027"; + reg = <0x56>; + }; +}; +
Signature · 1 line
2.6.0
PATCH 2/6 ARM: OMAP2+: dts: cm-t335: add basic support for I2C
Gentle ping
Quoted 66 lines · Uri Mashiach
From: Ilya Ledvich <[email protected]>
Add pinmux configuration for I2C0 and I2C1 pins. Add description for I2C0 bus, set clock frequency to 400kHz. Add child nodes for 24c02 EEPROM and em3027 RTC on I2C0 bus.
Acked-by Igor Grinberg <[email protected]>Signed-off-by Ilya Ledvich <[email protected]>Signed-off-by Uri Mashiach <[email protected]>--- arch/arm/boot/dts/am335x-cm-t335.dts | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+)arch/arm/boot/dts/am335x-cm-t335.dts +37
-0@@ -37,6 +37,24 @@ pinctrl-names = "default"; pinctrl-0 = <>; + i2c0_pins: pinmux_i2c0_pins { + pinctrl-single,pins = < + /* i2c0_sda.i2c0_sda */ + 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) + /* i2c0_scl.i2c0_scl */ + 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) + >; + }; + + i2c1_pins: pinmux_i2c1_pins { + pinctrl-single,pins = < + /* uart0_ctsn.i2c1_sda */ + 0x168 (PIN_INPUT_PULLUP | MUX_MODE2) + /* uart0_rtsn.i2c1_scl */ + 0x16c (PIN_INPUT_PULLUP | MUX_MODE2) + >; + }; + gpio_led_pins: pinmux_gpio_led_pins { pinctrl-single,pins = < 0x88 (PIN_OUTPUT | MUX_MODE7) /* gpmc_csn3.gpio2_0 */@@ -60,3 +78,22 @@ status = "okay"; }; +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins>; + + status = "okay"; + clock-frequency = <400000>; + + eeprom: 24c02 at 50 { + compatible = "atmel,24c02"; + reg = <0x50>; + pagesize = <16>; + }; + + ext_rtc: em3027 at 56 { + compatible = "emmicro,em3027"; + reg = <0x56>; + }; +}; +
PATCH 3/6 ARM: OMAP2+: dts: cm-t335: add support for NAND flash
In reply to Uri MashiachFrom: Ilya Ledvich <[email protected]>
Add pinmux configuration for NAND specific GPMC pins. Add description for GPMC controller. Add child node for NAND flash including CM-T335 specific partition table to GPMC node. Enable error-location module (ELM).
--- arch/arm/boot/dts/am335x-cm-t335.dts | 106 +++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+)
arch/arm/boot/dts/am335x-cm-t335.dts +106 -0
@@ -61,6 +61,41 @@ >; }; + nandflash_pins: pinmux_nandflash_pins { + pinctrl-single,pins = < + /* gpmc_ad0.gpmc_ad0 */ + 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad1.gpmc_ad1 */ + 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad2.gpmc_ad2 */ + 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad3.gpmc_ad3 */ + 0xc (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad4.gpmc_ad4 */ + 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad5.gpmc_ad5 */ + 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad6.gpmc_ad6 */ + 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad7.gpmc_ad7 */ + 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_wait0.gpmc_wait0 */ + 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_wpn.gpio0_30 */ + 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) + /* gpmc_csn0.gpmc_csn0 */ + 0x7c (PIN_OUTPUT | MUX_MODE0) + /* gpmc_advn_ale.gpmc_advn_ale */ + 0x90 (PIN_OUTPUT | MUX_MODE0) + /* gpmc_oen_ren.gpmc_oen_ren */ + 0x94 (PIN_OUTPUT | MUX_MODE0) + /* gpmc_wen.gpmc_wen */ + 0x98 (PIN_OUTPUT | MUX_MODE0) + /* gpmc_be0n_cle.gpmc_be0n_cle */ + 0x9c (PIN_OUTPUT | MUX_MODE0) + >; + }; + uart0_pins: pinmux_uart0_pins { pinctrl-single,pins = < /* uart0_rxd.uart0_rxd */
@@ -97,3 +132,74 @@ }; }; +&gpmc { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&nandflash_pins>; + ranges = <0 0 0x08000000 0x10000000>; /* CS0: NAND */ + nand at 0,0 { + reg = <0 0 0>; /* CS0, offset 0 */ + ti,nand-ecc-opt = "bch8"; + ti,elm-id = <&elm>; + nand-bus-width = <8>; + gpmc,device-width = <1>; + gpmc,sync-clk-ps = <0>; + gpmc,cs-on-ns = <0>; + gpmc,cs-rd-off-ns = <44>; + gpmc,cs-wr-off-ns = <44>; + gpmc,adv-on-ns = <6>; + gpmc,adv-rd-off-ns = <34>; + gpmc,adv-wr-off-ns = <44>; + gpmc,we-on-ns = <0>; + gpmc,we-off-ns = <40>; + gpmc,oe-on-ns = <0>; + gpmc,oe-off-ns = <54>; + gpmc,access-ns = <64>; + gpmc,rd-cycle-ns = <82>; + gpmc,wr-cycle-ns = <82>; + gpmc,wait-on-read = "true"; + gpmc,wait-on-write = "true"; + gpmc,bus-turnaround-ns = <0>; + gpmc,cycle2cycle-delay-ns = <0>; + gpmc,clk-activation-ns = <0>; + gpmc,wait-monitoring-ns = <0>; + gpmc,wr-access-ns = <40>; + gpmc,wr-data-mux-bus-ns = <0>; + /* MTD partition table */ + #address-cells = <1>; + #size-cells = <1>; + partition at 0 { + label = "spl"; + reg = <0x00000000 0x00200000>; + }; + partition at 1 { + label = "uboot"; + reg = <0x00200000 0x00100000>; + }; + partition at 2 { + label = "uboot environment"; + reg = <0x00300000 0x00100000>; + }; + partition at 3 { + label = "dtb"; + reg = <0x00400000 0x00100000>; + }; + partition at 4 { + label = "splash"; + reg = <0x00500000 0x00400000>; + }; + partition at 5 { + label = "linux"; + reg = <0x00900000 0x00600000>; + }; + partition at 6 { + label = "rootfs"; + reg = <0x00F00000 0>; + }; + }; +}; + +&elm { + status = "okay"; +}; +
Signature · 1 line
2.6.0
PATCH 3/6 ARM: OMAP2+: dts: cm-t335: add support for NAND flash
Gentle ping
Quoted 136 lines · Uri Mashiach
From: Ilya Ledvich <[email protected]>
Add pinmux configuration for NAND specific GPMC pins. Add description for GPMC controller. Add child node for NAND flash including CM-T335 specific partition table to GPMC node. Enable error-location module (ELM).
Acked-by Igor Grinberg <[email protected]>Signed-off-by Ilya Ledvich <[email protected]>Signed-off-by Uri Mashiach <[email protected]>--- arch/arm/boot/dts/am335x-cm-t335.dts | 106 +++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+)arch/arm/boot/dts/am335x-cm-t335.dts +106
-0@@ -61,6 +61,41 @@ >; }; + nandflash_pins: pinmux_nandflash_pins { + pinctrl-single,pins = < + /* gpmc_ad0.gpmc_ad0 */ + 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad1.gpmc_ad1 */ + 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad2.gpmc_ad2 */ + 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad3.gpmc_ad3 */ + 0xc (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad4.gpmc_ad4 */ + 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad5.gpmc_ad5 */ + 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad6.gpmc_ad6 */ + 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad7.gpmc_ad7 */ + 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_wait0.gpmc_wait0 */ + 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_wpn.gpio0_30 */ + 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) + /* gpmc_csn0.gpmc_csn0 */ + 0x7c (PIN_OUTPUT | MUX_MODE0) + /* gpmc_advn_ale.gpmc_advn_ale */ + 0x90 (PIN_OUTPUT | MUX_MODE0) + /* gpmc_oen_ren.gpmc_oen_ren */ + 0x94 (PIN_OUTPUT | MUX_MODE0) + /* gpmc_wen.gpmc_wen */ + 0x98 (PIN_OUTPUT | MUX_MODE0) + /* gpmc_be0n_cle.gpmc_be0n_cle */ + 0x9c (PIN_OUTPUT | MUX_MODE0) + >; + }; + uart0_pins: pinmux_uart0_pins { pinctrl-single,pins = < /* uart0_rxd.uart0_rxd */@@ -97,3 +132,74 @@ }; }; +&gpmc { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&nandflash_pins>; + ranges = <0 0 0x08000000 0x10000000>; /* CS0: NAND */ + nand at 0,0 { + reg = <0 0 0>; /* CS0, offset 0 */ + ti,nand-ecc-opt = "bch8"; + ti,elm-id = <&elm>; + nand-bus-width = <8>; + gpmc,device-width = <1>; + gpmc,sync-clk-ps = <0>; + gpmc,cs-on-ns = <0>; + gpmc,cs-rd-off-ns = <44>; + gpmc,cs-wr-off-ns = <44>; + gpmc,adv-on-ns = <6>; + gpmc,adv-rd-off-ns = <34>; + gpmc,adv-wr-off-ns = <44>; + gpmc,we-on-ns = <0>; + gpmc,we-off-ns = <40>; + gpmc,oe-on-ns = <0>; + gpmc,oe-off-ns = <54>; + gpmc,access-ns = <64>; + gpmc,rd-cycle-ns = <82>; + gpmc,wr-cycle-ns = <82>; + gpmc,wait-on-read = "true"; + gpmc,wait-on-write = "true"; + gpmc,bus-turnaround-ns = <0>; + gpmc,cycle2cycle-delay-ns = <0>; + gpmc,clk-activation-ns = <0>; + gpmc,wait-monitoring-ns = <0>; + gpmc,wr-access-ns = <40>; + gpmc,wr-data-mux-bus-ns = <0>; + /* MTD partition table */ + #address-cells = <1>; + #size-cells = <1>; + partition at 0 { + label = "spl"; + reg = <0x00000000 0x00200000>; + }; + partition at 1 { + label = "uboot"; + reg = <0x00200000 0x00100000>; + }; + partition at 2 { + label = "uboot environment"; + reg = <0x00300000 0x00100000>; + }; + partition at 3 { + label = "dtb"; + reg = <0x00400000 0x00100000>; + }; + partition at 4 { + label = "splash"; + reg = <0x00500000 0x00400000>; + }; + partition at 5 { + label = "linux"; + reg = <0x00900000 0x00600000>; + }; + partition at 6 { + label = "rootfs"; + reg = <0x00F00000 0>; + }; + }; +}; + +&elm { + status = "okay"; +}; +
PATCH 4/6 ARM: OMAP2+: dts: cm-t335: add support for MMC
In reply to Uri MashiachFrom: Ilya Ledvich <[email protected]>
Add pinmux configuration for MMC0 pins. Add fixed regulator 'vmmc_fixed'.
Enable MMC0 in 4-bit mode.
--- arch/arm/boot/dts/am335x-cm-t335.dts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+)
arch/arm/boot/dts/am335x-cm-t335.dts +33 -0
@@ -31,6 +31,14 @@ linux,default-trigger = "heartbeat"; }; }; + + /* regulator for mmc */ + vmmc_fixed: fixedregulator at 0 { + compatible = "regulator-fixed"; + regulator-name = "vmmc_fixed"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; }; &am33xx_pinmux {
@@ -104,6 +112,23 @@ 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) >; }; + + mmc1_pins: pinmux_mmc1_pins { + pinctrl-single,pins = < + /* mmc0_dat3.mmc0_dat3 */ + 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_dat2.mmc0_dat2 */ + 0xf4 (PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_dat1.mmc0_dat1 */ + 0xf8 (PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_dat0.mmc0_dat0 */ + 0xfc (PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_clk.mmc0_clk */ + 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_cmd.mmc0_cmd */ + 0x104 (PIN_INPUT_PULLUP | MUX_MODE0) + >; + }; }; &uart0 {
@@ -203,3 +228,11 @@ status = "okay"; }; +&mmc1 { + status = "okay"; + vmmc-supply = <&vmmc_fixed>; + bus-width = <4>; + pinctrl-names = "default"; + pinctrl-0 = <&mmc1_pins>; +}; +
Signature · 1 line
2.6.0
PATCH 4/6 ARM: OMAP2+: dts: cm-t335: add support for MMC
Gentle ping
Quoted 69 lines · Uri Mashiach
From: Ilya Ledvich <[email protected]>
Add pinmux configuration for MMC0 pins. Add fixed regulator '
vmmc_fixed'.
Enable MMC0 in 4-bit mode.Acked-by Igor Grinberg <[email protected]>Signed-off-by Ilya Ledvich <[email protected]>Signed-off-by Uri Mashiach <[email protected]>--- arch/arm/boot/dts/am335x-cm-t335.dts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+)arch/arm/boot/dts/am335x-cm-t335.dts +33
-0@@ -31,6 +31,14 @@ linux,default-trigger = "heartbeat"; }; }; + + /* regulator for mmc */ + vmmc_fixed: fixedregulator at 0 { + compatible = "regulator-fixed"; + regulator-name = "vmmc_fixed"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; }; &am33xx_pinmux {@@ -104,6 +112,23 @@ 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) >; }; + + mmc1_pins: pinmux_mmc1_pins { + pinctrl-single,pins = < + /* mmc0_dat3.mmc0_dat3 */ + 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_dat2.mmc0_dat2 */ + 0xf4 (PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_dat1.mmc0_dat1 */ + 0xf8 (PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_dat0.mmc0_dat0 */ + 0xfc (PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_clk.mmc0_clk */ + 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_cmd.mmc0_cmd */ + 0x104 (PIN_INPUT_PULLUP | MUX_MODE0) + >; + }; }; &uart0 {@@ -203,3 +228,11 @@ status = "okay"; }; +&mmc1 { + status = "okay"; + vmmc-supply = <&vmmc_fixed>; + bus-width = <4>; + pinctrl-names = "default"; + pinctrl-0 = <&mmc1_pins>; +}; +
PATCH 5/6 ARM: OMAP2+: dts: cm-t335: add support for network device
In reply to Uri MashiachFrom: Ilya Ledvich <[email protected]>
Add pinmux configurations for RGMII1 based CPSW Ethernet pins and MDIO pins:
- default configuration required for module in active state,
- sleep configuration required for module in inactive state.
Add mac node with single slave device. Add nodes for davinci_mdio and cpsw_emac0.
--- arch/arm/boot/dts/am335x-cm-t335.dts | 85 ++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+)
arch/arm/boot/dts/am335x-cm-t335.dts +85 -0
@@ -113,6 +113,71 @@ >; }; + cpsw_default: cpsw_default { + pinctrl-single,pins = < + /* Slave 1 */ + /* mii1_txen.rgmii1_tctl */ + 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxdv.rgmii1_rctl */ + 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd3.rgmii1_td3 */ + 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd2.rgmii1_td2 */ + 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd1.rgmii1_td1 */ + 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd0.rgmii1_td0 */ + 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txclk.rgmii1_tclk */ + 0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxclk.rgmii1_rclk */ + 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd3.rgmii1_rd3 */ + 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd2.rgmii1_rd2 */ + 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd1.rgmii1_rd1 */ + 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd0.rgmii1_rd0 */ + 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) + >; + }; + + cpsw_sleep: cpsw_sleep { + pinctrl-single,pins = < + /* Slave 1 reset value */ + 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) + >; + }; + + davinci_mdio_default: davinci_mdio_default { + pinctrl-single,pins = < + /* mdio_data.mdio_data */ + 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) + /* mdio_clk.mdio_clk */ + 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) + >; + }; + + davinci_mdio_sleep: davinci_mdio_sleep { + pinctrl-single,pins = < + /* MDIO reset value */ + 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) + >; + }; + mmc1_pins: pinmux_mmc1_pins { pinctrl-single,pins = < /* mmc0_dat3.mmc0_dat3 */
@@ -228,6 +293,26 @@ status = "okay"; }; +&mac { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cpsw_default>; + pinctrl-1 = <&cpsw_sleep>; + slaves = <1>; + status = "okay"; +}; + +&davinci_mdio { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&davinci_mdio_default>; + pinctrl-1 = <&davinci_mdio_sleep>; + status = "okay"; +}; + +&cpsw_emac0 { + phy_id = <&davinci_mdio>, <0>; + phy-mode = "rgmii-txid"; +}; + &mmc1 { status = "okay"; vmmc-supply = <&vmmc_fixed>;
Signature · 1 line
2.6.0
PATCH 5/6 ARM: OMAP2+: dts: cm-t335: add support for network device
Quoted 9 lines · Uri Mashiach
From: Ilya Ledvich <[email protected]>
Add pinmux configurations for RGMII1 based CPSW Ethernet pins and MDIO pins:
- default configuration required for module in active state,
- sleep configuration required for module in inactive state.
Add mac node with single slave device. Add nodes fordavinci_mdioandcpsw_emac0.
Quoted 3 lines
Acked-by Igor Grinberg <[email protected]>Signed-off-by Ilya Ledvich <[email protected]>Signed-off-by Uri Mashiach <[email protected]>
Regards
Mugunthan V N
PATCH 5/6 ARM: OMAP2+: dts: cm-t335: add support for network device
In reply to Uri MashiachGentle ping
Quoted 120 lines · Uri Mashiach
From: Ilya Ledvich <[email protected]>
Add pinmux configurations for RGMII1 based CPSW Ethernet pins and MDIO pins:
- default configuration required for module in active state,
- sleep configuration required for module in inactive state.
Add mac node with single slave device. Add nodes fordavinci_mdioandcpsw_emac0.Acked-by Igor Grinberg <[email protected]>Signed-off-by Ilya Ledvich <[email protected]>Signed-off-by Uri Mashiach <[email protected]>--- arch/arm/boot/dts/am335x-cm-t335.dts | 85 ++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+)arch/arm/boot/dts/am335x-cm-t335.dts +85
-0@@ -113,6 +113,71 @@ >; }; + cpsw_default: cpsw_default { + pinctrl-single,pins = < + /* Slave 1 */ + /* mii1_txen.rgmii1_tctl */ + 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxdv.rgmii1_rctl */ + 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd3.rgmii1_td3 */ + 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd2.rgmii1_td2 */ + 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd1.rgmii1_td1 */ + 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd0.rgmii1_td0 */ + 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txclk.rgmii1_tclk */ + 0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxclk.rgmii1_rclk */ + 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd3.rgmii1_rd3 */ + 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd2.rgmii1_rd2 */ + 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd1.rgmii1_rd1 */ + 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd0.rgmii1_rd0 */ + 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) + >; + }; + + cpsw_sleep: cpsw_sleep { + pinctrl-single,pins = < + /* Slave 1 reset value */ + 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) + >; + }; + + davinci_mdio_default: davinci_mdio_default { + pinctrl-single,pins = < + /* mdio_data.mdio_data */ + 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) + /* mdio_clk.mdio_clk */ + 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) + >; + }; + + davinci_mdio_sleep: davinci_mdio_sleep { + pinctrl-single,pins = < + /* MDIO reset value */ + 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) + 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) + >; + }; + mmc1_pins: pinmux_mmc1_pins { pinctrl-single,pins = < /* mmc0_dat3.mmc0_dat3 */@@ -228,6 +293,26 @@ status = "okay"; }; +&mac { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cpsw_default>; + pinctrl-1 = <&cpsw_sleep>; + slaves = <1>; + status = "okay"; +}; + +&davinci_mdio { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&davinci_mdio_default>; + pinctrl-1 = <&davinci_mdio_sleep>; + status = "okay"; +}; + +&cpsw_emac0 { + phy_id = <&davinci_mdio>, <0>; + phy-mode = "rgmii-txid"; +}; + &mmc1 { status = "okay"; vmmc-supply = <&vmmc_fixed>;
PATCH 6/6 ARM: OMAP2+: dts: cm-t335: add support for PWM backlight
In reply to Uri MashiachFrom: Ilya Ledvich <[email protected]>
Add pinmux configuration for ECAP0 pin. Add node for PWM backlight device.
Use PWM output from ecap0 as backlight source.
--- arch/arm/boot/dts/am335x-cm-t335.dts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)
arch/arm/boot/dts/am335x-cm-t335.dts +24 -0
@@ -39,6 +39,13 @@ regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; + + backlight { + compatible = "pwm-backlight"; + pwms = <&ecap0 0 50000 0>; + brightness-levels = <0 51 53 56 62 75 101 152 255>; + default-brightness-level = <8>; + }; }; &am33xx_pinmux {
@@ -113,6 +120,13 @@ >; }; + ecap0_pins: pinmux_ecap0_pins { + pinctrl-single,pins = < + /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */ + 0x164 0x0 + >; + }; + cpsw_default: cpsw_default { pinctrl-single,pins = < /* Slave 1 */
@@ -222,6 +236,16 @@ }; }; +&epwmss0 { + status = "okay"; + + ecap0: ecap@48300100 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&ecap0_pins>; + }; +}; + &gpmc { status = "okay"; pinctrl-names = "default";
Signature · 1 line
2.6.0
PATCH 6/6 ARM: OMAP2+: dts: cm-t335: add support for PWM backlight
Gentle ping
Quoted 63 lines · Uri Mashiach
From: Ilya Ledvich <[email protected]>
Add pinmux configuration for ECAP0 pin. Add node for PWM backlight device.
Use PWM output from ecap0 as backlight source.Acked-by Igor Grinberg <[email protected]>Signed-off-by Ilya Ledvich <[email protected]>Signed-off-by Uri Mashiach <[email protected]>--- arch/arm/boot/dts/am335x-cm-t335.dts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)arch/arm/boot/dts/am335x-cm-t335.dts +24
-0@@ -39,6 +39,13 @@ regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; + + backlight { + compatible = "pwm-backlight"; + pwms = <&ecap0 0 50000 0>; + brightness-levels = <0 51 53 56 62 75 101 152 255>; + default-brightness-level = <8>; + }; }; &am33xx_pinmux {@@ -113,6 +120,13 @@ >; }; + ecap0_pins: pinmux_ecap0_pins { + pinctrl-single,pins = < + /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */ + 0x164 0x0 + >; + }; + cpsw_default: cpsw_default { pinctrl-single,pins = < /* Slave 1 */@@ -222,6 +236,16 @@ }; }; +&epwmss0 { + status = "okay"; + + ecap0: ecap at 48300100 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&ecap0_pins>; + }; +}; + &gpmc { status = "okay"; pinctrl-names = "default";
cover ARM: OMAP2+: dts: cm-t335: initial support
In reply to Uri MashiachGentle ping
Quoted 24 lines · Uri Mashiach
Add basic support for CompuLab cm-t335 module based on AM335X SoC.
CM-T335 is a tiny computer-on-module (CoM) / system-on-module (SoM) The module is built around the Texas Instruments Sitara AM3352/4 system-on-chip.
The CPU is supplemented with up-to 512MB DDR3 and up-to 1GB of on-board NAND storage, WiFi connected to SPI, Bluetooth, Analog audio, Gigabit Ethernet, CAN bus.
Ilya Ledvich (6):
ARM: OMAP2+: dts: cm-t335: add initial support
ARM: OMAP2+: dts: cm-t335: add basic support for I2C
ARM: OMAP2+: dts: cm-t335: add support for NAND flash
ARM: OMAP2+: dts: cm-t335: add support for MMC
ARM: OMAP2+: dts: cm-t335: add support for network device
ARM: OMAP2+: dts: cm-t335: add support for PWM backlight.../devicetree/bindings/arm/omap/omap.txt | 3 + arch/arm/boot/dts/Makefile | 7 +- arch/arm/boot/dts/am335x-cm-t335.dts | 347 +++++++++++++++++++++ 3 files changed, 354 insertions(+), 3 deletions(-)create mode 100644
arch/arm/boot/dts/am335x-cm-t335.dts
cover ARM: OMAP2+: dts: cm-t335: initial support
Hi,
Quoted 1 line · Uri Mashiach
Gentle ping
Well the merge window is ongoing, and I'm not touching anything except fixes until they are all out of the way. And after that I'll start applying patches for v4.5 merge window, usually by -rc2 except when things go wrong and we have regressions with the mainline kernel like we did during v4.3-rc cycle.
So for fixes, it's always a good time to send them. The sooner we have fixes out of the way after each merge window, the sooner I'll start applying new features.
So for new features, between -rc1 and -rc4. We really want to have all the new code sit in Linux next for a few weeks before each merge window so in general I try to have things ready togo by -rc5 for most part and by -rc6 latest.
Regards,
Tony
v2 cover ARM: OMAP2+: dts: cm-t335: initial support
In reply to Uri MashiachAdd basic support for CompuLab cm-t335 module based on AM335X SoC.
CM-T335 is a tiny computer-on-module (CoM) / system-on-module (SoM) The module is built around the Texas Instruments Sitara AM3352/4 system-on-chip.
The CPU is supplemented with up-to 512MB DDR3 and up-to 1GB of on-board NAND storage, WiFi connected to SPI, Bluetooth, Analog audio, Gigabit Ethernet, CAN bus.
[v1 -> v2: integrate AM33XX_IOPAD macro in pinmux definitions ] Ilya Ledvich (6):
ARM: OMAP2+: dts: cm-t335: add initial support
ARM: OMAP2+: dts: cm-t335: add basic support for I2C
ARM: OMAP2+: dts: cm-t335: add support for NAND flash
ARM: OMAP2+: dts: cm-t335: add support for MMC
ARM: OMAP2+: dts: cm-t335: add support for network device
ARM: OMAP2+: dts: cm-t335: add support for PWM backlight
.../devicetree/bindings/arm/omap/omap.txt | 3 + arch/arm/boot/dts/Makefile | 7 +- arch/arm/boot/dts/am335x-cm-t335.dts | 348 +++++++++++++++++++++ 3 files changed, 355 insertions(+), 3 deletions(-) create mode 100644 arch/arm/boot/dts/am335x-cm-t335.dts
Signature · 1 line
2.5.0
PATCH v2 1/6 ARM: OMAP2+: dts: cm-t335: add initial support
From: Ilya Ledvich <[email protected]>
Add basic support for CompuLab cm-t335 module based on AM335X SoC.
CM-T335 is a tiny computer-on-module (CoM) / system-on-module (SoM) The module is built around the Texas Instruments Sitara AM3352/4 system-on-chip.
The CPU is supplemented with up-to 512MB DDR3 and up-to 1GB of on-board NAND storage, WiFi connected to SPI, Bluetooth, Analog audio, Gigabit Ethernet, CAN bus.
Current patch adds support:
UART0 and GPIO LED
Detailed description can be found at the module site:
http://www.compulab.co.il/products/computer-on-modules/cm-t335/
[uri.mashiach at compulab.co.il: the default RAM amount reduced to 128MB to support also the minimal module configuration]
---
v1 -> v2: integrate AM33XX_IOPAD macro in pinmux definitions
.../devicetree/bindings/arm/omap/omap.txt | 3 ++ arch/arm/boot/dts/Makefile | 7 +-- arch/arm/boot/dts/am335x-cm-t335.dts | 63 ++++++++++++++++++++++ 3 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 arch/arm/boot/dts/am335x-cm-t335.dts
Documentation/devicetree/bindings/arm/omap/omap.txt +3 -0
@@ -138,6 +138,9 @@ Boards: - AM335X phyBOARD-WEGA: Single Board Computer dev kit compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx" +- AM335X CM-T335 : System On Module, built around the Sitara AM3352/4 + compatible = "compulab,cm-t335", "ti,am33xx" + - OMAP5 EVM : Evaluation Module compatible = "ti,omap5-evm", "ti,omap5"
arch/arm/boot/dts/Makefile +4 -3
@@ -446,13 +446,14 @@ dtb-$(CONFIG_SOC_AM33XX) += \ am335x-base0033.dtb \ am335x-bone.dtb \ am335x-boneblack.dtb \ - am335x-sl50.dtb \ + am335x-chiliboard.dtb \ + am335x-cm-t335.dtb \ am335x-evm.dtb \ am335x-evmsk.dtb \ + am335x-lxm.dtb \ am335x-nano.dtb \ am335x-pepper.dtb \ - am335x-lxm.dtb \ - am335x-chiliboard.dtb \ + am335x-sl50.dtb \ am335x-wega-rdk.dtb dtb-$(CONFIG_ARCH_OMAP4) += \ omap4-duovero-parlor.dtb \
arch/arm/boot/dts/am335x-cm-t335.dts new file +63 -0
63 lines not on this page · raw message
Signature · 1 line
2.5.0
Rob Herring
maintainerPATCH v2 1/6 ARM: OMAP2+: dts: cm-t335: add initial support
Quoted 18 lines · Uri Mashiach
From: Ilya Ledvich <[email protected]>
Add basic support for CompuLab cm-t335 module based on AM335X SoC.
CM-T335 is a tiny computer-on-module (CoM) / system-on-module (SoM) The module is built around the Texas Instruments Sitara AM3352/4 system-on-chip.
The CPU is supplemented with up-to 512MB DDR3 and up-to 1GB of on-board NAND storage, WiFi connected to SPI, Bluetooth, Analog audio, Gigabit Ethernet, CAN bus.
Current patch adds support:
UART0 and GPIO LEDDetailed description can be found at the module site:
http://www.compulab.co.il/products/computer-on-modules/cm-t335/
Quoted 7 lines
Signed-off-by Ilya Ledvich <[email protected]>[uri.mashiach at compulab.co.il: the default RAM amount reduced to 128MB to support also the minimal module configuration]
Signed-off-by Uri Mashiach <[email protected]>Acked-by Igor Grinberg <[email protected]>---
v1 -> v2: integrateAM33XX_IOPADmacro in pinmux definitions
This macro is exactly the kind we should not be doing in DT files which are ones that expand to multiple cells. But not really much point in doing 1 board differently from the rest, so:
Rob
Quoted 115 lines
.../devicetree/bindings/arm/omap/omap.txt | 3 ++ arch/arm/boot/dts/Makefile | 7 +-- arch/arm/boot/dts/am335x-cm-t335.dts | 63 ++++++++++++++++++++++ 3 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 arch/arm/boot/dts/am335x-cm-t335.dtsDocumentation/devicetree/bindings/arm/omap/omap.txt +3
-0@@ -138,6 +138,9 @@ Boards: - AM335X phyBOARD-WEGA: Single Board Computer dev kit compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx" +- AM335X CM-T335 : System On Module, built around the Sitara AM3352/4 + compatible = "compulab,cm-t335", "ti,am33xx" + - OMAP5 EVM : Evaluation Module compatible = "ti,omap5-evm", "ti,omap5"arch/arm/boot/dts/Makefile +4
-3@@ -446,13 +446,14 @@ dtb-$(CONFIG_SOC_AM33XX) += \ am335x-base0033.dtb \ am335x-bone.dtb \ am335x-boneblack.dtb \ - am335x-sl50.dtb \ + am335x-chiliboard.dtb \ + am335x-cm-t335.dtb \ am335x-evm.dtb \ am335x-evmsk.dtb \ + am335x-lxm.dtb \ am335x-nano.dtb \ am335x-pepper.dtb \ - am335x-lxm.dtb \ - am335x-chiliboard.dtb \ + am335x-sl50.dtb \ am335x-wega-rdk.dtb dtb-$(CONFIG_ARCH_OMAP4) += \ omap4-duovero-parlor.dtb \arch/arm/boot/dts/am335x-cm-t335.dts new file +63
-0@@ -0,0 +1,63 @@ +/* + * am335x-cm-t335.dts - Device Tree file for Compulab CM-T335 + * + * Copyright (C) 2014 - 2015 CompuLab Ltd. - http://www.compulab.co.il/ + * + * 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" + +/ { + model = "CompuLab CM-T335"; + compatible = "compulab,cm-t335", "ti,am33xx"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x8000000>; /* 128 MB */ + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&gpio_led_pins>; + led at 0 { + label = "cm_t335:green"; + gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; /* gpio2_0 */ + linux,default-trigger = "heartbeat"; + }; + }; +}; + +&am33xx_pinmux { + pinctrl-names = "default"; + pinctrl-0 = <>; + + gpio_led_pins: pinmux_gpio_led_pins { + pinctrl-single,pins = < + /* gpmc_csn3.gpio2_0 */ + AM33XX_IOPAD(0x888, PIN_OUTPUT | MUX_MODE7) + >; + }; + + uart0_pins: pinmux_uart0_pins { + pinctrl-single,pins = < + /* uart0_rxd.uart0_rxd */ + AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) + /* uart0_txd.uart0_txd */ + AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) + >; + }; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pins>; + + status = "okay"; +}; +Signature · 1 line
2.5.0
PATCH v2 1/6 ARM: OMAP2+: dts: cm-t335: add initial support
In reply to Uri MashiachQuoted 2 lines · Uri Mashiach
arch/arm/boot/dts/am335x-cm-t335.dts new file +0
-0
...
arch/arm/boot/dts/am335x-cm-t335.dts line 63
Quoted 7 lines
+&uart0 {
arch/arm/boot/dts/am335x-cm-t335.dts new file +6
-0+ pinctrl-names = "default"; + pinctrl-0 = <&uart0_pins>; + + status = "okay"; +}; +
FYI, the extra line break at the end of the file causes whitespace warnings when applying. And fixing that causes extra hassles with applying the other patches in the series as the patches won't apply.. So for the next time, you may want to check that ;)
Also, the subject line should be "ARM: dts: ..." for the dts changes so the git log loooks unified for all the ARM SoCs.
Anyways, I've fixed up those locally and applying into omap-for-v4.5/dt.
Regards,
Tony
PATCH v2 1/6 ARM: OMAP2+: dts: cm-t335: add initial support
Hi Tony,
Quoted 5 lines · Tony Lindgren
Quoted 2 lines · Uri Mashiach
arch/arm/boot/dts/am335x-cm-t335.dts new file +0
-0...
Quoted 12 lines
arch/arm/boot/dts/am335x-cm-t335.dts line 63
Quoted 7 lines
+&uart0 {
arch/arm/boot/dts/am335x-cm-t335.dts new file +6
-0+ pinctrl-names = "default"; + pinctrl-0 = <&uart0_pins>; + + status = "okay"; +}; +FYI, the extra line break at the end of the file causes whitespace warnings when applying. And fixing that causes extra hassles with applying the other patches in the series as the patches won't apply.. So for the next time, you may want to check that ;)
Yes, I will definitely do that.
Quoted 3 lines
Also, the subject line should be "ARM: dts: ..." for the dts changes so the git log loooks unified for all the ARM SoCs.
Got it. Thanks!
Quoted 3 lines
Anyways, I've fixed up those locally and applying into omap-for-v4.5/dt.
Thank you Tony!
Signature · 2 lines
Regards, Uri.
PATCH v2 2/6 ARM: OMAP2+: dts: cm-t335: add basic support for I2C
In reply to Uri MashiachFrom: Ilya Ledvich <[email protected]>
Add pinmux configuration for I2C0 and I2C1 pins. Add description for I2C0 bus, set clock frequency to 400kHz. Add child nodes for 24c02 EEPROM and em3027 RTC on I2C0 bus.
---
v1 -> v2: integrate AM33XX_IOPAD macro in pinmux definitions
arch/arm/boot/dts/am335x-cm-t335.dts | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+)
arch/arm/boot/dts/am335x-cm-t335.dts +37 -0
@@ -37,6 +37,24 @@ pinctrl-names = "default"; pinctrl-0 = <>; + i2c0_pins: pinmux_i2c0_pins { + pinctrl-single,pins = < + /* i2c0_sda.i2c0_sda */ + AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) + /* i2c0_scl.i2c0_scl */ + AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) + >; + }; + + i2c1_pins: pinmux_i2c1_pins { + pinctrl-single,pins = < + /* uart0_ctsn.i2c1_sda */ + AM33XX_IOPAD(0x968, PIN_INPUT_PULLUP | MUX_MODE2) + /* uart0_rtsn.i2c1_scl */ + AM33XX_IOPAD(0x96c, PIN_INPUT_PULLUP | MUX_MODE2) + >; + }; + gpio_led_pins: pinmux_gpio_led_pins { pinctrl-single,pins = < /* gpmc_csn3.gpio2_0 */
@@ -61,3 +79,22 @@ status = "okay"; }; +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins>; + + status = "okay"; + clock-frequency = <400000>; + /* CM-T335 board EEPROM */ + eeprom: 24c02 at 50 { + compatible = "atmel,24c02"; + reg = <0x50>; + pagesize = <16>; + }; + /* Real Time Clock */ + ext_rtc: em3027 at 56 { + compatible = "emmicro,em3027"; + reg = <0x56>; + }; +}; +
Signature · 1 line
2.5.0
PATCH v2 3/6 ARM: OMAP2+: dts: cm-t335: add support for NAND flash
In reply to Uri MashiachFrom: Ilya Ledvich <[email protected]>
Add pinmux configuration for NAND specific GPMC pins. Add description for GPMC controller. Add child node for NAND flash including CM-T335 specific partition table to GPMC node. Enable error-location module (ELM).
---
v1 -> v2: integrate AM33XX_IOPAD macro in pinmux definitions
arch/arm/boot/dts/am335x-cm-t335.dts | 106 +++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+)
arch/arm/boot/dts/am335x-cm-t335.dts +106 -0
@@ -62,6 +62,41 @@ >; }; + nandflash_pins: pinmux_nandflash_pins { + pinctrl-single,pins = < + /* gpmc_ad0.gpmc_ad0 */ + AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad1.gpmc_ad1 */ + AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad2.gpmc_ad2 */ + AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad3.gpmc_ad3 */ + AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad4.gpmc_ad4 */ + AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad5.gpmc_ad5 */ + AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad6.gpmc_ad6 */ + AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_ad7.gpmc_ad7 */ + AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_wait0.gpmc_wait0 */ + AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0) + /* gpmc_wpn.gpio0_30 */ + AM33XX_IOPAD(0x874, PIN_INPUT_PULLUP | MUX_MODE7) + /* gpmc_csn0.gpmc_csn0 */ + AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0) + /* gpmc_advn_ale.gpmc_advn_ale */ + AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0) + /* gpmc_oen_ren.gpmc_oen_ren */ + AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0) + /* gpmc_wen.gpmc_wen */ + AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0) + /* gpmc_ben0_cle.gpmc_ben0_cle */ + AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0) + >; + }; + uart0_pins: pinmux_uart0_pins { pinctrl-single,pins = < /* uart0_rxd.uart0_rxd */
@@ -98,3 +133,74 @@ }; }; +&gpmc { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&nandflash_pins>; + ranges = <0 0 0x08000000 0x10000000>; /* CS0: NAND */ + nand at 0,0 { + reg = <0 0 0>; /* CS0, offset 0 */ + ti,nand-ecc-opt = "bch8"; + ti,elm-id = <&elm>; + nand-bus-width = <8>; + gpmc,device-width = <1>; + gpmc,sync-clk-ps = <0>; + gpmc,cs-on-ns = <0>; + gpmc,cs-rd-off-ns = <44>; + gpmc,cs-wr-off-ns = <44>; + gpmc,adv-on-ns = <6>; + gpmc,adv-rd-off-ns = <34>; + gpmc,adv-wr-off-ns = <44>; + gpmc,we-on-ns = <0>; + gpmc,we-off-ns = <40>; + gpmc,oe-on-ns = <0>; + gpmc,oe-off-ns = <54>; + gpmc,access-ns = <64>; + gpmc,rd-cycle-ns = <82>; + gpmc,wr-cycle-ns = <82>; + gpmc,wait-on-read = "true"; + gpmc,wait-on-write = "true"; + gpmc,bus-turnaround-ns = <0>; + gpmc,cycle2cycle-delay-ns = <0>; + gpmc,clk-activation-ns = <0>; + gpmc,wait-monitoring-ns = <0>; + gpmc,wr-access-ns = <40>; + gpmc,wr-data-mux-bus-ns = <0>; + /* MTD partition table */ + #address-cells = <1>; + #size-cells = <1>; + partition at 0 { + label = "spl"; + reg = <0x00000000 0x00200000>; + }; + partition at 1 { + label = "uboot"; + reg = <0x00200000 0x00100000>; + }; + partition at 2 { + label = "uboot environment"; + reg = <0x00300000 0x00100000>; + }; + partition at 3 { + label = "dtb"; + reg = <0x00400000 0x00100000>; + }; + partition at 4 { + label = "splash"; + reg = <0x00500000 0x00400000>; + }; + partition at 5 { + label = "linux"; + reg = <0x00900000 0x00600000>; + }; + partition at 6 { + label = "rootfs"; + reg = <0x00F00000 0>; + }; + }; +}; + +&elm { + status = "okay"; +}; +
Signature · 1 line
2.5.0
PATCH v2 4/6 ARM: OMAP2+: dts: cm-t335: add support for MMC
In reply to Uri MashiachFrom: Ilya Ledvich <[email protected]>
Add pinmux configuration for MMC0 pins.
Add fixed regulator 'vmmc_fixed'.
Enable MMC0 in 4-bit mode.
---
v1 -> v2: integrate AM33XX_IOPAD macro in pinmux definitions
arch/arm/boot/dts/am335x-cm-t335.dts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+)
arch/arm/boot/dts/am335x-cm-t335.dts +33 -0
@@ -31,6 +31,14 @@ linux,default-trigger = "heartbeat"; }; }; + + /* regulator for mmc */ + vmmc_fixed: fixedregulator at 0 { + compatible = "regulator-fixed"; + regulator-name = "vmmc_fixed"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; }; &am33xx_pinmux {
@@ -105,6 +113,23 @@ AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) >; }; + + mmc1_pins: pinmux_mmc1_pins { + pinctrl-single,pins = < + /* mmc0_dat3.mmc0_dat3 */ + AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_dat2.mmc0_dat2 */ + AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_dat1.mmc0_dat1 */ + AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_dat0.mmc0_dat0 */ + AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_clk.mmc0_clk */ + AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) + /* mmc0_cmd.mmc0_cmd */ + AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) + >; + }; }; &uart0 {
@@ -204,3 +229,11 @@ status = "okay"; }; +&mmc1 { + status = "okay"; + vmmc-supply = <&vmmc_fixed>; + bus-width = <4>; + pinctrl-names = "default"; + pinctrl-0 = <&mmc1_pins>; +}; +
Signature · 1 line
2.5.0
PATCH v2 5/6 ARM: OMAP2+: dts: cm-t335: add support for network device
In reply to Uri MashiachFrom: Ilya Ledvich <[email protected]>
Add pinmux configurations for RGMII1 based CPSW Ethernet pins and MDIO pins:
- default configuration required for module in active state,
- sleep configuration required for module in inactive state.
Add mac node with single slave device. Add nodes for davinci_mdio and cpsw_emac0.
---
v1 -> v2: integrate AM33XX_IOPAD macro in pinmux definitions
arch/arm/boot/dts/am335x-cm-t335.dts | 85 ++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+)
arch/arm/boot/dts/am335x-cm-t335.dts +85 -0
@@ -114,6 +114,71 @@ >; }; + cpsw_default: cpsw_default { + pinctrl-single,pins = < + /* Slave 1 */ + /* mii1_tx_en.rgmii1_tctl */ + AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxdv.rgmii1_rctl */ + AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd3.rgmii1_td3 */ + AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd2.rgmii1_td2 */ + AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd1.rgmii1_td1 */ + AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txd0.rgmii1_td0 */ + AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_txclk.rgmii1_tclk */ + AM33XX_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxclk.rgmii1_rclk */ + AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd3.rgmii1_rd3 */ + AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd2.rgmii1_rd2 */ + AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd1.rgmii1_rd1 */ + AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2) + /* mii1_rxd0.rgmii1_rd0 */ + AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2) + >; + }; + + cpsw_sleep: cpsw_sleep { + pinctrl-single,pins = < + /* Slave 1 reset value */ + AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7) + >; + }; + + davinci_mdio_default: davinci_mdio_default { + pinctrl-single,pins = < + /* mdio_data.mdio_data */ + AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) + /* mdio_clk.mdio_clk */ + AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) + >; + }; + + davinci_mdio_sleep: davinci_mdio_sleep { + pinctrl-single,pins = < + /* MDIO reset value */ + AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7) + AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7) + >; + }; + mmc1_pins: pinmux_mmc1_pins { pinctrl-single,pins = < /* mmc0_dat3.mmc0_dat3 */
@@ -229,6 +294,26 @@ status = "okay"; }; +&mac { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cpsw_default>; + pinctrl-1 = <&cpsw_sleep>; + slaves = <1>; + status = "okay"; +}; + +&davinci_mdio { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&davinci_mdio_default>; + pinctrl-1 = <&davinci_mdio_sleep>; + status = "okay"; +}; + +&cpsw_emac0 { + phy_id = <&davinci_mdio>, <0>; + phy-mode = "rgmii-txid"; +}; + &mmc1 { status = "okay"; vmmc-supply = <&vmmc_fixed>;
Signature · 1 line
2.5.0
PATCH v2 6/6 ARM: OMAP2+: dts: cm-t335: add support for PWM backlight
In reply to Uri MashiachFrom: Ilya Ledvich <[email protected]>
Add pinmux configuration for ECAP0 pin.
Add node for PWM backlight device.
Use PWM output from ecap0 as backlight source.
---
v1 -> v2: integrate AM33XX_IOPAD macro in pinmux definitions
arch/arm/boot/dts/am335x-cm-t335.dts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)
arch/arm/boot/dts/am335x-cm-t335.dts +24 -0
@@ -39,6 +39,13 @@ regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; + + backlight { + compatible = "pwm-backlight"; + pwms = <&ecap0 0 50000 0>; + brightness-levels = <0 51 53 56 62 75 101 152 255>; + default-brightness-level = <8>; + }; }; &am33xx_pinmux {
@@ -114,6 +121,13 @@ >; }; + ecap0_pins: pinmux_ecap0_pins { + pinctrl-single,pins = < + /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */ + AM33XX_IOPAD(0x964, 0x0) + >; + }; + cpsw_default: cpsw_default { pinctrl-single,pins = < /* Slave 1 */
@@ -223,6 +237,16 @@ }; }; +&epwmss0 { + status = "okay"; + + ecap0: ecap@48300100 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&ecap0_pins>; + }; +}; + &gpmc { status = "okay"; pinctrl-names = "default";
Signature · 1 line
2.5.0
cover ARM: dts: cm-t335: add peripheral support
In reply to Uri MashiachAdd support for the following CM-T335 module peripherals:
USB, I2C controller, LCD/DVI, bluetooth
Ilya Ledvich (1):
ARM: dts: cm-t335: add support for USB0
Uri Mashiach (4):
ARM: dts: cm-t335: add support for SBC-T335
ARM: dts: cm-t335: add support for I2C GPIO expander
ARM: dts: cm-t335: add support for DVI/LCD
ARM: dts: cm-t335: add support for bluetooth
.../devicetree/bindings/arm/omap/omap.txt | 3 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am335x-cm-t335.dts | 51 ++++- arch/arm/boot/dts/am335x-sbc-t335.dts | 219 +++++++++++++++++++++ 4 files changed, 273 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/am335x-sbc-t335.dts
Signature · 1 line
2.5.0
PATCH 1/5 ARM: dts: cm-t335: add support for USB0
From: Ilya Ledvich <[email protected]>
Enable USB0.
--- arch/arm/boot/dts/am335x-cm-t335.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
arch/arm/boot/dts/am335x-cm-t335.dts +20 -0
@@ -237,6 +237,26 @@ }; }; +&usb { + status = "okay"; +}; + +&usb_ctrl_mod { + status = "okay"; +}; + +&usb0_phy { + status = "okay"; +}; + +&usb0 { + status = "okay"; +}; + +&cppi41dma { + status = "okay"; +}; + &epwmss0 { status = "okay";
Signature · 1 line
2.5.0
PATCH 2/5 ARM: dts: cm-t335: add support for SBC-T335
In reply to Uri MashiachAdd basic support for the SBC-T335.
CompuLab SBC-T335 is a single baseboard computer.
The SBC-T335 is based on the Texas Instruments Cortex-A8 Sitara AM3354 SoC.
--- Documentation/devicetree/bindings/arm/omap/omap.txt | 3 +++ arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am335x-sbc-t335.dts | 16 ++++++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-sbc-t335.dts
Documentation/devicetree/bindings/arm/omap/omap.txt +3 -0
@@ -141,6 +141,9 @@ Boards: - AM335X CM-T335 : System On Module, built around the Sitara AM3352/4 compatible = "compulab,cm-t335", "ti,am33xx" +- AM335X SBC-T335 : single board computer, built around the Sitara AM3352/4 + compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx" + - OMAP5 EVM : Evaluation Module compatible = "ti,omap5-evm", "ti,omap5"
arch/arm/boot/dts/Makefile +1 -0
@@ -466,6 +466,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \ am335x-lxm.dtb \ am335x-nano.dtb \ am335x-pepper.dtb \ + am335x-sbc-t335.dtb \ am335x-sl50.dtb \ am335x-wega-rdk.dtb dtb-$(CONFIG_ARCH_OMAP4) += \
arch/arm/boot/dts/am335x-sbc-t335.dts new file +16 -0
@@ -0,0 +1,16 @@ +/* + * am335x-sbc-t335.dts - Device Tree file for Compulab SBC-T335 + * + * Copyright (C) 2014 - 2015 CompuLab Ltd. - http://www.compulab.co.il/ + * + * 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-cm-t335.dts" + +/ { + model = "CompuLab CM-T335 on SB-T335"; + compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx"; +};
Signature · 1 line
2.5.0
Rob Herring
maintainerPATCH 2/5 ARM: dts: cm-t335: add support for SBC-T335
Quoted 8 lines · Uri Mashiach
Add basic support for the SBC-T335.
CompuLab SBC-T335 is a single baseboard computer.
The SBC-T335 is based on the Texas Instruments Cortex-A8 Sitara AM3354 SoC.Signed-off-by Uri Mashiach <[email protected]>Acked-by Igor Grinberg <[email protected]>
Quoted 58 lines
--- Documentation/devicetree/bindings/arm/omap/omap.txt | 3 +++ arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am335x-sbc-t335.dts | 16 ++++++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 arch/arm/boot/dts/am335x-sbc-t335.dtsDocumentation/devicetree/bindings/arm/omap/omap.txt +3
-0@@ -141,6 +141,9 @@ Boards: - AM335X CM-T335 : System On Module, built around the Sitara AM3352/4 compatible = "compulab,cm-t335", "ti,am33xx" +- AM335X SBC-T335 : single board computer, built around the Sitara AM3352/4 + compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx" + - OMAP5 EVM : Evaluation Module compatible = "ti,omap5-evm", "ti,omap5"arch/arm/boot/dts/Makefile +1
-0@@ -466,6 +466,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \ am335x-lxm.dtb \ am335x-nano.dtb \ am335x-pepper.dtb \ + am335x-sbc-t335.dtb \ am335x-sl50.dtb \ am335x-wega-rdk.dtb dtb-$(CONFIG_ARCH_OMAP4) += \arch/arm/boot/dts/am335x-sbc-t335.dts new file +16
-0@@ -0,0 +1,16 @@ +/* + * am335x-sbc-t335.dts - Device Tree file for Compulab SBC-T335 + * + * Copyright (C) 2014 - 2015 CompuLab Ltd. - http://www.compulab.co.il/ + * + * 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-cm-t335.dts" + +/ { + model = "CompuLab CM-T335 on SB-T335"; + compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx"; +};Signature · 1 line
2.5.0
PATCH 2/5 ARM: dts: cm-t335: add support for SBC-T335
Quoted 11 lines · Rob Herring
Quoted 8 lines · Uri Mashiach
Add basic support for the SBC-T335.
CompuLab SBC-T335 is a single baseboard computer.
The SBC-T335 is based on the Texas Instruments Cortex-A8 Sitara AM3354 SoC.Signed-off-by Uri Mashiach <[email protected]>Acked-by Igor Grinberg <[email protected]>Acked-by Rob Herring <[email protected]>
Thanks applying the whole series into omap-for-v4.5/dt.
Tony
PATCH 3/5 ARM: dts: cm-t335: add support for I2C GPIO expander
In reply to Uri MashiachThe I2C GPIO expander (PCA9555) adds 16 GPIOs to the module.
--- arch/arm/boot/dts/am335x-sbc-t335.dts | 11 +++++++++++ 1 file changed, 11 insertions(+)
arch/arm/boot/dts/am335x-sbc-t335.dts +11 -0
@@ -14,3 +14,14 @@ model = "CompuLab CM-T335 on SB-T335"; compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx"; }; + +&i2c0 { + /* GPIO extender */ + gpio_ext: pca9555 at 26 { + compatible = "nxp,pca9555"; + pinctrl-names = "default"; + gpio-controller; + #gpio-cells = <2>; + reg = <0x26>; + }; +};
Signature · 1 line
2.5.0
PATCH 4/5 ARM: dts: cm-t335: add support for DVI/LCD
In reply to Uri MashiachAdd pinmux configuration for DVI/LCD.
Add DRM display driver node with timing configurations for DVI and LCD. Add I2C GPIOs configurations for DVI and LCD enable.
--- arch/arm/boot/dts/am335x-sbc-t335.dts | 192 ++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+)
arch/arm/boot/dts/am335x-sbc-t335.dts +192 -0
@@ -13,6 +13,181 @@ / { model = "CompuLab CM-T335 on SB-T335"; compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx"; + + /* DRM display driver */ + panel { + compatible = "ti,tilcdc,panel"; + status = "okay"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&lcd_pins_default>; + pinctrl-1 = <&lcd_pins_sleep>; + + 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 { + /* Timing selection performed by U-Boot */ + timing0: lcd {/* 800x480p62 */ + clock-frequency = <30000000>; + hactive = <800>; + vactive = <480>; + hfront-porch = <39>; + hback-porch = <39>; + hsync-len = <47>; + vback-porch = <29>; + vfront-porch = <13>; + vsync-len = <2>; + hsync-active = <1>; + vsync-active = <1>; + }; + timing1: dvi { /* 1024x768p60 */ + clock-frequency = <65000000>; + hactive = <1024>; + hfront-porch = <24>; + hback-porch = <160>; + hsync-len = <136>; + vactive = <768>; + vfront-porch = <3>; + vback-porch = <29>; + vsync-len = <6>; + hsync-active = <0>; + vsync-active = <0>; + }; + }; + }; +}; + +&am33xx_pinmux { + /* Display */ + lcd_pins_default: lcd_pins_default { + pinctrl-single,pins = < + /* gpmc_ad8.lcd_data23 */ + AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1) + /* gpmc_ad9.lcd_data22 */ + AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1) + /* gpmc_ad10.lcd_data21 */ + AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1) + /* gpmc_ad11.lcd_data20 */ + AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1) + /* gpmc_ad12.lcd_data19 */ + AM33XX_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1) + /* gpmc_ad13.lcd_data18 */ + AM33XX_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1) + /* gpmc_ad14.lcd_data17 */ + AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1) + /* gpmc_ad15.lcd_data16 */ + AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1) + /* lcd_data0.lcd_data0 */ + AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) + /* lcd_data1.lcd_data1 */ + AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) + /* lcd_data2.lcd_data2 */ + AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) + /* lcd_data3.lcd_data3 */ + AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) + /* lcd_data4.lcd_data4 */ + AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) + /* lcd_data5.lcd_data5 */ + AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) + /* lcd_data6.lcd_data6 */ + AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) + /* lcd_data7.lcd_data7 */ + AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) + /* lcd_data8.lcd_data8 */ + AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) + /* lcd_data9.lcd_data9 */ + AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) + /* lcd_data10.lcd_data10 */ + AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) + /* lcd_data11.lcd_data11 */ + AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) + /* lcd_data12.lcd_data12 */ + AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) + /* lcd_data13.lcd_data13 */ + AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) + /* lcd_data14.lcd_data14 */ + AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) + /* lcd_data15.lcd_data15 */ + AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) + /* lcd_vsync.lcd_vsync */ + AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0) + /* lcd_hsync.lcd_hsync */ + AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0) + /* lcd_pclk.lcd_pclk */ + AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0) + /* lcd_ac_bias_en.lcd_ac_bias_en */ + AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0) + >; + }; + + lcd_pins_sleep: lcd_pins_sleep { + pinctrl-single,pins = < + /* gpmc_ad8.lcd_data23 */ + AM33XX_IOPAD(0x820, PIN_INPUT_PULLDOWN | MUX_MODE7) + /* gpmc_ad9.lcd_data22 */ + AM33XX_IOPAD(0x824, PIN_INPUT_PULLDOWN | MUX_MODE7) + /* gpmc_ad10.lcd_data21 */ + AM33XX_IOPAD(0x828, PIN_INPUT_PULLDOWN | MUX_MODE7) + /* gpmc_ad11.lcd_data20 */ + AM33XX_IOPAD(0x82c, PIN_INPUT_PULLDOWN | MUX_MODE7) + /* gpmc_ad12.lcd_data19 */ + AM33XX_IOPAD(0x830, PIN_INPUT_PULLDOWN | MUX_MODE7) + /* gpmc_ad13.lcd_data18 */ + AM33XX_IOPAD(0x834, PIN_INPUT_PULLDOWN | MUX_MODE7) + /* gpmc_ad14.lcd_data17 */ + AM33XX_IOPAD(0x838, PIN_INPUT_PULLDOWN | MUX_MODE7) + /* gpmc_ad15.lcd_data16 */ + AM33XX_IOPAD(0x83c, PIN_INPUT_PULLDOWN | MUX_MODE7) + /* lcd_data0.lcd_data0 */ + AM33XX_IOPAD(0x8a0, PULL_DISABLE | MUX_MODE7) + /* lcd_data1.lcd_data1 */ + AM33XX_IOPAD(0x8a4, PULL_DISABLE | MUX_MODE7) + /* lcd_data2.lcd_data2 */ + AM33XX_IOPAD(0x8a8, PULL_DISABLE | MUX_MODE7) + /* lcd_data3.lcd_data3 */ + AM33XX_IOPAD(0x8ac, PULL_DISABLE | MUX_MODE7) + /* lcd_data4.lcd_data4 */ + AM33XX_IOPAD(0x8b0, PULL_DISABLE | MUX_MODE7) + /* lcd_data5.lcd_data5 */ + AM33XX_IOPAD(0x8b4, PULL_DISABLE | MUX_MODE7) + /* lcd_data6.lcd_data6 */ + AM33XX_IOPAD(0x8b8, PULL_DISABLE | MUX_MODE7) + /* lcd_data7.lcd_data7 */ + AM33XX_IOPAD(0x8bc, PULL_DISABLE | MUX_MODE7) + /* lcd_data8.lcd_data8 */ + AM33XX_IOPAD(0x8c0, PULL_DISABLE | MUX_MODE7) + /* lcd_data9.lcd_data9 */ + AM33XX_IOPAD(0x8c4, PULL_DISABLE | MUX_MODE7) + /* lcd_data10.lcd_data10 */ + AM33XX_IOPAD(0x8c8, PULL_DISABLE | MUX_MODE7) + /* lcd_data11.lcd_data11 */ + AM33XX_IOPAD(0x8cc, PULL_DISABLE | MUX_MODE7) + /* lcd_data12.lcd_data12 */ + AM33XX_IOPAD(0x8d0, PULL_DISABLE | MUX_MODE7) + /* lcd_data13.lcd_data13 */ + AM33XX_IOPAD(0x8d4, PULL_DISABLE | MUX_MODE7) + /* lcd_data14.lcd_data14 */ + AM33XX_IOPAD(0x8d8, PULL_DISABLE | MUX_MODE7) + /* lcd_data15.lcd_data15 */ + AM33XX_IOPAD(0x8dc, PULL_DISABLE | MUX_MODE7) + /* lcd_vsync.lcd_vsync */ + AM33XX_IOPAD(0x8e0, PIN_INPUT_PULLDOWN | MUX_MODE7) + /* lcd_hsync.lcd_hsync */ + AM33XX_IOPAD(0x8e4, PIN_INPUT_PULLDOWN | MUX_MODE7) + /* lcd_pclk.lcd_pclk */ + AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | MUX_MODE7) + /* lcd_ac_bias_en.lcd_ac_bias_en */ + AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | MUX_MODE7) + >; + }; }; &i2c0 {
@@ -23,5 +198,22 @@ gpio-controller; #gpio-cells = <2>; reg = <0x26>; + dvi_ena { + gpio-hog; + gpios = <13 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "dvi-enable"; + }; + lcd_ena { + gpio-hog; + gpios = <11 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "lcd-enable"; + }; }; }; + +/* Display */ +&lcdc { + status = "okay"; +};
Signature · 1 line
2.5.0
PATCH 5/5 ARM: dts: cm-t335: add support for bluetooth
In reply to Uri Mashiachbluetooth HW is WLS1271 chip connected to UART1.
Device tree modifications:
- Pinmux for UART1.
- Pinmux for bluetooth enable GPIO.
Bluetooth enable GPIO is set to enable during startup by setting the relevant pinmux pin to pull-up.
--- arch/arm/boot/dts/am335x-cm-t335.dts | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-)
arch/arm/boot/dts/am335x-cm-t335.dts +30 -1
@@ -50,7 +50,7 @@ &am33xx_pinmux { pinctrl-names = "default"; - pinctrl-0 = <>; + pinctrl-0 = <&bluetooth_pins>; i2c0_pins: pinmux_i2c0_pins { pinctrl-single,pins = <
@@ -121,6 +121,19 @@ >; }; + uart1_pins: pinmux_uart1_pins { + pinctrl-single,pins = < + /* uart1_ctsn.uart1_ctsn */ + AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0) + /* uart1_rtsn.uart1_rtsn */ + AM33XX_IOPAD(0x97C, PIN_OUTPUT_PULLDOWN | MUX_MODE0) + /* uart1_rxd.uart1_rxd */ + AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) + /* uart1_txd.uart1_txd */ + AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) + >; + }; + ecap0_pins: pinmux_ecap0_pins { pinctrl-single,pins = < /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */
@@ -209,6 +222,14 @@ AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) >; }; + + /* wl1271 bluetooth */ + bluetooth_pins: pinmux_bluetooth_pins { + pinctrl-single,pins = < + /* XDMA_EVENT_INTR0.gpio0_19 - bluetooth enable */ + AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLUP | MUX_MODE7) + >; + }; }; &uart0 {
@@ -218,6 +239,14 @@ status = "okay"; }; +/* WLS1271 bluetooth */ +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&uart1_pins>; + +status = "okay"; +}; + &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>;
Signature · 1 line
2.5.0