| Device-Tree bindings for smartcard driver |
| |
| Required properties: |
| - compatible: Must be "amlogic, smartcard". |
| - interrupts: Smartcard IRQ. |
| - smc0_clock_source: Smartcard module's clock source selection. |
| - reset_level: Reset level. |
| - smc0_det_invert: Invert the DET level. |
| - pinctrl: Pinmux setting of the smartcard. |
| - resets: Clock domain of the smartcard. |
| |
| If you want to use GPIO to replace the DET and RESET pins, the following properties should be set: |
| - reset_pin: RESET GPIO. |
| - detect_pin: DETECT GPIO. |
| |
| If you want to switch 5v/3v by a GPIO, the following properties should be set: |
| - enable_5v3v_pin: 5v/3v switch GPIO. |
| - smc0_5v3v_level: 5v/3v GPIO output. |
| |
| If you want to disable the CLK output when no card inserted, the following properties should be set: |
| - smc0_clk_pinmux_reg: CLK pinmux register address. |
| - smc0_clk_pinmux_bit: CLK pinmux bit. |
| - smc0_clk_oen_reg: CLK GPIO OEN register. |
| - smc0_clk_out_reg: CLK GPIO output register. |
| - smc0_clk_bit: CLK GPIO bit. |
| - smc0_clk_oebit: CLK GPIO OEN bit.; |
| - smc0_clk_oubit: BLK GPIO output bit. |
| |
| Example: |
| smartcard { |
| compatible = "amlogic,smartcard"; |
| irq_trigger_type = "GPIO_IRQ_LOW"; |
| |
| reset_pin = <&gpio GPIOX_11 GPIO_ACTIVE_HIGH >; //Reset pin |
| detect_pin = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH >; //Detect pin |
| enable_5v3v_pin = <&gpio GPIOX_10 GPIO_ACTIVE_HIGH >; //5V3V pin, can be ignored |
| |
| interrupts = <0 69 4>; //smc irq |
| |
| smc0_clock_source = <0>; //Smc clock source, if change this, you must adjust clk and divider in smartcard.c |
| smc0_irq = <69 >; //smc irq |
| smc0_det_invert = <0>; //0: high voltage on detect pin indicates card in. |
| smc0_5v3v_level = <0>; |
| smc_need_enable_pin = "no"; //Ordinarily, smartcard controller needs a enable pin. |
| reset_level = <0>; //0: low to reset the smartcard |
| |
| smc0_clk_pinmux_reg = <0x30>; |
| smc0_clk_pinmux_bit = <0x80>; |
| smc0_clk_oen_reg = <0x200f>; |
| smc0_clk_out_reg = <0x2010>; |
| smc0_clk_bit = <0x2000>; |
| smc0_clk_oebit = <0x2000000>; |
| smc0_clk_oubit = <0x1000000>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&smc_pins>; |
| resets = <&clock GCLK_IDX_SMART_CARD_MPEG_DOMAIN>; |
| reset-names = "smartcard"; |
| |
| status = "okay"; |
| }; |
| |
| &pinmux { |
| smc_pins:smc_pins { //Set gpio to 7816-clk 7816-data mode. |
| amlogic,setmask = <4 0x000000c0>; //Please refer to core-pin mux document |
| amlogic,clrmask = <3 0x60000280>; |
| amlogic,pins = "GPIOX_8","GPIOX_9"; |
| }; |
| } |
| |
| |