diff options
| -rw-r--r-- | arch/arm/boot/dts/Makefile | 2 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap3-cm-t3730.dts | 104 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap3-cm-t3x30.dtsi | 95 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap3-sb-t35.dtsi | 40 | ||||
| -rw-r--r-- | arch/arm/boot/dts/omap3-sbc-t3730.dts | 30 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/pdata-quirks.c | 31 |
6 files changed, 302 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index fc37bca0ccd3..b7af5023dc89 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
| @@ -179,6 +179,8 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ | |||
| 179 | omap2420-n810-wimax.dtb \ | 179 | omap2420-n810-wimax.dtb \ |
| 180 | omap3430-sdp.dtb \ | 180 | omap3430-sdp.dtb \ |
| 181 | omap3-beagle.dtb \ | 181 | omap3-beagle.dtb \ |
| 182 | omap3-cm-t3730.dtb \ | ||
| 183 | omap3-sbc-t3730.dtb \ | ||
| 182 | omap3-devkit8000.dtb \ | 184 | omap3-devkit8000.dtb \ |
| 183 | omap3-beagle-xm.dtb \ | 185 | omap3-beagle-xm.dtb \ |
| 184 | omap3-evm.dtb \ | 186 | omap3-evm.dtb \ |
diff --git a/arch/arm/boot/dts/omap3-cm-t3730.dts b/arch/arm/boot/dts/omap3-cm-t3730.dts new file mode 100644 index 000000000000..486f4d6c4219 --- /dev/null +++ b/arch/arm/boot/dts/omap3-cm-t3730.dts | |||
| @@ -0,0 +1,104 @@ | |||
| 1 | /* | ||
| 2 | * Support for CompuLab CM-T3730 | ||
| 3 | */ | ||
| 4 | /dts-v1/; | ||
| 5 | |||
| 6 | #include "omap36xx.dtsi" | ||
| 7 | #include "omap3-cm-t3x30.dtsi" | ||
| 8 | |||
| 9 | / { | ||
| 10 | model = "CompuLab CM-T3730"; | ||
| 11 | compatible = "compulab,omap3-cm-t3730", "ti,omap36xx", "ti,omap3"; | ||
| 12 | |||
| 13 | wl12xx_vmmc2: wl12xx_vmmc2 { | ||
| 14 | compatible = "regulator-fixed"; | ||
| 15 | regulator-name = "vw1271"; | ||
| 16 | pinctrl-names = "default"; | ||
| 17 | pinctrl-0 = <&wl12xx_gpio>; | ||
| 18 | regulator-min-microvolt = <1800000>; | ||
| 19 | regulator-max-microvolt = <1800000>; | ||
| 20 | gpio = <&gpio3 9 GPIO_ACTIVE_HIGH>; /* gpio73 */ | ||
| 21 | startup-delay-us = <20000>; | ||
| 22 | enable-active-high; | ||
| 23 | }; | ||
| 24 | |||
| 25 | wl12xx_vaux2: wl12xx_vaux2 { | ||
| 26 | compatible = "regulator-fixed"; | ||
| 27 | regulator-name = "vwl1271_vaux2"; | ||
| 28 | regulator-min-microvolt = <1800000>; | ||
| 29 | regulator-max-microvolt = <1800000>; | ||
| 30 | vin-supply = <&vaux2>; | ||
| 31 | }; | ||
| 32 | }; | ||
| 33 | |||
| 34 | &omap3_pmx_core { | ||
| 35 | mmc1_pins: pinmux_mmc1_pins { | ||
| 36 | pinctrl-single,pins = < | ||
| 37 | 0x114 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */ | ||
| 38 | 0x116 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */ | ||
| 39 | 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */ | ||
| 40 | 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */ | ||
| 41 | 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */ | ||
| 42 | 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */ | ||
| 43 | >; | ||
| 44 | }; | ||
| 45 | |||
| 46 | mmc2_pins: pinmux_mmc2_pins { | ||
| 47 | pinctrl-single,pins = < | ||
| 48 | 0x128 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */ | ||
| 49 | 0x12a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */ | ||
| 50 | 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */ | ||
| 51 | 0x12e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */ | ||
| 52 | 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */ | ||
| 53 | 0x132 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */ | ||
| 54 | >; | ||
| 55 | }; | ||
| 56 | |||
| 57 | smsc1_pins: pinmux_smsc1_pins { | ||
| 58 | pinctrl-single,pins = < | ||
| 59 | 0x88 (PIN_OUTPUT | MUX_MODE0) /* gpmc_ncs5.gpmc_ncs5 */ | ||
| 60 | 0x16a (PIN_INPUT_PULLUP | MUX_MODE4) /* uart3_cts_rctx.gpio_163 */ | ||
| 61 | >; | ||
| 62 | }; | ||
| 63 | |||
| 64 | uart3_pins: pinmux_uart3_pins { | ||
| 65 | pinctrl-single,pins = < | ||
| 66 | 0x16e (PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ | ||
| 67 | 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */ | ||
| 68 | >; | ||
| 69 | }; | ||
| 70 | |||
| 71 | wl12xx_gpio: pinmux_wl12xx_gpio { | ||
| 72 | pinctrl-single,pins = < | ||
| 73 | 0xb2 (PIN_OUTPUT | MUX_MODE4) /* dss_data3.gpio_73 */ | ||
| 74 | 0x134 (PIN_INPUT | MUX_MODE4) /* sdmmc2_dat4.gpio_136 */ | ||
| 75 | >; | ||
| 76 | }; | ||
| 77 | }; | ||
| 78 | |||
| 79 | &mmc1 { | ||
| 80 | vmmc-supply = <&vmmc1>; | ||
| 81 | bus-width = <4>; | ||
| 82 | pinctrl-names = "default"; | ||
| 83 | pinctrl-0 = <&mmc1_pins>; | ||
| 84 | }; | ||
| 85 | |||
| 86 | &mmc2 { | ||
| 87 | pinctrl-names = "default"; | ||
| 88 | pinctrl-0 = <&mmc2_pins>; | ||
| 89 | vmmc-supply = <&wl12xx_vmmc2>; | ||
| 90 | vmmc_aux-supply = <&wl12xx_vaux2>; | ||
| 91 | non-removable; | ||
| 92 | bus-width = <4>; | ||
| 93 | cap-power-off-card; | ||
| 94 | }; | ||
| 95 | |||
| 96 | &smsc1 { | ||
| 97 | pinctrl-names = "default"; | ||
| 98 | pinctrl-0 = <&smsc1_pins>; | ||
| 99 | }; | ||
| 100 | |||
| 101 | &uart3 { | ||
| 102 | pinctrl-names = "default"; | ||
| 103 | pinctrl-0 = <&uart3_pins>; | ||
| 104 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-cm-t3x30.dtsi b/arch/arm/boot/dts/omap3-cm-t3x30.dtsi new file mode 100644 index 000000000000..3a9f004d8924 --- /dev/null +++ b/arch/arm/boot/dts/omap3-cm-t3x30.dtsi | |||
| @@ -0,0 +1,95 @@ | |||
| 1 | /* | ||
| 2 | * Common support for CompuLab CM-T3530 and CM-T3730 | ||
| 3 | */ | ||
| 4 | |||
| 5 | / { | ||
| 6 | memory { | ||
| 7 | device_type = "memory"; | ||
| 8 | reg = <0x80000000 0x10000000>; /* 256 MB */ | ||
| 9 | }; | ||
| 10 | |||
| 11 | cpus { | ||
| 12 | cpu@0 { | ||
| 13 | cpu0-supply = <&vcc>; | ||
| 14 | }; | ||
| 15 | }; | ||
| 16 | |||
| 17 | leds { | ||
| 18 | compatible = "gpio-leds"; | ||
| 19 | ledb { | ||
| 20 | label = "cm-t35:green"; | ||
| 21 | gpios = <&gpio6 26 GPIO_ACTIVE_HIGH>; /* gpio186 */ | ||
| 22 | linux,default-trigger = "heartbeat"; | ||
| 23 | }; | ||
| 24 | }; | ||
| 25 | |||
| 26 | vddvario: regulator-vddvario { | ||
| 27 | compatible = "regulator-fixed"; | ||
| 28 | regulator-name = "vddvario"; | ||
| 29 | regulator-always-on; | ||
| 30 | }; | ||
| 31 | |||
| 32 | vdd33a: regulator-vdd33a { | ||
| 33 | compatible = "regulator-fixed"; | ||
| 34 | regulator-name = "vdd33a"; | ||
| 35 | regulator-always-on; | ||
| 36 | }; | ||
| 37 | }; | ||
| 38 | |||
| 39 | &gpmc { | ||
| 40 | ranges = <5 0 0x2c000000 0x01000000>; | ||
| 41 | |||
| 42 | smsc1: ethernet@5,0 { | ||
| 43 | compatible = "smsc,lan9221", "smsc,lan9115"; | ||
| 44 | interrupt-parent = <&gpio6>; | ||
| 45 | interrupts = <3 IRQ_TYPE_LEVEL_LOW>; | ||
| 46 | reg = <5 0 0xff>; | ||
| 47 | bank-width = <2>; | ||
| 48 | gpmc,mux-add-data; | ||
| 49 | gpmc,cs-on-ns = <0>; | ||
| 50 | gpmc,cs-rd-off-ns = <186>; | ||
| 51 | gpmc,cs-wr-off-ns = <186>; | ||
| 52 | gpmc,adv-on-ns = <12>; | ||
| 53 | gpmc,adv-rd-off-ns = <48>; | ||
| 54 | gpmc,adv-wr-off-ns = <48>; | ||
| 55 | gpmc,oe-on-ns = <54>; | ||
| 56 | gpmc,oe-off-ns = <168>; | ||
| 57 | gpmc,we-on-ns = <54>; | ||
| 58 | gpmc,we-off-ns = <168>; | ||
| 59 | gpmc,rd-cycle-ns = <186>; | ||
| 60 | gpmc,wr-cycle-ns = <186>; | ||
| 61 | gpmc,access-ns = <114>; | ||
| 62 | gpmc,page-burst-access-ns = <6>; | ||
| 63 | gpmc,bus-turnaround-ns = <12>; | ||
| 64 | gpmc,cycle2cycle-delay-ns = <18>; | ||
| 65 | gpmc,wr-data-mux-bus-ns = <90>; | ||
| 66 | gpmc,wr-access-ns = <186>; | ||
| 67 | gpmc,cycle2cycle-samecsen; | ||
| 68 | gpmc,cycle2cycle-diffcsen; | ||
| 69 | vddvario-supply = <&vddvario>; | ||
| 70 | vdd33a-supply = <&vdd33a>; | ||
| 71 | reg-io-width = <4>; | ||
| 72 | smsc,save-mac-address; | ||
| 73 | }; | ||
| 74 | }; | ||
| 75 | |||
| 76 | &i2c1 { | ||
| 77 | clock-frequency = <400000>; | ||
| 78 | |||
| 79 | twl: twl@48 { | ||
| 80 | reg = <0x48>; | ||
| 81 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
| 82 | interrupt-parent = <&intc>; | ||
| 83 | }; | ||
| 84 | }; | ||
| 85 | |||
| 86 | #include "twl4030.dtsi" | ||
| 87 | #include "twl4030_omap3.dtsi" | ||
| 88 | |||
| 89 | &i2c3 { | ||
| 90 | clock-frequency = <400000>; | ||
| 91 | }; | ||
| 92 | |||
| 93 | &twl_gpio { | ||
| 94 | ti,use-leds; | ||
| 95 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-sb-t35.dtsi b/arch/arm/boot/dts/omap3-sb-t35.dtsi new file mode 100644 index 000000000000..b9a2fedce7ee --- /dev/null +++ b/arch/arm/boot/dts/omap3-sb-t35.dtsi | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | /* | ||
| 2 | * Common support for CompuLab SB-T35 used on SBC-T3530, SBC-T3517 and SBC-T3730 | ||
| 3 | */ | ||
| 4 | |||
| 5 | &gpmc { | ||
| 6 | ranges = <4 0 0x2d000000 0x01000000>; | ||
| 7 | |||
| 8 | smsc2: ethernet@4,0 { | ||
| 9 | compatible = "smsc,lan9221", "smsc,lan9115"; | ||
| 10 | interrupt-parent = <&gpio3>; | ||
| 11 | interrupts = <1 IRQ_TYPE_LEVEL_LOW>; | ||
| 12 | reg = <4 0 0xff>; | ||
| 13 | bank-width = <2>; | ||
| 14 | gpmc,mux-add-data; | ||
| 15 | gpmc,cs-on-ns = <0>; | ||
| 16 | gpmc,cs-rd-off-ns = <186>; | ||
| 17 | gpmc,cs-wr-off-ns = <186>; | ||
| 18 | gpmc,adv-on-ns = <12>; | ||
| 19 | gpmc,adv-rd-off-ns = <48>; | ||
| 20 | gpmc,adv-wr-off-ns = <48>; | ||
| 21 | gpmc,oe-on-ns = <54>; | ||
| 22 | gpmc,oe-off-ns = <168>; | ||
| 23 | gpmc,we-on-ns = <54>; | ||
| 24 | gpmc,we-off-ns = <168>; | ||
| 25 | gpmc,rd-cycle-ns = <186>; | ||
| 26 | gpmc,wr-cycle-ns = <186>; | ||
| 27 | gpmc,access-ns = <114>; | ||
| 28 | gpmc,page-burst-access-ns = <6>; | ||
| 29 | gpmc,bus-turnaround-ns = <12>; | ||
| 30 | gpmc,cycle2cycle-delay-ns = <18>; | ||
| 31 | gpmc,wr-data-mux-bus-ns = <90>; | ||
| 32 | gpmc,wr-access-ns = <186>; | ||
| 33 | gpmc,cycle2cycle-samecsen; | ||
| 34 | gpmc,cycle2cycle-diffcsen; | ||
| 35 | vddvario-supply = <&vddvario>; | ||
| 36 | vdd33a-supply = <&vdd33a>; | ||
| 37 | reg-io-width = <4>; | ||
| 38 | smsc,save-mac-address; | ||
| 39 | }; | ||
| 40 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-sbc-t3730.dts b/arch/arm/boot/dts/omap3-sbc-t3730.dts new file mode 100644 index 000000000000..c119bd545053 --- /dev/null +++ b/arch/arm/boot/dts/omap3-sbc-t3730.dts | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | /* | ||
| 2 | * Suppport for CompuLab SBC-T3730 with CM-T3730 | ||
| 3 | */ | ||
| 4 | |||
| 5 | #include "omap3-cm-t3730.dts" | ||
| 6 | #include "omap3-sb-t35.dtsi" | ||
| 7 | |||
| 8 | / { | ||
| 9 | model = "CompuLab SBC-T3730 with CM-T3730"; | ||
| 10 | compatible = "compulab,omap3-sbc-t3730", "compulab,omap3-cm-t3730", "ti,omap36xx", "ti,omap3"; | ||
| 11 | }; | ||
| 12 | |||
| 13 | &gpmc { | ||
| 14 | ranges = <5 0 0x2c000000 0x01000000>, | ||
| 15 | <4 0 0x2d000000 0x01000000>; | ||
| 16 | }; | ||
| 17 | |||
| 18 | &smsc2 { | ||
| 19 | pinctrl-names = "default"; | ||
| 20 | pinctrl-0 = <&smsc2_pins>; | ||
| 21 | }; | ||
| 22 | |||
| 23 | &omap3_pmx_core { | ||
| 24 | smsc2_pins: pinmux_smsc2_pins { | ||
| 25 | pinctrl-single,pins = < | ||
| 26 | 0x86 (PIN_OUTPUT | MUX_MODE0) /* gpmc_ncs4.gpmc_ncs4 */ | ||
| 27 | 0xa2 (PIN_INPUT_PULLUP | MUX_MODE4) /* gpmc_wait3.gpio_65 */ | ||
| 28 | >; | ||
| 29 | }; | ||
| 30 | }; \ No newline at end of file | ||
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c index 5aaf720211f4..3d5b24dcd9a4 100644 --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c | |||
| @@ -92,6 +92,33 @@ static void __init hsmmc2_internal_input_clk(void) | |||
| 92 | omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1); | 92 | omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1); |
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | static int omap3_sbc_t3730_twl_callback(struct device *dev, | ||
| 96 | unsigned gpio, | ||
| 97 | unsigned ngpio) | ||
| 98 | { | ||
| 99 | int res; | ||
| 100 | |||
| 101 | res = gpio_request_one(gpio + 2, GPIOF_OUT_INIT_HIGH, | ||
| 102 | "wlan rst"); | ||
| 103 | if (res) | ||
| 104 | return res; | ||
| 105 | |||
| 106 | gpio_export(gpio, 0); | ||
| 107 | |||
| 108 | return 0; | ||
| 109 | } | ||
| 110 | |||
| 111 | static void __init omap3_sbc_t3730_twl_init(void) | ||
| 112 | { | ||
| 113 | twl_gpio_auxdata.setup = omap3_sbc_t3730_twl_callback; | ||
| 114 | } | ||
| 115 | |||
| 116 | static void __init omap3_sbc_t3730_legacy_init(void) | ||
| 117 | { | ||
| 118 | legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 136); | ||
| 119 | omap_ads7846_init(1, 57, 0, NULL); | ||
| 120 | } | ||
| 121 | |||
| 95 | static void __init omap3_igep0020_legacy_init(void) | 122 | static void __init omap3_igep0020_legacy_init(void) |
| 96 | { | 123 | { |
| 97 | omap3_igep2_display_init_of(); | 124 | omap3_igep2_display_init_of(); |
| @@ -200,6 +227,9 @@ static struct pdata_init auxdata_quirks[] __initdata = { | |||
| 200 | { "nokia,n810", omap2420_n8x0_legacy_init, }, | 227 | { "nokia,n810", omap2420_n8x0_legacy_init, }, |
| 201 | { "nokia,n810-wimax", omap2420_n8x0_legacy_init, }, | 228 | { "nokia,n810-wimax", omap2420_n8x0_legacy_init, }, |
| 202 | #endif | 229 | #endif |
| 230 | #ifdef CONFIG_ARCH_OMAP3 | ||
| 231 | { "compulab,omap3-sbc-t3730", omap3_sbc_t3730_twl_init, }, | ||
| 232 | #endif | ||
| 203 | { /* sentinel */ }, | 233 | { /* sentinel */ }, |
| 204 | }; | 234 | }; |
| 205 | 235 | ||
| @@ -228,6 +258,7 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = { | |||
| 228 | */ | 258 | */ |
| 229 | static struct pdata_init pdata_quirks[] __initdata = { | 259 | static struct pdata_init pdata_quirks[] __initdata = { |
| 230 | #ifdef CONFIG_ARCH_OMAP3 | 260 | #ifdef CONFIG_ARCH_OMAP3 |
| 261 | { "compulab,omap3-sbc-t3730", omap3_sbc_t3730_legacy_init, }, | ||
| 231 | { "nokia,omap3-n900", hsmmc2_internal_input_clk, }, | 262 | { "nokia,omap3-n900", hsmmc2_internal_input_clk, }, |
| 232 | { "nokia,omap3-n9", hsmmc2_internal_input_clk, }, | 263 | { "nokia,omap3-n9", hsmmc2_internal_input_clk, }, |
| 233 | { "nokia,omap3-n950", hsmmc2_internal_input_clk, }, | 264 | { "nokia,omap3-n950", hsmmc2_internal_input_clk, }, |
