1<?xml version="1.0" encoding="utf-8"?>
2
3
4<!--****************************************************************************
5* \file sd_host.cypersonality
6* \version 1.0
7*
8* \brief
9* SD Host Controller personality description file. It supports CAT1A, CAT1B,
10* CAT1C and CAT1D devices.
11*
12********************************************************************************
13* \copyright
14* Copyright 2018-2022 Cypress Semiconductor Corporation
15* SPDX-License-Identifier: Apache-2.0
16*
17* Licensed under the Apache License, Version 2.0 (the "License");
18* you may not use this file except in compliance with the License.
19* You may obtain a copy of the License at
20*
21*     http://www.apache.org/licenses/LICENSE-2.0
22*
23* Unless required by applicable law or agreed to in writing, software
24* distributed under the License is distributed on an "AS IS" BASIS,
25* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26* See the License for the specific language governing permissions and
27* limitations under the License.
28*****************************************************************************-->
29
30<Personality id="mxs40sdhost" name="SD Host Controller" version="1.0" xmlns="http://cypress.com/xsd/cyhwpersonality_v7">
31  <Dependencies>
32    <IpBlock name="mxsdhc" />
33    <Resource name="sdhc" />
34  </Dependencies>
35  <ExposedMembers />
36  <Parameters>
37    <!-- PDL documentation -->
38    <ParamDoc id="pdlDoc" name="Configuration Help" group="Overview" default="file:///`${cy_libs_path()}`/docs/pdl_api_reference_manual/html/group__group__sd__host.html" linkText="Open SD Host Documentation" visible="true" desc="Opens the Peripheral Driver Library Documentation" />
39
40    <!-- Timing -->
41    <ParamSignal port="clk_hf[0]" name="Clock" group="Timing" visible="true" desc="Input clock source of the SDHC block." canBeEmpty="false" />
42    <ParamString id="sourceClock" name="sourceClock" group="General" default="`${getBlockFromSignal(&quot;clk_hf[0]&quot;)}`" visible="false" editable="false" desc="" />
43    <ParamRange id="sourceFreq" name="sourceFreq" group="General" default="`${isBlockUsed(sourceClock) ? getExposedMember(sourceClock, &quot;frequency&quot;) : 0}`" min="0" max="400000000" resolution="1" visible="false" editable="false" desc="" />
44    <ParamRange  id="sdhcClk" name="Input Clock Frequency (kHz)" group="Timing" default="`${sourceFreq / 1000}`" min="0" max="400000000" resolution="0.001" visible="true" editable="false" desc="Shows the actual input clock frequency of the SDHC block." />
45
46    <!-- General -->
47    <ParamChoice id="cardType" name="Card Type" group="General" default="emmc" visible="true" editable="true" desc="Defines if the card is eMMC." >
48      <Entry name="eMMC" value="emmc" visible="true" />
49      <Entry name="SD/SDIO" value="nonEmmc" visible="true" />
50    </ParamChoice>
51    <ParamChoice id="dmaType" name="DMA Type" group="General" default="CY_SD_HOST_DMA_SDMA" visible="true" editable="true" desc="Selects the DMA type to be used." >
52      <Entry name="SDMA" value="CY_SD_HOST_DMA_SDMA" visible="true" />
53      <Entry name="ADMA2" value="CY_SD_HOST_DMA_ADMA2" visible="true" />
54      <Entry name="ADMA2-ADMA3" value="CY_SD_HOST_DMA_ADMA2_ADMA3" visible="true" />
55    </ParamChoice>
56    <ParamRange id="InstNumber" name="Instance Number" group="General" default="`${getInstNumber(&quot;sdhc&quot;)}`" min="0" max="1" resolution="1" visible="false" editable="false" desc="This parameter specifies Instance Number." />
57    <ParamBool id="enableLedControl" name="LED Control" group="General" default="false" visible="`${(InstNumber eq 1)}`" editable="true" desc="If enabled the SD clock controls one IO which is used to indicate when card is being accessed." />
58    <ParamChoice id="busWidth" name="Bus Width" group="General" default="CY_SD_HOST_BUS_WIDTH_4_BIT" visible="true" editable="true" desc="The desired bus width." >
59      <Entry name="1-bit" value="CY_SD_HOST_BUS_WIDTH_1_BIT" visible="true" />
60      <Entry name="4-bit" value="CY_SD_HOST_BUS_WIDTH_4_BIT" visible="true" />
61      <Entry name="8-bit" value="CY_SD_HOST_BUS_WIDTH_8_BIT" visible="`${(cardType eq emmc) &amp;&amp; (InstNumber eq 1)}`" />
62    </ParamChoice>
63    <ParamBool id="lowVoltageSignaling" name="Enable Low Voltage Signaling" group="General" default="false" visible="`${hasVisibleOption(&quot;io_volt_sel[0]&quot;)}`" editable="true" desc="If enabled then the host supports the 1.8V signaling." />
64
65    <!--Inputs/Outputs-->
66    <ParamSignal port="clk_card[0]" name="CLK" group="Inputs" visible="true" desc="The card clock pin." canBeEmpty="true" >
67      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
68        <Parameter id="DriveModes" severity="DEFAULT" reason="">
69          <Fixed value="CY_GPIO_DM_STRONG" />
70        </Parameter>
71      </Constraint>
72      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
73        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
74          <Fixed value="CY_GPIO_DM_STRONG" />
75        </Parameter>
76      </Constraint>
77      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
78    </ParamSignal>
79    <ParamSignal port="card_cmd[0]" name="CMD" group="Inputs" visible="true" desc="The command/response pin." canBeEmpty="true" >
80      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
81        <Parameter id="DriveModes" severity="DEFAULT" reason="">
82          <Fixed value="CY_GPIO_DM_STRONG" />
83        </Parameter>
84      </Constraint>
85      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
86        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
87          <Fixed value="CY_GPIO_DM_STRONG" />
88        </Parameter>
89      </Constraint>
90      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
91    </ParamSignal>
92    <ParamSignal port="card_dat_3to0[0]" name="DAT0" group="Inputs" visible="true" desc="The Data line [Bit 0] pin." canBeEmpty="true" >
93      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
94        <Parameter id="DriveModes" severity="DEFAULT" reason="">
95          <Fixed value="CY_GPIO_DM_STRONG" />
96        </Parameter>
97      </Constraint>
98      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
99        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
100          <Fixed value="CY_GPIO_DM_STRONG" />
101        </Parameter>
102      </Constraint>
103      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
104    </ParamSignal>
105    <ParamSignal port="card_dat_3to0[1]" name="DAT1" group="Inputs" visible="`${(busWidth ne CY_SD_HOST_BUS_WIDTH_1_BIT)}`" desc="The Data line [Bit 1] pin." canBeEmpty="true" >
106      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
107        <Parameter id="DriveModes" severity="DEFAULT" reason="">
108          <Fixed value="CY_GPIO_DM_STRONG" />
109        </Parameter>
110      </Constraint>
111      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
112        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
113          <Fixed value="CY_GPIO_DM_STRONG" />
114        </Parameter>
115      </Constraint>
116      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
117    </ParamSignal>
118    <ParamSignal port="card_dat_3to0[2]" name="DAT2" group="Inputs" visible="`${(busWidth ne CY_SD_HOST_BUS_WIDTH_1_BIT)}`" desc="The Data line [Bit 2] pin." canBeEmpty="true" >
119      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
120        <Parameter id="DriveModes" severity="DEFAULT" reason="">
121          <Fixed value="CY_GPIO_DM_STRONG" />
122        </Parameter>
123      </Constraint>
124      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
125        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
126          <Fixed value="CY_GPIO_DM_STRONG" />
127        </Parameter>
128      </Constraint>
129      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
130    </ParamSignal>
131    <ParamSignal port="card_dat_3to0[3]" name="DAT3" group="Inputs" visible="`${(busWidth ne CY_SD_HOST_BUS_WIDTH_1_BIT)}`" desc="The Data line [Bit 3] pin." canBeEmpty="true" >
132      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
133        <Parameter id="DriveModes" severity="DEFAULT" reason="">
134          <Fixed value="CY_GPIO_DM_STRONG" />
135        </Parameter>
136      </Constraint>
137      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
138        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
139          <Fixed value="CY_GPIO_DM_STRONG" />
140        </Parameter>
141      </Constraint>
142      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
143    </ParamSignal>
144    <ParamSignal port="card_dat_7to4[0]" name="DAT4" group="Inputs" visible="`${(cardType eq emmc) &amp;&amp; (InstNumber eq 1) &amp;&amp; (busWidth eq CY_SD_HOST_BUS_WIDTH_8_BIT)}`" desc="The Data line [Bit 4] pin." canBeEmpty="true" >
145      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
146        <Parameter id="DriveModes" severity="DEFAULT" reason="">
147          <Fixed value="CY_GPIO_DM_STRONG" />
148        </Parameter>
149      </Constraint>
150      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
151        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
152          <Fixed value="CY_GPIO_DM_STRONG" />
153        </Parameter>
154      </Constraint>
155      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
156    </ParamSignal>
157    <ParamSignal port="card_dat_7to4[1]" name="DAT5" group="Inputs" visible="`${(cardType eq emmc) &amp;&amp; (InstNumber eq 1) &amp;&amp; (busWidth eq CY_SD_HOST_BUS_WIDTH_8_BIT)}`" desc="The Data line [Bit 5] pin." canBeEmpty="true" >
158      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
159        <Parameter id="DriveModes" severity="DEFAULT" reason="">
160          <Fixed value="CY_GPIO_DM_STRONG" />
161        </Parameter>
162      </Constraint>
163      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
164        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
165          <Fixed value="CY_GPIO_DM_STRONG" />
166        </Parameter>
167      </Constraint>
168      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
169    </ParamSignal>
170    <ParamSignal port="card_dat_7to4[2]" name="DAT6" group="Inputs" visible="`${(cardType eq emmc) &amp;&amp; (InstNumber eq 1) &amp;&amp; (busWidth eq CY_SD_HOST_BUS_WIDTH_8_BIT)}`" desc="The Data line [Bit 6] pin." canBeEmpty="true" >
171      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
172        <Parameter id="DriveModes" severity="DEFAULT" reason="">
173          <Fixed value="CY_GPIO_DM_STRONG" />
174        </Parameter>
175      </Constraint>
176      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
177        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
178          <Fixed value="CY_GPIO_DM_STRONG" />
179        </Parameter>
180      </Constraint>
181      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
182    </ParamSignal>
183    <ParamSignal port="card_dat_7to4[3]" name="DAT7" group="Inputs" visible="`${(cardType eq emmc) &amp;&amp; (InstNumber eq 1) &amp;&amp; (busWidth eq CY_SD_HOST_BUS_WIDTH_8_BIT)}`" desc="The Data line [Bit 7] pin." canBeEmpty="true" >
184      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
185        <Parameter id="DriveModes" severity="DEFAULT" reason="">
186          <Fixed value="CY_GPIO_DM_STRONG" />
187        </Parameter>
188      </Constraint>
189      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
190        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
191          <Fixed value="CY_GPIO_DM_STRONG" />
192        </Parameter>
193      </Constraint>
194      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
195    </ParamSignal>
196
197    <ParamSignal port="card_detect_n[0]" name="Card Detect" group="Inputs" visible="`${hasVisibleOption(&quot;card_detect_n[0]&quot;)}`" desc="The card detect pin. Note: You can use any GPIO custom pin for Card Detect. Add the SD Host driver Cy_SD_Host_IsCardConnected() function with the __WEAK type to your code. This function could read the value from any GPIO pin and return true when the card is connected. For more information see the Cy_SD_Host_IsCardConnected() function description." canBeEmpty="true" >
198      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
199        <Parameter id="DriveModes" severity="DEFAULT" reason="">
200          <Fixed value="CY_GPIO_DM_HIGHZ" />
201        </Parameter>
202      </Constraint>
203      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
204        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
205          <Fixed value="CY_GPIO_DM_HIGHZ" />
206        </Parameter>
207      </Constraint>
208      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
209    </ParamSignal>
210    <ParamSignal port="card_emmc_reset_n[0]" name="eMMC Reset" group="Inputs" visible="`${(cardType eq emmc) &amp;&amp; (InstNumber eq 1)}`" desc="The eMMC reset pin." canBeEmpty="true" >
211      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
212        <Parameter id="DriveModes" severity="DEFAULT" reason="">
213          <Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
214        </Parameter>
215      </Constraint>
216      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
217        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
218          <Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
219        </Parameter>
220      </Constraint>
221      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
222    </ParamSignal>
223    <ParamSignal port="led_ctrl[0]" name="Led Control" group="Inputs" visible="`${enableLedControl}`" desc="The LED control pin." canBeEmpty="true" >
224      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
225        <Parameter id="DriveModes" severity="DEFAULT" reason="">
226          <Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
227        </Parameter>
228      </Constraint>
229      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
230        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
231          <Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
232        </Parameter>
233      </Constraint>
234      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
235    </ParamSignal>
236    <ParamSignal port="card_mech_write_prot[0]" name="Card Mechanical Write Protect" group="Inputs" visible="`${hasVisibleOption(&quot;card_mech_write_prot[0]&quot;)}`" desc="The card mechanical write protect pin." canBeEmpty="true" >
237      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
238        <Parameter id="DriveModes" severity="DEFAULT" reason="">
239          <Fixed value="CY_GPIO_DM_HIGHZ" />
240        </Parameter>
241      </Constraint>
242      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
243        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
244          <Fixed value="CY_GPIO_DM_HIGHZ" />
245        </Parameter>
246      </Constraint>
247      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
248    </ParamSignal>
249    <ParamSignal port="card_if_pwr_en[0]" name="Card if Power Enabled" group="Inputs" visible="`${hasVisibleOption(&quot;card_if_pwr_en[0]&quot;)}`" desc="The card if power enabled pin." canBeEmpty="true" >
250      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
251        <Parameter id="DriveModes" severity="DEFAULT" reason="">
252          <Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
253        </Parameter>
254      </Constraint>
255      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
256        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
257          <Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
258        </Parameter>
259      </Constraint>
260      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
261    </ParamSignal>
262    <ParamSignal port="io_volt_sel[0]" name="IO Volt Select" group="Inputs" visible="`${hasVisibleOption(&quot;io_volt_sel[0]&quot;)}`" desc="The io volt select pin." canBeEmpty="true" >
263      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
264        <Parameter id="DriveModes" severity="DEFAULT" reason="">
265          <Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
266        </Parameter>
267      </Constraint>
268      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
269        <Parameter id="DriveModes" severity="INFO" reason="The pin Drive Mode parameter does not match expected.">
270          <Fixed value="CY_GPIO_DM_STRONG_IN_OFF" />
271        </Parameter>
272      </Constraint>
273      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
274    </ParamSignal>
275
276    <ParamBool id="inFlash" name="Store Config in Flash" group="Advanced" default="true" visible="true" editable="true" desc="Controls whether the configuration structure is stored in flash (const, true) or SRAM (not const, false)." />
277  </Parameters>
278
279  <DRCs>
280    <!--Timing DRCs-->
281    <DRC type="INFO" text="To correctly set the bus speed, CLK_HF must be set to 100 MHz if the compatibility with the Capabilities register is required." condition="`${sourceFreq ne 100000000}`" />
282
283    <!--busWidth DRCs-->
284    <DRC type="ERROR" text="Only eMMC supports 8 bits bus width." condition="`${(cardType ne emmc) &amp;&amp; (busWidth eq CY_SD_HOST_BUS_WIDTH_8_BIT) ? true : false}`" />
285  </DRCs>
286
287  <ConfigFirmware>
288    <ConfigInclude value="cy_sd_host.h" include="true" />
289    <ConfigInclude value="cyhal_hwmgr.h" include="true" guard="defined (CY_USING_HAL)" />
290
291    <ConfigDefine name="`${INST_NAME . &quot;_HW&quot;}`" value="SDHC`${InstNumber}`" public="true" include="true" />
292    <ConfigDefine name="`${INST_NAME}`_IRQ" value="sdhc_`${InstNumber}`_interrupt_general_IRQn" public="true" include="true" />
293    <ConfigVariable name="`${INST_NAME . &quot;_cardCapacity&quot;}`" type="cy_en_sd_host_card_capacity_t" const="false" value="CY_SD_HOST_SDSC" public="true" include="true"  />
294    <ConfigVariable name="`${INST_NAME . &quot;_cardType&quot;}`" type="cy_en_sd_host_card_type_t" const="false" value="`${(cardType eq emmc) ? &quot;CY_SD_HOST_EMMC&quot; : &quot;CY_SD_HOST_NOT_EMMC&quot;}`" public="true" include="true"  />
295    <ConfigVariable name="`${INST_NAME . &quot;_rca&quot;}`" type="uint32_t" const="false" value="0u" public="true" include="true"  />
296
297    <ConfigStruct name="`${INST_NAME . &quot;_config&quot;}`" type="cy_stc_sd_host_init_config_t" const="`${inFlash}`" public="true" include="true" >
298      <Member name="emmc" value="`${(cardType eq emmc) ? &quot;true&quot; : &quot;false&quot;}`" />
299      <Member name="dmaType" value="`${dmaType}`" />
300      <Member name="enableLedControl" value="`${enableLedControl ? &quot;true&quot; : &quot;false&quot;}`" />
301    </ConfigStruct>
302
303    <ConfigStruct name="`${INST_NAME . &quot;_card_cfg&quot;}`" type="cy_stc_sd_host_sd_card_config_t" const="false" public="true" include="true" >
304      <Member name="lowVoltageSignaling" value="`${lowVoltageSignaling ? &quot;true&quot; : &quot;false&quot;}`" />
305      <Member name="busWidth" value="`${busWidth}`" />
306      <Member name="cardType" value="&amp;`${INST_NAME . &quot;_cardType&quot;}`" />
307      <Member name="rca" value="&amp;`${INST_NAME . &quot;_rca&quot;}`" />
308      <Member name="cardCapacity" value="&amp;`${INST_NAME . &quot;_cardCapacity&quot;}`" />
309    </ConfigStruct>
310
311    <ConfigStruct name="`${INST_NAME}`_obj" type="cyhal_resource_inst_t" const="true" public="true" include="true" guard="defined (CY_USING_HAL)">
312      <Member name="type" value="CYHAL_RSC_SDHC" />
313      <Member name="block_num" value="`${getInstNumber(&quot;sdhc&quot;)}`U" />
314      <Member name="channel_num" value="0U" />
315    </ConfigStruct>
316
317    <ConfigInstruction value="cyhal_hwmgr_reserve(&amp;`${INST_NAME}`_obj);" include="true" guard="defined (CY_USING_HAL)" />
318  </ConfigFirmware>
319</Personality>
320