Add support for CL-SOM-AM57X and SBC-AM57X
cover Add support for CL-SOM-AM57X and SBC-AM57X
This patch series adds support for CompuLab CL-SOM-AM57X and SBC-AM57X boards.
CL-SOM-AM57x is a miniature System-on-Module (SoM) based on TI Sitara AM57x ARM Cortex-A15 System-on-Chip family.
SBC-AM57x is a single board computer, implemented with the CL-SOM-AM57x computer-on-module providing most of the functions, and SB-SOM-AM57x carrier board providing additional peripheral functions and connectors.
The SBC-AM57x has the following features:
CPU: Texas Instruments Sitara AM5728 dual-core ARM Cortex-A15, 1.5GHz or
Texas Instruments Sitara AM5718 single-core ARM Cortex-A15, 1.5GHz
RAM: DDR3, 512MB ? 4GB
Storage: NAND flash, 512MB - 1GB or eMMC flash, 4GB - 32GB
SPI-flash 2MB
Ethernet: Up to 2x 10/100/1000Mbps Ethernet ports (MAC+PHY)
WiFi/BT: 802.11b/g/n WiFi interface (TI WiLink 8 WL1801 chipset) or
Dual-band 2x2 802.11a/b/g/n WiFi interface (TI WiLink 8 WL1837 chipset)
Analog Audio: Audio codec with stereo output, stereo input and microphone support
More details can be found here:
https://www.compulab.co.il/products/sbcs/sbc-am57x-ti-am5728-am5718-single-board-computer/
This series is based on the following patch set ("Add support for sbc-t43" Nikita Kiryanov):
https://www.mail-archive.com/linux-omap at vger.kernel.org/msg121614.html
Dmitry Lifshitz (18):
ARM: am57xx: cl-som-am57x: dts: add basic module support
ARM: am57xx: cl-som-am57x: dts: add RTC support
ARM: am57xx: cl-som-am57x: dts: add I2C3 support
ARM: am57xx: cl-som-am57x: dts: add EEPROM support
ARM: am57xx: cl-som-am57x: dts: add eMMC support
ARM: am57xx: cl-som-am57x: dts: add spi-flash support
ARM: am57xx: cl-som-am57x: dts: add dual EMAC support
ARM: am57xx: cl-som-am57x: dts: add USB support
ARM: am57xx: cl-som-am57x: dts: add touchscreen support
ARM: am57xx: cl-som-am57x: dts: add analog audio support
ARM: am57xx: sbc-am57x: dts: add basic board support
ARM: am57xx: cl-som-am57x: dts: add MMC1 support
ARM: am57xx: sbc-am57x: dts: add usb vbus pinmux
ARM: am57xx: sbc-am57x: dts: add EEPROM support
ARM: am57xx: sbc-am57x: dts: add GPIO extender support
ARM: am57xx: sbc-am57x: dts: add LCD support
ARM: am57xx: compulab-sb-som: dts: add HDMI connector
ARM: am57xx: sbc-am57x: dts: add HDMI support
.../devicetree/bindings/arm/omap/omap.txt | 6 + arch/arm/boot/dts/Makefile | 4 +- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 606 +++++++++++++++++++++ arch/arm/boot/dts/am57xx-sbc-am57x.dts | 179 ++++++ arch/arm/boot/dts/compulab-sb-som.dtsi | 7 + 5 files changed, 801 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/am57xx-cl-som-am57x.dts create mode 100644 arch/arm/boot/dts/am57xx-sbc-am57x.dts
Signature · 1 line
1.9.1
PATCH 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
Add support for CompuLab CM-SOM-AM57X board.
CL-SOM-AM57x is a miniature System-on-Module (SoM) based on TI Sitara AM57x ARM Cortex-A15 System-on-Chip family.
Add basic DT support for standalone module (without a carrier board):
* Memory configuration
* Heartbeat led
* I2C1 bus
* PMIC
* SATA
--- .../devicetree/bindings/arm/omap/omap.txt | 3 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 259 +++++++++++++++++++++ 3 files changed, 264 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/am57xx-cl-som-am57x.dts
Documentation/devicetree/bindings/arm/omap/omap.txt +3 -0
@@ -156,6 +156,9 @@ Boards: - AM437x SK EVM: AM437x StarterKit Evaluation Module compatible = "ti,am437x-sk-evm", "ti,am4372", "ti,am43" +- AM57XX CL-SOM-AM57x + compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" + - DRA742 EVM: Software Development Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
arch/arm/boot/dts/Makefile +2 -1
@@ -477,8 +477,9 @@ dtb-$(CONFIG_SOC_OMAP5) += \ omap5-sbc-t54.dtb \ omap5-uevm.dtb dtb-$(CONFIG_SOC_DRA7XX) += \ - dra7-evm.dtb \ am57xx-beagle-x15.dtb \ + am57xx-cl-som-am57x.dtb \ + dra7-evm.dtb \ dra72-evm.dtb dtb-$(CONFIG_ARCH_ORION5X) += \ orion5x-lacie-d2-network.dtb \
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +259 -0
259 lines not on this page · raw message
Signature · 1 line
1.9.1
Rob Herring
maintainerPATCH 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
Quoted 9 lines · Dmitry Lifshitz
Add support for CompuLab CM-SOM-AM57X board.
CL-SOM-AM57x is a miniature System-on-Module (SoM) based on TI Sitara AM57x ARM Cortex-A15 System-on-Chip family.
Add basic DT support for standalone module (without a carrier board):
Quoted 8 lines
* Memory configuration
* Heartbeat led
* I2C1 bus
* PMIC
* SATASigned-off-by Dmitry Lifshitz <[email protected]>Acked-by Igor Grinberg <[email protected]>
Quoted 308 lines
--- .../devicetree/bindings/arm/omap/omap.txt | 3 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 259 +++++++++++++++++++++ 3 files changed, 264 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/am57xx-cl-som-am57x.dtsDocumentation/devicetree/bindings/arm/omap/omap.txt +3
-0@@ -156,6 +156,9 @@ Boards: - AM437x SK EVM: AM437x StarterKit Evaluation Module compatible = "ti,am437x-sk-evm", "ti,am4372", "ti,am43" +- AM57XX CL-SOM-AM57x + compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" + - DRA742 EVM: Software Development Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"arch/arm/boot/dts/Makefile +2
-1@@ -477,8 +477,9 @@ dtb-$(CONFIG_SOC_OMAP5) += \ omap5-sbc-t54.dtb \ omap5-uevm.dtb dtb-$(CONFIG_SOC_DRA7XX) += \ - dra7-evm.dtb \ am57xx-beagle-x15.dtb \ + am57xx-cl-som-am57x.dtb \ + dra7-evm.dtb \ dra72-evm.dtb dtb-$(CONFIG_ARCH_ORION5X) += \ orion5x-lacie-d2-network.dtb \arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +259
-0@@ -0,0 +1,259 @@ +/* + * Support for CompuLab CL-SOM-AM57x System-on-Module + * + * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/ + * Author: Dmitry Lifshitz <[email protected]> + * + * 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 <dt-bindings/gpio/gpio.h> +#include <dt-bindings/interrupt-controller/irq.h> +#include "dra74x.dtsi" + +/ { + model = "CompuLab CL-SOM-AM57x"; + compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x20000000>; /* 512 MB - minimal configuration */ + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&leds_pins_default>; + + led at 0 { + label = "cl-som-am57x:green"; + gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; +}; + +&dra7_pmx_core { + leds_pins_default: leds_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x347c, PIN_OUTPUT | MUX_MODE14) /* gpmc_a15.gpio2_5 */ + >; + }; + + i2c1_pins_default: i2c1_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda.sda */ + DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl.scl */ + >; + }; + + tps659038_pins_default: tps659038_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */ + >; + }; +}; + +&i2c1 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_pins_default>; + clock-frequency = <400000>; + + tps659038: tps659038 at 58 { + compatible = "ti,tps659038"; + reg = <0x58>; + interrupt-parent = <&gpio1>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-names = "default"; + pinctrl-0 = <&tps659038_pins_default>; + + #interrupt-cells = <2>; + interrupt-controller; + + ti,system-power-controller; + + tps659038_pmic { + compatible = "ti,tps659038-pmic"; + + regulators { + smps12_reg: smps12 { + /* VDD_MPU */ + regulator-name = "smps12"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps3_reg: smps3 { + /* VDD_DDR */ + regulator-name = "smps3"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-boot-on; + }; + + smps45_reg: smps45 { + /* VDD_DSPEVE */ + regulator-name = "smps45"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>; + regulator-always-on; + regulator-boot-on; + }; + + smps6_reg: smps6 { + /* VDD_GPU */ + regulator-name = "smps6"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>; + regulator-always-on; + regulator-boot-on; + }; + + smps7_reg: smps7 { + /* VDD_CORE */ + regulator-name = "smps7"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>; + regulator-always-on; + regulator-boot-on; + }; + + smps8_reg: smps8 { + /* VDD_IVA */ + regulator-name = "smps8"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>; + regulator-always-on; + regulator-boot-on; + }; + + smps9_reg: smps9 { + /* PMIC_3V3 */ + regulator-name = "smps9"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; + + + ldo1_reg: ldo1 { + /* VDD_SD / VDDSHV8 */ + regulator-name = "ldo1"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo2_reg: ldo2 { + /* VDD_1V8 */ + regulator-name = "ldo2"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo3_reg: ldo3 { + /* VDDA_1V8_PHYA */ + regulator-name = "ldo3"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo4_reg: ldo4 { + /* VDDA_1V8_PHYB */ + regulator-name = "ldo4"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo9_reg: ldo9 { + /* VDD_RTC */ + regulator-name = "ldo9"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + regulator-always-on; + regulator-boot-on; + }; + + ldoln_reg: ldoln { + /* VDDA_1V8_PLL */ + regulator-name = "ldoln"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldousb_reg: ldousb { + /* VDDA_3V_USB: VDDA_USBHS33 */ + regulator-name = "ldousb"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + /* regen1 not used */ + }; + }; + + tps659038_pwr_button: tps659038_pwr_button { + compatible = "ti,palmas-pwrbutton"; + interrupt-parent = <&tps659038>; + interrupts = <1 IRQ_TYPE_EDGE_FALLING>; + wakeup-source; + ti,palmas-long-press-seconds = <12>; + }; + + tps659038_gpio: tps659038_gpio { + compatible = "ti,palmas-gpio"; + gpio-controller; + #gpio-cells = <2>; + }; + }; +}; + +&cpu0 { + cpu0-supply = <&smps12_reg>; + voltage-tolerance = <1>; +}; + +&sata { + status = "okay"; +}; + +&mailbox5 { + status = "okay"; + mbox_ipu1_ipc3x: mbox_ipu1_ipc3x { + status = "okay"; + }; + mbox_dsp1_ipc3x: mbox_dsp1_ipc3x { + status = "okay"; + }; +}; + +&mailbox6 { + status = "okay"; + mbox_ipu2_ipc3x: mbox_ipu2_ipc3x { + status = "okay"; + }; + mbox_dsp2_ipc3x: mbox_dsp2_ipc3x { + status = "okay"; + }; +};Signature · 6 lines
1.9.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
In reply to Dmitry LifshitzOn 11/25/2015 12:39 AM, Dmitry Lifshitz wrote:
[...]
Quoted 5 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +0
-0
[...]
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 24
Quoted 7 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +7
-0+/ { + model = "CompuLab CL-SOM-AM57x"; + compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x20000000>; /* 512 MB - minimal configuration */
I think if you like to enable LPAE, the format might look a little different..
Quoted 25 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +25
-0+ }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&leds_pins_default>; + + led at 0 { + label = "cl-som-am57x:green"; + gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; +}; + +&dra7_pmx_core { + leds_pins_default: leds_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x347c, PIN_OUTPUT | MUX_MODE14) /* gpmc_a15.gpio2_5 */ + >; + }; + + i2c1_pins_default: i2c1_pins_default { + pinctrl-single,pins = <
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 59
Quoted 10 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +10
-0+ DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda.sda */ + DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl.scl */ + >; + }; + + tps659038_pins_default: tps659038_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */ + >; + };
Generic comment: As per requirements of the SoC -> all pinctrl must be done in bootloader. this was a recommendation that came in too late for TI platforms that got introduced in upstream, but that cleanup should eventually take place as well.
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 72
Quoted 13 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +13
-0+}; + +&i2c1 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_pins_default>; + clock-frequency = <400000>; + + tps659038: tps659038 at 58 { + compatible = "ti,tps659038"; + reg = <0x58>; + interrupt-parent = <&gpio1>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
Also See: https://patchwork.kernel.org/patch/7596541/ -> Documentation/devicetree/bindings/i2c/i2c.txt -> since you seem to have a PMIC with power button, you might be able to get wakeup source also there.
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 80
Quoted 8 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +8
-0+ + pinctrl-names = "default"; + pinctrl-0 = <&tps659038_pins_default>; + + #interrupt-cells = <2>; + interrupt-controller; + + ti,system-power-controller;
Assuming powerhold signal and BOOT0,1 is proper here, else poweroff will never work.
Quoted 18 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +18
-0+ + tps659038_pmic { + compatible = "ti,tps659038-pmic"; + + regulators { + smps12_reg: smps12 { + /* VDD_MPU */ + regulator-name = "smps12"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps3_reg: smps3 { + /* VDD_DDR */ + regulator-name = "smps3"; + regulator-min-microvolt = <1500000>;
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 108
Quoted 10 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +10
-0+ regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-boot-on; + }; + + smps45_reg: smps45 { + /* VDD_DSPEVE */ + regulator-name = "smps45"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>;
1.25v if you want to support OPP_HIGH. as per latest data sheet.
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 117
Quoted 9 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +9
-0+ regulator-always-on; + regulator-boot-on; + }; + + smps6_reg: smps6 { + /* VDD_GPU */ + regulator-name = "smps6"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>;
1.25v if you want to support OPP_HIGH. as per latest data sheet.
Quoted 27 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +27
-0+ regulator-always-on; + regulator-boot-on; + }; + + smps7_reg: smps7 { + /* VDD_CORE */ + regulator-name = "smps7"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>; + regulator-always-on; + regulator-boot-on; + }; + + smps8_reg: smps8 { + /* VDD_IVA */ + regulator-name = "smps8"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>; + regulator-always-on; + regulator-boot-on; + }; + + smps9_reg: smps9 { + /* PMIC_3V3 */ + regulator-name = "smps9"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>;
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 154
Quoted 10 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +10
-0+ regulator-always-on; + regulator-boot-on; + }; + + + ldo1_reg: ldo1 { + /* VDD_SD / VDDSHV8 */ + regulator-name = "ldo1"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>;
for eventual UHS mode support, it is recommended to keep VDD_SD separate from VDDSHV8. many of TI evms also suffer from this issue :(
Quoted 20 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +20
-0+ regulator-boot-on; + regulator-always-on; + }; + + ldo2_reg: ldo2 { + /* VDD_1V8 */ + regulator-name = "ldo2"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo3_reg: ldo3 { + /* VDDA_1V8_PHYA */ + regulator-name = "ldo3"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on;
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 184
Quoted 10 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +10
-0+ }; + + ldo4_reg: ldo4 { + /* VDDA_1V8_PHYB */ + regulator-name = "ldo4"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + };
Happy to see this is already split up. you might want to document which PHYs are supplied by PHYA/B in comments for future reference instead of having to dig through schematics to figure that out..
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 192
Quoted 8 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +8
-0+ + ldo9_reg: ldo9 { + /* VDD_RTC */ + regulator-name = "ldo9"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + regulator-always-on; + regulator-boot-on;
as per data sheet:
"VD_RTC can optionally be tied to VD_CORE and operate at the VD_CORE AVS voltages."
I assume that is not the case here.
Quoted 7 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +7
-0+ }; + + ldoln_reg: ldoln { + /* VDDA_1V8_PLL */ + regulator-name = "ldoln"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>;
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 209
Quoted 10 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +10
-0+ regulator-always-on; + regulator-boot-on; + }; + + ldousb_reg: ldousb { + /* VDDA_3V_USB: VDDA_USBHS33 */ + regulator-name = "ldousb"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on;
All SoC VDDAs must be always-on.
[...]
Signature · 2 lines
Regards, Nishanth Menon
PATCH 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
Hi Nishanth,
Thank you for the provided feedback.
Quoted 10 lines · Nishanth Menon
On 11/25/2015 12:39 AM, Dmitry Lifshitz wrote:
[...]Quoted 5 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +0
-0[...]
Quoted 11 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 24
Quoted 7 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +7
-0+/ { + model = "CompuLab CL-SOM-AM57x"; + compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x20000000>; /* 512 MB - minimal configuration */I think if you like to enable LPAE, the format might look a little different..
We would like to have a basic HW support in the mainline. It might be enhanced later, once we get to work on LPAE stuff.
Quoted 32 lines
Quoted 32 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +32
-0+ }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&leds_pins_default>; + + led at 0 { + label = "cl-som-am57x:green"; + gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; +}; + +&dra7_pmx_core { + leds_pins_default: leds_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x347c, PIN_OUTPUT | MUX_MODE14) /* gpmc_a15.gpio2_5 */ + >; + }; + + i2c1_pins_default: i2c1_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda.sda */ + DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl.scl */ + >; + }; + + tps659038_pins_default: tps659038_pins_default { + pinctrl-single,pins = <
Quoted 9 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 59
Quoted 3 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +3
-0+ DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */ + >; + };Generic comment: As per requirements of the SoC -> all pinctrl must be done in bootloader. this was a recommendation that came in too late for TI platforms that got introduced in upstream, but that cleanup should eventually take place as well.
Please, could you provide a reference to those recommendations. Do you mean pinctrl for PMIC pins only?
Quoted 10 lines
Quoted 10 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +10
-0+}; + +&i2c1 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_pins_default>; + clock-frequency = <400000>; + + tps659038: tps659038 at 58 { + compatible = "ti,tps659038";
Quoted 9 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 72
Quoted 3 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +3
-0+ reg = <0x58>; + interrupt-parent = <&gpio1>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>;Also See: https://patchwork.kernel.org/patch/7596541/ ->
Documentation/devicetree/bindings/i2c/i2c.txt-> since you seem to have a PMIC with power button, you might be able to get wakeup source also there.
Do you mean just adding "wakeup-source" property?
According to Documentation/devicetree/bindings/i2c/i2c.txt the primary interrupt will be used as wakeup interrupt.
Quoted 12 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 80
Quoted 8 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +8
-0+ + pinctrl-names = "default"; + pinctrl-0 = <&tps659038_pins_default>; + + #interrupt-cells = <2>; + interrupt-controller; + + ti,system-power-controller;Assuming powerhold signal and BOOT0,1 is proper here, else poweroff will never work.
Please, could you provide more details regarding this issue.
Quoted 22 lines
Quoted 22 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +22
-0+ + tps659038_pmic { + compatible = "ti,tps659038-pmic"; + + regulators { + smps12_reg: smps12 { + /* VDD_MPU */ + regulator-name = "smps12"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps3_reg: smps3 { + /* VDD_DDR */ + regulator-name = "smps3"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-boot-on; + };
Quoted 8 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 108
Quoted 6 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +6
-0+ + smps45_reg: smps45 { + /* VDD_DSPEVE */ + regulator-name = "smps45"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>;1.25v if you want to support
OPP_HIGH. as per latest data sheet.
Ok, got it. Voltages will be updated in V2. Thanks.
Quoted 45 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 117
Quoted 10 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +9
-0+ regulator-always-on; + regulator-boot-on; + }; + + smps6_reg: smps6 { + /* VDD_GPU */ + regulator-name = "smps6"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>;1.25v if you want to support
OPP_HIGH. as per latest data sheet.Quoted 32 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +32
-0+ regulator-always-on; + regulator-boot-on; + }; + + smps7_reg: smps7 { + /* VDD_CORE */ + regulator-name = "smps7"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>; + regulator-always-on; + regulator-boot-on; + }; + + smps8_reg: smps8 { + /* VDD_IVA */ + regulator-name = "smps8"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>; + regulator-always-on; + regulator-boot-on; + }; + + smps9_reg: smps9 { + /* PMIC_3V3 */ + regulator-name = "smps9"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; + +
Quoted 9 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 154
Quoted 5 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +5
-0+ ldo1_reg: ldo1 { + /* VDD_SD / VDDSHV8 */ + regulator-name = "ldo1"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>;for eventual UHS mode support, it is recommended to keep
VDD_SDseparate from VDDSHV8. many of TI evms also suffer from this issue :(
That's the way it is.
Quoted 26 lines
Quoted 26 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +26
-0+ regulator-boot-on; + regulator-always-on; + }; + + ldo2_reg: ldo2 { + /* VDD_1V8 */ + regulator-name = "ldo2"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo3_reg: ldo3 { + /* VDDA_1V8_PHYA */ + regulator-name = "ldo3"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo4_reg: ldo4 { + /* VDDA_1V8_PHYB */ + regulator-name = "ldo4"; + regulator-min-microvolt = <1800000>;
Quoted 9 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 166
Quoted 4 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +4
-0+ regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + };Happy to see this is already split up. you might want to document which PHYs are supplied by PHYA/B in comments for future reference instead of having to dig through schematics to figure that out..
I will provide the comments in V2. Thanks.
Quoted 12 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 192
Quoted 8 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +8
-0+ + ldo9_reg: ldo9 { + /* VDD_RTC */ + regulator-name = "ldo9"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + regulator-always-on; + regulator-boot-on;as per data sheet:
"VD_RTCcan optionally be tied toVD_COREand operate at theVD_COREAVS voltages."
Quoted 1 line
I assume that is not the case here.
Yes indeed.
Quoted 12 lines
Quoted 12 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +11
-0+ }; + + ldoln_reg: ldoln { + /* VDDA_1V8_PLL */ + regulator-name = "ldoln"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; +
Quoted 8 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 209
Quoted 6 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +6
-0+ ldousb_reg: ldousb { + /* VDDA_3V_USB: VDDA_USBHS33 */ + regulator-name = "ldousb"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on;All SoC VDDAs must be always-on.
Will be fixed in V2. Thanks.
Quoted 4 lines
[...]
PATCH 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
On 11/29/2015 06:10 AM, Dmitry Lifshitz wrote:
[...]
Quoted 46 lines
Quoted 36 lines
Quoted 36 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +20
-0+ }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&leds_pins_default>; + + led at 0 { + label = "cl-som-am57x:green"; + gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; +}; + +&dra7_pmx_core { + leds_pins_default: leds_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x347c, PIN_OUTPUT | MUX_MODE14) /*gpmc_a15.gpio2_5 */
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +6
-0+ >; + }; + + i2c1_pins_default: i2c1_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP |
MUX_MODE0) /* i2c1_sda.sda */
+ DRA7XX_CORE_IOPAD(0x3804,PIN_INPUT_PULLUP|MUX_MODE0) /* i2c1_scl.scl */arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +6
-0+ >; + }; + + tps659038_pins_default: tps659038_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14)Quoted 9 lines
Review
Quoted 3 lines
/* wakeup0.gpio1_0 */
(quoted diff) +2
-0+ >; + };Generic comment: As per requirements of the SoC -> all pinctrl must be done in bootloader. this was a recommendation that came in too late for TI platforms that got introduced in upstream, but that cleanup should eventually take place as well.
Quoted 2 lines
Please, could you provide a reference to those recommendations. Do you mean pinctrl for PMIC pins only?
You might want to ask your TI support contact for IODelay recommendations. TRM mentions that pinmuxing must be performed under IO isolation. There are silicon constraints in DRA7/AM57xx family, which were not present previously.
Quoted 12 lines
Quoted 11 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 72
Quoted 5 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +5
-0+ tps659038: tps659038 at 58 { + compatible = "ti,tps659038"; + reg = <0x58>; + interrupt-parent = <&gpio1>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>;Also See: https://patchwork.kernel.org/patch/7596541/ ->
Documentation/devicetree/bindings/i2c/i2c.txt-> since you seem to have a PMIC with power button, you might be able to get wakeup source also there.
Quoted 4 lines
Do you mean just adding "wakeup-source" property?
According to
Documentation/devicetree/bindings/i2c/i2c.txtthe primary interrupt will be used as wakeup interrupt.
I think you might have to describe a "wakeup" interrupt -> which will be similar in description to the one you used to describe uart wakeup capability.
[..]
Quoted 12 lines
Quoted 11 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 80
Quoted 7 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +7
-0+ pinctrl-names = "default"; + pinctrl-0 = <&tps659038_pins_default>; + + #interrupt-cells = <2>; + interrupt-controller; + + ti,system-power-controller;Assuming powerhold signal and BOOT0,1 is proper here, else poweroff will never work.
Quoted 1 line
Please, could you provide more details regarding this issue.
well, if poweroff command does not completely power off your board, you may want to investigate further. overall, the better circuit configuration is the X15 configuration:
https://github.com/beagleboard/beagleboard-x15/blob/master/BeagleBoard-X15_RevA2.pdf
Pay close attention to the PMIC GPIO_&/POWERHOLD signal. Also notice the extra reset circuit involved.
Again, a topic that you should probably discuss with your TI support contact person.
[...]
Signature · 2 lines
Regards, Nishanth Menon
PATCH 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
Quoted 48 lines · Nishanth Menon
On 11/29/2015 06:10 AM, Dmitry Lifshitz wrote:
[...]Quoted 46 lines
Quoted 45 lines
Quoted 37 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +20
-0+ }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&leds_pins_default>; + + led at 0 { + label = "cl-som-am57x:green"; + gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; +}; + +&dra7_pmx_core { + leds_pins_default: leds_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x347c, PIN_OUTPUT | MUX_MODE14) /*gpmc_a15.gpio2_5 */
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +6
-0+ >; + }; + + i2c1_pins_default: i2c1_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP |
MUX_MODE0) /* i2c1_sda.sda */
+ DRA7XX_CORE_IOPAD(0x3804,PIN_INPUT_PULLUP|MUX_MODE0) /* i2c1_scl.scl */arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +6
-0+ >; + }; + + tps659038_pins_default: tps659038_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14)/* wakeup0.gpio1_0 */
Review
Quoted 2 lines
(quoted diff) +2
-0+ >; + };Generic comment: As per requirements of the SoC -> all pinctrl must be done in bootloader. this was a recommendation that came in too late for TI platforms that got introduced in upstream, but that cleanup should eventually take place as well.
Quoted 8 lines
Quoted 2 lines
Please, could you provide a reference to those recommendations. Do you mean pinctrl for PMIC pins only?
You might want to ask your TI support contact for IODelay recommendations. TRM mentions that pinmuxing must be performed under IO isolation. There are silicon constraints in DRA7/AM57xx family, which were not present previously.
Ok. I understand. This might take time...
Since we'd like to have this in for 4.5, what would you recommend? Should I drop the muxes from this patch set? All the muxes? Or should we merge this (as it works correctly) in our tests and check on this later after investigation with TI?
Also, in theory, there might be pins shared between two or more different functionalities and remuxed during runtime. Can this kind of thing be supported on AM57x?
Quoted 12 lines
Quoted 12 lines
Quoted 11 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 72
Quoted 5 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +5
-0+ tps659038: tps659038 at 58 { + compatible = "ti,tps659038"; + reg = <0x58>; + interrupt-parent = <&gpio1>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>;Also See: https://patchwork.kernel.org/patch/7596541/ ->
Documentation/devicetree/bindings/i2c/i2c.txt-> since you seem to have a PMIC with power button, you might be able to get wakeup source also there.
Quoted 8 lines
Quoted 4 lines
Do you mean just adding "wakeup-source" property?
According to
Documentation/devicetree/bindings/i2c/i2c.txtthe primary interrupt will be used as wakeup interrupt.I think you might have to describe a "wakeup" interrupt -> which will be similar in description to the one you used to describe uart wakeup capability.
Ok. Thanks!
Well, we are not there yet.
I think it would be better to work this out when I will work on the suspend/resume.
Quoted 24 lines
[..]
Quoted 12 lines
Quoted 11 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 80
Quoted 7 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +7
-0+ pinctrl-names = "default"; + pinctrl-0 = <&tps659038_pins_default>; + + #interrupt-cells = <2>; + interrupt-controller; + + ti,system-power-controller;Assuming powerhold signal and BOOT0,1 is proper here, else poweroff will never work.
Quoted 1 line
Please, could you provide more details regarding this issue.
well, if poweroff command does not completely power off your board, you may want to investigate further. overall, the better circuit configuration is the X15 configuration:
https://github.com/beagleboard/beagleboard-x15/blob/master/BeagleBoard-X15_RevA2.pdf
Pay close attention to the PMIC GPIO_&/POWERHOLD signal. Also notice the extra reset circuit involved.
Quoted 2 lines
Again, a topic that you should probably discuss with your TI support contact person.
Ok. Thanks for the explanation! Indeed it does not currently work. I will forward your comments to the h/w designer.
Quoted 3 lines
[...]
Regards,
Dmitry
PATCH 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
Quoted 2 lines · Dmitry Lifshitz
Quoted 1 line · Nishanth Menon
On 11/29/2015 06:10 AM, Dmitry Lifshitz wrote:
[...]
Quoted 13 lines
Quoted 6 lines
You might want to ask your TI support contact for IODelay recommendations. TRM mentions that pinmuxing must be performed under IO isolation. There are silicon constraints in DRA7/AM57xx family, which were not present previously.
Ok. I understand. This might take time...
Since we'd like to have this in for 4.5, what would you recommend? Should I drop the muxes from this patch set? All the muxes? Or should we merge this (as it works correctly) in our tests and check on this later after investigation with TI?
Quoted 3 lines
Also, in theory, there might be pins shared between two or more different functionalities and remuxed during runtime. Can this kind of thing be supported on AM57x?
This is why I suggested to talk and confirm with TI support contact on this. I understand the motivation of SoM concept, but this requires some careful designing around.
Signature · 2 lines
Regards, Nishanth Menon
PATCH 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
In reply to Dmitry LifshitzQuoted 2 lines · Dmitry Lifshitz
Quoted 1 line · Nishanth Menon
On 11/29/2015 06:10 AM, Dmitry Lifshitz wrote:
[...]
Quoted 13 lines
Quoted 6 lines
You might want to ask your TI support contact for IODelay recommendations. TRM mentions that pinmuxing must be performed under IO isolation. There are silicon constraints in DRA7/AM57xx family, which were not present previously.
Ok. I understand. This might take time...
Since we'd like to have this in for 4.5, what would you recommend? Should I drop the muxes from this patch set? All the muxes? Or should we merge this (as it works correctly) in our tests and check on this later after investigation with TI?
Quoted 3 lines
Also, in theory, there might be pins shared between two or more different functionalities and remuxed during runtime. Can this kind of thing be supported on AM57x?
This is why I suggested to talk and confirm with TI support contact on this. I understand the motivation of SoM concept, but this requires some careful designing around.
Signature · 2 lines
Regards, Nishanth Menon
Rob Herring
maintainerPATCH 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
In reply to Dmitry LifshitzQuoted 27 lines · Dmitry Lifshitz
Hi Nishanth,
Thank you for the provided feedback.
Quoted 10 lines · Nishanth Menon
On 11/25/2015 12:39 AM, Dmitry Lifshitz wrote:
[...]Quoted 5 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +0
-0[...]
Quoted 11 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 24
Quoted 7 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +7
-0+/ { + model = "CompuLab CL-SOM-AM57x"; + compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x20000000>; /* 512 MB - minimal configuration */I think if you like to enable LPAE, the format might look a little different..
Quoted 2 lines
We would like to have a basic HW support in the mainline. It might be enhanced later, once we get to work on LPAE stuff.
I think what is meant here is the cell sizes should be 2 instead of 1. You can do that independent of LPAE support. I would expect the base SOC dtsi file to set the cell sizes correctly though.
Rob
PATCH v2 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
In reply to Dmitry LifshitzAdd support for CompuLab CM-SOM-AM57X board.
CL-SOM-AM57x is a miniature System-on-Module (SoM) based on TI Sitara AM57x ARM Cortex-A15 System-on-Chip family.
Add basic DT support for standalone module (without a carrier board):
* Memory configuration
* Heartbeat led
* I2C1 bus
* PMIC
* SATA
---
v2:
* Fixed voltages (for OPP_HIGH) for VDD_GPU, VDD_IVA, VDD_DSPEVE
* Added comments for VDDA_1V8_PHYA/B
* Add "regulator-always-on" property for ldousb_reg
.../devicetree/bindings/arm/omap/omap.txt | 3 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 260 +++++++++++++++++++++ 3 files changed, 265 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/am57xx-cl-som-am57x.dts
Documentation/devicetree/bindings/arm/omap/omap.txt +3 -0
@@ -156,6 +156,9 @@ Boards: - AM437x SK EVM: AM437x StarterKit Evaluation Module compatible = "ti,am437x-sk-evm", "ti,am4372", "ti,am43" +- AM57XX CL-SOM-AM57x + compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" + - DRA742 EVM: Software Development Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
arch/arm/boot/dts/Makefile +2 -1
@@ -477,8 +477,9 @@ dtb-$(CONFIG_SOC_OMAP5) += \ omap5-sbc-t54.dtb \ omap5-uevm.dtb dtb-$(CONFIG_SOC_DRA7XX) += \ - dra7-evm.dtb \ am57xx-beagle-x15.dtb \ + am57xx-cl-som-am57x.dtb \ + dra7-evm.dtb \ dra72-evm.dtb dtb-$(CONFIG_ARCH_ORION5X) += \ orion5x-lacie-d2-network.dtb \
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +260 -0
260 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH v2 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
Quoted 125 lines · Dmitry Lifshitz
+++
b/arch/arm/boot/dts/am57xx-cl-som-am57x.dtsarch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +124
-0+ tps659038_pmic { + compatible = "ti,tps659038-pmic"; + + regulators { + smps12_reg: smps12 { + /* VDD_MPU */ + regulator-name = "smps12"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps3_reg: smps3 { + /* VDD_DDR */ + regulator-name = "smps3"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-boot-on; + }; + + smps45_reg: smps45 { + /* VDD_DSPEVE */ + regulator-name = "smps45"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps6_reg: smps6 { + /* VDD_GPU */ + regulator-name = "smps6"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps7_reg: smps7 { + /* VDD_CORE */ + regulator-name = "smps7"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>; + regulator-always-on; + regulator-boot-on; + }; + + smps8_reg: smps8 { + /* VDD_IVA */ + regulator-name = "smps8"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps9_reg: smps9 { + /* PMIC_3V3 */ + regulator-name = "smps9"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; + + + ldo1_reg: ldo1 { + /* VDD_SD / VDDSHV8 */ + regulator-name = "ldo1"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo2_reg: ldo2 { + /* VDD_1V8 */ + regulator-name = "ldo2"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo3_reg: ldo3 { + /* VDDA_1V8_PHYA - supplies VDDA_SATA, VDDA_USB1/2/3 */ + regulator-name = "ldo3"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo4_reg: ldo4 { + /* VDDA_1V8_PHYB - supplies VDDA_HDMI, VDDA_PCIE/0/1 */ + regulator-name = "ldo4"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo9_reg: ldo9 { + /* VDD_RTC */ + regulator-name = "ldo9"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + regulator-always-on; + regulator-boot-on; + }; + + ldoln_reg: ldoln { + /* VDDA_1V8_PLL */ + regulator-name = "ldoln"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldousb_reg: ldousb { + /* VDDA_3V_USB: VDDA_USBHS33 */
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 215
Quoted 10 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +10
-0+ regulator-name = "ldousb"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; + + /* regen1 not used */ + }; + };
Can you please put these into dra7-tps659038-common.dtsi so we don't have multiple copies of it? Then make other boards include that..
That allows to set them up as real controllable regulators instead of all this silly "regulator-always-on" stuff that has been going on since omap4 :)
Regards,
Tony
PATCH v2 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
Hi Tony,
Quoted 131 lines · Tony Lindgren
Quoted 130 lines · Dmitry Lifshitz
+++
b/arch/arm/boot/dts/am57xx-cl-som-am57x.dtsarch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +129
-0+ tps659038_pmic { + compatible = "ti,tps659038-pmic"; + + regulators { + smps12_reg: smps12 { + /* VDD_MPU */ + regulator-name = "smps12"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps3_reg: smps3 { + /* VDD_DDR */ + regulator-name = "smps3"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-boot-on; + }; + + smps45_reg: smps45 { + /* VDD_DSPEVE */ + regulator-name = "smps45"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps6_reg: smps6 { + /* VDD_GPU */ + regulator-name = "smps6"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps7_reg: smps7 { + /* VDD_CORE */ + regulator-name = "smps7"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>; + regulator-always-on; + regulator-boot-on; + }; + + smps8_reg: smps8 { + /* VDD_IVA */ + regulator-name = "smps8"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps9_reg: smps9 { + /* PMIC_3V3 */ + regulator-name = "smps9"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; + + + ldo1_reg: ldo1 { + /* VDD_SD / VDDSHV8 */ + regulator-name = "ldo1"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo2_reg: ldo2 { + /* VDD_1V8 */ + regulator-name = "ldo2"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo3_reg: ldo3 { + /* VDDA_1V8_PHYA - supplies VDDA_SATA, VDDA_USB1/2/3 */ + regulator-name = "ldo3"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo4_reg: ldo4 { + /* VDDA_1V8_PHYB - supplies VDDA_HDMI, VDDA_PCIE/0/1 */ + regulator-name = "ldo4"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo9_reg: ldo9 { + /* VDD_RTC */ + regulator-name = "ldo9"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + regulator-always-on; + regulator-boot-on; + }; + + ldoln_reg: ldoln { + /* VDDA_1V8_PLL */ + regulator-name = "ldoln"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldousb_reg: ldousb { + /* VDDA_3V_USB: VDDA_USBHS33 */ + regulator-name = "ldousb"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on;
Quoted 8 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 215
Quoted 5 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +5
-0+ }; + + /* regen1 not used */ + }; + };Can you please put these into
dra7-tps659038-common.dtsiso we don't have multiple copies of it? Then make other boards include that..
It might looks the same set of regulators for multiple boards, but it is not. Each board may apply its own regulators usage scheme, and this is our case (as compared to am57xx-beagle-x15.dts).
For the best of my knowledge, it used to be in a common *.dtsi file (at least in early OMAP5 DT support in TI kernel tree), but then I found that PMIC registration had been moved to the boards DT files.
Quoted 11 lines
That allows to set them up as real controllable regulators instead of all this silly "regulator-always-on" stuff that has been going on since omap4 :)
Regards,
Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Regards,
Dmitry
PATCH v2 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
Quoted 8 lines · Dmitry Lifshitz
It might looks the same set of regulators for multiple boards, but it is not. Each board may apply its own regulators usage scheme, and this is our case (as compared to
am57xx-beagle-x15.dts).For the best of my knowledge, it used to be in a common *.dtsi file (at least in early OMAP5 DT support in TI kernel tree), but then I found that PMIC registration had been moved to the boards DT files.
Have you actually looked at how much of the implementation is same across the omap5 boards? My guess is that a whole lot is same.. See for example omap5-board-common.dtsi.
Regards,
Tony
PATCH v2 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
Quoted 6 lines · Tony Lindgren
Quoted 5 lines · Dmitry Lifshitz
It might looks the same set of regulators for multiple boards, but it is not. Each board may apply its own regulators usage scheme, and this is our case (as compared to
am57xx-beagle-x15.dts).
Quoted 7 lines
Quoted 3 lines
For the best of my knowledge, it used to be in a common *.dtsi file (at least in early OMAP5 DT support in TI kernel tree), but then I found that PMIC registration had been moved to the boards DT files.
Have you actually looked at how much of the implementation is same across the omap5 boards? My guess is that a whole lot is same.. See for example
omap5-board-common.dtsi.
Unfortunately with DRA7 / AM57xx:
at least 2 different PMICs -> DRA74/DRA72 evms.
even across similar PMIC usage, different voltage rail usage accross
evms: DRA74evm, x15/GPEVM, AM571x-IDK/AM572x-IDK -> they are not necessarily compatible.
Example: some of them have Ganged voltage rail, others dont - few others are mixed. if you are trying to get common regulator usage -> it is kinda pretty hard given the freedom board designers are being given by TI.. OMAP5 was more controlled in terms of what specific configuration the board designers had to follow. that is no longer the case for DRA7/AM57 platforms. just my 2 cents here.
Signature · 2 lines
Regards, Nishanth Menon
PATCH v2 1/18 ARM: am57xx: cl-som-am57x: dts: add basic module support
Quoted 21 lines · Nishanth Menon
Quoted 6 lines · Tony Lindgren
Quoted 5 lines · Dmitry Lifshitz
It might looks the same set of regulators for multiple boards, but it is not. Each board may apply its own regulators usage scheme, and this is our case (as compared to
am57xx-beagle-x15.dts).Quoted 7 lines
Quoted 3 lines
For the best of my knowledge, it used to be in a common *.dtsi file (at least in early OMAP5 DT support in TI kernel tree), but then I found that PMIC registration had been moved to the boards DT files.
Have you actually looked at how much of the implementation is same across the omap5 boards? My guess is that a whole lot is same.. See for example
omap5-board-common.dtsi.Unfortunately with DRA7 / AM57xx:
at least 2 different PMICs -> DRA74/DRA72 evms.
even across similar PMIC usage, different voltage rail usage accross
evms: DRA74evm, x15/GPEVM, AM571x-IDK/AM572x-IDK -> they are not necessarily compatible.
Quoted 6 lines
Example: some of them have Ganged voltage rail, others dont - few others are mixed. if you are trying to get common regulator usage -> it is kinda pretty hard given the freedom board designers are being given by TI.. OMAP5 was more controlled in terms of what specific configuration the board designers had to follow. that is no longer the case for DRA7/AM57 platforms. just my 2 cents here.
OK thanks for checking. Best to wait a bit on that then until we have more common patterns.
Regards,
Tony
PATCH 2/18 ARM: am57xx: cl-som-am57x: dts: add RTC support
In reply to Dmitry LifshitzAdd EM3027 RTC chip support (over I2C4 bus).
--- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +21 -0
@@ -52,6 +52,13 @@ >; }; + i2c4_pins_default: i2c4_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x36ac, PIN_INPUT| MUX_MODE10) /* mcasp1_acl.i2c4_sda */ + DRA7XX_CORE_IOPAD(0x36b0, PIN_INPUT| MUX_MODE10) /* mcasp1_fsr.i2c4_scl */ + >; + }; + tps659038_pins_default: tps659038_pins_default { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */
@@ -257,3 +264,17 @@ status = "okay"; }; }; + +&i2c4 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c4_pins_default>; + clock-frequency = <100000>; + + rtc0: rtc at 56 { + compatible = "emmicro,em3027"; + reg = <0x56>; + }; +}; + +
Signature · 1 line
1.9.1
PATCH 2/18 ARM: am57xx: cl-som-am57x: dts: add RTC support
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 280
Quoted 13 lines · Dmitry Lifshitz
+&i2c4 {
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +12
-0+ status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c4_pins_default>; + clock-frequency = <100000>; + + rtc0: rtc at 56 { + compatible = "emmicro,em3027"; + reg = <0x56>; + }; +}; + +
Please check this series too to remove the extra lines at the end of the files for each patch for the whitespace errors and unify the Subject to start with "ARM: dts: ..." thanks.
Tony
PATCH 3/18 ARM: am57xx: cl-som-am57x: dts: add I2C3 support
In reply to Dmitry LifshitzEnable I2C3 bus and add appropriate pinmux.
--- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +14 -0
@@ -52,6 +52,13 @@ >; }; + i2c3_pins_default: i2c3_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x36a4, PIN_INPUT| MUX_MODE10) /* mcasp1_aclkx.i2c3_sda */ + DRA7XX_CORE_IOPAD(0x36a8, PIN_INPUT| MUX_MODE10) /* mcasp1_fsx.i2c3_scl */ + >; + }; + i2c4_pins_default: i2c4_pins_default { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x36ac, PIN_INPUT| MUX_MODE10) /* mcasp1_acl.i2c4_sda */
@@ -265,6 +272,13 @@ }; }; +&i2c3 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c3_pins_default>; + clock-frequency = <400000>; +}; + &i2c4 { status = "okay"; pinctrl-names = "default";
Signature · 1 line
1.9.1
PATCH 4/18 ARM: am57xx: cl-som-am57x: dts: add EEPROM support
In reply to Dmitry LifshitzOn-board EEPROM chip is used for storing a board production info.
Add module EEPROM support (over I2C4 bus).
--- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 6 ++++++ 1 file changed, 6 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +6 -0
@@ -289,6 +289,12 @@ compatible = "emmicro,em3027"; reg = <0x56>; }; + + eeprom_module: atmel at 50 { + compatible = "atmel,24c02"; + reg = <0x50>; + pagesize = <16>; + }; };
Signature · 1 line
1.9.1
PATCH 4/18 ARM: am57xx: cl-som-am57x: dts: add EEPROM support
Hi Dima,
Quoted 15 lines · Dmitry Lifshitz
On-board EEPROM chip is used for storing a board production info.
Add module EEPROM support (over I2C4 bus).
Signed-off-by Dmitry Lifshitz <[email protected]>--- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 6 ++++++ 1 file changed, 6 insertions(+)arch/arm/boot/dts/am57xx-cl-som-am57x.dts +0
-0
arch/arm/boot/dts/am57xx-cl-som-am57x.dts line 294
Quoted 6 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +3
-0@@ -289,6 +289,12 @@ compatible = "emmicro,em3027"; reg = <0x56>; }; + + eeprom_module: atmel at 50 { + compatible = "atmel,24c02";
If I'm not mistaken, the eeprom should be 24c08, no?
Quoted 7 lines
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +3
-0+ reg = <0x50>; + pagesize = <16>; + }; };
Signature · 2 lines
Regards, Igor.
PATCH v2 4/18 ARM: am57xx: cl-som-am57x: dts: add EEPROM support
In reply to Dmitry LifshitzOn-board EEPROM chip is used for storing a board production info.
Add module EEPROM support (over I2C4 bus).
---
v2:
* Fix EEPROM chip model
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 6 ++++++ 1 file changed, 6 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +6 -0
@@ -290,6 +290,12 @@ compatible = "emmicro,em3027"; reg = <0x56>; }; + + eeprom_module: atmel at 50 { + compatible = "atmel,24c08"; + reg = <0x50>; + pagesize = <16>; + }; };
Signature · 1 line
1.9.1
PATCH v2 4/18 ARM: am57xx: cl-som-am57x: dts: add EEPROM support
Quoted 6 lines · Dmitry Lifshitz
On-board EEPROM chip is used for storing a board production info.
Add module EEPROM support (over I2C4 bus).
Signed-off-by Dmitry Lifshitz <[email protected]>
Quoted 27 lines
---
v2:
* Fix EEPROM chip model
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 6 ++++++ 1 file changed, 6 insertions(+)arch/arm/boot/dts/am57xx-cl-som-am57x.dts +6
-0@@ -290,6 +290,12 @@ compatible = "emmicro,em3027"; reg = <0x56>; }; + + eeprom_module: atmel at 50 { + compatible = "atmel,24c08"; + reg = <0x50>; + pagesize = <16>; + }; };
Signature · 2 lines
Regards, Igor.
PATCH 5/18 ARM: am57xx: cl-som-am57x: dts: add eMMC support
In reply to Dmitry LifshitzCM-SOM-AM57X has two options of main storage devices - eMMC or NAND. Add eMMC chip support (over MMC2 bus).
--- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +33 -0
@@ -36,6 +36,13 @@ default-state = "off"; }; }; + + vdd_3v3: fixedregulator-vdd_3v3 { + compatible = "regulator-fixed"; + regulator-name = "vdd_3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; }; &dra7_pmx_core {
@@ -71,6 +78,21 @@ DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */ >; }; + + mmc2_pins_default: mmc2_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */ + DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */ + DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */ + DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */ + DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */ + DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */ + DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */ + DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */ + DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */ + DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */ + >; + }; }; &i2c1 {
@@ -297,4 +319,15 @@ }; }; +&mmc2 { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&mmc2_pins_default>; + + vmmc-supply = <&vdd_3v3>; + bus-width = <8>; + ti,non-removable; + cap-mmc-dual-data-rate; +};
Signature · 1 line
1.9.1
PATCH 6/18 ARM: am57xx: cl-som-am57x: dts: add spi-flash support
In reply to Dmitry LifshitzOn-board spi-flash chip is used as a main boot device. Add spi-flash chip support (over QSPI bus).
--- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 41 +++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +41 -0
@@ -93,6 +93,17 @@ DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */ >; }; + + qspi1_pins: pinmux_qspi1_pins { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3474, PIN_INPUT | MUX_MODE1) /* gpmc_a13.qspi1_rtclk */ + DRA7XX_CORE_IOPAD(0x3480, PIN_INPUT | MUX_MODE1) /* gpmc_a16.qspi1_d0 */ + DRA7XX_CORE_IOPAD(0x3484, PIN_INPUT | MUX_MODE1) /* gpmc_a17.qspi1_d1 */ + DRA7XX_CORE_IOPAD(0x3488, PIN_INPUT | MUX_MODE1) /* qpmc_a18.qspi1_sclk */ + DRA7XX_CORE_IOPAD(0x34b8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs2.qspi1_cs0 */ + DRA7XX_CORE_IOPAD(0x34bc, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs3.qspi1_cs1 */ + >; + }; }; &i2c1 {
@@ -331,3 +342,33 @@ cap-mmc-dual-data-rate; }; +&qspi { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&qspi1_pins>; + + spi_flash: spi_flash at 0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; /* CS0 */ + spi-max-frequency = <20000000>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <1>; + + partition at 0 { + label = "uboot"; + reg = <0x0 0xc0000>; + }; + + partition at c0000 { + label = "uboot environment"; + reg = <0xc0000 0x40000>; + }; + + partition at 100000 { + label = "reserved"; + reg = <0x100000 0x0>; + }; + }; +};
Signature · 1 line
1.9.1
PATCH v2 6/18 ARM: am57xx: cl-som-am57x: dts: add spi-flash support
On-board spi-flash chip is used as a main boot device. Add spi-flash chip support (over QSPI bus).
---
v2:
* Add "spi-max-frequency" property for &qspi node.
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +43 -0
@@ -93,6 +93,17 @@ DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */ >; }; + + qspi1_pins: pinmux_qspi1_pins { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3474, PIN_INPUT | MUX_MODE1) /* gpmc_a13.qspi1_rtclk */ + DRA7XX_CORE_IOPAD(0x3480, PIN_INPUT | MUX_MODE1) /* gpmc_a16.qspi1_d0 */ + DRA7XX_CORE_IOPAD(0x3484, PIN_INPUT | MUX_MODE1) /* gpmc_a17.qspi1_d1 */ + DRA7XX_CORE_IOPAD(0x3488, PIN_INPUT | MUX_MODE1) /* qpmc_a18.qspi1_sclk */ + DRA7XX_CORE_IOPAD(0x34b8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs2.qspi1_cs0 */ + DRA7XX_CORE_IOPAD(0x34bc, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs3.qspi1_cs1 */ + >; + }; }; &i2c1 {
@@ -332,3 +343,35 @@ cap-mmc-dual-data-rate; }; +&qspi { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&qspi1_pins>; + + spi-max-frequency = <20000000>; + + spi_flash: spi_flash at 0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; /* CS0 */ + spi-max-frequency = <20000000>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <1>; + + partition at 0 { + label = "uboot"; + reg = <0x0 0xc0000>; + }; + + partition at c0000 { + label = "uboot environment"; + reg = <0xc0000 0x40000>; + }; + + partition at 100000 { + label = "reserved"; + reg = <0x100000 0x0>; + }; + }; +};
Signature · 1 line
1.9.1
PATCH 7/18 ARM: am57xx: cl-som-am57x: dts: add dual EMAC support
In reply to Dmitry LifshitzAdd dual EMAC support.
--- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 105 ++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +105 -0
@@ -104,6 +104,85 @@ DRA7XX_CORE_IOPAD(0x34bc, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs3.qspi1_cs1 */ >; }; + + cpsw_pins_default: cpsw_pins_default { + pinctrl-single,pins = < + /* Slave 1 */ + DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE0) /* rgmii1_tclk */ + DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE0) /* rgmii1_tctl */ + DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE0) /* rgmii1_td3 */ + DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE0) /* rgmii1_td2 */ + DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE0) /* rgmii1_td1 */ + DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE0) /* rgmii1_td0 */ + DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE0) /* rgmii1_rclk */ + DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE0) /* rgmii1_rctl */ + DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE0) /* rgmii1_rd3 */ + DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE0) /* rgmii1_rd2 */ + DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE0) /* rgmii1_rd1 */ + DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE0) /* rgmii1_rd0 */ + + /* Slave 2 */ + DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* rgmii2_tclk */ + DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* rgmii2_tctl */ + DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* rgmii2_td3 */ + DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* rgmii2_td2 */ + DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* rgmii2_td1 */ + DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* rgmii2_td0 */ + DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE3) /* rgmii2_rclk */ + DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE3) /* rgmii2_rctl */ + DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE3) /* rgmii2_rd3 */ + DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE3) /* rgmii2_rd2 */ + DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE3) /* rgmii2_rd1 */ + DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE3) /* rgmii2_rd0 */ + >; + }; + + cpsw_pins_sleep: cpsw_pins_sleep { + pinctrl-single,pins = < + /* Slave 1 */ + DRA7XX_CORE_IOPAD(0x3650, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3654, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3658, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x365c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3660, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3664, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE15) + + /* Slave 2 */ + DRA7XX_CORE_IOPAD(0x3598, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x359c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35a0, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35a4, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35a8, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35ac, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE15) + >; + }; + + davinci_mdio_pins_default: davinci_mdio_pins_default { + pinctrl-single,pins = < + /* MDIO */ + DRA7XX_CORE_IOPAD(0x363c, PIN_OUTPUT_PULLUP | MUX_MODE0)/* mdio_mclk */ + DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT_PULLUP | MUX_MODE0) /* mdio_d */ + >; + }; + + davinci_mdio_pins_sleep: davinci_mdio_pins_sleep { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x363c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT | MUX_MODE15) + >; + }; }; &i2c1 {
@@ -372,3 +451,29 @@ }; }; }; + +&mac { + status = "okay"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cpsw_pins_default>; + pinctrl-1 = <&cpsw_pins_sleep>; + dual_emac; +}; + +&cpsw_emac0 { + phy_id = <&davinci_mdio>, <1>; + phy-mode = "rgmii-txid"; + dual_emac_res_vlan = <1>; +}; + +&cpsw_emac1 { + phy_id = <&davinci_mdio>, <2>; + phy-mode = "rgmii-txid"; + dual_emac_res_vlan = <2>; +}; + +&davinci_mdio { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&davinci_mdio_pins_default>; + pinctrl-1 = <&davinci_mdio_pins_sleep>; +};
Signature · 1 line
1.9.1
PATCH 8/18 ARM: am57xx: cl-som-am57x: dts: add USB support
In reply to Dmitry LifshitzAdd USB support.
--- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +16 -0
@@ -477,3 +477,19 @@ pinctrl-0 = <&davinci_mdio_pins_default>; pinctrl-1 = <&davinci_mdio_pins_sleep>; }; + +&usb2_phy1 { + phy-supply = <&ldousb_reg>; +}; + +&usb2_phy2 { + phy-supply = <&ldousb_reg>; +}; + +&usb1 { + dr_mode = "host"; +}; + +&usb2 { + dr_mode = "peripheral"; +};
Signature · 1 line
1.9.1
PATCH 9/18 ARM: am57xx: cl-som-am57x: dts: add touchscreen support
In reply to Dmitry LifshitzAdd ADS7846 touchscreen support.
--- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +44 -0
@@ -43,6 +43,13 @@ regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; + + ads7846reg: fixedregulator-ads7846-reg { + compatible = "regulator-fixed"; + regulator-name = "ads7846-reg"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; }; &dra7_pmx_core {
@@ -183,6 +190,12 @@ DRA7XX_CORE_IOPAD(0x3640, PIN_INPUT | MUX_MODE15) >; }; + + ads7846_pins: pinmux_ads7846_pins { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3464, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpmc_a9.gpio1_31 */ + >; + }; }; &i2c1 {
@@ -450,6 +463,37 @@ reg = <0x100000 0x0>; }; }; + + /* touch controller */ + ads7846 at 0 { + pinctrl-names = "default"; + pinctrl-0 = <&ads7846_pins>; + + compatible = "ti,ads7846"; + vcc-supply = <&ads7846reg>; + + reg = <1>; /* CS1 */ + spi-max-frequency = <1500000>; + + interrupt-parent = <&gpio1>; + interrupts = <31 0>; + pendown-gpio = <&gpio1 31 0>; + + + ti,x-min = /bits/ 16 <0x0>; + ti,x-max = /bits/ 16 <0x0fff>; + ti,y-min = /bits/ 16 <0x0>; + ti,y-max = /bits/ 16 <0x0fff>; + + ti,x-plate-ohms = /bits/ 16 <180>; + ti,pressure-max = /bits/ 16 <255>; + + ti,debounce-max = /bits/ 16 <30>; + ti,debounce-tol = /bits/ 16 <10>; + ti,debounce-rep = /bits/ 16 <1>; + + linux,wakeup; + }; }; &mac {
Signature · 1 line
1.9.1
PATCH 10/18 ARM: am57xx: cl-som-am57x: dts: add analog audio support
In reply to Dmitry LifshitzAdd analog audio DT nodes:
1. simple-audio-card node
2. wm8731 codec node
3. MCASP3 pinmux
--- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 67 +++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +67 -0
@@ -50,6 +50,33 @@ regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; + + sound0: sound at 0 { + compatible = "simple-audio-card"; + simple-audio-card,name = "CL-SOM-AM57x-Sound-Card"; + simple-audio-card,format = "i2s"; + simple-audio-card,bitclock-master = <&dailink0_master>; + simple-audio-card,frame-master = <&dailink0_master>; + simple-audio-card,widgets = + "Headphone", "Headphone Jack", + "Microphone", "Microphone Jack", + "Line", "Line Jack"; + simple-audio-card,routing = + "Headphone Jack", "RHPOUT", + "Headphone Jack", "LHPOUT", + "LLINEIN", "Line Jack", + "MICIN", "Mic Bias", + "Mic Bias", "Microphone Jack"; + + dailink0_master: simple-audio-card,cpu { + sound-dai = <&mcasp3>; + }; + + simple-audio-card,codec { + sound-dai = <&wm8731>; + system-clock-frequency = <12000000>; + }; + }; }; &dra7_pmx_core {
@@ -196,6 +223,24 @@ DRA7XX_CORE_IOPAD(0x3464, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpmc_a9.gpio1_31 */ >; }; + + mcasp3_pins_default: mcasp3_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx.mcasp3_aclkx */ + DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx.mcasp3_fsx */ + DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0.mcasp3_axr0 */ + DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1.mcasp3_axr1 */ + >; + }; + + mcasp3_pins_sleep: mcasp3_pins_sleep { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x372c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT | MUX_MODE15) + >; + }; }; &i2c1 {
@@ -420,6 +465,13 @@ reg = <0x50>; pagesize = <16>; }; + + wm8731: wm8731 at 1a { + #sound-dai-cells = <0>; + compatible = "wlf,wm8731"; + reg = <0x1a>; + status = "okay"; + }; }; &mmc2 {
@@ -537,3 +589,18 @@ &usb2 { dr_mode = "peripheral"; }; + +&mcasp3 { + #sound-dai-cells = <0>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&mcasp3_pins_default>; + pinctrl-1 = <&mcasp3_pins_sleep>; + status = "okay"; + + op-mode = <0>; /* MCASP_IIS_MODE */ + tdm-slots = <2>; + /* 4 serializers */ + serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ + 1 2 0 0 + >; +};
Signature · 1 line
1.9.1
PATCH 11/18 ARM: am57xx: sbc-am57x: dts: add basic board support
In reply to Dmitry LifshitzSBC-AM57x is a single board computer designed for industrial and embedded applications. It is based on the Texas Instruments Sitara AM57x system-on-chip family. SBC-AM57x is implemented with the CL-SOM-AM57x computer-on-module providing most of the functions, and SB-SOM-AM57x carrier board providing additional peripheral functions and connectors.
https://www.compulab.co.il/products/sbcs/sbc-am57x-ti-am5728-am5718-single-board-computer/
Add basic board support, including UART3, used as a serial console.
--- .../devicetree/bindings/arm/omap/omap.txt | 3 ++ arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am57xx-sbc-am57x.dts | 36 ++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 arch/arm/boot/dts/am57xx-sbc-am57x.dts
Documentation/devicetree/bindings/arm/omap/omap.txt +3 -0
@@ -159,6 +159,9 @@ Boards: - AM57XX CL-SOM-AM57x compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" +- AM57XX SBC-AM57x + compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" + - DRA742 EVM: Software Development Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
arch/arm/boot/dts/Makefile +1 -0
@@ -479,6 +479,7 @@ dtb-$(CONFIG_SOC_OMAP5) += \ dtb-$(CONFIG_SOC_DRA7XX) += \ am57xx-beagle-x15.dtb \ am57xx-cl-som-am57x.dtb \ + am57xx-sbc-am57x.dtb \ dra7-evm.dtb \ dra72-evm.dtb dtb-$(CONFIG_ARCH_ORION5X) += \
arch/arm/boot/dts/am57xx-sbc-am57x.dts new file +36 -0
@@ -0,0 +1,36 @@ +/* + * Support for CompuLab SBC-AM57x single board computer + * + * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/ + * Author: Dmitry Lifshitz <[email protected]> + * + * 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 "am57xx-cl-som-am57x.dts" +#include "compulab-sb-som.dtsi" + +/ { + model = "CompuLab CL-SOM-AM57x on SB-SOM-AM57x"; + compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; +}; + +&dra7_pmx_core { + uart3_pins_default: uart3_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_SLEW | MUX_MODE2) /* uart2_ctsn.uart3_rxd */ + DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */ + >; + }; +}; + +&uart3 { + status = "okay"; + interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, + <&dra7_pmx_core 0x3f8>; + + pinctrl-names = "default"; + pinctrl-0 = <&uart3_pins_default>; +};
Signature · 1 line
1.9.1
Rob Herring
maintainerPATCH 11/18 ARM: am57xx: sbc-am57x: dts: add basic board support
Quoted 6 lines · Dmitry Lifshitz
SBC-AM57x is a single board computer designed for industrial and embedded applications. It is based on the Texas Instruments Sitara AM57x system-on-chip family. SBC-AM57x is implemented with the CL-SOM-AM57x computer-on-module providing most of the functions, and SB-SOM-AM57x carrier board providing additional peripheral functions and connectors.
Quoted 8 lines
https://www.compulab.co.il/products/sbcs/sbc-am57x-ti-am5728-am5718-single-board-computer/
Add basic board support, including UART3, used as a serial console.
Signed-off-by Dmitry Lifshitz <[email protected]>Acked-by Igor Grinberg <[email protected]>
Quoted 82 lines
--- .../devicetree/bindings/arm/omap/omap.txt | 3 ++ arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am57xx-sbc-am57x.dts | 36 ++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 arch/arm/boot/dts/am57xx-sbc-am57x.dtsDocumentation/devicetree/bindings/arm/omap/omap.txt +3
-0@@ -159,6 +159,9 @@ Boards: - AM57XX CL-SOM-AM57x compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" +- AM57XX SBC-AM57x + compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" + - DRA742 EVM: Software Development Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"arch/arm/boot/dts/Makefile +1
-0@@ -479,6 +479,7 @@ dtb-$(CONFIG_SOC_OMAP5) += \ dtb-$(CONFIG_SOC_DRA7XX) += \ am57xx-beagle-x15.dtb \ am57xx-cl-som-am57x.dtb \ + am57xx-sbc-am57x.dtb \ dra7-evm.dtb \ dra72-evm.dtb dtb-$(CONFIG_ARCH_ORION5X) += \arch/arm/boot/dts/am57xx-sbc-am57x.dts new file +36
-0@@ -0,0 +1,36 @@ +/* + * Support for CompuLab SBC-AM57x single board computer + * + * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/ + * Author: Dmitry Lifshitz <[email protected]> + * + * 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 "am57xx-cl-som-am57x.dts" +#include "compulab-sb-som.dtsi" + +/ { + model = "CompuLab CL-SOM-AM57x on SB-SOM-AM57x"; + compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; +}; + +&dra7_pmx_core { + uart3_pins_default: uart3_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_SLEW | MUX_MODE2) /* uart2_ctsn.uart3_rxd */ + DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */ + >; + }; +}; + +&uart3 { + status = "okay"; + interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, + <&dra7_pmx_core 0x3f8>; + + pinctrl-names = "default"; + pinctrl-0 = <&uart3_pins_default>; +};Signature · 6 lines
1.9.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 12/18 ARM: am57xx: cl-som-am57x: dts: add MMC1 support
In reply to Dmitry LifshitzAdd MMC1 support, used for SD/MMC card.
--- arch/arm/boot/dts/am57xx-sbc-am57x.dts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +26 -0
@@ -24,6 +24,20 @@ DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */ >; }; + + mmc1_pins_default: mmc1_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */ + DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */ + DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */ + DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */ + DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */ + DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */ + DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */ + DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT | MUX_MODE14) /* mmc1_sdcd.gpio6_27 */ + DRA7XX_CORE_IOPAD(0x3770, PIN_INPUT | MUX_MODE14) /* mmc1_sdwp.gpio6_28 */ + >; + }; }; &uart3 {
@@ -34,3 +48,15 @@ pinctrl-names = "default"; pinctrl-0 = <&uart3_pins_default>; }; + +&mmc1 { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&mmc1_pins_default>; + + vmmc-supply = <&ldo1_reg>; + bus-width = <4>; + cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; + wp-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>; +};
Signature · 1 line
1.9.1
PATCH v2 12/18 ARM: am57xx: cl-som-am57x: dts: add MMC1 support
Add MMC1 support, used for SD/MMC card.
---
v2:
* Fix duplicate SD Card Detect pinmux
arch/arm/boot/dts/am57xx-sbc-am57x.dts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +25 -0
@@ -24,6 +24,19 @@ DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */ >; }; + + mmc1_pins_default: mmc1_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */ + DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */ + DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */ + DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */ + DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */ + DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */ + DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1_sdcd.gpio6_27 */ + DRA7XX_CORE_IOPAD(0x377c, PIN_INPUT | MUX_MODE14) /* mmc1_sdwp.gpio6_28 */ + >; + }; }; &uart3 {
@@ -34,3 +47,15 @@ pinctrl-names = "default"; pinctrl-0 = <&uart3_pins_default>; }; + +&mmc1 { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&mmc1_pins_default>; + + vmmc-supply = <&ldo1_reg>; + bus-width = <4>; + cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; + wp-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>; +};
Signature · 1 line
1.9.1
PATCH 13/18 ARM: am57xx: sbc-am57x: dts: add usb vbus pinmux
In reply to Dmitry Lifshitzusb1_drvvbus pin is used to Drive-VBUS enable to external charge pump/power switch.
Add a pinmux for that pin.
--- arch/arm/boot/dts/am57xx-sbc-am57x.dts | 11 +++++++++++ 1 file changed, 11 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +11 -0
@@ -38,6 +38,12 @@ DRA7XX_CORE_IOPAD(0x3770, PIN_INPUT | MUX_MODE14) /* mmc1_sdwp.gpio6_28 */ >; }; + + usb1_pins: pinmux_usb1_pins { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */ + >; + }; }; &uart3 {
@@ -60,3 +66,8 @@ cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; wp-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>; }; + +&usb1 { + pinctrl-names = "default"; + pinctrl-0 = <&usb1_pins>; +};
Signature · 1 line
1.9.1
PATCH 14/18 ARM: am57xx: sbc-am57x: dts: add EEPROM support
In reply to Dmitry LifshitzOn-board EEPROM chip is used for storing a board production info.
Add carrier board EEPROM support (over I2C5 bus).
--- arch/arm/boot/dts/am57xx-sbc-am57x.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +20 -0
@@ -44,6 +44,13 @@ DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */ >; }; + + i2c5_pins_default: i2c5_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT| MUX_MODE10) /* mcasp1_axr0.i2c5_sda */ + DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT| MUX_MODE10) /* mcasp1_axr1.i2c5_scl */ + >; + }; }; &uart3 {
@@ -71,3 +78,16 @@ pinctrl-names = "default"; pinctrl-0 = <&usb1_pins>; }; + +&i2c5 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c5_pins_default>; + clock-frequency = <400000>; + + eeprom_base: atmel at 50 { + compatible = "atmel,24c08"; + reg = <0x50>; + pagesize = <16>; + }; +};
Signature · 1 line
1.9.1
PATCH 15/18 ARM: am57xx: sbc-am57x: dts: add GPIO extender support
In reply to Dmitry LifshitzAdd PCA9555 GPIO extender support (over I2C5 bus).
--- arch/arm/boot/dts/am57xx-sbc-am57x.dts | 7 +++++++ 1 file changed, 7 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +7 -0
@@ -90,4 +90,11 @@ reg = <0x50>; pagesize = <16>; }; + + pca9555: pca9555 at 20 { + compatible = "nxp,pca9555"; + reg = <0x20>; + gpio-controller; + #gpio-cells = <2>; + }; };
Signature · 1 line
1.9.1
PATCH 15/18 ARM: am57xx: sbc-am57x: dts: add GPIO extender support
Quoted 1 line · Dmitry Lifshitz
Add PCA9555 GPIO extender support (over I2C5 bus).
I think you meant to say "GPIO expander" in commit message and $subject perhaps?
Quoted 24 lines
Signed-off-by Dmitry Lifshitz <[email protected]>Acked-by Igor Grinberg <[email protected]>--- arch/arm/boot/dts/am57xx-sbc-am57x.dts | 7 +++++++ 1 file changed, 7 insertions(+)arch/arm/boot/dts/am57xx-sbc-am57x.dts +7
-0@@ -90,4 +90,11 @@ reg = <0x50>; pagesize = <16>; }; + + pca9555: pca9555 at 20 { + compatible = "nxp,pca9555"; + reg = <0x20>; + gpio-controller; + #gpio-cells = <2>; + }; };
Signature · 2 lines
Regards, Nishanth Menon
PATCH v2 15/18 ARM: am57xx: sbc-am57x: dts: add GPIO expander support
In reply to Dmitry LifshitzAdd PCA9555 GPIO expander support (over I2C5 bus).
---
v2:
* Fixed patch subject/description
arch/arm/boot/dts/am57xx-sbc-am57x.dts | 7 +++++++ 1 file changed, 7 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +7 -0
@@ -89,4 +89,11 @@ reg = <0x50>; pagesize = <16>; }; + + pca9555: pca9555 at 20 { + compatible = "nxp,pca9555"; + reg = <0x20>; + gpio-controller; + #gpio-cells = <2>; + }; };
Signature · 1 line
1.9.1
PATCH 16/18 ARM: am57xx: sbc-am57x: dts: add LCD support
In reply to Dmitry LifshitzStartek-kd050c 800x480 LCD panel timings are described in compulab-sb-som.dtsi.
Add appropriate DT endpoints to connect DPI output and LCD.
--- arch/arm/boot/dts/am57xx-sbc-am57x.dts | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +38 -0
@@ -15,6 +15,10 @@ / { model = "CompuLab CL-SOM-AM57x on SB-SOM-AM57x"; compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; + + aliases { + display0 = &lcd0; + }; }; &dra7_pmx_core {
@@ -51,6 +55,12 @@ DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT| MUX_MODE10) /* mcasp1_axr1.i2c5_scl */ >; }; + + lcd_pins_default: lcd_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3564, PIN_OUTPUT | MUX_MODE14) /* vin2a_vsync0.gpio4_0 */ + >; + }; }; &uart3 {
@@ -98,3 +108,31 @@ #gpio-cells = <2>; }; }; + +&dss { + status = "ok"; + + vdda_video-supply = <&ldoln_reg>; + + port { + dpi_lcd_out: endpoint at 0 { + remote-endpoint = <&lcd_in>; + data-lines = <24>; + }; + }; +}; + +&lcd0 { + pinctrl-names = "default"; + pinctrl-0 = <&lcd_pins_default>; + + enable-gpios = <&pca9555 14 GPIO_ACTIVE_HIGH + &gpio4 0 GPIO_ACTIVE_HIGH>; + + port { + lcd_in: endpoint { + remote-endpoint = <&dpi_lcd_out>; + data-lines = <24>; + }; + }; +};
Signature · 1 line
1.9.1
PATCH 17/18 ARM: am57xx: compulab-sb-som: dts: add HDMI connector
In reply to Dmitry LifshitzAdd HDMI connector node without a valid input endpoint.
CompuLab SB-SOM is a carrier board, hence the endpoint should be added in the board DT with a valid HDMI output.
--- arch/arm/boot/dts/compulab-sb-som.dtsi | 7 +++++++ 1 file changed, 7 insertions(+)
arch/arm/boot/dts/compulab-sb-som.dtsi +7 -0
@@ -39,4 +39,11 @@ pixelclk-active = <1>; }; }; + + hdmi_conn: connector at 0 { + compatible = "hdmi-connector"; + label = "hdmi"; + + type = "a"; + }; };
Signature · 1 line
1.9.1
PATCH 18/18 ARM: am57xx: sbc-am57x: dts: add HDMI support
In reply to Dmitry LifshitzAdd HDMI video output support.
--- arch/arm/boot/dts/am57xx-sbc-am57x.dts | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +41 -0
@@ -18,6 +18,7 @@ aliases { display0 = &lcd0; + display1 = &hdmi; }; };
@@ -61,6 +62,19 @@ DRA7XX_CORE_IOPAD(0x3564, PIN_OUTPUT | MUX_MODE14) /* vin2a_vsync0.gpio4_0 */ >; }; + + hdmi_pins: pinmux_hdmi_pins { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE1) /* i2c2_sda.hdmi1_ddc_scl */ + DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1) /* i2c2_scl.hdmi1_ddc_sda */ + >; + }; + + hdmi_conn_pins: pinmux_hdmi_conn_pins { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT | MUX_MODE14) /* spi1_cs2.gpio7_12 */ + >; + }; }; &uart3 {
@@ -136,3 +150,30 @@ }; }; }; + +&hdmi { + status = "ok"; + vdda-supply = <&ldo4_reg>; + + pinctrl-names = "default"; + pinctrl-0 = <&hdmi_pins>; + + port { + hdmi_out: endpoint { + remote-endpoint = <&hdmi_connector_in>; + }; + }; +}; + +&hdmi_conn { + pinctrl-names = "default"; + pinctrl-0 = <&hdmi_conn_pins>; + + hpd-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>; + + port { + hdmi_connector_in: endpoint { + remote-endpoint = <&hdmi_out>; + }; + }; +};
Signature · 1 line
1.9.1
PATCH v2 7/18 ARM: am57xx: cl-som-am57x: dts: add dual EMAC support
In reply to Dmitry LifshitzAdd dual EMAC support.
---
v2:
* Fix pinmux comments for RGMII0/1 clock/data lines
* Fix pinmux for MDIO bus clock/data lines
* Fix PHYs addresses
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 105 ++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +105 -0
@@ -104,6 +104,85 @@ DRA7XX_CORE_IOPAD(0x34bc, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs3.qspi1_cs1 */ >; }; + + cpsw_pins_default: cpsw_pins_default { + pinctrl-single,pins = < + /* Slave at addr 0x0 */ + DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE0) /* rgmii0_tclk */ + DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE0) /* rgmii0_tctl */ + DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td3 */ + DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td2 */ + DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td1 */ + DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td0 */ + DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rclk */ + DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rctl */ + DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd3 */ + DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd2 */ + DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd1 */ + DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd0 */ + + /* Slave@addr 0x1 */ + DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_tclk */ + DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */ + DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */ + DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */ + DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */ + DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */ + DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */ + DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */ + DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */ + DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */ + DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */ + DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT_PULLUP | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */ + >; + }; + + cpsw_pins_sleep: cpsw_pins_sleep { + pinctrl-single,pins = < + /* Slave 1 */ + DRA7XX_CORE_IOPAD(0x3650, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3654, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3658, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x365c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3660, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3664, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE15) + + /* Slave 2 */ + DRA7XX_CORE_IOPAD(0x3598, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x359c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35a0, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35a4, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35a8, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35ac, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE15) + >; + }; + + davinci_mdio_pins_default: davinci_mdio_pins_default { + pinctrl-single,pins = < + /* MDIO */ + DRA7XX_CORE_IOPAD(0x3590, PIN_OUTPUT_PULLUP | MUX_MODE3)/* vin2a_d10.mdio_mclk */ + DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT_PULLUP | MUX_MODE3) /* vin2a_d11.mdio_d */ + >; + }; + + davinci_mdio_pins_sleep: davinci_mdio_pins_sleep { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3590, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT | MUX_MODE15) + >; + }; }; &i2c1 {
@@ -375,3 +454,29 @@ }; }; }; + +&mac { + status = "okay"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cpsw_pins_default>; + pinctrl-1 = <&cpsw_pins_sleep>; + dual_emac; +}; + +&cpsw_emac0 { + phy_id = <&davinci_mdio>, <0>; + phy-mode = "rgmii"; + dual_emac_res_vlan = <0>; +}; + +&cpsw_emac1 { + phy_id = <&davinci_mdio>, <1>; + phy-mode = "rgmii"; + dual_emac_res_vlan = <1>; +}; + +&davinci_mdio { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&davinci_mdio_pins_default>; + pinctrl-1 = <&davinci_mdio_pins_sleep>; +};
Signature · 1 line
1.9.1
v2 cover Add support for CL-SOM-AM57X and SBC-AM57X
In reply to Dmitry LifshitzSBC-AM57X boards.
CL-SOM-AM57x is a miniature System-on-Module (SoM) based on TI Sitara AM57x ARM Cortex-A15 System-on-Chip family.
SBC-AM57x is a single board computer, implemented with the CL-SOM-AM57x computer-on-module providing most of the functions, and SB-SOM-AM57x carrier board providing additional peripheral functions and connectors.
The SBC-AM57x has the following features:
CPU: Texas Instruments Sitara AM5728 dual-core ARM Cortex-A15, 1.5GHz or
Texas Instruments Sitara AM5718 single-core ARM Cortex-A15, 1.5GHz
RAM: DDR3, 512MB ? 4GB
Storage: NAND flash, 512MB - 1GB or eMMC flash, 4GB - 32GB
SPI-flash 2MB
Ethernet: Up to 2x 10/100/1000Mbps Ethernet ports (MAC+PHY)
WiFi/BT: 802.11b/g/n WiFi interface (TI WiLink 8 WL1801 chipset) or
Dual-band 2x2 802.11a/b/g/n WiFi interface (TI WiLink 8 WL1837 chipset)
Analog Audio: Audio codec with stereo output, stereo input and microphone support
More details can be found here:
https://www.compulab.co.il/products/sbcs/sbc-am57x-ti-am5728-am5718-single-board-computer/
This series is based on the following patch set ("Add support for sbc-t43" Nikita Kiryanov):
https://www.mail-archive.com/linux-omap at vger.kernel.org/msg121905.html
Changes in V2:
- Removed unnecessary line breaks in end of file and elsewhere
- Changed subject lines to start with "ARM: dts:"
- PMIC moved from I2C1 to I2C4
- Fixed SPI flash compatible string
- Skipped resetting ETH PHYs
- Fixed HDMI lanes polarity
Dmitry Lifshitz (19):
ARM: dts: am57xx: cl-som-am57x: add basic module support
ARM: dts: am57xx: cl-som-am57x: dts: add RTC support
ARM: dts: am57xx: cl-som-am57x: add I2C3 support
ARM: dts: am57xx: cl-som-am57x: add EEPROM support
ARM: dts: am57xx: cl-som-am57x: add eMMC support
ARM: dts: am57xx: cl-som-am57x: add spi-flash support
ARM: dts: am57xx: cl-som-am57x: add dual EMAC support
ARM: dts: am57xx: cl-som-am57x: add USB support
ARM: dts: am57xx: cl-som-am57x: add touchscreen support
ARM: dts: am57xx: cl-som-am57x: add analog audio support
ARM: dts: am57xx: sbc-am57x: add basic board support
ARM: dts: am57xx: cl-som-am57x: add MMC1 support
ARM: dts: am57xx: sbc-am57x: add usb vbus pinmux
ARM: dts: am57xx: sbc-am57x: add EEPROM support
ARM: dts: am57xx: sbc-am57x: add GPIO expander support
ARM: dts: am57xx: sbc-am57x: add LCD support
ARM: dts: am57xx: compulab-sb-som: add HDMI connector
ARM: dts: am57xx: sbc-am57x: add HDMI support
ARM: dts: am57xx: cl-som-am57x: skip resetting ETH PHYs
.../devicetree/bindings/arm/omap/omap.txt | 6 + arch/arm/boot/dts/Makefile | 4 +- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 617 +++++++++++++++++++++ arch/arm/boot/dts/am57xx-sbc-am57x.dts | 179 ++++++ arch/arm/boot/dts/compulab-sb-som.dtsi | 7 + 5 files changed, 812 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/am57xx-cl-som-am57x.dts create mode 100644 arch/arm/boot/dts/am57xx-sbc-am57x.dts
Signature · 1 line
1.9.1
PATCH v3 1/19 ARM: dts: am57xx: cl-som-am57x: add basic module support
Add support for CompuLab CM-SOM-AM57X board.
CL-SOM-AM57x is a miniature System-on-Module (SoM) based on TI Sitara AM57x ARM Cortex-A15 System-on-Chip family.
Add basic DT support for standalone module (without a carrier board):
* Memory configuration
* Heartbeat led
* I2C1 and I2C4
* PMIC
* SATA
---
v3:
* Move PMIC to I2C4
* Reformat subject
v2:
* Fixed voltages (for OPP_HIGH) for VDD_GPU, VDD_IVA, VDD_DSPEVE
* Added comments for VDDA_1V8_PHYA/B
* Add "regulator-always-on" property for ldousb_reg
.../devicetree/bindings/arm/omap/omap.txt | 3 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 274 +++++++++++++++++++++ 3 files changed, 279 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/am57xx-cl-som-am57x.dts
Documentation/devicetree/bindings/arm/omap/omap.txt +3 -0
@@ -156,6 +156,9 @@ Boards: - AM437x SK EVM: AM437x StarterKit Evaluation Module compatible = "ti,am437x-sk-evm", "ti,am4372", "ti,am43" +- AM57XX CL-SOM-AM57x + compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" + - DRA742 EVM: Software Development Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
arch/arm/boot/dts/Makefile +2 -1
@@ -477,8 +477,9 @@ dtb-$(CONFIG_SOC_OMAP5) += \ omap5-sbc-t54.dtb \ omap5-uevm.dtb dtb-$(CONFIG_SOC_DRA7XX) += \ - dra7-evm.dtb \ am57xx-beagle-x15.dtb \ + am57xx-cl-som-am57x.dtb \ + dra7-evm.dtb \ dra72-evm.dtb dtb-$(CONFIG_ARCH_ORION5X) += \ orion5x-lacie-d2-network.dtb \
arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +274 -0
274 lines not on this page · raw message
Signature · 1 line
1.9.1
Rob Herring
maintainerPATCH v3 1/19 ARM: dts: am57xx: cl-som-am57x: add basic module support
Quoted 9 lines · Dmitry Lifshitz
Add support for CompuLab CM-SOM-AM57X board.
CL-SOM-AM57x is a miniature System-on-Module (SoM) based on TI Sitara AM57x ARM Cortex-A15 System-on-Chip family.
Add basic DT support for standalone module (without a carrier board):
Quoted 8 lines
* Memory configuration
* Heartbeat led
* I2C1 and I2C4
* PMIC
* SATASigned-off-by Dmitry Lifshitz <[email protected]>Acked-by Igor Grinberg <[email protected]>
Quoted 334 lines
---
v3:* Move PMIC to I2C4
* Reformat subjectv2:
* Fixed voltages (for
OPP_HIGH) forVDD_GPU,VDD_IVA,VDD_DSPEVE
* Added comments for VDDA_1V8_PHYA/B
* Add "regulator-always-on" property forldousb_reg.../devicetree/bindings/arm/omap/omap.txt | 3 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 274 +++++++++++++++++++++ 3 files changed, 279 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/am57xx-cl-som-am57x.dtsDocumentation/devicetree/bindings/arm/omap/omap.txt +3
-0@@ -156,6 +156,9 @@ Boards: - AM437x SK EVM: AM437x StarterKit Evaluation Module compatible = "ti,am437x-sk-evm", "ti,am4372", "ti,am43" +- AM57XX CL-SOM-AM57x + compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" + - DRA742 EVM: Software Development Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"arch/arm/boot/dts/Makefile +2
-1@@ -477,8 +477,9 @@ dtb-$(CONFIG_SOC_OMAP5) += \ omap5-sbc-t54.dtb \ omap5-uevm.dtb dtb-$(CONFIG_SOC_DRA7XX) += \ - dra7-evm.dtb \ am57xx-beagle-x15.dtb \ + am57xx-cl-som-am57x.dtb \ + dra7-evm.dtb \ dra72-evm.dtb dtb-$(CONFIG_ARCH_ORION5X) += \ orion5x-lacie-d2-network.dtb \arch/arm/boot/dts/am57xx-cl-som-am57x.dts new file +274
-0@@ -0,0 +1,274 @@ +/* + * Support for CompuLab CL-SOM-AM57x System-on-Module + * + * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/ + * Author: Dmitry Lifshitz <[email protected]> + * + * 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 <dt-bindings/gpio/gpio.h> +#include <dt-bindings/interrupt-controller/irq.h> +#include "dra74x.dtsi" + +/ { + model = "CompuLab CL-SOM-AM57x"; + compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x20000000>; /* 512 MB - minimal configuration */ + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&leds_pins_default>; + + led at 0 { + label = "cl-som-am57x:green"; + gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + default-state = "off"; + }; + }; +}; + +&dra7_pmx_core { + leds_pins_default: leds_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x347c, PIN_OUTPUT | MUX_MODE14) /* gpmc_a15.gpio2_5 */ + >; + }; + + i2c1_pins_default: i2c1_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda.sda */ + DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl.scl */ + >; + }; + + i2c4_pins_default: i2c4_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x36ac, PIN_INPUT| MUX_MODE10) /* mcasp1_acl.i2c4_sda */ + DRA7XX_CORE_IOPAD(0x36b0, PIN_INPUT| MUX_MODE10) /* mcasp1_fsr.i2c4_scl */ + >; + }; + + tps659038_pins_default: tps659038_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */ + >; + }; +}; + +&i2c1 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_pins_default>; + clock-frequency = <400000>; +}; + +&i2c4 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c4_pins_default>; + clock-frequency = <400000>; + + tps659038: tps659038 at 58 { + compatible = "ti,tps659038"; + reg = <0x58>; + interrupt-parent = <&gpio1>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-names = "default"; + pinctrl-0 = <&tps659038_pins_default>; + + #interrupt-cells = <2>; + interrupt-controller; + + ti,system-power-controller; + + tps659038_pmic { + compatible = "ti,tps659038-pmic"; + + regulators { + smps12_reg: smps12 { + /* VDD_MPU */ + regulator-name = "smps12"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps3_reg: smps3 { + /* VDD_DDR */ + regulator-name = "smps3"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-boot-on; + }; + + smps45_reg: smps45 { + /* VDD_DSPEVE */ + regulator-name = "smps45"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps6_reg: smps6 { + /* VDD_GPU */ + regulator-name = "smps6"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps7_reg: smps7 { + /* VDD_CORE */ + regulator-name = "smps7"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1160000>; + regulator-always-on; + regulator-boot-on; + }; + + smps8_reg: smps8 { + /* VDD_IVA */ + regulator-name = "smps8"; + regulator-min-microvolt = < 850000>; + regulator-max-microvolt = <1250000>; + regulator-always-on; + regulator-boot-on; + }; + + smps9_reg: smps9 { + /* PMIC_3V3 */ + regulator-name = "smps9"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; + + + ldo1_reg: ldo1 { + /* VDD_SD / VDDSHV8 */ + regulator-name = "ldo1"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo2_reg: ldo2 { + /* VDD_1V8 */ + regulator-name = "ldo2"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo3_reg: ldo3 { + /* VDDA_1V8_PHYA - supplies VDDA_SATA, VDDA_USB1/2/3 */ + regulator-name = "ldo3"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo4_reg: ldo4 { + /* VDDA_1V8_PHYB - supplies VDDA_HDMI, VDDA_PCIE/0/1 */ + regulator-name = "ldo4"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldo9_reg: ldo9 { + /* VDD_RTC */ + regulator-name = "ldo9"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + regulator-always-on; + regulator-boot-on; + }; + + ldoln_reg: ldoln { + /* VDDA_1V8_PLL */ + regulator-name = "ldoln"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + ldousb_reg: ldousb { + /* VDDA_3V_USB: VDDA_USBHS33 */ + regulator-name = "ldousb"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; + + /* regen1 not used */ + }; + }; + + tps659038_pwr_button: tps659038_pwr_button { + compatible = "ti,palmas-pwrbutton"; + interrupt-parent = <&tps659038>; + interrupts = <1 IRQ_TYPE_EDGE_FALLING>; + wakeup-source; + ti,palmas-long-press-seconds = <12>; + }; + + tps659038_gpio: tps659038_gpio { + compatible = "ti,palmas-gpio"; + gpio-controller; + #gpio-cells = <2>; + }; + }; +}; + +&cpu0 { + cpu0-supply = <&smps12_reg>; + voltage-tolerance = <1>; +}; + +&sata { + status = "okay"; +}; + +&mailbox5 { + status = "okay"; + mbox_ipu1_ipc3x: mbox_ipu1_ipc3x { + status = "okay"; + }; + mbox_dsp1_ipc3x: mbox_dsp1_ipc3x { + status = "okay"; + }; +}; + +&mailbox6 { + status = "okay"; + mbox_ipu2_ipc3x: mbox_ipu2_ipc3x { + status = "okay"; + }; + mbox_dsp2_ipc3x: mbox_dsp2_ipc3x { + status = "okay"; + }; +};Signature · 6 lines
1.9.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH v3 1/19 ARM: dts: am57xx: cl-som-am57x: add basic module support
Quoted 16 lines · Rob Herring
Quoted 15 lines · Dmitry Lifshitz
Add support for CompuLab CM-SOM-AM57X board.
CL-SOM-AM57x is a miniature System-on-Module (SoM) based on TI Sitara AM57x ARM Cortex-A15 System-on-Chip family.
Add basic DT support for standalone module (without a carrier board):
* Memory configuration
* Heartbeat led
* I2C1 and I2C4
* PMIC
* SATA
Quoted 4 lines
Quoted 2 lines
Signed-off-by Dmitry Lifshitz <[email protected]>Acked-by Igor Grinberg <[email protected]>Acked-by Rob Herring <[email protected]>
Applying the whole series into omap-for-v4.5/dt thanks.
Tony
PATCH v2 2/19 ARM: dts: am57xx: cl-som-am57x: dts: add RTC support
In reply to Dmitry LifshitzAdd EM3027 RTC chip support (over I2C4 bus).
---
v2:
* No fuctional changes.
* Refactor patch with respect to the previous changes in I2C4 node structure.
* Reformat subject
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 5 +++++ 1 file changed, 5 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +5 -0
@@ -242,6 +242,11 @@ #gpio-cells = <2>; }; }; + + rtc0: rtc at 56 { + compatible = "emmicro,em3027"; + reg = <0x56>; + }; }; &cpu0 {
Signature · 1 line
1.9.1
PATCH v2 3/19 ARM: dts: am57xx: cl-som-am57x: add I2C3 support
In reply to Dmitry LifshitzEnable I2C3 bus and add appropriate pinmux.
---
v2:
* No fuctional changes
* Refactor patch with respect to the previous changes in I2C4 node structure
* Reformat subject
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +14 -0
@@ -52,6 +52,13 @@ >; }; + i2c3_pins_default: i2c3_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x36a4, PIN_INPUT| MUX_MODE10) /* mcasp1_aclkx.i2c3_sda */ + DRA7XX_CORE_IOPAD(0x36a8, PIN_INPUT| MUX_MODE10) /* mcasp1_fsx.i2c3_scl */ + >; + }; + i2c4_pins_default: i2c4_pins_default { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x36ac, PIN_INPUT| MUX_MODE10) /* mcasp1_acl.i2c4_sda */
@@ -73,6 +80,13 @@ clock-frequency = <400000>; }; +&i2c3 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c3_pins_default>; + clock-frequency = <400000>; +}; + &i2c4 { status = "okay"; pinctrl-names = "default";
Signature · 1 line
1.9.1
PATCH v3 4/19 ARM: dts: am57xx: cl-som-am57x: add EEPROM support
In reply to Dmitry LifshitzOn-board EEPROM chip is used for storing a board production info.
Add module EEPROM support (over I2C4 bus).
---
v3:
* No fuctional changes
* Reformat subject
v2:
* Fix EEPROM chip model
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 6 ++++++ 1 file changed, 6 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +6 -0
@@ -261,6 +261,12 @@ compatible = "emmicro,em3027"; reg = <0x56>; }; + + eeprom_module: atmel at 50 { + compatible = "atmel,24c08"; + reg = <0x50>; + pagesize = <16>; + }; }; &cpu0 {
Signature · 1 line
1.9.1
PATCH v2 5/19 ARM: dts: am57xx: cl-som-am57x: add eMMC support
In reply to Dmitry LifshitzCM-SOM-AM57X has two options of main storage devices - eMMC or NAND. Add eMMC chip support (over MMC2 bus).
---
v2:
* No fuctional changes
* Reformat subject
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +34 -0
@@ -36,6 +36,13 @@ default-state = "off"; }; }; + + vdd_3v3: fixedregulator-vdd_3v3 { + compatible = "regulator-fixed"; + regulator-name = "vdd_3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; }; &dra7_pmx_core {
@@ -71,6 +78,21 @@ DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */ >; }; + + mmc2_pins_default: mmc2_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */ + DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */ + DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */ + DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */ + DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */ + DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */ + DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */ + DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */ + DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */ + DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */ + >; + }; }; &i2c1 {
@@ -297,3 +319,15 @@ status = "okay"; }; }; + +&mmc2 { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&mmc2_pins_default>; + + vmmc-supply = <&vdd_3v3>; + bus-width = <8>; + ti,non-removable; + cap-mmc-dual-data-rate; +};
Signature · 1 line
1.9.1
PATCH v3 6/19 ARM: dts: am57xx: cl-som-am57x: add spi-flash support
In reply to Dmitry LifshitzOn-board spi-flash chip is used as a main boot device. Add spi-flash chip support (over QSPI bus).
---
v3:
* Modify "compatible" property to match a proper flash driver
* Drop RX/TX bus with properties
* Reformat subject
v2:
* Add "spi-max-frequency" property for &qspi node.
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 42 +++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +42 -0
@@ -93,6 +93,17 @@ DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */ >; }; + + qspi1_pins: pinmux_qspi1_pins { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3474, PIN_INPUT | MUX_MODE1) /* gpmc_a13.qspi1_rtclk */ + DRA7XX_CORE_IOPAD(0x3480, PIN_INPUT | MUX_MODE1) /* gpmc_a16.qspi1_d0 */ + DRA7XX_CORE_IOPAD(0x3484, PIN_INPUT | MUX_MODE1) /* gpmc_a17.qspi1_d1 */ + DRA7XX_CORE_IOPAD(0x3488, PIN_INPUT | MUX_MODE1) /* qpmc_a18.qspi1_sclk */ + DRA7XX_CORE_IOPAD(0x34b8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs2.qspi1_cs0 */ + DRA7XX_CORE_IOPAD(0x34bc, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs3.qspi1_cs1 */ + >; + }; }; &i2c1 {
@@ -331,3 +342,34 @@ ti,non-removable; cap-mmc-dual-data-rate; }; + +&qspi { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&qspi1_pins>; + + spi-max-frequency = <20000000>; + + spi_flash: spi_flash at 0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "spansion,m25p80", "jedec,spi-nor"; + reg = <0>; /* CS0 */ + spi-max-frequency = <20000000>; + + partition at 0 { + label = "uboot"; + reg = <0x0 0xc0000>; + }; + + partition at c0000 { + label = "uboot environment"; + reg = <0xc0000 0x40000>; + }; + + partition at 100000 { + label = "reserved"; + reg = <0x100000 0x0>; + }; + }; +};
Signature · 1 line
1.9.1
PATCH v3 7/19 ARM: dts: am57xx: cl-som-am57x: add dual EMAC support
In reply to Dmitry LifshitzAdd dual EMAC support.
---
v3:
* No fuctional changes
* Reformat subject
v2:
* Fix pinmux comments for RGMII0/1 clock/data lines
* Fix pinmux for MDIO bus clock/data lines
* Fix PHYs addresses
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 105 ++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +105 -0
@@ -104,6 +104,85 @@ DRA7XX_CORE_IOPAD(0x34bc, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs3.qspi1_cs1 */ >; }; + + cpsw_pins_default: cpsw_pins_default { + pinctrl-single,pins = < + /* Slave at addr 0x0 */ + DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE0) /* rgmii0_tclk */ + DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE0) /* rgmii0_tctl */ + DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td3 */ + DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td2 */ + DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td1 */ + DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td0 */ + DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rclk */ + DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rctl */ + DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd3 */ + DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd2 */ + DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd1 */ + DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd0 */ + + /* Slave@addr 0x1 */ + DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_tclk */ + DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */ + DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */ + DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */ + DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */ + DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */ + DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */ + DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */ + DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */ + DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */ + DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */ + DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT_PULLUP | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */ + >; + }; + + cpsw_pins_sleep: cpsw_pins_sleep { + pinctrl-single,pins = < + /* Slave 1 */ + DRA7XX_CORE_IOPAD(0x3650, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3654, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3658, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x365c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3660, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3664, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE15) + + /* Slave 2 */ + DRA7XX_CORE_IOPAD(0x3598, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x359c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35a0, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35a4, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35a8, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35ac, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE15) + >; + }; + + davinci_mdio_pins_default: davinci_mdio_pins_default { + pinctrl-single,pins = < + /* MDIO */ + DRA7XX_CORE_IOPAD(0x3590, PIN_OUTPUT_PULLUP | MUX_MODE3)/* vin2a_d10.mdio_mclk */ + DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT_PULLUP | MUX_MODE3) /* vin2a_d11.mdio_d */ + >; + }; + + davinci_mdio_pins_sleep: davinci_mdio_pins_sleep { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3590, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT | MUX_MODE15) + >; + }; }; &i2c1 {
@@ -373,3 +452,29 @@ }; }; }; + +&mac { + status = "okay"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cpsw_pins_default>; + pinctrl-1 = <&cpsw_pins_sleep>; + dual_emac; +}; + +&cpsw_emac0 { + phy_id = <&davinci_mdio>, <0>; + phy-mode = "rgmii"; + dual_emac_res_vlan = <0>; +}; + +&cpsw_emac1 { + phy_id = <&davinci_mdio>, <1>; + phy-mode = "rgmii"; + dual_emac_res_vlan = <1>; +}; + +&davinci_mdio { + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&davinci_mdio_pins_default>; + pinctrl-1 = <&davinci_mdio_pins_sleep>; +};
Signature · 1 line
1.9.1
PATCH v2 8/19 ARM: dts: am57xx: cl-som-am57x: add USB support
In reply to Dmitry LifshitzAdd USB support.
---
v2:
* No fuctional changes
* Reformat subject
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +16 -0
@@ -478,3 +478,19 @@ pinctrl-0 = <&davinci_mdio_pins_default>; pinctrl-1 = <&davinci_mdio_pins_sleep>; }; + +&usb2_phy1 { + phy-supply = <&ldousb_reg>; +}; + +&usb2_phy2 { + phy-supply = <&ldousb_reg>; +}; + +&usb1 { + dr_mode = "host"; +}; + +&usb2 { + dr_mode = "peripheral"; +};
Signature · 1 line
1.9.1
PATCH v2 9/19 ARM: dts: am57xx: cl-som-am57x: add touchscreen support
In reply to Dmitry LifshitzAdd ADS7846 touchscreen support.
---
v2:
* No fuctional changes
* Reformat subject
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +44 -0
@@ -43,6 +43,13 @@ regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; + + ads7846reg: fixedregulator-ads7846-reg { + compatible = "regulator-fixed"; + regulator-name = "ads7846-reg"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; }; &dra7_pmx_core {
@@ -183,6 +190,12 @@ DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT | MUX_MODE15) >; }; + + ads7846_pins: pinmux_ads7846_pins { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3464, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpmc_a9.gpio1_31 */ + >; + }; }; &i2c1 {
@@ -451,6 +464,37 @@ reg = <0x100000 0x0>; }; }; + + /* touch controller */ + ads7846 at 0 { + pinctrl-names = "default"; + pinctrl-0 = <&ads7846_pins>; + + compatible = "ti,ads7846"; + vcc-supply = <&ads7846reg>; + + reg = <1>; /* CS1 */ + spi-max-frequency = <1500000>; + + interrupt-parent = <&gpio1>; + interrupts = <31 0>; + pendown-gpio = <&gpio1 31 0>; + + + ti,x-min = /bits/ 16 <0x0>; + ti,x-max = /bits/ 16 <0x0fff>; + ti,y-min = /bits/ 16 <0x0>; + ti,y-max = /bits/ 16 <0x0fff>; + + ti,x-plate-ohms = /bits/ 16 <180>; + ti,pressure-max = /bits/ 16 <255>; + + ti,debounce-max = /bits/ 16 <30>; + ti,debounce-tol = /bits/ 16 <10>; + ti,debounce-rep = /bits/ 16 <1>; + + linux,wakeup; + }; }; &mac {
Signature · 1 line
1.9.1
PATCH v2 10/19 ARM: dts: am57xx: cl-som-am57x: add analog audio support
In reply to Dmitry LifshitzAdd analog audio DT nodes:
1. simple-audio-card node
2. wm8731 codec node
3. MCASP3 pinmux
---
v2:
* No fuctional changes
* Reformat subject
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 67 +++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +67 -0
@@ -50,6 +50,33 @@ regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; + + sound0: sound at 0 { + compatible = "simple-audio-card"; + simple-audio-card,name = "CL-SOM-AM57x-Sound-Card"; + simple-audio-card,format = "i2s"; + simple-audio-card,bitclock-master = <&dailink0_master>; + simple-audio-card,frame-master = <&dailink0_master>; + simple-audio-card,widgets = + "Headphone", "Headphone Jack", + "Microphone", "Microphone Jack", + "Line", "Line Jack"; + simple-audio-card,routing = + "Headphone Jack", "RHPOUT", + "Headphone Jack", "LHPOUT", + "LLINEIN", "Line Jack", + "MICIN", "Mic Bias", + "Mic Bias", "Microphone Jack"; + + dailink0_master: simple-audio-card,cpu { + sound-dai = <&mcasp3>; + }; + + simple-audio-card,codec { + sound-dai = <&wm8731>; + system-clock-frequency = <12000000>; + }; + }; }; &dra7_pmx_core {
@@ -196,6 +223,24 @@ DRA7XX_CORE_IOPAD(0x3464, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpmc_a9.gpio1_31 */ >; }; + + mcasp3_pins_default: mcasp3_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx.mcasp3_aclkx */ + DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx.mcasp3_fsx */ + DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0.mcasp3_axr0 */ + DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1.mcasp3_axr1 */ + >; + }; + + mcasp3_pins_sleep: mcasp3_pins_sleep { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x372c, PIN_INPUT | MUX_MODE15) + DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT | MUX_MODE15) + >; + }; }; &i2c1 {
@@ -392,6 +437,13 @@ reg = <0x50>; pagesize = <16>; }; + + wm8731: wm8731 at 1a { + #sound-dai-cells = <0>; + compatible = "wlf,wm8731"; + reg = <0x1a>; + status = "okay"; + }; }; &cpu0 {
@@ -538,3 +590,18 @@ &usb2 { dr_mode = "peripheral"; }; + +&mcasp3 { + #sound-dai-cells = <0>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&mcasp3_pins_default>; + pinctrl-1 = <&mcasp3_pins_sleep>; + status = "okay"; + + op-mode = <0>; /* MCASP_IIS_MODE */ + tdm-slots = <2>; + /* 4 serializers */ + serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ + 1 2 0 0 + >; +};
Signature · 1 line
1.9.1
PATCH v2 11/19 ARM: dts: am57xx: sbc-am57x: add basic board support
In reply to Dmitry LifshitzSBC-AM57x is a single board computer designed for industrial and embedded applications. It is based on the Texas Instruments Sitara AM57x system-on-chip family. SBC-AM57x is implemented with the CL-SOM-AM57x computer-on-module providing most of the functions, and SB-SOM-AM57x carrier board providing additional peripheral functions and connectors.
https://www.compulab.co.il/products/sbcs/sbc-am57x-ti-am5728-am5718-single-board-computer/
Add basic board support, including UART3, used as a serial console.
---
v2:
* No fuctional changes
* Reformat subject
.../devicetree/bindings/arm/omap/omap.txt | 3 ++ arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am57xx-sbc-am57x.dts | 36 ++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 arch/arm/boot/dts/am57xx-sbc-am57x.dts
Documentation/devicetree/bindings/arm/omap/omap.txt +3 -0
@@ -159,6 +159,9 @@ Boards: - AM57XX CL-SOM-AM57x compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" +- AM57XX SBC-AM57x + compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" + - DRA742 EVM: Software Development Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
arch/arm/boot/dts/Makefile +1 -0
@@ -479,6 +479,7 @@ dtb-$(CONFIG_SOC_OMAP5) += \ dtb-$(CONFIG_SOC_DRA7XX) += \ am57xx-beagle-x15.dtb \ am57xx-cl-som-am57x.dtb \ + am57xx-sbc-am57x.dtb \ dra7-evm.dtb \ dra72-evm.dtb dtb-$(CONFIG_ARCH_ORION5X) += \
arch/arm/boot/dts/am57xx-sbc-am57x.dts new file +36 -0
@@ -0,0 +1,36 @@ +/* + * Support for CompuLab SBC-AM57x single board computer + * + * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/ + * Author: Dmitry Lifshitz <[email protected]> + * + * 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 "am57xx-cl-som-am57x.dts" +#include "compulab-sb-som.dtsi" + +/ { + model = "CompuLab CL-SOM-AM57x on SB-SOM-AM57x"; + compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; +}; + +&dra7_pmx_core { + uart3_pins_default: uart3_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_SLEW | MUX_MODE2) /* uart2_ctsn.uart3_rxd */ + DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */ + >; + }; +}; + +&uart3 { + status = "okay"; + interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, + <&dra7_pmx_core 0x3f8>; + + pinctrl-names = "default"; + pinctrl-0 = <&uart3_pins_default>; +};
Signature · 1 line
1.9.1
Rob Herring
maintainerPATCH v2 11/19 ARM: dts: am57xx: sbc-am57x: add basic board support
Quoted 6 lines · Dmitry Lifshitz
SBC-AM57x is a single board computer designed for industrial and embedded applications. It is based on the Texas Instruments Sitara AM57x system-on-chip family. SBC-AM57x is implemented with the CL-SOM-AM57x computer-on-module providing most of the functions, and SB-SOM-AM57x carrier board providing additional peripheral functions and connectors.
Quoted 8 lines
https://www.compulab.co.il/products/sbcs/sbc-am57x-ti-am5728-am5718-single-board-computer/
Add basic board support, including UART3, used as a serial console.
Signed-off-by Dmitry Lifshitz <[email protected]>Acked-by Igor Grinberg <[email protected]>
Quoted 88 lines
---
v2:
* No fuctional changes
* Reformat subject.../devicetree/bindings/arm/omap/omap.txt | 3 ++ arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am57xx-sbc-am57x.dts | 36 ++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 arch/arm/boot/dts/am57xx-sbc-am57x.dtsDocumentation/devicetree/bindings/arm/omap/omap.txt +3
-0@@ -159,6 +159,9 @@ Boards: - AM57XX CL-SOM-AM57x compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" +- AM57XX SBC-AM57x + compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7" + - DRA742 EVM: Software Development Board for DRA742 compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"arch/arm/boot/dts/Makefile +1
-0@@ -479,6 +479,7 @@ dtb-$(CONFIG_SOC_OMAP5) += \ dtb-$(CONFIG_SOC_DRA7XX) += \ am57xx-beagle-x15.dtb \ am57xx-cl-som-am57x.dtb \ + am57xx-sbc-am57x.dtb \ dra7-evm.dtb \ dra72-evm.dtb dtb-$(CONFIG_ARCH_ORION5X) += \arch/arm/boot/dts/am57xx-sbc-am57x.dts new file +36
-0@@ -0,0 +1,36 @@ +/* + * Support for CompuLab SBC-AM57x single board computer + * + * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/ + * Author: Dmitry Lifshitz <[email protected]> + * + * 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 "am57xx-cl-som-am57x.dts" +#include "compulab-sb-som.dtsi" + +/ { + model = "CompuLab CL-SOM-AM57x on SB-SOM-AM57x"; + compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; +}; + +&dra7_pmx_core { + uart3_pins_default: uart3_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_SLEW | MUX_MODE2) /* uart2_ctsn.uart3_rxd */ + DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */ + >; + }; +}; + +&uart3 { + status = "okay"; + interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, + <&dra7_pmx_core 0x3f8>; + + pinctrl-names = "default"; + pinctrl-0 = <&uart3_pins_default>; +};Signature · 6 lines
1.9.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH v3 12/19 ARM: dts: am57xx: cl-som-am57x: add MMC1 support
In reply to Dmitry LifshitzAdd MMC1 support, used for SD/MMC card.
---
v3:
* No fuctional changes
* Reformat subject
v2:
* Fix duplicate SD Card Detect pinmux
arch/arm/boot/dts/am57xx-sbc-am57x.dts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +25 -0
@@ -24,6 +24,19 @@ DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */ >; }; + + mmc1_pins_default: mmc1_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */ + DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */ + DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */ + DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */ + DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */ + DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */ + DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1_sdcd.gpio6_27 */ + DRA7XX_CORE_IOPAD(0x377c, PIN_INPUT | MUX_MODE14) /* mmc1_sdwp.gpio6_28 */ + >; + }; }; &uart3 {
@@ -34,3 +47,15 @@ pinctrl-names = "default"; pinctrl-0 = <&uart3_pins_default>; }; + +&mmc1 { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&mmc1_pins_default>; + + vmmc-supply = <&ldo1_reg>; + bus-width = <4>; + cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; + wp-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>; +};
Signature · 1 line
1.9.1
PATCH v2 13/19 ARM: dts: am57xx: sbc-am57x: add usb vbus pinmux
In reply to Dmitry Lifshitzusb1_drvvbus pin is used to Drive-VBUS enable to external charge pump/power switch.
Add a pinmux for that pin.
---
v2:
* No fuctional changes
* Reformat subject
arch/arm/boot/dts/am57xx-sbc-am57x.dts | 11 +++++++++++ 1 file changed, 11 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +11 -0
@@ -37,6 +37,12 @@ DRA7XX_CORE_IOPAD(0x377c, PIN_INPUT | MUX_MODE14) /* mmc1_sdwp.gpio6_28 */ >; }; + + usb1_pins: pinmux_usb1_pins { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */ + >; + }; }; &uart3 {
@@ -59,3 +65,8 @@ cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; wp-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>; }; + +&usb1 { + pinctrl-names = "default"; + pinctrl-0 = <&usb1_pins>; +};
Signature · 1 line
1.9.1
PATCH v2 14/19 ARM: dts: am57xx: sbc-am57x: add EEPROM support
In reply to Dmitry LifshitzOn-board EEPROM chip is used for storing a board production info.
Add carrier board EEPROM support (over I2C5 bus).
---
v2:
* No fuctional changes
* Reformat subject
arch/arm/boot/dts/am57xx-sbc-am57x.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +20 -0
@@ -43,6 +43,13 @@ DRA7XX_CORE_IOPAD(0x3680, PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */ >; }; + + i2c5_pins_default: i2c5_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT| MUX_MODE10) /* mcasp1_axr0.i2c5_sda */ + DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT| MUX_MODE10) /* mcasp1_axr1.i2c5_scl */ + >; + }; }; &uart3 {
@@ -70,3 +77,16 @@ pinctrl-names = "default"; pinctrl-0 = <&usb1_pins>; }; + +&i2c5 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c5_pins_default>; + clock-frequency = <400000>; + + eeprom_base: atmel at 50 { + compatible = "atmel,24c08"; + reg = <0x50>; + pagesize = <16>; + }; +};
Signature · 1 line
1.9.1
PATCH v3 15/19 ARM: dts: am57xx: sbc-am57x: add GPIO expander support
In reply to Dmitry LifshitzAdd PCA9555 GPIO expander support (over I2C5 bus).
---
v3:
* No fuctional changes
* Reformat subject
v2:
* Fixed patch subject/description
arch/arm/boot/dts/am57xx-sbc-am57x.dts | 7 +++++++ 1 file changed, 7 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +7 -0
@@ -89,4 +89,11 @@ reg = <0x50>; pagesize = <16>; }; + + pca9555: pca9555 at 20 { + compatible = "nxp,pca9555"; + reg = <0x20>; + gpio-controller; + #gpio-cells = <2>; + }; };
Signature · 1 line
1.9.1
PATCH v2 16/19 ARM: dts: am57xx: sbc-am57x: add LCD support
In reply to Dmitry LifshitzStartek-kd050c 800x480 LCD panel timings are described in compulab-sb-som.dtsi.
Add appropriate DT endpoints to connect DPI output and LCD.
---
v2:
* No fuctional changes
* Reformat subject
arch/arm/boot/dts/am57xx-sbc-am57x.dts | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +38 -0
@@ -15,6 +15,10 @@ / { model = "CompuLab CL-SOM-AM57x on SB-SOM-AM57x"; compatible = "compulab,sbc-am57x", "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7"; + + aliases { + display0 = &lcd0; + }; }; &dra7_pmx_core {
@@ -50,6 +54,12 @@ DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT| MUX_MODE10) /* mcasp1_axr1.i2c5_scl */ >; }; + + lcd_pins_default: lcd_pins_default { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3564, PIN_OUTPUT | MUX_MODE14) /* vin2a_vsync0.gpio4_0 */ + >; + }; }; &uart3 {
@@ -97,3 +107,31 @@ #gpio-cells = <2>; }; }; + +&dss { + status = "ok"; + + vdda_video-supply = <&ldoln_reg>; + + port { + dpi_lcd_out: endpoint at 0 { + remote-endpoint = <&lcd_in>; + data-lines = <24>; + }; + }; +}; + +&lcd0 { + pinctrl-names = "default"; + pinctrl-0 = <&lcd_pins_default>; + + enable-gpios = <&pca9555 14 GPIO_ACTIVE_HIGH + &gpio4 0 GPIO_ACTIVE_HIGH>; + + port { + lcd_in: endpoint { + remote-endpoint = <&dpi_lcd_out>; + data-lines = <24>; + }; + }; +};
Signature · 1 line
1.9.1
PATCH v2 17/19 ARM: dts: am57xx: compulab-sb-som: add HDMI connector
In reply to Dmitry LifshitzAdd HDMI connector node without a valid input endpoint.
CompuLab SB-SOM is a carrier board, hence the endpoint should be added in the board DT with a valid HDMI output.
---
v2:
* No fuctional changes
* Reformat subject
arch/arm/boot/dts/compulab-sb-som.dtsi | 7 +++++++ 1 file changed, 7 insertions(+)
arch/arm/boot/dts/compulab-sb-som.dtsi +7 -0
@@ -39,4 +39,11 @@ pixelclk-active = <1>; }; }; + + hdmi_conn: connector at 0 { + compatible = "hdmi-connector"; + label = "hdmi"; + + type = "a"; + }; };
Signature · 1 line
1.9.1
PATCH v2 18/19 ARM: dts: am57xx: sbc-am57x: add HDMI support
In reply to Dmitry LifshitzAdd HDMI video output support.
---
v2:
* Fix HDMI lanes polarity
* Reformat subject
arch/arm/boot/dts/am57xx-sbc-am57x.dts | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+)
arch/arm/boot/dts/am57xx-sbc-am57x.dts +42 -0
@@ -18,6 +18,7 @@ aliases { display0 = &lcd0; + display1 = &hdmi; }; };
@@ -60,6 +61,19 @@ DRA7XX_CORE_IOPAD(0x3564, PIN_OUTPUT | MUX_MODE14) /* vin2a_vsync0.gpio4_0 */ >; }; + + hdmi_pins: pinmux_hdmi_pins { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x3808, PIN_INPUT | MUX_MODE1) /* i2c2_sda.hdmi1_ddc_scl */ + DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1) /* i2c2_scl.hdmi1_ddc_sda */ + >; + }; + + hdmi_conn_pins: pinmux_hdmi_conn_pins { + pinctrl-single,pins = < + DRA7XX_CORE_IOPAD(0x37b8, PIN_INPUT | MUX_MODE14) /* spi1_cs2.gpio7_12 */ + >; + }; }; &uart3 {
@@ -135,3 +149,31 @@ }; }; }; + +&hdmi { + status = "ok"; + vdda-supply = <&ldo4_reg>; + + pinctrl-names = "default"; + pinctrl-0 = <&hdmi_pins>; + + port { + hdmi_out: endpoint { + remote-endpoint = <&hdmi_connector_in>; + lanes = <1 0 3 2 5 4 7 6>; + }; + }; +}; + +&hdmi_conn { + pinctrl-names = "default"; + pinctrl-0 = <&hdmi_conn_pins>; + + hpd-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>; + + port { + hdmi_connector_in: endpoint { + remote-endpoint = <&hdmi_out>; + }; + }; +};
Signature · 1 line
1.9.1
PATCH v2 19/19 ARM: dts: am57xx: cl-som-am57x: skip resetting ETH PHYs
In reply to Dmitry LifshitzETH PHYs setup on CL-SOM-AM57X is established in U-Boot along with bringing them out of reset. This is done by toggling GPIOs belonging to GPIO2/3 controllers on AM57xx.
Skip resetting ETH PHYs, by adding "ti,no-reset-on-init" to GPIO2/3 controllers DT nodes.
--- arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 10 ++++++++++ 1 file changed, 10 insertions(+)
arch/arm/boot/dts/am57xx-cl-som-am57x.dts +10 -0
@@ -605,3 +605,13 @@ 1 2 0 0 >; }; + +&gpio3 { + status = "okay"; + ti,no-reset-on-init; +}; + +&gpio2 { + status = "okay"; + ti,no-reset-on-init; +};
Signature · 1 line
1.9.1