From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751295AbeAQBh7 (ORCPT + 1 other); Tue, 16 Jan 2018 20:37:59 -0500 Received: from mail-co1nam03on0120.outbound.protection.outlook.com ([104.47.40.120]:12200 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750811AbeAQBh4 (ORCPT ); Tue, 16 Jan 2018 20:37:56 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ernest.zhang@bayhubtech.com; From: "ernest.zhang" To: adrian.hunter@intel.com, ulf.hansson@linaro.org, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org Cc: shirley.her@bayhubtech.com, yuxiang.wan@bayhubtech.com, xiaoguang.yu@bayhubtech.com Subject: [PATCH 1/2] mmc: sdhci: Add support for O2 eMMC HS200 mode Date: Wed, 17 Jan 2018 09:37:34 +0800 Message-Id: <20180117013734.4120-1-ernest.zhang@bayhubtech.com> X-Mailer: git-send-email 2.14.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [27.17.7.178] X-ClientProxiedBy: HK2PR0302CA0013.apcprd03.prod.outlook.com (10.170.144.23) To CY1PR04MB2124.namprd04.prod.outlook.com (10.166.192.8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 39524d33-802a-46a5-71dc-08d55d4aed91 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(7021125)(5600026)(4604075)(4534125)(7022125)(4602075)(4603075)(4627221)(201702281549075)(7048125)(7024125)(7027125)(7028125)(7023125)(2017052603307)(7153060)(7193020);SRVR:CY1PR04MB2124; X-Microsoft-Exchange-Diagnostics: 1;CY1PR04MB2124;3:cYZvYkBfB2WK6XQD3ljeWcoUjiXmden/lu8GMPMtuUakd3G3YA9kf1/nm+y9PzBLDKQGTOj61msMQSVBU+fo5EUeev+k18wOzuBVcuXfRc0oLI3v6TVd1J1hiBQI82jkIjgNV65aJj7dUi9ny5KvgJsCstXoobFvgs8m+ef7UDMU0uvjCuMb7KoxR9iVqZ8V21E6AJrX0zIbhapcAiaqmFj5/o6kmPSYunALWNXodloxDm4YFI2feZUeEn0zF+XW;25:2bUctEsdp9ePPn//OFXkQ4O+k+NpTXFqkyCoBaWztLlQ5fmCztf847sNm38UYEfC49n664kpou7UFZ+PtGoOrp42l+EXIJO+z3mVFrlZYoCbdV34aF5TuY77pRtYyM8DAa9sBumKtaojm8/GIaRLCGaCLnQea2AcKvKzmnvBWXPm8aYEnO94nCo7Q0CwWuj8SQm+Cmm8bD0NGW+89ihMiL0bPHGVfHMdm89G/H7goyg1bZw4W9FuIHbbYnXNTuE83EKTClT2JRZqTuJDwYLvVbyhClNDOSla/biiUWB1jgwVcHBW2BXFZK4icxVdmkDpY5g0MVO/pGikZU2cySmsSw==;31:shh6Ah2FJJGo+OUcdnPt2ljbzBQmUhiSqTj3VzFpjFjcG28fR/WCrXWStPlybys4vsSYOVK754eepfWR3BXNhn/6HHohfS8fI7O6xCkFIdREOozWNpfcZZ3XLX/VRRP1+bNmHTRRejbvgJATOD3BYv5uQhpGu7GjWlejPX8sodXplKAqaySQhHFtBN7vn104dWBJjTWs3pkyBh9TrEkwluDr9SsA9g6UiZjwytxo3y8= X-MS-TrafficTypeDiagnostic: CY1PR04MB2124: X-Microsoft-Exchange-Diagnostics: 1;CY1PR04MB2124;20:G6KVSnfpNPbycPt4cQ6PKjYD343xzvpOMEkJ129Z1OI2XqnO/rMePmn0BIeMklxG6CFLEQaIB4UnRFFLfQlZoAWV9I7RYAmRxliLmqmc/2XLDZw6gqGx1SFEEQM9oZmKQW24NM0lbpSUf1DGoLWdApcaZw2VIClxxkQ625IMS165z9XNNMpVfiG/R1GOso2QTR6mgf54/PzcgXtKESJjGHR6nWo4y7HAk/4jp+0EUjG33CGU9YT9+useju4Ej/AqQBX95nTSDmP3kqkSY4w8+XdE5TF7pEknkZ52uaqH+a9o4xxT9rRp+uj3Ec4Fz0yBl5+GH1qH6Yp3HXLovrGzjuS54tHbKe76mwJxGqDday52OL8SCxdVCiRByWvOz/rJW7Q6gI7c+3zGXqFEo3/XksRmUadLcB7GewCfW3KUFJI=;4:qG6cBeA0Q2ULfM6NyBO7BVGJMVLYHZrWQnXPxhihqaGoliZoaQ0Ui8YPx70MO94EHUWA6r/B15wYNV8aiLijuPFpn+d6rCgvRFdvC0c2M3YaKmkpvzrrLEcjfhq3qIbYzFuIerCOjovx0B8F+byvaEwgZI9EW8ZoSZFPuz/Y+NPLhB4UIlRsgSK1UT8v8uUXLpa9cX/IhjNXYPN3iDnTGw4wvG4dMQ1Cb2OlEk3bKL7Z8KkKg+IPo5Yx2kk5kTI7mF0bZKY7YQLlx/JdG9FlX01Dr7J42ELNd/Op7dY1oCq3ian51Btu9i2Cg99G/lto X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(198206253151910); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231023)(944501161)(2016111802025)(20161123562045)(20161123564045)(20161123560045)(20161123558120)(6042181)(6043046)(6072148)(201708071742011);SRVR:CY1PR04MB2124;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:CY1PR04MB2124; X-Forefront-PRVS: 0555EC8317 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(376002)(39380400002)(346002)(366004)(39830400003)(396003)(199004)(189003)(86362001)(47776003)(8676002)(8936002)(6666003)(81166006)(81156014)(66066001)(105586002)(16586007)(316002)(25786009)(97736004)(478600001)(16526018)(26005)(106356001)(50466002)(53936002)(4326008)(48376002)(69596002)(6486002)(52116002)(36756003)(51416003)(6512007)(2906002)(107886003)(305945005)(59450400001)(68736007)(386003)(6506007)(7736002)(5660300001)(6116002)(3846002)(53416004)(1076002)(50226002)(2004002);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR04MB2124;H:BHT-SW-ernest.towerbridgetechnology.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR04MB2124;23:k1I9EeeaUroRi25HqWzKUtp45cXOxqoyhORtRHqOE?= =?us-ascii?Q?bxxR293H9EBxW2cY/jEc+DRxMOsoeU24wUHy57+P3tqwMuA1MfhxxxNpdVK0?= =?us-ascii?Q?DCSeXEf7tNJgmyzj/yzn/uJpY3nC2yzNbxaWah3CVeCWhQahOndXWHSFHzuh?= =?us-ascii?Q?xi7wJVJUBq1p9+qixJ5KIUQ+JUzdeThaOpLvh9JaNuHBrGOxV2LyEFFrml0y?= =?us-ascii?Q?5quzrj5MUYp/RCBjt2H8O/cqZ3x7XxFfVCehLcF3YRHLsgHwrOZiQb5kyzCs?= =?us-ascii?Q?w4DHmBon/4ipMz4VYmfl8lQtspLNXTLCbDCUhadCQNcVMtUHpVP9wrtAd+Qq?= =?us-ascii?Q?sGXpKwBuy8TIjqqy7U8w8EDQQj8GMqfZpS16UyCQrw7iG7/r+DFtEkXqI53z?= =?us-ascii?Q?oya1Scp7tNpgpZRFB0WVmGmsUrvgPVACwJIaBTYpl1HpKU4tdVFSRg1reKod?= =?us-ascii?Q?qd4MtySRWl/pgX47RuQO21vtqOkFn/K/jOni4Zp3/Omb/ct2zurSiXcrpS8s?= =?us-ascii?Q?c3czNg1+aOW93BOIUbXIOfXyhJtcVPZcPwooQMTfr4V4QmCxQoxpGKh7xdPV?= =?us-ascii?Q?L7bSSsLAYbPvwjF10LcdoO6K90KlDr4Dg1bB9ByrEiNvKvzztgGfJJdRP5Fc?= =?us-ascii?Q?i5VFdQ5ZGUlH13I9QxQvSbAVUFvwwKTukhXQcgm7Y5vazxj1oPCLVuVv/gPe?= =?us-ascii?Q?Ka2c8D28A6/SVaZzZTi9mNLTvAKw2oJOVZFiVTUf6mRBEKdoj1aXTfyHttLl?= =?us-ascii?Q?KkOVZJfCns7cdbuYq2cWzL5af5z+HxsCmvvZrN50HdcLMPAjoguv47NaLf9B?= =?us-ascii?Q?fgEhK59MPljPxE/+JIDxmCALtXKSD+MrL3FrKN1Ko4pfClauhtz4D9UX7epZ?= =?us-ascii?Q?hU24RBA9LbS+lN+KwPf+3JIPGeV9TN0PD6ckYWVT0rv0nTzgBRE8HYfjGUK1?= =?us-ascii?Q?kw4LMFtbUhB/w8NLxunwmLXlNg4kzQG1SUtZLnw/sEl7RbFifKnvfbc2nVKP?= =?us-ascii?Q?26u79f0Toaz/YrkTIZ83+zACEyR2ycErzNZroTLnMSwZbcFh43bUKLTFawOV?= =?us-ascii?Q?K5mtwSxXlZXWkV6+K7EMj4kA/IkfUmvcQlbOTJ6XfXRZU783jl82uGqJq+z/?= =?us-ascii?Q?7O0RVcMgO6rtDDqgxgYDo5kqWRjcJOp?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR04MB2124;6:53yh/9Tzycf/qlga0LYI7ZR9MOaspdWwGxhOFsCGC4n4y72QqF47e32mh554Pl3DNB315LYY8HXJZOF3+omQu3Rjf4bjl6heCKkKVX7roxlho9zcmhH2a0dCtQG3ByRuEfXGYNGq5ulBhl0N3LLfiwasEThexvP59aQoGE3DjHry0CMvG8ZsYlWD5IySLkDy1x7+yGXba49IM+87GTu7XASvep6T0H25NB8UbZubd82uxjAEIGFHapXz6tx9g4OGgv/uD9hDFuwAL55i0J8nwLrVMrHrLC/WX4P+eNNRVvJqeFkSIp48t9jEsNHPGmwl42luRhfyR+ONQvolebw9YCYWQb8Z70sQnVeI/Vovono=;5:AaK/Q9sn8KiGskSnCsI+dA5HVYWFYVgZUJ0Frhw3cpC6asbZyQPtu+RwEsSOjYrZrl6pwd7CpQjY7/qHmaVR2CXInJbeF0jYTplYRSAzq+qvGfh5vlTFqBNxr1V1hffacH/uvf2t8dPJgGQey3CGwnNhoVKmE6wOaJBVimRs2p0=;24:DzuDp5H6Cg+9UB3tWaUJtoUD7wNK5oe2b9wD4OIzK9pIdLc5S1LdkWH6qEshsU3nBuF//y3+/sDnsXnnWLibOJ08uLQQYCgno6sYydlZ1rU=;7:DZPh5J+6Qphb9FhZKjB1el2JKud2sL+UAWz+pR+PYf/OX3t42w+Jo6xiwEnAHHjFtcdqMP+cE9bZl5+bnc6f4qsacGSGm2updamZmfLo2KJipCk9tCbix4wci1JQLrky5oUAVmVrhrjMUZ0RW+n3IlZcV0KJSBGoGnIe5+Ml9OG4pUH7CTyCbFCkAN+E2v4F63QsRm4ImyJcrWitDk4yB1WscPHFKhcz8ryvAVDGrRf7rcNt2rQWsqcA1aZ21LLh SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: bayhubtech.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2018 01:37:52.0144 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 39524d33-802a-46a5-71dc-08d55d4aed91 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0a7aae2b-8f2e-44df-ba2f-42de7f93c642 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR04MB2124 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: when eMMC used as boot device, the eMMC signaling voltage is tied to 1.8v fixed output voltage, bios can set o2 sd host controller PCI configuration register 0x308 bit4 to 1 to let host controller skip try 3.3.v signaling voltage and direct use 1.8v singling voltage in eMMC initialize process. Signed-off-by: ernest.zhang --- drivers/mmc/host/sdhci-pci-o2micro.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci-pci-o2micro.c b/drivers/mmc/host/sdhci-pci-o2micro.c index 555970a29c94..8855a416ffd4 100644 --- a/drivers/mmc/host/sdhci-pci-o2micro.c +++ b/drivers/mmc/host/sdhci-pci-o2micro.c @@ -1,8 +1,9 @@ /* - * Copyright (C) 2013 BayHub Technology Ltd. + * Copyright (C) 2018 BayHub Technology Ltd. * * Authors: Peter Guo * Adam Lee + * Ernest Zhang * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -39,6 +40,7 @@ #define O2_SD_MISC_CTRL4 0xFC #define O2_SD_TUNING_CTRL 0x300 #define O2_SD_PLL_SETTING 0x304 +#define O2_SD_MISC_SETTING 0x308 #define O2_SD_CLK_SETTING 0x328 #define O2_SD_CAP_REG2 0x330 #define O2_SD_CAP_REG0 0x334 @@ -53,6 +55,7 @@ #define O2_SD_VENDOR_SETTING 0x110 #define O2_SD_VENDOR_SETTING2 0x1C8 +#define O2_SD_HW_TUNING_ENABLE BIT(4) static void o2_pci_set_baseclk(struct sdhci_pci_chip *chip, u32 value) { @@ -184,6 +187,7 @@ int sdhci_pci_o2_probe_slot(struct sdhci_pci_slot *slot) struct sdhci_pci_chip *chip; struct sdhci_host *host; u32 reg; + int ret; chip = slot->chip; host = slot->host; @@ -197,6 +201,20 @@ int sdhci_pci_o2_probe_slot(struct sdhci_pci_slot *slot) if (reg & 0x1) host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12; + if (chip->pdev->device == PCI_DEVICE_ID_O2_SEABIRD0) { + ret = pci_read_config_dword(chip->pdev, + O2_SD_MISC_SETTING, ®); + if (ret) + return -EIO; + if (reg & (1 << 4)) { + pr_info("%s: emmc 1.8v flag is set, force 1.8v signaling voltage\n", + mmc_hostname(host->mmc)); + host->flags &= ~SDHCI_SIGNALING_330; + host->flags |= SDHCI_SIGNALING_180; + } + } + + if (chip->pdev->device != PCI_DEVICE_ID_O2_FUJIN2) break; /* set dll watch dog timer */ -- 2.14.1