Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754442AbbGCFpm (ORCPT ); Fri, 3 Jul 2015 01:45:42 -0400 Received: from [222.66.158.135] ([222.66.158.135]:45251 "EHLO SHSQR01.spreadtrum.com" rhost-flags-FAIL-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1753181AbbGCFpd (ORCPT ); Fri, 3 Jul 2015 01:45:33 -0400 From: =?gb2312?B?QmlsbG93cyBXdSAozuS66czOKQ==?= To: Orson Zhai , Rob Herring CC: =?gb2312?B?Q2h1bnlhbiBaaGFuZyAo1cW0utHeKQ==?= , "chris@printf.net" , "Ulf Hansson" , Lee Jones , Shawn Guo , Grant Likely , Rob Herring , Arnd Bergmann , =?gb2312?B?V2VpIFFpYW8gKMfHzrAp?= , =?gb2312?B?QmFvbGluIFdhbmcgKM31sabB1ik=?= , =?gb2312?B?TmluZyBZYW5nICjR7sT+KQ==?= , =?gb2312?B?T3Jzb24gWmhhaSAotdS+qSk=?= , =?gb2312?B?SmFzb24gV3UgKM7i9qvLrCk=?= , "linux-mmc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" Subject: RE: [RFC PATCH] mmc: sprd: add MMC host driver for Spreadtrum SoC Thread-Topic: [RFC PATCH] mmc: sprd: add MMC host driver for Spreadtrum SoC Thread-Index: AQHQs87fUcu89hILtECCTSQeHYALpp3GXx8AgAEFhgCAAGpeAIAAuUGAgACpZPA= Date: Fri, 3 Jul 2015 05:44:17 +0000 Message-ID: References: <1435735399-15333-1-git-send-email-chunyan.zhang@spreadtrum.com> , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.0.1.200] Content-Type: text/plain; charset="gb2312" MIME-Version: 1.0 X-MAIL: SHSQR01.spreadtrum.com t635iIi2048824 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id t635jut3027134 Content-Length: 4456 Lines: 89 Hi Rob, Thanks for your reply. The MMC subsys core can figure out the type of the device attached. But it happaped after MMC probe function run over. If we want to distinguish MMC??SD or Wi-Fi in controller's probe function, we may by controller's register physical address, for example 20600000.sdio??2.400000.sdio or 20300000.sdio. So we must know MMC controller's physical address is 0x20600000 and SD controller's physical address is 0x20300000. This reduces the code readability. If you have a good opinion how to distinguish MMC form SD or SDIO device in host controller probe function not by physical address, please tell us. Thanks! --billows ___________________________________ From: Orson Zhai Sent: Friday, July 3, 2015 10:50 AM To: Rob Herring Cc: Chunyan Zhang (?Ŵ???); chris@printf.net; Ulf Hansson; Lee Jones; Shawn Guo; Grant Likely; Rob Herring; Arnd Bergmann; Billows Wu (??????); Wei Qiao (??ΰ); Baolin Wang (??????); Ning Yang (????); Orson Zhai (?Ծ?); Jason Wu (????ˬ); linux-mmc@vger.kernel.org; linux-kernel@vger.kernel.org; devicetree@vger.kernel.org Subject: Re: [RFC PATCH] mmc: sprd: add MMC host driver for Spreadtrum SoC On Thu, Jul 2, 2015 at 11:47 PM, Rob Herring wrote: > On Thu, Jul 2, 2015 at 4:26 AM, Orson Zhai wrote: >> Hi Rob, >> >> Thanks for your quick reply. >> I have one question to your last comment. >> >> On Thu, Jul 2, 2015 at 1:50 AM, Rob Herring wrote: >>> On Wed, Jul 1, 2015 at 2:23 AM, Chunyan Zhang >>> wrote: >>>> From: Billows Wu > > [...] > >>>> +const struct of_device_id sdhost_of_match[] = { >>>> + {.compatible = "sprd,sd-sdhost-3.0", .data = &sd_caps_info,}, >>>> + {.compatible = "sprd,wifi-sdhost-3.0", .data = &wifi_caps_info,}, >>>> + {.compatible = "sprd,emmc-sdhost-3.0", .data = &emmc_caps_info,}, >>> >>> What these are connected to is irrelevant to the driver and compatible >>> string. All these differences belong in the DT unless the IP blocks >>> are really different. >> >> It's my idea to let Billows do like this. >> I learn from SSP part in freescale "arch/arm/boot/dts/imx28-evk.dts" >> Their ssp0-ssp2 each have 2 roles, mmc or generic spi bus. >> And they may write one of their combo configuration like this: > > That is a bit different as the host controller is operating in > completely different modes. In your case, the host controller is the > same and functions the same way, but just has different cards > attached. > >> >> 43 ssp1: ssp@80012000 { >> 44 compatible = "fsl,imx28-mmc"; >> 45 bus-width = <8>; >> 46 wp-gpios = <&gpio0 28 0>; >> 47 }; >> 48 >> 49 ssp2: ssp@80014000 { >> 50 #address-cells = <1>; >> 51 #size-cells = <0>; >> 52 compatible = "fsl,imx28-spi"; >> 53 pinctrl-names = "default"; >> 54 pinctrl-0 = <&spi2_pins_a>; >> 55 status = "okay"; >> 56 >> 57 flash: m25p80@0 { >> 58 #address-cells = <1>; >> 59 #size-cells = <1>; >> 60 compatible = "sst,sst25vf016b"; >> 61 spi-max-frequency = <40000000>; >> 62 reg = <0>; >> 63 }; >> 64 }; >> >> Billows tell me they also have 3 roles in their sd host controller >> corresponding to 3 kinds of different operation. >> He used to create "sprd,name" property for this. Is it a good way or >> anything else better? > > Why do you need to know? You can define parameters which can't be > probed such as bus width, voltage, and clock freq. in DT for each > host. The MMC subsys core will figure out the type of device attached. I think you're right. Thanks! -orson > > Rob ????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?