1*84943d6fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*84943d6fSEmmanuel Vadot# Copyright 2023 Realtek Semiconductor Corporation 3*84943d6fSEmmanuel Vadot%YAML 1.2 4*84943d6fSEmmanuel Vadot--- 5*84943d6fSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/realtek,rtd1315e-pinctrl.yaml# 6*84943d6fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 7*84943d6fSEmmanuel Vadot 8*84943d6fSEmmanuel Vadottitle: Realtek DHC RTD1315E Pin Controller 9*84943d6fSEmmanuel Vadot 10*84943d6fSEmmanuel Vadotmaintainers: 11*84943d6fSEmmanuel Vadot - TY Chang <tychang@realtek.com> 12*84943d6fSEmmanuel Vadot 13*84943d6fSEmmanuel Vadotdescription: 14*84943d6fSEmmanuel Vadot The Realtek DHC RTD1315E is a high-definition media processor SoC. The 15*84943d6fSEmmanuel Vadot RTD1315E pin controller is used to control pin function, pull up/down 16*84943d6fSEmmanuel Vadot resistor, drive strength, schmitt trigger and power source. 17*84943d6fSEmmanuel Vadot 18*84943d6fSEmmanuel Vadotproperties: 19*84943d6fSEmmanuel Vadot compatible: 20*84943d6fSEmmanuel Vadot const: realtek,rtd1315e-pinctrl 21*84943d6fSEmmanuel Vadot 22*84943d6fSEmmanuel Vadot reg: 23*84943d6fSEmmanuel Vadot maxItems: 1 24*84943d6fSEmmanuel Vadot 25*84943d6fSEmmanuel VadotpatternProperties: 26*84943d6fSEmmanuel Vadot '-pins$': 27*84943d6fSEmmanuel Vadot type: object 28*84943d6fSEmmanuel Vadot allOf: 29*84943d6fSEmmanuel Vadot - $ref: pincfg-node.yaml# 30*84943d6fSEmmanuel Vadot - $ref: pinmux-node.yaml# 31*84943d6fSEmmanuel Vadot 32*84943d6fSEmmanuel Vadot properties: 33*84943d6fSEmmanuel Vadot pins: 34*84943d6fSEmmanuel Vadot items: 35*84943d6fSEmmanuel Vadot enum: [ gpio_0, gpio_1, emmc_rst_n, emmc_dd_sb, emmc_clk, emmc_cmd, 36*84943d6fSEmmanuel Vadot gpio_6, gpio_7, gpio_8, gpio_9, gpio_10, gpio_11, gpio_12, 37*84943d6fSEmmanuel Vadot gpio_13, gpio_14, gpio_15, gpio_16, gpio_17, gpio_18, gpio_19, 38*84943d6fSEmmanuel Vadot gpio_20, emmc_data_0, emmc_data_1, emmc_data_2, usb_cc2, gpio_25, 39*84943d6fSEmmanuel Vadot gpio_26, gpio_27, gpio_28, gpio_29, gpio_30, gpio_31, gpio_32, 40*84943d6fSEmmanuel Vadot gpio_33, gpio_34, gpio_35, hif_data, hif_en, hif_rdy, hif_clk, 41*84943d6fSEmmanuel Vadot gpio_dummy_40, gpio_dummy_41, gpio_dummy_42, gpio_dummy_43, 42*84943d6fSEmmanuel Vadot gpio_dummy_44, gpio_dummy_45, gpio_46, gpio_47, gpio_48, gpio_49, 43*84943d6fSEmmanuel Vadot gpio_50, usb_cc1, emmc_data_3, emmc_data_4, ir_rx, ur0_rx, ur0_tx, 44*84943d6fSEmmanuel Vadot gpio_57, gpio_58, gpio_59, gpio_60, gpio_61, gpio_62, gpio_dummy_63, 45*84943d6fSEmmanuel Vadot gpio_dummy_64, gpio_dummy_65, gpio_66, gpio_67, gpio_68, gpio_69, 46*84943d6fSEmmanuel Vadot gpio_70, gpio_71, gpio_72, gpio_dummy_73, emmc_data_5, emmc_data_6, 47*84943d6fSEmmanuel Vadot emmc_data_7, gpio_dummy_77, gpio_78, gpio_79, gpio_80, gpio_81, 48*84943d6fSEmmanuel Vadot ur2_loc, gspi_loc, hi_width, sf_en, arm_trace_dbg_en, 49*84943d6fSEmmanuel Vadot ejtag_aucpu_loc, ejtag_acpu_loc, ejtag_vcpu_loc, ejtag_scpu_loc, 50*84943d6fSEmmanuel Vadot dmic_loc, vtc_dmic_loc, vtc_tdm_loc, vtc_i2si_loc, tdm_ai_loc, 51*84943d6fSEmmanuel Vadot ai_loc, spdif_loc, hif_en_loc, scan_switch, wd_rset, boot_sel, 52*84943d6fSEmmanuel Vadot reset_n, testmode ] 53*84943d6fSEmmanuel Vadot 54*84943d6fSEmmanuel Vadot function: 55*84943d6fSEmmanuel Vadot enum: [ gpio, nf, emmc, ao, gspi_loc0, gspi_loc1, uart0, uart1, 56*84943d6fSEmmanuel Vadot uart2_loc0, uart2_loc1, i2c0, i2c1, i2c4, i2c5, pcie1, 57*84943d6fSEmmanuel Vadot etn_led, etn_phy, spi, pwm0_loc0, pwm0_loc1, pwm1_loc0, 58*84943d6fSEmmanuel Vadot pwm1_loc1, pwm2_loc0, pwm2_loc1, pwm3_loc0, pwm3_loc1, 59*84943d6fSEmmanuel Vadot spdif_optical_loc0, spdif_optical_loc1, usb_cc1, usb_cc2, 60*84943d6fSEmmanuel Vadot sd, dmic_loc0, dmic_loc1, ai_loc0, ai_loc1, tdm_ai_loc0, 61*84943d6fSEmmanuel Vadot tdm_ai_loc1, hi_loc0, hi_m, vtc_i2so, vtc_i2si_loc0, 62*84943d6fSEmmanuel Vadot vtc_i2si_loc1, vtc_dmic_loc0, vtc_dmic_loc1, vtc_tdm_loc0, 63*84943d6fSEmmanuel Vadot vtc_tdm_loc1, dc_fan, pll_test_loc0, pll_test_loc1, 64*84943d6fSEmmanuel Vadot ir_rx, uart2_disable, gspi_disable, hi_width_disable, 65*84943d6fSEmmanuel Vadot hi_width_1bit, sf_disable, sf_enable, scpu_ejtag_loc0, 66*84943d6fSEmmanuel Vadot scpu_ejtag_loc1, scpu_ejtag_loc2, scpu_ejtag_loc3, 67*84943d6fSEmmanuel Vadot acpu_ejtag_loc0, acpu_ejtag_loc1, acpu_ejtag_loc2, 68*84943d6fSEmmanuel Vadot vcpu_ejtag_loc0, vcpu_ejtag_loc1, vcpu_ejtag_loc2, 69*84943d6fSEmmanuel Vadot aucpu_ejtag_loc0, aucpu_ejtag_loc1, aucpu_ejtag_loc2, 70*84943d6fSEmmanuel Vadot gpu_ejtag, iso_tristate, dbg_out0, dbg_out1, standby_dbg, 71*84943d6fSEmmanuel Vadot spdif, arm_trace_debug_disable, arm_trace_debug_enable, 72*84943d6fSEmmanuel Vadot aucpu_ejtag_disable, acpu_ejtag_disable, vcpu_ejtag_disable, 73*84943d6fSEmmanuel Vadot scpu_ejtag_disable, vtc_dmic_loc_disable, vtc_tdm_disable, 74*84943d6fSEmmanuel Vadot vtc_i2si_disable, tdm_ai_disable, ai_disable, spdif_disable, 75*84943d6fSEmmanuel Vadot hif_disable, hif_enable, test_loop, pmic_pwrup ] 76*84943d6fSEmmanuel Vadot 77*84943d6fSEmmanuel Vadot drive-strength: 78*84943d6fSEmmanuel Vadot enum: [4, 8] 79*84943d6fSEmmanuel Vadot 80*84943d6fSEmmanuel Vadot bias-pull-down: true 81*84943d6fSEmmanuel Vadot 82*84943d6fSEmmanuel Vadot bias-pull-up: true 83*84943d6fSEmmanuel Vadot 84*84943d6fSEmmanuel Vadot bias-disable: true 85*84943d6fSEmmanuel Vadot 86*84943d6fSEmmanuel Vadot input-schmitt-enable: true 87*84943d6fSEmmanuel Vadot 88*84943d6fSEmmanuel Vadot input-schmitt-disable: true 89*84943d6fSEmmanuel Vadot 90*84943d6fSEmmanuel Vadot drive-push-pull: true 91*84943d6fSEmmanuel Vadot 92*84943d6fSEmmanuel Vadot power-source: 93*84943d6fSEmmanuel Vadot description: | 94*84943d6fSEmmanuel Vadot Valid arguments are described as below: 95*84943d6fSEmmanuel Vadot 0: power supply of 1.8V 96*84943d6fSEmmanuel Vadot 1: power supply of 3.3V 97*84943d6fSEmmanuel Vadot enum: [0, 1] 98*84943d6fSEmmanuel Vadot 99*84943d6fSEmmanuel Vadot realtek,drive-strength-p: 100*84943d6fSEmmanuel Vadot description: | 101*84943d6fSEmmanuel Vadot Some of pins can be driven using the P-MOS and N-MOS transistor to 102*84943d6fSEmmanuel Vadot achieve finer adjustments. The block-diagram representation is as 103*84943d6fSEmmanuel Vadot follows: 104*84943d6fSEmmanuel Vadot VDD 105*84943d6fSEmmanuel Vadot | 106*84943d6fSEmmanuel Vadot ||--+ 107*84943d6fSEmmanuel Vadot +-----o|| P-MOS-FET 108*84943d6fSEmmanuel Vadot | ||--+ 109*84943d6fSEmmanuel Vadot IN --+ +----- out 110*84943d6fSEmmanuel Vadot | ||--+ 111*84943d6fSEmmanuel Vadot +------|| N-MOS-FET 112*84943d6fSEmmanuel Vadot ||--+ 113*84943d6fSEmmanuel Vadot | 114*84943d6fSEmmanuel Vadot GND 115*84943d6fSEmmanuel Vadot The driving strength of the P-MOS/N-MOS transistors impacts the 116*84943d6fSEmmanuel Vadot waveform's rise/fall times. Greater driving strength results in 117*84943d6fSEmmanuel Vadot shorter rise/fall times. Each P-MOS and N-MOS transistor offers 118*84943d6fSEmmanuel Vadot 8 configurable levels (0 to 7), with higher values indicating 119*84943d6fSEmmanuel Vadot greater driving strength, contributing to achieving the desired 120*84943d6fSEmmanuel Vadot speed. 121*84943d6fSEmmanuel Vadot 122*84943d6fSEmmanuel Vadot The realtek,drive-strength-p is used to control the driving strength 123*84943d6fSEmmanuel Vadot of the P-MOS output. 124*84943d6fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 125*84943d6fSEmmanuel Vadot minimum: 0 126*84943d6fSEmmanuel Vadot maximum: 7 127*84943d6fSEmmanuel Vadot 128*84943d6fSEmmanuel Vadot realtek,drive-strength-n: 129*84943d6fSEmmanuel Vadot description: | 130*84943d6fSEmmanuel Vadot Similar to the realtek,drive-strength-p, the realtek,drive-strength-n 131*84943d6fSEmmanuel Vadot is used to control the driving strength of the N-MOS output. 132*84943d6fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 133*84943d6fSEmmanuel Vadot minimum: 0 134*84943d6fSEmmanuel Vadot maximum: 7 135*84943d6fSEmmanuel Vadot 136*84943d6fSEmmanuel Vadot realtek,duty-cycle: 137*84943d6fSEmmanuel Vadot description: | 138*84943d6fSEmmanuel Vadot An integer describing the level to adjust output duty cycle, controlling 139*84943d6fSEmmanuel Vadot the proportion of positive and negative waveforms in nanoseconds. 140*84943d6fSEmmanuel Vadot Valid arguments are described as below: 141*84943d6fSEmmanuel Vadot 0: 0ns 142*84943d6fSEmmanuel Vadot 2: + 0.25ns 143*84943d6fSEmmanuel Vadot 3: + 0.5ns 144*84943d6fSEmmanuel Vadot 4: -0.25ns 145*84943d6fSEmmanuel Vadot 5: -0.5ns 146*84943d6fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 147*84943d6fSEmmanuel Vadot enum: [ 0, 2, 3, 4, 5 ] 148*84943d6fSEmmanuel Vadot 149*84943d6fSEmmanuel Vadot required: 150*84943d6fSEmmanuel Vadot - pins 151*84943d6fSEmmanuel Vadot 152*84943d6fSEmmanuel Vadot additionalProperties: false 153*84943d6fSEmmanuel Vadot 154*84943d6fSEmmanuel Vadotrequired: 155*84943d6fSEmmanuel Vadot - compatible 156*84943d6fSEmmanuel Vadot - reg 157*84943d6fSEmmanuel Vadot 158*84943d6fSEmmanuel VadotadditionalProperties: false 159*84943d6fSEmmanuel Vadot 160*84943d6fSEmmanuel Vadotexamples: 161*84943d6fSEmmanuel Vadot - | 162*84943d6fSEmmanuel Vadot pinctrl@4e000 { 163*84943d6fSEmmanuel Vadot compatible = "realtek,rtd1315e-pinctrl"; 164*84943d6fSEmmanuel Vadot reg = <0x4e000 0x130>; 165*84943d6fSEmmanuel Vadot 166*84943d6fSEmmanuel Vadot emmc-hs200-pins { 167*84943d6fSEmmanuel Vadot pins = "emmc_clk", 168*84943d6fSEmmanuel Vadot "emmc_cmd", 169*84943d6fSEmmanuel Vadot "emmc_data_0", 170*84943d6fSEmmanuel Vadot "emmc_data_1", 171*84943d6fSEmmanuel Vadot "emmc_data_2", 172*84943d6fSEmmanuel Vadot "emmc_data_3", 173*84943d6fSEmmanuel Vadot "emmc_data_4", 174*84943d6fSEmmanuel Vadot "emmc_data_5", 175*84943d6fSEmmanuel Vadot "emmc_data_6", 176*84943d6fSEmmanuel Vadot "emmc_data_7"; 177*84943d6fSEmmanuel Vadot function = "emmc"; 178*84943d6fSEmmanuel Vadot realtek,drive-strength-p = <0x2>; 179*84943d6fSEmmanuel Vadot realtek,drive-strength-n = <0x2>; 180*84943d6fSEmmanuel Vadot }; 181*84943d6fSEmmanuel Vadot 182*84943d6fSEmmanuel Vadot i2c-0-pins { 183*84943d6fSEmmanuel Vadot pins = "gpio_12", 184*84943d6fSEmmanuel Vadot "gpio_13"; 185*84943d6fSEmmanuel Vadot function = "i2c0"; 186*84943d6fSEmmanuel Vadot drive-strength = <4>; 187*84943d6fSEmmanuel Vadot }; 188*84943d6fSEmmanuel Vadot }; 189