Hello All,
My company is planning to implement cardreader using SIM1 PORT1 of IMX6ul interfacing to TDA8035.
When I ran mxc_sim_test.out to test sim functionality, It is giving me following output.
atr[0]= 0x0
Receiving timeout
Error when tx/rx:-1
do you all have any idea,What can be wrong?
For more information, here is our implementation.
Pin configuration as shown in schematic here.
IMX6UL pin settings
I have couple of questions, Have I implemented device tree shown below correctly, according to schematic?
----------------------------------------------------------------------------------------------------------------------
pinctrl_sim1: sim1grp{
fsl,pins = <
MX6UL_PAD_CSI_DATA01__SIM1_PORT1_SVEN 0x0010 /* SVEN */
MX6UL_PAD_CSI_VSYNC__SIM1_PORT1_CLK 0x0031 /* CLK */
MX6UL_PAD_CSI_DATA00__SIM1_PORT1_RST_B 0x0010 /* RST_B*/
MX6UL_PAD_CSI_DATA02__SIM1_PORT1_TRXD 0xb809 /* IO */
MX6UL_PAD_CSI_HSYNC__SIM1_PORT1_PD 0x1B000 /* PD */
/*MX6UL_PAD_SD1_CMD__GPIO2_IO16 0x1B0B0*/ /* 5V3V */
>;
};
&sim1 {
pinctrl-names ="default";
pinctrl-0 = <&pinctrl_sim1>;
clocks = <&clks IMX6UL_CLK_SIM1>;
clock-names = "sim";
assigned-clocks = <&clks IMX6UL_CLK_SIM_PODF>;
assigned-clock-rates = <240000000>;
/* GPIO_ACTIVE_HIGH/LOW:sim card voltage control
* NCN8025:Vcc = ACTIVE_HIGH?5V:3V
* TDA8035:Vcc = ACTIVE_HIGH?5V:1.8V
*/
pinctrl-assert-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
port = <1>;
sven_low_active;
status = "okay";
};
----------------------------------------------------------------------------------------------
As we want to select 5v, I have asserted gpio high as (pinctrl-assert-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;) and EN_1.8V as high through IO Expander.
2. Is the above dts setting for asserting gpio2 16 pin is correct?
This is urgent, Could someone help please?
Yuri, igorpadykov, joanxie
Regards,
Asma
Hi Asma
one can look at sim example on nxp linux: linux/arch/arm/boot/dts/imx6ul-14x14-evk.dts
imx6ul-14x14-evk.dts\dts\boot\arm\arch - linux-imx - i.MX Linux kernel
Pay attention to differencies in pad settings in pinctrl_sim2: sim2grp,
port number in "port = ", "assigned-clocks ..".
For gpio2 16 look at similar settings for "gpio4 23 GPIO_ACTIVE_HIGH".
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
I have taken reference from their only... But mxc_sim_test is not giving expected output...
Can you please verify if everything I have done above is correct?
>Can you please verify if everything I have done above is correct?
there are big differencies in your pad settings in pinctrl_sim2: sim2grp,
port number in "port = ", "assigned-clocks ..".
with sim example in nxp linux: linux/arch/arm/boot/dts/imx6ul-14x14-evk.dts
imx6ul-14x14-evk.dts\dts\boot\arm\arch - linux-imx - i.MX Linux kernel
Best regards
igor
Yes because I am using different pins and PORT1 of SIM 1.
Is there any difference in functionality of port0 and PORT1?
>Yes because I am using different pins and PORT1 of SIM 1.
it does not matter, check for example pad settings :pinctrl_sim1: sim1grp,
the same for clocks
Hi igorpadykov,
I made the changes as sim2grp
&sim1 {
pinctrl-names ="default";
pinctrl-0 = <&pinctrl_sim1>;
clocks = <&clks IMX6UL_CLK_SIM1>;
clock-names = "sim";
assigned-clocks = <&clks IMX6UL_CLK_SIM_SEL>;
assigned-clock-parents = <&clks IMX6UL_CLK_SIM_PODF>;
assigned-clock-rates = <240000000>;
/* GPIO_ACTIVE_HIGH/LOW:sim card voltage control
* NCN8025:Vcc = ACTIVE_HIGH?5V:3V
* TDA8035:Vcc = ACTIVE_HIGH?5V:1.8V
*/
/*pinctrl-assert-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;*/
port = <1>;
sven_low_active;
status = "okay";
};
pinctrl_sim1: sim1grp{
fsl,pins = <
MX6UL_PAD_CSI_DATA01__SIM1_PORT1_SVEN 0xb810 /* SVEN */
MX6UL_PAD_CSI_VSYNC__SIM1_PORT1_CLK 0x0011 /* CLK */
MX6UL_PAD_CSI_DATA00__SIM1_PORT1_RST_B 0xb810 /* RST_B*/
MX6UL_PAD_CSI_DATA02__SIM1_PORT1_TRXD 0xb811 /* IO */
MX6UL_PAD_CSI_HSYNC__SIM1_PORT1_PD 0xB808 /* PD */
MX6UL_PAD_SD1_CMD__GPIO2_IO16 0x3008 /* 5V3V */
>;
};
Scenario How I am testing:
Sim1 Port1 is connected to TDA8035:
First scenario
I am inserting Smart Card into into Card reader module and running mxc_sim_test.out. Ouput is:
No cardsim_cold_reset
NO card ...
Second scenario
I am not inserting Smart Card into into Card reader module and running mxc_sim_test.out. Ouput is:
Receiving timeout
Error when tx/rx:-1
Hi Asma
one can check with oscilloscope if there any sim signals.
Best regards
igor