TrimSlice backports for linux-tegra-2.6.36
Subsystems (3)
Hi Colin,
Please consider pulling TrimSlice patches backported to linux-tegra-2.6.36.
The first patch in the series allows ioremapping of PCI space when CONFIG_PCI=y.
The rest is the TrimSlice patches merged into the mainline, some of them were squashed into single commit to reduce the noise.
The following changes since commit d3c9f78e7ec505076ddad2aefaeef5e8c20a4823:
serial: tegra_hsuart: Make sure current byte rx complete in suspend (2011-03-22 11:40:08 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux-tegra.git trimslice/linux-tegra-2.6.36
Mike Rapoport (6):
ARM: tegra: allow ioremap for PCI space
ARM: update mach-types
tegra: add PCI Express clocks
tegra: add PCI Express support
ARM: tegra: add TrimSlice machine
ARM: tegra: trimslice: enable MMC/SD slots
arch/arm/mach-tegra/Kconfig | 10 + arch/arm/mach-tegra/Makefile | 4 + arch/arm/mach-tegra/board-trimslice-pinmux.c | 150 ++++ arch/arm/mach-tegra/board-trimslice.c | 131 ++++ arch/arm/mach-tegra/board-trimslice.h | 25 + arch/arm/mach-tegra/board.h | 1 + arch/arm/mach-tegra/include/mach/hardware.h | 4 + arch/arm/mach-tegra/include/mach/io.h | 10 + arch/arm/mach-tegra/io.c | 17 +- arch/arm/mach-tegra/pcie.c | 933 ++++++++++++++++++++++++++ arch/arm/mach-tegra/tegra2_clocks.c | 49 ++ arch/arm/tools/mach-types | 284 ++++++++- 12 files changed, 1610 insertions(+), 8 deletions(-) create mode 100644 arch/arm/mach-tegra/board-trimslice-pinmux.c create mode 100644 arch/arm/mach-tegra/board-trimslice.c create mode 100644 arch/arm/mach-tegra/board-trimslice.h create mode 100644 arch/arm/mach-tegra/pcie.c
Signature · 1 line
1.7.3.1
A message that is not in the archive (sent off-list or not yet received): cover.1301385131.git.mike-UTxiZqZC01RS1MOuV/[email protected]
[GIT PULL 1/6] ARM: tegra: allow ioremap for PCI space
--- arch/arm/mach-tegra/io.c | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-)
arch/arm/mach-tegra/io.c +15 -2
@@ -80,6 +80,19 @@ void __init tegra_map_common_io(void)iotable_init (tegra_io_desc,ARRAY_SIZE (tegra_io_desc)); } +static bool is_ioremap_safe (unsigned long p) +{ +if (p <SZ_1G ) +return true; + +#ifdef CONFIG_PCI +if (p >=0x80000000 && p <0xc0000000 ) +return true; +#endif + +return false; +} +/* * Intercept ioremap() requests for addresses in our fixed mapping regions. */
@@ -89,9 +102,9 @@ void __iomem *tegra_ioremap(unsigned long p, size_t size, unsigned int type)/* * __arm_ioremap fails to set the domain of ioremapped memory -* correctly, only use it on physical memory. +* correctly, only use it on physical memory or PCI space. */ -if (v ==NULL && p <SZ_1G ) +if (v ==NULL &&is_ioremap_safe (p)) v =__arm_ioremap (p, size, type);/*
Signature · 1 line
1.7.3.1
[GIT PULL 2/6] ARM: update mach-types
In reply to a message not in the archive--- arch/arm/tools/mach-types | 284 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 278 insertions(+), 6 deletions(-)
arch/arm/tools/mach-types +278 -6
@@ -12,7 +12,7 @@ # # http://www.arm.linux.org.uk/developer/machines/?action=new # -# Last update: Thu Sep 9 22:43:01 2010 +# Last update: Mon Feb 7 08:59:27 2011 # # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number #
@@ -2240,7 +2240,7 @@ arm_ultimator2 MACH_ARM_ULTIMATOR2 ARM_ULTIMATOR2 2250 vs_v210 MACH_VS_V210 VS_V210 2252 vs_v212 MACH_VS_V212 VS_V212 2253 hmt MACH_HMT HMT 2254 -suen3 MACH_SUEN3 SUEN3 2255 +km_kirkwood MACH_KM_KIRKWOOD KM_KIRKWOOD 2255 vesper MACH_VESPER VESPER 2256 str9 MACH_STR9 STR9 2257 omap3_wl_ff MACH_OMAP3_WL_FF OMAP3_WL_FF 2258
@@ -2321,7 +2321,7 @@ mx31txtr MACH_MX31TXTR MX31TXTR 2332 u380 MACH_U380 U380 2333 oamp3_hualu MACH_HUALU_BOARD HUALU_BOARD 2334 npcmx50 MACH_NPCMX50 NPCMX50 2335 -mx51_lange51 MACH_MX51_LANGE51 MX51_LANGE51 2336 +mx51_efikamx MACH_MX51_EFIKAMX MX51_EFIKAMX 2336 mx51_lange52 MACH_MX51_LANGE52 MX51_LANGE52 2337 riom MACH_RIOM RIOM 2338 comcas MACH_COMCAS COMCAS 2339
@@ -2355,7 +2355,7 @@ at91sam9263cs MACH_AT91SAM9263CS AT91SAM9263CS 2366 csb732 MACH_CSB732 CSB732 2367 u8500 MACH_U8500 U8500 2368 huqiu MACH_HUQIU HUQIU 2369 -mx51_kunlun MACH_MX51_KUNLUN MX51_KUNLUN 2370 +mx51_efikasb MACH_MX51_EFIKASB MX51_EFIKASB 2370 pmt1g MACH_PMT1G PMT1G 2371 htcelf MACH_HTCELF HTCELF 2372 armadillo420 MACH_ARMADILLO420 ARMADILLO420 2373
@@ -2971,7 +2971,7 @@ premierwave_en MACH_PREMIERWAVE_EN PREMIERWAVE_EN 2985 wasabi MACH_WASABI WASABI 2986 vivow MACH_VIVOW VIVOW 2987 mx50_rdp MACH_MX50_RDP MX50_RDP 2988 -universal MACH_UNIVERSAL UNIVERSAL 2989 +universal_c210 MACH_UNIVERSAL_C210 UNIVERSAL_C210 2989 real6410 MACH_REAL6410 REAL6410 2990 spx_sakura MACH_SPX_SAKURA SPX_SAKURA 2991 ij3k_2440 MACH_IJ3K_2440 IJ3K_2440 2992
@@ -2987,7 +2987,7 @@ pxwnas_500_1000 MACH_PXWNAS_500_1000 PXWNAS_500_1000 3001 ea20 MACH_EA20 EA20 3002 awm2 MACH_AWM2 AWM2 3003 ti8148evm MACH_TI8148EVM TI8148EVM 3004 -tegra_seaboard MACH_TEGRA_SEABOARD TEGRA_SEABOARD 3005 +seaboard MACH_SEABOARD SEABOARD 3005 linkstation_chlv2 MACH_LINKSTATION_CHLV2 LINKSTATION_CHLV2 3006 tera_pro2_rack MACH_TERA_PRO2_RACK TERA_PRO2_RACK 3007 rubys MACH_RUBYS RUBYS 3008
@@ -3044,3 +3044,275 @@ harvest_desoto MACH_HARVEST_DESOTO HARVEST_DESOTO 3059 msm8x60_qrdc MACH_MSM8X60_QRDC MSM8X60_QRDC 3060 spear900 MACH_SPEAR900 SPEAR900 3061 pcontrol_g20 MACH_PCONTROL_G20 PCONTROL_G20 3062 +rdstor MACH_RDSTOR RDSTOR 3063 +usdloader MACH_USDLOADER USDLOADER 3064 +tsoploader MACH_TSOPLOADER TSOPLOADER 3065 +kronos MACH_KRONOS KRONOS 3066 +ffcore MACH_FFCORE FFCORE 3067 +mone MACH_MONE MONE 3068 +unit2s MACH_UNIT2S UNIT2S 3069 +acer_a5 MACH_ACER_A5 ACER_A5 3070 +etherpro_isp MACH_ETHERPRO_ISP ETHERPRO_ISP 3071 +stretchs7000 MACH_STRETCHS7000 STRETCHS7000 3072 +p87_smartsim MACH_P87_SMARTSIM P87_SMARTSIM 3073 +tulip MACH_TULIP TULIP 3074 +sunflower MACH_SUNFLOWER SUNFLOWER 3075 +rib MACH_RIB RIB 3076 +clod MACH_CLOD CLOD 3077 +rump MACH_RUMP RUMP 3078 +tenderloin MACH_TENDERLOIN TENDERLOIN 3079 +shortloin MACH_SHORTLOIN SHORTLOIN 3080 +crespo MACH_CRESPO CRESPO 3081 +antares MACH_ANTARES ANTARES 3082 +wb40n MACH_WB40N WB40N 3083 +herring MACH_HERRING HERRING 3084 +naxy400 MACH_NAXY400 NAXY400 3085 +naxy1200 MACH_NAXY1200 NAXY1200 3086 +vpr200 MACH_VPR200 VPR200 3087 +bug20 MACH_BUG20 BUG20 3088 +goflexnet MACH_GOFLEXNET GOFLEXNET 3089 +torbreck MACH_TORBRECK TORBRECK 3090 +saarb_mg1 MACH_SAARB_MG1 SAARB_MG1 3091 +callisto MACH_CALLISTO CALLISTO 3092 +multhsu MACH_MULTHSU MULTHSU 3093 +saluda MACH_SALUDA SALUDA 3094 +pemp_omap3_apollo MACH_PEMP_OMAP3_APOLLO PEMP_OMAP3_APOLLO 3095 +vc0718 MACH_VC0718 VC0718 3096 +mvblx MACH_MVBLX MVBLX 3097 +inhand_apeiron MACH_INHAND_APEIRON INHAND_APEIRON 3098 +inhand_fury MACH_INHAND_FURY INHAND_FURY 3099 +inhand_siren MACH_INHAND_SIREN INHAND_SIREN 3100 +hdnvp MACH_HDNVP HDNVP 3101 +softwinner MACH_SOFTWINNER SOFTWINNER 3102 +prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103 +nas6210 MACH_NAS6210 NAS6210 3104 +unisdev MACH_UNISDEV UNISDEV 3105 +sbca11 MACH_SBCA11 SBCA11 3106 +saga MACH_SAGA SAGA 3107 +ns_k330 MACH_NS_K330 NS_K330 3108 +tanna MACH_TANNA TANNA 3109 +imate8502 MACH_IMATE8502 IMATE8502 3110 +aspen MACH_ASPEN ASPEN 3111 +daintree_cwac MACH_DAINTREE_CWAC DAINTREE_CWAC 3112 +zmx25 MACH_ZMX25 ZMX25 3113 +maple1 MACH_MAPLE1 MAPLE1 3114 +qsd8x72_surf MACH_QSD8X72_SURF QSD8X72_SURF 3115 +qsd8x72_ffa MACH_QSD8X72_FFA QSD8X72_FFA 3116 +abilene MACH_ABILENE ABILENE 3117 +eigen_ttr MACH_EIGEN_TTR EIGEN_TTR 3118 +iomega_ix2_200 MACH_IOMEGA_IX2_200 IOMEGA_IX2_200 3119 +coretec_vcx7400 MACH_CORETEC_VCX7400 CORETEC_VCX7400 3120 +santiago MACH_SANTIAGO SANTIAGO 3121 +mx257sol MACH_MX257SOL MX257SOL 3122 +strasbourg MACH_STRASBOURG STRASBOURG 3123 +msm8x60_fluid MACH_MSM8X60_FLUID MSM8X60_FLUID 3124 +smartqv5 MACH_SMARTQV5 SMARTQV5 3125 +smartqv3 MACH_SMARTQV3 SMARTQV3 3126 +smartqv7 MACH_SMARTQV7 SMARTQV7 3127 +paz00 MACH_PAZ00 PAZ00 3128 +acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129 +htcwillow MACH_HTCWILLOW HTCWILLOW 3130 +fwbd_0404 MACH_FWBD_0404 FWBD_0404 3131 +hdgu MACH_HDGU HDGU 3132 +pyramid MACH_PYRAMID PYRAMID 3133 +epiphan MACH_EPIPHAN EPIPHAN 3134 +omap_bender MACH_OMAP_BENDER OMAP_BENDER 3135 +gurnard MACH_GURNARD GURNARD 3136 +gtl_it5100 MACH_GTL_IT5100 GTL_IT5100 3137 +bcm2708 MACH_BCM2708 BCM2708 3138 +mx51_ggc MACH_MX51_GGC MX51_GGC 3139 +sharespace MACH_SHARESPACE SHARESPACE 3140 +haba_knx_explorer MACH_HABA_KNX_EXPLORER HABA_KNX_EXPLORER 3141 +simtec_kirkmod MACH_SIMTEC_KIRKMOD SIMTEC_KIRKMOD 3142 +crux MACH_CRUX CRUX 3143 +mx51_bravo MACH_MX51_BRAVO MX51_BRAVO 3144 +charon MACH_CHARON CHARON 3145 +picocom3 MACH_PICOCOM3 PICOCOM3 3146 +picocom4 MACH_PICOCOM4 PICOCOM4 3147 +serrano MACH_SERRANO SERRANO 3148 +doubleshot MACH_DOUBLESHOT DOUBLESHOT 3149 +evsy MACH_EVSY EVSY 3150 +huashan MACH_HUASHAN HUASHAN 3151 +lausanne MACH_LAUSANNE LAUSANNE 3152 +emerald MACH_EMERALD EMERALD 3153 +tqma35 MACH_TQMA35 TQMA35 3154 +marvel MACH_MARVEL MARVEL 3155 +manuae MACH_MANUAE MANUAE 3156 +chacha MACH_CHACHA CHACHA 3157 +lemon MACH_LEMON LEMON 3158 +csc MACH_CSC CSC 3159 +gira_knxip_router MACH_GIRA_KNXIP_ROUTER GIRA_KNXIP_ROUTER 3160 +t20 MACH_T20 T20 3161 +hdmini MACH_HDMINI HDMINI 3162 +sciphone_g2 MACH_SCIPHONE_G2 SCIPHONE_G2 3163 +express MACH_EXPRESS EXPRESS 3164 +express_kt MACH_EXPRESS_KT EXPRESS_KT 3165 +maximasp MACH_MAXIMASP MAXIMASP 3166 +nitrogen_imx51 MACH_NITROGEN_IMX51 NITROGEN_IMX51 3167 +nitrogen_imx53 MACH_NITROGEN_IMX53 NITROGEN_IMX53 3168 +sunfire MACH_SUNFIRE SUNFIRE 3169 +arowana MACH_AROWANA AROWANA 3170 +tegra_daytona MACH_TEGRA_DAYTONA TEGRA_DAYTONA 3171 +tegra_swordfish MACH_TEGRA_SWORDFISH TEGRA_SWORDFISH 3172 +edison MACH_EDISON EDISON 3173 +svp8500v1 MACH_SVP8500V1 SVP8500V1 3174 +svp8500v2 MACH_SVP8500V2 SVP8500V2 3175 +svp5500 MACH_SVP5500 SVP5500 3176 +b5500 MACH_B5500 B5500 3177 +s5500 MACH_S5500 S5500 3178 +icon MACH_ICON ICON 3179 +elephant MACH_ELEPHANT ELEPHANT 3180 +msm8x60_fusion MACH_MSM8X60_FUSION MSM8X60_FUSION 3181 +shooter MACH_SHOOTER SHOOTER 3182 +spade_lte MACH_SPADE_LTE SPADE_LTE 3183 +philhwani MACH_PHILHWANI PHILHWANI 3184 +gsncomm MACH_GSNCOMM GSNCOMM 3185 +strasbourg_a2 MACH_STRASBOURG_A2 STRASBOURG_A2 3186 +mmm MACH_MMM MMM 3187 +davinci_dm365_bv MACH_DAVINCI_DM365_BV DAVINCI_DM365_BV 3188 +ag5evm MACH_AG5EVM AG5EVM 3189 +sc575plc MACH_SC575PLC SC575PLC 3190 +sc575hmi MACH_SC575IPC SC575IPC 3191 +omap3_tdm3730 MACH_OMAP3_TDM3730 OMAP3_TDM3730 3192 +g7 MACH_G7 G7 3193 +top9000_eval MACH_TOP9000_EVAL TOP9000_EVAL 3194 +top9000_su MACH_TOP9000_SU TOP9000_SU 3195 +utm300 MACH_UTM300 UTM300 3196 +tsunagi MACH_TSUNAGI TSUNAGI 3197 +ts75xx MACH_TS75XX TS75XX 3198 +msm8x60_fusn_ffa MACH_MSM8X60_FUSN_FFA MSM8X60_FUSN_FFA 3199 +ts47xx MACH_TS47XX TS47XX 3200 +da850_k5 MACH_DA850_K5 DA850_K5 3201 +ax502 MACH_AX502 AX502 3202 +igep0032 MACH_IGEP0032 IGEP0032 3203 +antero MACH_ANTERO ANTERO 3204 +synergy MACH_SYNERGY SYNERGY 3205 +ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206 +wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207 +punica MACH_PUNICA PUNICA 3208 +trimslice MACH_TRIMSLICE TRIMSLICE 3209 +mx27_wmultra MACH_MX27_WMULTRA MX27_WMULTRA 3210 +mackerel MACH_MACKEREL MACKEREL 3211 +fa9x27 MACH_FA9X27 FA9X27 3213 +ns2816tb MACH_NS2816TB NS2816TB 3214 +ns2816_ntpad MACH_NS2816_NTPAD NS2816_NTPAD 3215 +ns2816_ntnb MACH_NS2816_NTNB NS2816_NTNB 3216 +kaen MACH_KAEN KAEN 3217 +nv1000 MACH_NV1000 NV1000 3218 +nuc950ts MACH_NUC950TS NUC950TS 3219 +nokia_rm680 MACH_NOKIA_RM680 NOKIA_RM680 3220 +ast2200 MACH_AST2200 AST2200 3221 +lead MACH_LEAD LEAD 3222 +unino1 MACH_UNINO1 UNINO1 3223 +greeco MACH_GREECO GREECO 3224 +verdi MACH_VERDI VERDI 3225 +dm6446_adbox MACH_DM6446_ADBOX DM6446_ADBOX 3226 +quad_salsa MACH_QUAD_SALSA QUAD_SALSA 3227 +abb_gma_1_1 MACH_ABB_GMA_1_1 ABB_GMA_1_1 3228 +svcid MACH_SVCID SVCID 3229 +msm8960_sim MACH_MSM8960_SIM MSM8960_SIM 3230 +msm8960_rumi3 MACH_MSM8960_RUMI3 MSM8960_RUMI3 3231 +icon_g MACH_ICON_G ICON_G 3232 +mb3 MACH_MB3 MB3 3233 +gsia18s MACH_GSIA18S GSIA18S 3234 +pivicc MACH_PIVICC PIVICC 3235 +pcm048 MACH_PCM048 PCM048 3236 +dds MACH_DDS DDS 3237 +chalten_xa1 MACH_CHALTEN_XA1 CHALTEN_XA1 3238 +ts48xx MACH_TS48XX TS48XX 3239 +tonga2_tfttimer MACH_TONGA2_TFTTIMER TONGA2_TFTTIMER 3240 +whistler MACH_WHISTLER WHISTLER 3241 +asl_phoenix MACH_ASL_PHOENIX ASL_PHOENIX 3242 +at91sam9263otlite MACH_AT91SAM9263OTLITE AT91SAM9263OTLITE 3243 +ddplug MACH_DDPLUG DDPLUG 3244 +d2plug MACH_D2PLUG D2PLUG 3245 +kzm9d MACH_KZM9D KZM9D 3246 +verdi_lte MACH_VERDI_LTE VERDI_LTE 3247 +nanozoom MACH_NANOZOOM NANOZOOM 3248 +dm3730_som_lv MACH_DM3730_SOM_LV DM3730_SOM_LV 3249 +dm3730_torpedo MACH_DM3730_TORPEDO DM3730_TORPEDO 3250 +anchovy MACH_ANCHOVY ANCHOVY 3251 +re2rev20 MACH_RE2REV20 RE2REV20 3253 +re2rev21 MACH_RE2REV21 RE2REV21 3254 +cns21xx MACH_CNS21XX CNS21XX 3255 +rider MACH_RIDER RIDER 3257 +nsk330 MACH_NSK330 NSK330 3258 +cns2133evb MACH_CNS2133EVB CNS2133EVB 3259 +z3_816x_mod MACH_Z3_816X_MOD Z3_816X_MOD 3260 +z3_814x_mod MACH_Z3_814X_MOD Z3_814X_MOD 3261 +beect MACH_BEECT BEECT 3262 +dma_thunderbug MACH_DMA_THUNDERBUG DMA_THUNDERBUG 3263 +omn_at91sam9g20 MACH_OMN_AT91SAM9G20 OMN_AT91SAM9G20 3264 +mx25_e2s_uc MACH_MX25_E2S_UC MX25_E2S_UC 3265 +mione MACH_MIONE MIONE 3266 +top9000_tcu MACH_TOP9000_TCU TOP9000_TCU 3267 +top9000_bsl MACH_TOP9000_BSL TOP9000_BSL 3268 +kingdom MACH_KINGDOM KINGDOM 3269 +armadillo460 MACH_ARMADILLO460 ARMADILLO460 3270 +lq2 MACH_LQ2 LQ2 3271 +sweda_tms2 MACH_SWEDA_TMS2 SWEDA_TMS2 3272 +mx53_loco MACH_MX53_LOCO MX53_LOCO 3273 +acer_a8 MACH_ACER_A8 ACER_A8 3275 +acer_gauguin MACH_ACER_GAUGUIN ACER_GAUGUIN 3276 +guppy MACH_GUPPY GUPPY 3277 +mx61_ard MACH_MX61_ARD MX61_ARD 3278 +tx53 MACH_TX53 TX53 3279 +omapl138_case_a3 MACH_OMAPL138_CASE_A3 OMAPL138_CASE_A3 3280 +uemd MACH_UEMD UEMD 3281 +ccwmx51mut MACH_CCWMX51MUT CCWMX51MUT 3282 +rockhopper MACH_ROCKHOPPER ROCKHOPPER 3283 +nookcolor MACH_NOOKCOLOR NOOKCOLOR 3284 +hkdkc100 MACH_HKDKC100 HKDKC100 3285 +ts42xx MACH_TS42XX TS42XX 3286 +aebl MACH_AEBL AEBL 3287 +wario MACH_WARIO WARIO 3288 +gfs_spm MACH_GFS_SPM GFS_SPM 3289 +cm_t3730 MACH_CM_T3730 CM_T3730 3290 +isc3 MACH_ISC3 ISC3 3291 +rascal MACH_RASCAL RASCAL 3292 +hrefv60 MACH_HREFV60 HREFV60 3293 +tpt_2_0 MACH_TPT_2_0 TPT_2_0 3294 +pyramid_td MACH_PYRAMID_TD PYRAMID_TD 3295 +splendor MACH_SPLENDOR SPLENDOR 3296 +guf_planet MACH_GUF_PLANET GUF_PLANET 3297 +msm8x60_qt MACH_MSM8X60_QT MSM8X60_QT 3298 +htc_hd_mini MACH_HTC_HD_MINI HTC_HD_MINI 3299 +athene MACH_ATHENE ATHENE 3300 +deep_r_ek_1 MACH_DEEP_R_EK_1 DEEP_R_EK_1 3301 +vivow_ct MACH_VIVOW_CT VIVOW_CT 3302 +nery_1000 MACH_NERY_1000 NERY_1000 3303 +rfl109145_ssrv MACH_RFL109145_SSRV RFL109145_SSRV 3304 +nmh MACH_NMH NMH 3305 +wn802t MACH_WN802T WN802T 3306 +dragonet MACH_DRAGONET DRAGONET 3307 +geneva_b MACH_GENEVA_B GENEVA_B 3308 +at91sam9263desk16l MACH_AT91SAM9263DESK16L AT91SAM9263DESK16L 3309 +bcmhana_sv MACH_BCMHANA_SV BCMHANA_SV 3310 +bcmhana_tablet MACH_BCMHANA_TABLET BCMHANA_TABLET 3311 +koi MACH_KOI KOI 3312 +ts4800 MACH_TS4800 TS4800 3313 +tqma9263 MACH_TQMA9263 TQMA9263 3314 +holiday MACH_HOLIDAY HOLIDAY 3315 +dma_6410 MACH_DMA6410 DMA6410 3316 +pcats_overlay MACH_PCATS_OVERLAY PCATS_OVERLAY 3317 +hwgw6410 MACH_HWGW6410 HWGW6410 3318 +shenzhou MACH_SHENZHOU SHENZHOU 3319 +cwme9210 MACH_CWME9210 CWME9210 3320 +cwme9210js MACH_CWME9210JS CWME9210JS 3321 +pgs_v1 MACH_PGS_SITARA PGS_SITARA 3322 +colibri_tegra2 MACH_COLIBRI_TEGRA2 COLIBRI_TEGRA2 3323 +w21 MACH_W21 W21 3324 +polysat1 MACH_POLYSAT1 POLYSAT1 3325 +dataway MACH_DATAWAY DATAWAY 3326 +cobral138 MACH_COBRAL138 COBRAL138 3327 +roverpcs8 MACH_ROVERPCS8 ROVERPCS8 3328 +marvelc MACH_MARVELC MARVELC 3329 +navefihid MACH_NAVEFIHID NAVEFIHID 3330 +dm365_cv100 MACH_DM365_CV100 DM365_CV100 3331 +able MACH_ABLE ABLE 3332 +legacy MACH_LEGACY LEGACY 3333 +icong MACH_ICONG ICONG 3334 +rover_g8 MACH_ROVER_G8 ROVER_G8 3335 +t5388p MACH_T5388P T5388P 3336 +dingo MACH_DINGO DINGO 3337 +goflexhome MACH_GOFLEXHOME GOFLEXHOME 3338
Signature · 1 line
1.7.3.1
[GIT PULL 3/6] tegra: add PCI Express clocks
In reply to a message not in the archive--- arch/arm/mach-tegra/tegra2_clocks.c | 49 +++++++++++++++++++++++++++++++++++ 1 files changed, 49 insertions(+), 0 deletions(-)
arch/arm/mach-tegra/tegra2_clocks.c +49 -0
@@ -112,6 +112,7 @@#define PLLD_MISC_CLKENABLE (1<<30)#define PLLD_MISC_DIV_RST (1<<23)#define PLLD_MISC_DCCON_SHIFT 12 +#define PLLE_MISC_READY (1 << 15)#define PERIPH_CLK_TO_ENB_REG (c) ((c->u.periph.clk_num / 32) * 4)#define PERIPH_CLK_TO_ENB_SET_REG (c) ((c->u.periph.clk_num / 32) * 8)
@@ -710,6 +711,31 @@ static struct clk_ops tegra_pllx_ops = { .set_rate = tegra2_pll_clk_set_rate, }; +static int tegra2_plle_clk_enable (struct clk *c) +{ +u32 val; + +pr_debug ("%s on clock %s\n" , __func__, c->name); + +mdelay (1 ); + + val =clk_readl (c->reg +PLL_BASE ); +if (!(val &PLLE_MISC_READY )) +return -EBUSY ; + + val =clk_readl (c->reg +PLL_BASE ); + val |=PLL_BASE_ENABLE |PLL_BASE_BYPASS ; +clk_writel (val, c->reg +PLL_BASE ); + +return 0 ; +} + +static struct clk_ops tegra_plle_ops = { + .init = tegra2_pll_clk_init, + .enable = tegra2_plle_clk_enable, + .set_rate = tegra2_pll_clk_set_rate, +}; +/* Clock divider ops */ static void tegra2_pll_div_clk_init (struct clk *c) {
@@ -1642,6 +1668,25 @@ static struct clk tegra_pll_x = { }, }; +static struct clk_pll_freq_table tegra_pll_e_table[] = { + {12000000 ,100000000 ,200 ,24 ,1 ,0 }, + {0 ,0 ,0 ,0 ,0 ,0 }, +}; + +static struct clk tegra_pll_e = { + .name ="pll_e" , + .flags =PLL_ALT_MISC_REG , + .ops = &tegra_plle_ops, + .max_rate =100000000 , + .parent = &tegra_clk_m, + .reg =0xe8 , + .u.pll = { + .freq_table = tegra_pll_e_table, + .input_min =12000000 , + .input_max =12000000 , + }, +}; +static struct clk tegra_clk_d = { .name ="clk_d" , .flags =PERIPH_NO_RESET ,
@@ -2018,6 +2063,9 @@ struct clk tegra_list_clks[] = {PERIPH_CLK ("csi" ,"tegra_camera" ,"csi" ,52 ,0 ,72000000 , mux_pllp_out3,0 ),PERIPH_CLK ("isp" ,"tegra_camera" ,"isp" ,23 ,0 ,150000000 , mux_clk_m,0 ),/* same frequency as VI */ PERIPH_CLK ("csus" ,"tegra_camera" ,"csus" ,92 ,0 ,150000000 , mux_clk_m,PERIPH_NO_RESET ), +PERIPH_CLK ("pex" ,NULL ,"pex" ,70 ,0 ,26000000 , mux_clk_m,PERIPH_MANUAL_RESET ), +PERIPH_CLK ("afi" ,NULL ,"afi" ,72 ,0 ,26000000 , mux_clk_m,PERIPH_MANUAL_RESET ), +PERIPH_CLK ("pcie_xclk" ,NULL ,"pcie_xclk" ,74 ,0 ,26000000 , mux_clk_m,PERIPH_MANUAL_RESET ),SHARED_CLK ("avp.sclk" ,"tegra-avp" ,"sclk" , &tegra_clk_sclk), SHARED_CLK("avp.emc", "tegra-avp", "emc", &tegra_clk_emc),
@@ -2106,6 +2154,7 @@ struct clk *tegra_ptr_clks[] = { &tegra_clk_blink, &tegra_clk_cop, &tegra_clk_emc, + &tegra_pll_e, };static void tegra2_init_one_clock (struct clk *c)
Signature · 1 line
1.7.3.1
[GIT PULL 5/6] ARM: tegra: add TrimSlice machine
In reply to a message not in the archive--- arch/arm/mach-tegra/Kconfig | 6 + arch/arm/mach-tegra/Makefile | 3 + arch/arm/mach-tegra/board-trimslice-pinmux.c | 145 ++++++++++++++++++++++++++ arch/arm/mach-tegra/board-trimslice.c | 112 ++++++++++++++++++++ arch/arm/mach-tegra/board-trimslice.h | 22 ++++ 5 files changed, 288 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-tegra/board-trimslice-pinmux.c create mode 100644 arch/arm/mach-tegra/board-trimslice.c create mode 100644 arch/arm/mach-tegra/board-trimslice.h
arch/arm/mach-tegra/Kconfig +6 -0
@@ -36,6 +36,12 @@ config MACH_VENTANA help Support for NVIDIA Ventana development platform +config MACH_TRIMSLICE + bool "TrimSlice board" + select TEGRA_PCI + help + Support for CompuLab TrimSlice platform + choice prompt "Low-level debug console UART" default TEGRA_DEBUG_UART_NONE
arch/arm/mach-tegra/Makefile +3 -0
@@ -51,3 +51,6 @@ obj-${CONFIG_MACH_VENTANA} += board-ventana-pinmux.o obj-${CONFIG_MACH_VENTANA} += board-ventana-sdhci.o obj-${CONFIG_MACH_VENTANA} += board-ventana-power.o obj-${CONFIG_MACH_VENTANA} += board-ventana-panel.o + +obj-${CONFIG_MACH_TRIMSLICE} += board-trimslice.o +obj-${CONFIG_MACH_TRIMSLICE} += board-trimslice-pinmux.o
arch/arm/mach-tegra/board-trimslice-pinmux.c new file +145 -0
145 lines not on this page · raw message
arch/arm/mach-tegra/board-trimslice.c new file +112 -0
112 lines not on this page · raw message
arch/arm/mach-tegra/board-trimslice.h new file +22 -0
@@ -0,0 +1,22 @@ +/* +* arch/arm/mach-tegra/board-trimslice.h +* +* Copyright (C) 2011 CompuLab, Ltd. +* +* This software is licensed under the terms of the GNU General Public +* License version 2, as published by the Free Software Foundation, and +* may be copied, distributed, and modified under those terms. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +*/ + +#ifndef _MACH_TEGRA_BOARD_TRIMSLICE_H +#define _MACH_TEGRA_BOARD_TRIMSLICE_H + +void trimslice_pinmux_init (void ); + +#endif
Signature · 1 line
1.7.3.1
[GIT PULL 6/6] ARM: tegra: trimslice: enable MMC/SD slots
In reply to a message not in the archiveTrimSlice has MicroSD and standard MMC/SD slots. Register sdhci devices and enable GPIOs for MMC/SD slot.
--- arch/arm/mach-tegra/board-trimslice-pinmux.c | 5 +++++ arch/arm/mach-tegra/board-trimslice.c | 19 +++++++++++++++++++ arch/arm/mach-tegra/board-trimslice.h | 3 +++ 3 files changed, 27 insertions(+), 0 deletions(-)
arch/arm/mach-tegra/board-trimslice-pinmux.c +5 -0
@@ -16,8 +16,11 @@#include <linux/kernel.h> #include <linux/init.h> +#include <mach/pinmux.h> +#include <mach/gpio.h> +#include "gpio-names.h" #include "board-trimslice.h" static __initdata struct tegra_pingroup_config trimslice_pinmux[] = {
@@ -142,4 +145,6 @@ static __initdata struct tegra_pingroup_config trimslice_pinmux[] = {void __init trimslice_pinmux_init (void ) {tegra_pinmux_config_table (trimslice_pinmux,ARRAY_SIZE (trimslice_pinmux)); +tegra_gpio_enable (TRIMSLICE_GPIO_SD4_CD ); +tegra_gpio_enable (TRIMSLICE_GPIO_SD4_WP ); }
arch/arm/mach-tegra/board-trimslice.c +19 -0
@@ -29,9 +29,12 @@#include <asm/setup.h> #include <mach/iomap.h> +#include <mach/sdhci.h> #include "board.h" #include "clock.h" +#include "devices.h" +#include "gpio-names.h" #include "board-trimslice.h"
@@ -56,9 +59,22 @@ static struct platform_device debug_uart = { .platform_data = debug_uart_platform_data, }, }; +static struct tegra_sdhci_platform_data sdhci_pdata1 = { + .cd_gpio =-1 , + .wp_gpio =-1 , + .power_gpio =-1 , +}; + +static struct tegra_sdhci_platform_data sdhci_pdata4 = { + .cd_gpio =TRIMSLICE_GPIO_SD4_CD , + .wp_gpio =TRIMSLICE_GPIO_SD4_WP , + .power_gpio =-1 , +};static struct platform_device *trimslice_devices[]__initdata = { &debug_uart, + &tegra_sdhci_device1, + &tegra_sdhci_device4, }; static void __init tegra_trimslice_fixup(struct machine_desc *desc,
@@ -97,6 +113,9 @@ static void __init tegra_trimslice_init(void)trimslice_pinmux_init (); + tegra_sdhci_device1.dev.platform_data = &sdhci_pdata1; + tegra_sdhci_device4.dev.platform_data = &sdhci_pdata4; +platform_add_devices (trimslice_devices,ARRAY_SIZE (trimslice_devices)); }
arch/arm/mach-tegra/board-trimslice.h +3 -0
@@ -17,6 +17,9 @@#ifndef _MACH_TEGRA_BOARD_TRIMSLICE_H#define _MACH_TEGRA_BOARD_TRIMSLICE_H +#define TRIMSLICE_GPIO_SD4_CD TEGRA_GPIO_PP1/* mmc4 cd */ +#define TRIMSLICE_GPIO_SD4_WP TEGRA_GPIO_PP2/* mmc4 wp */ +void trimslice_pinmux_init (void );#endif
Signature · 1 line
1.7.3.1
[GIT PULL 4/6] tegra: add PCI Express support
In reply to a message not in the archive--- arch/arm/mach-tegra/Kconfig | 4 + arch/arm/mach-tegra/Makefile | 1 + arch/arm/mach-tegra/board.h | 1 + arch/arm/mach-tegra/include/mach/hardware.h | 4 + arch/arm/mach-tegra/include/mach/io.h | 10 + arch/arm/mach-tegra/pcie.c | 933 +++++++++++++++++++++++++++ 6 files changed, 953 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-tegra/pcie.c
arch/arm/mach-tegra/Kconfig +4 -0
@@ -20,6 +20,10 @@ config ARCH_TEGRA_2x_SOC endchoice +config TEGRA_PCI + bool "PCI Express support" + select PCI + comment "Tegra board type" config MACH_HARMONY
arch/arm/mach-tegra/Makefile +1 -0
@@ -39,6 +39,7 @@ obj-$(CONFIG_CPU_FREQ) += cpu-tegra.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o obj-$(CONFIG_TEGRA_IOVMM) += iovmm.o obj-$(CONFIG_TEGRA_IOVMM_GART) += iovmm-gart.o +obj-$(CONFIG_TEGRA_PCI) += pcie.o obj-${CONFIG_MACH_HARMONY} += board-harmony.o obj-${CONFIG_MACH_HARMONY} += board-harmony-pinmux.o
arch/arm/mach-tegra/board.h +1 -0
@@ -33,6 +33,7 @@ void __init tegra_protected_aperture_init(unsigned long aperture);void tegra_move_framebuffer (unsigned long to,unsigned long from,unsigned long size);int tegra_dvfs_rail_disable_by_name (const char *reg_id); +int __init tegra_pcie_init (bool init_port0,bool init_port1);extern unsigned long tegra_bootloader_fb_start;extern unsigned long tegra_bootloader_fb_size;
arch/arm/mach-tegra/include/mach/hardware.h +4 -0
@@ -21,4 +21,8 @@#ifndef __MACH_TEGRA_HARDWARE_H#define __MACH_TEGRA_HARDWARE_H +#define PCIBIOS_MIN_IO 0x1000 +#define PCIBIOS_MIN_MEM 0 +#define pcibios_assign_all_busses () 1 +#endif
arch/arm/mach-tegra/include/mach/io.h +10 -0
@@ -91,10 +91,20 @@ void tegra_iounmap(volatile void __iomem *addr);#define IO_ADDRESS (n) ((void __iomem *) IO_TO_VIRT(n)) +#ifdef CONFIG_TEGRA_PCI +extern void __iomem *tegra_pcie_io_base; + +static inline void __iomem *__io (unsigned long addr) +{ +return tegra_pcie_io_base + (addr &IO_SPACE_LIMIT ); +} +#else static inline void __iomem *__io (unsigned long addr) {return (void __iomem *)addr; } +#endif +#define __io (a) __io(a)#define __mem_pci (a) (a)
arch/arm/mach-tegra/pcie.c new file +933 -0
933 lines not on this page · raw message
Signature · 1 line
1.7.3.1