blob: 02adb7420327f8e8494f0b41258a204cf8c534b5 [file] [log] [blame]
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";
};
}