diff options
Diffstat (limited to 'arch/arm/boot/dts')
| -rw-r--r-- | arch/arm/boot/dts/Makefile | 1 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap3-h1-ev1.dts | 57 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap3.dtsi | 272 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap3430-sdp.dts | 1 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap36xx.dtsi | 35 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap3_h1.dts | 57 |
6 files changed, 282 insertions, 141 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index e2a70d9fb96..ebd3b406229 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -161,6 +161,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ am335x-evm.dtb \ am335x-evmsk.dtb \ am335x-bone.dtb +dtb-$(CONFIG_MACH_OMAP3_H1) += omap3-h1-ev1.dtb dtb-$(CONFIG_MACH_MINNOW) += omap3-minnow-p0.dtb omap3-casper-p1.dtb dtb-$(CONFIG_ARCH_ORION5X) += orion5x-lacie-ethernet-disk-mini-v2.dtb dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb diff --git a/arch/arm/boot/dts/omap3-h1-ev1.dts b/arch/arm/boot/dts/omap3-h1-ev1.dts new file mode 100644 index 00000000000..fc8a507b855 --- /dev/null +++ b/arch/arm/boot/dts/omap3-h1-ev1.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2014 Olio Devices, Inc. + * Authors: Evan Wilson <evan@oliodevices.com> + * Mattis Fjallstrom <mattis@oliodevices.com> + * + * Modified from omap3-beagle-xm.dts + * + * 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/ "omap36xx.dtsi" +/ { + model = "Olio OMAP3 H1 Board"; + compatible = "olio,omap3-h1", "ti,omap3"; + + tusb_phy: tusb-usb@0 { + compatible = "ti,tusb-usb"; + gpios = <&gpio5 14 0x1>; /* IRQ gpio-142 GPIOF_DIR_OUT|GPIOF_INIT_HIGH */ + gpio-names = "tusb-cs"; + clk_in = "periph_26mhz"; /* external 26MHz clock */ + reg = <0 0>; + }; + + /* Needs to be modified for Olio H1 */ + + /* Consider setting up pad-wkup here, like in Minnow */ + + +}; + +/* Lots of pinmux in the board file, as well */ + +&omap3_pmx_core { + pinctrl-names = "default"; + pinctrl-0 = <&usb_phy_pins>; + + usb_phy_pins: pinmux_usb_phy_pins { + pinctrl-single,pins = < + 0x140 0x4104 /* MCBSP3_CLKX, MODE4 (GPIO-142) | INPUT | OFFWAKEUP */ + 0x5ae 0x004 /* ETK_D1, MODE4 (GPIO_15) | OUTPUT */ + 0x5b0 0x004 /* ETK_D2, MODE4 (GPIO_16) | OUTPUT */ + 0x5c6 0x004 /* EDK_D13, MODE4 (GPIO_27) | OUTPUT */ + >; + }; +}; + + +&usb_otg_hs { + interface-type = <0>; + usb-phy = <&tusb_phy>; + mode = <3>; + power = <50>; + +}; diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi index 2b8802164c1..4d45679361b 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi @@ -14,17 +14,18 @@ compatible = "ti,omap3430", "ti,omap3"; interrupt-parent = <&intc>; - aliases { + aliases { /* serial0 = &uart1; serial1 = &uart2; serial2 = &uart3; + */ }; - cpus { - cpu@0 { + cpus { + cpu@0 { compatible = "arm,cortex-a8"; - }; - }; + }; + }; pmu { compatible = "arm,cortex-a8-pmu"; @@ -43,14 +44,14 @@ ti,hwmods = "mpu"; }; - iva { - compatible = "ti,iva2.2"; - ti,hwmods = "iva"; - - dsp { - compatible = "ti,omap3-c64"; - }; - }; + iva { + compatible = "ti,iva2.2"; + ti,hwmods = "iva"; + + dsp { + compatible = "ti,omap3-c64"; + }; + }; }; /* @@ -111,7 +112,7 @@ pinctrl-single,register-width = <16>; pinctrl-single,function-mask = <0x7f1f>; #gpio-range-cells = <3>; - }; + }; gpio1: gpio@48310000 { compatible = "ti,omap3-gpio"; @@ -123,24 +124,31 @@ #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; - }; + }; - gpio2: gpio@49050000 { - compatible = "ti,omap3-gpio"; - reg = <0x49050000 0x200>; - interrupts = <30>; - ti,hwmods = "gpio2"; - gpio-controller; - #gpio-cells = <2>; - interrupt-controller; - #interrupt-cells = <2>; - /* for gpio 32 33 there is no pnctrl controller defined */ - gpio-ranges = <&omap3_pmx_core 2 0x25 10>, - <&omap3_pmx_core 12 0x37 8>, - <&omap3_pmx_core 20 0x40 8>, - <&omap3_pmx_core 28 0x4B 3>, - <&omap3_pmx_core 31 0x4f 1>; - }; + /* disabling this one makes suspend work */ + /* but it also causes the touch to NOT work */ + + gpio2: gpio@49050000 { + compatible = "ti,omap3-gpio"; + reg = <0x49050000 0x200>; + interrupts = <30>; + ti,hwmods = "gpio2"; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + /* for gpio 32 33 there is no pnctrl controller defined */ + /* gpio-ranges = <&omap3_pmx_core 2 0x25 10>, */ + /* <&omap3_pmx_core 12 0x37 8>, */ + /* <&omap3_pmx_core 20 0x40 8>, */ + /* <&omap3_pmx_core 28 0x4B 3>, */ + /* <&omap3_pmx_core 31 0x4f 1>; */ + }; + + /* Removing this one disables touch, + * suspend works. + */ gpio3: gpio@49052000 { compatible = "ti,omap3-gpio"; @@ -151,26 +159,34 @@ #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; - gpio-ranges = <&omap3_pmx_core 0 0x50 32>; - }; + /* gpio-ranges = <&omap3_pmx_core 0 0x50 32>; */ + }; - gpio4: gpio@49054000 { - compatible = "ti,omap3-gpio"; + /* Removing this one disables _both_ touch + * and suspend. + */ + + gpio4: gpio@49054000 { + compatible = "ti,omap3-gpio"; reg = <0x49054000 0x200>; interrupts = <32>; ti,hwmods = "gpio4"; gpio-controller; #gpio-cells = <2>; interrupt-controller; - #interrupt-cells = <2>; + #interrupt-cells = <2>; /* - * gpio 127 in wkup mux, whcih we can not use (see + * gpio 127 in wkup mux, which we can not use (see * sorce code for comment) */ - gpio-ranges = <&omap3_pmx_core 0 0x70 16>, - <&omap3_pmx_core 16 0x82 14>, - <&omap3_pmx_core 30 0x81 1>; - }; + /* gpio-ranges = <&omap3_pmx_core 0 0x70 16>, */ + /* <&omap3_pmx_core 16 0x82 14>, */ + /* <&omap3_pmx_core 30 0x81 1>; */ + }; + + /* Removing this one causes touch to work but suspend to + * crash.... + */ gpio5: gpio@49056000 { compatible = "ti,omap3-gpio"; @@ -180,14 +196,18 @@ gpio-controller; #gpio-cells = <2>; interrupt-controller; - #interrupt-cells = <2>; + #interrupt-cells = <2>; /* - * gpio 128 129 in wkup mux, whcih we can not use (see - * sorce code for comment) - */ - gpio-ranges = <&omap3_pmx_core 2 0x94 30>; + * gpio 128 129 in wkup mux, whcih we can not use (see + * sorce code for comment) + */ + /* gpio-ranges = <&omap3_pmx_core 2 0x94 20>; */ }; + /* Removing this one causes touch to work but suspend to + * crash.... + */ + gpio6: gpio@49058000 { compatible = "ti,omap3-gpio"; reg = <0x49058000 0x200>; @@ -196,36 +216,37 @@ gpio-controller; #gpio-cells = <2>; interrupt-controller; - #interrupt-cells = <2>; + #interrupt-cells = <2>; /* for gpio 187 there is no pnctrl controller defined */ - gpio-ranges = <&omap3_pmx_core 0 0xb2 7>, - <&omap3_pmx_core 7 0x80 1>, - <&omap3_pmx_core 8 0xc7 1>, - <&omap3_pmx_core 9 0xc0 1>, - <&omap3_pmx_core 10 0xcb 13>, - <&omap3_pmx_core 23 0xc8 3>, - <&omap3_pmx_core 26 0xd9 1>, - <&omap3_pmx_core 28 0xc1 4>; - }; + /* gpio-ranges = <&omap3_pmx_core 0 0xb2 7>, */ + /* <&omap3_pmx_core 7 0x80 1>, */ + /* <&omap3_pmx_core 8 0xc7 1>, */ + /* <&omap3_pmx_core 9 0xc0 1>, */ + /* <&omap3_pmx_core 10 0xcb 13>, */ + /* <&omap3_pmx_core 23 0xc8 3>, */ + /* <&omap3_pmx_core 26 0xd9 1>, */ + /* <&omap3_pmx_core 28 0xc1 4>; */ + }; - uart1: serial@4806a000 { - compatible = "ti,omap3-uart"; - ti,hwmods = "uart1"; - clock-frequency = <48000000>; - }; + /* uart1: serial@4806a000 { */ + /* compatible = "ti,omap3-uart"; */ + /* ti,hwmods = "uart1"; */ + /* clock-frequency = <48000000>; */ + /* }; */ - uart2: serial@4806c000 { - compatible = "ti,omap3-uart"; - ti,hwmods = "uart2"; - clock-frequency = <48000000>; - }; + /* uart2: serial@4806c000 { */ + /* compatible = "ti,omap3-uart"; */ + /* ti,hwmods = "uart2"; */ + /* clock-frequency = <48000000>; */ + /* }; */ - uart3: serial@49020000 { - compatible = "ti,omap3-uart"; - ti,hwmods = "uart3"; - clock-frequency = <48000000>; - }; + /* uart3: serial@49020000 { */ + /* compatible = "ti,omap3-uart"; */ + /* ti,hwmods = "uart3"; */ + /* clock-frequency = <48000000>; */ + /* }; */ + /* i2c1: i2c@48070000 { compatible = "ti,omap3-i2c"; #address-cells = <1>; @@ -245,8 +266,8 @@ #address-cells = <1>; #size-cells = <0>; ti,hwmods = "i2c3"; - }; - + }; */ + mcspi1: spi@48098000 { compatible = "ti,omap2-mcspi"; #address-cells = <1>; @@ -299,7 +320,7 @@ ti,spi-num-cs = <1>; dmas = <&sdma 70>, <&sdma 71>; dma-names = "tx0", "rx0"; - }; + }; mmc1: mmc@4809c000 { compatible = "ti,omap3-hsmmc"; @@ -321,7 +342,7 @@ ti,hwmods = "mmc3"; dmas = <&sdma 77>, <&sdma 78>; dma-names = "tx", "rx"; - }; + }; wdt2: wdt@48314000 { compatible = "ti,omap3-wdt"; @@ -331,11 +352,11 @@ mcbsp1: mcbsp@48074000 { compatible = "ti,omap3-mcbsp"; reg = <0x48074000 0xff>; - reg-names = "mpu"; - interrupts = <16>, /* OCP compliant interrupt */ - <59>, /* TX interrupt */ - <60>; /* RX interrupt */ - interrupt-names = "common", "tx", "rx"; + reg-names = "mpu"; + interrupts = <16>, /* OCP compliant interrupt */ + <59>, /* TX interrupt */ + <60>; /* RX interrupt */ + interrupt-names = "common", "tx", "rx"; ti,buffer-size = <128>; ti,hwmods = "mcbsp1"; dmas = <&sdma 31>, @@ -348,11 +369,11 @@ reg = <0x49022000 0xff>, <0x49028000 0xff>; reg-names = "mpu", "sidetone"; - interrupts = <17>, /* OCP compliant interrupt */ - <62>, /* TX interrupt */ - <63>, /* RX interrupt */ - <4>; /* Sidetone */ - interrupt-names = "common", "tx", "rx", "sidetone"; + interrupts = <17>, /* OCP compliant interrupt */ + <62>, /* TX interrupt */ + <63>, /* RX interrupt */ + <4>; /* Sidetone */ + interrupt-names = "common", "tx", "rx", "sidetone"; ti,buffer-size = <1280>; ti,hwmods = "mcbsp2", "mcbsp2_sidetone"; dmas = <&sdma 33>, @@ -365,11 +386,11 @@ reg = <0x49024000 0xff>, <0x4902a000 0xff>; reg-names = "mpu", "sidetone"; - interrupts = <22>, /* OCP compliant interrupt */ - <89>, /* TX interrupt */ - <90>, /* RX interrupt */ - <5>; /* Sidetone */ - interrupt-names = "common", "tx", "rx", "sidetone"; + interrupts = <22>, /* OCP compliant interrupt */ + <89>, /* TX interrupt */ + <90>, /* RX interrupt */ + <5>; /* Sidetone */ + interrupt-names = "common", "tx", "rx", "sidetone"; ti,buffer-size = <128>; ti,hwmods = "mcbsp3", "mcbsp3_sidetone"; dmas = <&sdma 17>, @@ -381,10 +402,10 @@ compatible = "ti,omap3-mcbsp"; reg = <0x49026000 0xff>; reg-names = "mpu"; - interrupts = <23>, /* OCP compliant interrupt */ - <54>, /* TX interrupt */ - <55>; /* RX interrupt */ - interrupt-names = "common", "tx", "rx"; + interrupts = <23>, /* OCP compliant interrupt */ + <54>, /* TX interrupt */ + <55>; /* RX interrupt */ + interrupt-names = "common", "tx", "rx"; ti,buffer-size = <128>; ti,hwmods = "mcbsp4"; dmas = <&sdma 19>, @@ -396,16 +417,16 @@ compatible = "ti,omap3-mcbsp"; reg = <0x48096000 0xff>; reg-names = "mpu"; - interrupts = <27>, /* OCP compliant interrupt */ - <81>, /* TX interrupt */ - <82>; /* RX interrupt */ - interrupt-names = "common", "tx", "rx"; + interrupts = <27>, /* OCP compliant interrupt */ + <81>, /* TX interrupt */ + <82>; /* RX interrupt */ + interrupt-names = "common", "tx", "rx"; ti,buffer-size = <128>; ti,hwmods = "mcbsp5"; dmas = <&sdma 21>, <&sdma 22>; dma-names = "tx", "rx"; - }; + }; timer1: timer@48318000 { compatible = "ti,omap3430-timer"; @@ -501,13 +522,13 @@ ti,timer-alwon; ti,timer-secure; }; - - usbhstll: usbhstll@48062000 { - compatible = "ti,usbhs-tll"; - reg = <0x48062000 0x1000>; - interrupts = <78>; - ti,hwmods = "usb_tll_hs"; - }; + + /* usbhstll: usbhstll@48062000 { */ + /* compatible = "ti,usbhs-tll"; */ + /* reg = <0x48062000 0x1000>; */ + /* interrupts = <78>; */ + /* ti,hwmods = "usb_tll_hs"; */ + /* }; */ usbhshost: usbhshost@48064000 { compatible = "ti,usbhs-host"; @@ -517,20 +538,24 @@ #size-cells = <1>; ranges; - usbhsohci: ohci@48064400 { - compatible = "ti,ohci-omap3", "usb-ohci"; - reg = <0x48064400 0x400>; - interrupt-parent = <&intc>; - interrupts = <76>; - }; + /* usbhsohci: ohci@48064400 { */ + /* compatible = "ti,ohci-omap3", "usb-ohci"; */ + /* reg = <0x48064400 0x400>; */ + /* interrupt-parent = <&intc>; */ + /* interrupts = <76>; */ + /* }; */ - usbhsehci: ehci@48064800 { - compatible = "ti,ehci-omap", "usb-ehci"; - reg = <0x48064800 0x400>; - interrupt-parent = <&intc>; - interrupts = <77>; - }; - }; + /* usbhsehci: ehci@48064800 { */ + /* compatible = "ti,ehci-omap", "usb-ehci"; */ + /* reg = <0x48064800 0x400>; */ + /* interrupt-parent = <&intc>; */ + /* interrupts = <77>; */ + /* }; */ + }; + + /* GPMC needs to be initialized here, or everything + * falls apart. + */ gpmc: gpmc@6e000000 { compatible = "ti,omap3430-gpmc"; @@ -541,8 +566,9 @@ gpmc,num-waitpins = <4>; #address-cells = <2>; #size-cells = <1>; - }; + }; + /* usb_otg_hs: usb_otg_hs@480ab000 { compatible = "ti,omap3-musb"; reg = <0x480ab000 0x1000>; @@ -552,11 +578,11 @@ multipoint = <1>; num-eps = <16>; ram-bits = <12>; - }; + };*/ glbl_prm: glbl_prm@48307250 { - /* - * disabled by default. becasue two required + /* + * disabled by default. because two required * values should be defined in board file */ status = "disabled"; diff --git a/arch/arm/boot/dts/omap3430-sdp.dts b/arch/arm/boot/dts/omap3430-sdp.dts index 144ae43453c..6076d016b47 100644 --- a/arch/arm/boot/dts/omap3430-sdp.dts +++ b/arch/arm/boot/dts/omap3430-sdp.dts @@ -105,7 +105,6 @@ nand-bus-width = <8>; ti,nand-ecc-opt = "sw"; - gpmc,device-nand; gpmc,cs-on-ns = <0>; gpmc,cs-rd-off-ns = <36>; gpmc,cs-wr-off-ns = <36>; diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi index f3447bc1b03..2a25174167c 100644 --- a/arch/arm/boot/dts/omap36xx.dtsi +++ b/arch/arm/boot/dts/omap36xx.dtsi @@ -12,27 +12,28 @@ / { aliases { - serial3 = &uart4; + /* serial3 = &uart4; */ }; cpus { /* OMAP3630/OMAP37xx 'standard device' variants OPP50 to OPP130 */ - cpu@0 { - operating-points = < - /* kHz uV */ - 300000 1012500 - 600000 1200000 - 800000 1325000 - >; - clock-latency = <300000>; /* From legacy driver */ - }; + /* cpu@0 { */ + /* operating-points = < */ + /* /\* kHz uV *\/ */ + /* 300000 1012500 */ + /* 600000 1200000 */ + /* 800000 1325000 */ + /* 1000000 1375000 */ + /* >; */ + /* clock-latency = <300000>; /\* From legacy driver *\/ */ + /* }; */ }; - ocp { - uart4: serial@49042000 { - compatible = "ti,omap3-uart"; - ti,hwmods = "uart4"; - clock-frequency = <48000000>; - }; - }; + /* ocp { */ + /* uart4: serial@49042000 { */ + /* compatible = "ti,omap3-uart"; */ + /* ti,hwmods = "uart4"; */ + /* clock-frequency = <48000000>; */ + /* }; */ + /* }; */ }; diff --git a/arch/arm/boot/dts/omap3_h1.dts b/arch/arm/boot/dts/omap3_h1.dts new file mode 100644 index 00000000000..13a34e53ac7 --- /dev/null +++ b/arch/arm/boot/dts/omap3_h1.dts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2014 Olio Devices, Inc. + * Authors: Evan Wilson <evan@oliodevices.com> + * Mattis Fjallstrom <mattis@oliodevices.com> + * + * Modified from omap3-beagle-xm.dts + * + * 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/ "omap36xx.dtsi" +/ { + model = "Olio OMAP3 H1 Board"; + compatible = "olio,omap3-h1", "ti,omap3"; + + cpus { + cpu@0 { + device_type = "cpu"; + operating-points = < + /* kHz uV */ + 300000 975000 + 600000 1150000 + 800000 1275000 + 1000000 1337500 + >; + /* OPP tolerance in percentage */ + voltage-tolerance = <0>; + reset-voltage = <1275000>; + }; + }; +}; + +&vc { + ti,i2c-high-speed; + ti,i2c-pad-load = <3>; + vc_mpu{ + ti,master-channel; + }; + + vc_core{ + ti,use-master-slave-addr; + }; +}; + +&glbl_prm { + status = "ok"; + sys_clk = "osc_sys_ck"; + autoextclkmode = <2>; + sys_off_mode; + auto_off; + auto_retention; + offmodesetup_time = <3500>; + clksetup_time = <1000>; +}; |