^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) Texas Instruments TWL6040 family
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) The TWL6040s are 8-channel high quality low-power audio codecs providing audio,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) vibra and GPO functionality on OMAP4+ platforms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) They are connected ot the host processor via i2c for commands, McPDM for audio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) data and commands.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) - compatible : "ti,twl6040" for twl6040, "ti,twl6041" for twl6041
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - reg: must be 0x4b for i2c address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) - interrupts: twl6040 has one interrupt line connecteded to the main SoC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) - gpio-controller:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) - #gpio-cells = <1>: twl6040 provides GPO lines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) - #clock-cells = <0>; twl6040 is a provider of pdmclk which is used by McPDM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) - twl6040,audpwron-gpio: Power on GPIO line for the twl6040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) - vio-supply: Regulator for the twl6040 VIO supply
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) - v2v1-supply: Regulator for the twl6040 V2V1 supply
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) Optional properties, nodes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) - enable-active-high: To power on the twl6040 during boot.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) - clocks: phandle to the clk32k and/or to mclk clock provider
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) - clock-names: Must be "clk32k" for the 32K clock and "mclk" for the MCLK.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) Vibra functionality
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) - vddvibl-supply: Regulator for the left vibra motor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) - vddvibr-supply: Regulator for the right vibra motor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) - vibra { }: Configuration section for vibra parameters containing the following
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) - ti,vibldrv-res: Resistance parameter for left driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) - ti,vibrdrv-res: Resistance parameter for right driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) - ti,viblmotor-res: Resistance parameter for left motor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) - ti,viblmotor-res: Resistance parameter for right motor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) Optional properties within vibra { } section:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) - vddvibl_uV: If the vddvibl default voltage need to be changed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) - vddvibr_uV: If the vddvibr default voltage need to be changed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) &i2c1 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) twl6040: twl@4b {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) compatible = "ti,twl6040";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) interrupts = <0 119 4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) interrupt-parent = <&gic>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) twl6040,audpwron-gpio = <&gpio4 31 0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) vio-supply = <&v1v8>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) v2v1-supply = <&v2v1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) enable-active-high;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) /* regulators for vibra motor */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) vddvibl-supply = <&vbat>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) vddvibr-supply = <&vbat>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) vibra {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) /* Vibra driver, motor resistance parameters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) ti,vibldrv-res = <8>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) ti,vibrdrv-res = <3>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) ti,viblmotor-res = <10>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) ti,vibrmotor-res = <10>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) /include/ "twl6040.dtsi"