| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| # Copyright 2023 Realtek Semiconductor Corporation |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/pinctrl/realtek,rtd1315e-pinctrl.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Realtek DHC RTD1315E Pin Controller |
| |
| maintainers: |
| - TY Chang <tychang@realtek.com> |
| |
| description: |
| The Realtek DHC RTD1315E is a high-definition media processor SoC. The |
| RTD1315E pin controller is used to control pin function, pull up/down |
| resistor, drive strength, schmitt trigger and power source. |
| |
| properties: |
| compatible: |
| const: realtek,rtd1315e-pinctrl |
| |
| reg: |
| maxItems: 1 |
| |
| patternProperties: |
| '-pins$': |
| type: object |
| allOf: |
| - $ref: pincfg-node.yaml# |
| - $ref: pinmux-node.yaml# |
| |
| properties: |
| pins: |
| items: |
| enum: [ gpio_0, gpio_1, emmc_rst_n, emmc_dd_sb, emmc_clk, emmc_cmd, |
| gpio_6, gpio_7, gpio_8, gpio_9, gpio_10, gpio_11, gpio_12, |
| gpio_13, gpio_14, gpio_15, gpio_16, gpio_17, gpio_18, gpio_19, |
| gpio_20, emmc_data_0, emmc_data_1, emmc_data_2, usb_cc2, gpio_25, |
| gpio_26, gpio_27, gpio_28, gpio_29, gpio_30, gpio_31, gpio_32, |
| gpio_33, gpio_34, gpio_35, hif_data, hif_en, hif_rdy, hif_clk, |
| gpio_dummy_40, gpio_dummy_41, gpio_dummy_42, gpio_dummy_43, |
| gpio_dummy_44, gpio_dummy_45, gpio_46, gpio_47, gpio_48, gpio_49, |
| gpio_50, usb_cc1, emmc_data_3, emmc_data_4, ir_rx, ur0_rx, ur0_tx, |
| gpio_57, gpio_58, gpio_59, gpio_60, gpio_61, gpio_62, gpio_dummy_63, |
| gpio_dummy_64, gpio_dummy_65, gpio_66, gpio_67, gpio_68, gpio_69, |
| gpio_70, gpio_71, gpio_72, gpio_dummy_73, emmc_data_5, emmc_data_6, |
| emmc_data_7, gpio_dummy_77, gpio_78, gpio_79, gpio_80, gpio_81, |
| ur2_loc, gspi_loc, hi_width, sf_en, arm_trace_dbg_en, |
| ejtag_aucpu_loc, ejtag_acpu_loc, ejtag_vcpu_loc, ejtag_scpu_loc, |
| dmic_loc, vtc_dmic_loc, vtc_tdm_loc, vtc_i2si_loc, tdm_ai_loc, |
| ai_loc, spdif_loc, hif_en_loc, scan_switch, wd_rset, boot_sel, |
| reset_n, testmode ] |
| |
| function: |
| enum: [ gpio, nf, emmc, ao, gspi_loc0, gspi_loc1, uart0, uart1, |
| uart2_loc0, uart2_loc1, i2c0, i2c1, i2c4, i2c5, pcie1, |
| etn_led, etn_phy, spi, pwm0_loc0, pwm0_loc1, pwm1_loc0, |
| pwm1_loc1, pwm2_loc0, pwm2_loc1, pwm3_loc0, pwm3_loc1, |
| spdif_optical_loc0, spdif_optical_loc1, usb_cc1, usb_cc2, |
| sd, dmic_loc0, dmic_loc1, ai_loc0, ai_loc1, tdm_ai_loc0, |
| tdm_ai_loc1, hi_loc0, hi_m, vtc_i2so, vtc_i2si_loc0, |
| vtc_i2si_loc1, vtc_dmic_loc0, vtc_dmic_loc1, vtc_tdm_loc0, |
| vtc_tdm_loc1, dc_fan, pll_test_loc0, pll_test_loc1, |
| ir_rx, uart2_disable, gspi_disable, hi_width_disable, |
| hi_width_1bit, sf_disable, sf_enable, scpu_ejtag_loc0, |
| scpu_ejtag_loc1, scpu_ejtag_loc2, scpu_ejtag_loc3, |
| acpu_ejtag_loc0, acpu_ejtag_loc1, acpu_ejtag_loc2, |
| vcpu_ejtag_loc0, vcpu_ejtag_loc1, vcpu_ejtag_loc2, |
| aucpu_ejtag_loc0, aucpu_ejtag_loc1, aucpu_ejtag_loc2, |
| gpu_ejtag, iso_tristate, dbg_out0, dbg_out1, standby_dbg, |
| spdif, arm_trace_debug_disable, arm_trace_debug_enable, |
| aucpu_ejtag_disable, acpu_ejtag_disable, vcpu_ejtag_disable, |
| scpu_ejtag_disable, vtc_dmic_loc_disable, vtc_tdm_disable, |
| vtc_i2si_disable, tdm_ai_disable, ai_disable, spdif_disable, |
| hif_disable, hif_enable, test_loop, pmic_pwrup ] |
| |
| drive-strength: |
| enum: [4, 8] |
| |
| bias-pull-down: true |
| |
| bias-pull-up: true |
| |
| bias-disable: true |
| |
| input-schmitt-enable: true |
| |
| input-schmitt-disable: true |
| |
| drive-push-pull: true |
| |
| power-source: |
| description: | |
| Valid arguments are described as below: |
| 0: power supply of 1.8V |
| 1: power supply of 3.3V |
| enum: [0, 1] |
| |
| realtek,drive-strength-p: |
| description: | |
| Some of pins can be driven using the P-MOS and N-MOS transistor to |
| achieve finer adjustments. The block-diagram representation is as |
| follows: |
| VDD |
| | |
| ||--+ |
| +-----o|| P-MOS-FET |
| | ||--+ |
| IN --+ +----- out |
| | ||--+ |
| +------|| N-MOS-FET |
| ||--+ |
| | |
| GND |
| The driving strength of the P-MOS/N-MOS transistors impacts the |
| waveform's rise/fall times. Greater driving strength results in |
| shorter rise/fall times. Each P-MOS and N-MOS transistor offers |
| 8 configurable levels (0 to 7), with higher values indicating |
| greater driving strength, contributing to achieving the desired |
| speed. |
| |
| The realtek,drive-strength-p is used to control the driving strength |
| of the P-MOS output. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 0 |
| maximum: 7 |
| |
| realtek,drive-strength-n: |
| description: | |
| Similar to the realtek,drive-strength-p, the realtek,drive-strength-n |
| is used to control the driving strength of the N-MOS output. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 0 |
| maximum: 7 |
| |
| realtek,duty-cycle: |
| description: | |
| An integer describing the level to adjust output duty cycle, controlling |
| the proportion of positive and negative waveforms in nanoseconds. |
| Valid arguments are described as below: |
| 0: 0ns |
| 2: + 0.25ns |
| 3: + 0.5ns |
| 4: -0.25ns |
| 5: -0.5ns |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [ 0, 2, 3, 4, 5 ] |
| |
| required: |
| - pins |
| |
| additionalProperties: false |
| |
| required: |
| - compatible |
| - reg |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| pinctrl@4e000 { |
| compatible = "realtek,rtd1315e-pinctrl"; |
| reg = <0x4e000 0x130>; |
| |
| emmc-hs200-pins { |
| pins = "emmc_clk", |
| "emmc_cmd", |
| "emmc_data_0", |
| "emmc_data_1", |
| "emmc_data_2", |
| "emmc_data_3", |
| "emmc_data_4", |
| "emmc_data_5", |
| "emmc_data_6", |
| "emmc_data_7"; |
| function = "emmc"; |
| realtek,drive-strength-p = <0x2>; |
| realtek,drive-strength-n = <0x2>; |
| }; |
| |
| i2c-0-pins { |
| pins = "gpio_12", |
| "gpio_13"; |
| function = "i2c0"; |
| drive-strength = <4>; |
| }; |
| }; |