~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 Adaptive Body Bias(ABB) SoC internal LDO regulator for Texas Instruments SoCs
  2 
  3 Required Properties:
  4 - compatible: Should be one of:
  5   - "ti,abb-v1" for older SoCs like OMAP3
  6   - "ti,abb-v2" for newer SoCs like OMAP4, OMAP5
  7   - "ti,abb-v3" for a generic definition where setup and control registers are
  8      provided (example: DRA7)
  9 - reg: Address and length of the register set for the device. It contains
 10   the information of registers in the same order as described by reg-names
 11 - reg-names: Should contain the reg names
 12   - "base-address"      - contains base address of ABB module (ti,abb-v1,ti,abb-v2)
 13   - "control-address"   - contains control register address of ABB module (ti,abb-v3)
 14   - "setup-address"     - contains setup register address of ABB module (ti,abb-v3)
 15   - "int-address"       - contains address of interrupt register for ABB module
 16   (also see Optional properties)
 17 - #address-cells: should be 0
 18 - #size-cells: should be 0
 19 - clocks: should point to the clock node used by ABB module
 20 - ti,settling-time: Settling time in uSecs from SoC documentation for ABB module
 21         to settle down(target time for SR2_WTCNT_VALUE).
 22 - ti,clock-cycles: SoC specific data about count of system ti,clock-cycles used for
 23         computing settling time from SoC Documentation for ABB module(clock
 24         cycles for SR2_WTCNT_VALUE).
 25 - ti,tranxdone-status-mask: Mask to the int-register to write-to-clear mask
 26         indicating LDO tranxdone (operation complete).
 27 - ti,abb_info: An array of 6-tuples u32 items providing information about ABB
 28         configuration needed per operational voltage of the device.
 29         Each item consists of the following in the same order:
 30         volt: voltage in uV - Only used to index ABB information.
 31         ABB mode: one of the following:
 32                 0-bypass
 33                 1-Forward Body Bias(FBB)
 34                 3-Reverse Body Bias(RBB)
 35         efuse:  (see Optional properties)
 36         RBB enable efuse Mask:  (See Optional properties)
 37         FBB enable efuse Mask:  (See Optional properties)
 38         Vset value efuse Mask:  (See Optional properties)
 39 
 40         NOTE: If more than 1 entry is present, then regulator is setup to change
 41               voltage, allowing for various modes to be selected indexed off
 42               the regulator. Further, ABB LDOs are considered always-on by
 43               default.
 44 
 45 Optional Properties:
 46 - reg-names: In addition to the required properties, the following are optional
 47   - "efuse-address"     - Contains efuse base address used to pick up ABB info.
 48   - "ldo-address"       - Contains address of ABB LDO override register.
 49         "efuse-address" is required for this.
 50 - ti,ldovbb-vset-mask   - Required if ldo-address is set, mask for LDO override
 51         register to provide override vset value.
 52 - ti,ldovbb-override-mask - Required if ldo-address is set, mask for LDO
 53         override register to enable override vset value.
 54 - ti,abb_opp_sel: Addendum to the description in required properties
 55         efuse: Mandatory if 'efuse-address' register is defined. Provides offset
 56                from efuse-address to pick up ABB characteristics. Set to 0 if
 57                'efuse-address' is not defined.
 58         RBB enable efuse Mask:  Optional if 'efuse-address' register is defined.
 59                 'ABB mode' is force set to RBB mode if value at "efuse-address"
 60                 + efuse maps to RBB mask. Set to 0 to ignore this.
 61         FBB enable efuse Mask:  Optional if 'efuse-address' register is defined.
 62                 'ABB mode' is force set to FBB mode if value at "efuse-address"
 63                 + efuse maps to FBB mask (valid only if RBB mask does not match)
 64                 Set to 0 to ignore this.
 65         Vset value efuse Mask:  Mandatory if ldo-address is set. Picks up from
 66                 efuse the value to set in 'ti,ldovbb-vset-mask' at ldo-address.
 67 
 68 Example #1: Simplest configuration (no efuse data, hard coded ABB table):
 69 abb_x: regulator-abb-x {
 70         compatible = "ti,abb-v1";
 71         regulator-name = "abb_x";
 72         #address-cells = <0>;
 73         #size-cells = <0>;
 74         reg = <0x483072f0 0x8>, <0x48306818 0x4>;
 75         reg-names = "base-address", "int-address";
 76         ti,tranxdone-status-mask = <0x4000000>;
 77         clocks = <&sysclk>;
 78         ti,settling-time = <30>;
 79         ti,clock-cycles = <8>;
 80         ti,abb_info = <
 81         /* uV           ABB     efuse   rbb_m   fbb_m   vset_m */
 82         1012500         0       0       0       0       0 /* Bypass */
 83         1200000         3       0       0       0       0 /* RBB mandatory */
 84         1320000         1       0       0       0       0 /* FBB mandatory */
 85         >;
 86 };
 87 
 88 Example #2: Efuse bits contain ABB mode setting (no LDO override capability)
 89 abb_y: regulator-abb-y {
 90         compatible = "ti,abb-v2";
 91         regulator-name = "abb_y";
 92         #address-cells = <0>;
 93         #size-cells = <0>;
 94         reg = <0x4a307bd0 0x8>, <0x4a306014 0x4>, <0x4A002268 0x8>;
 95         reg-names = "base-address", "int-address", "efuse-address";
 96         ti,tranxdone-status-mask = <0x4000000>;
 97         clocks = <&sysclk>;
 98         ti,settling-time = <50>;
 99         ti,clock-cycles = <16>;
100         ti,abb_info = <
101         /* uV           ABB     efuse   rbb_m   fbb_m   vset_m */
102         975000          0       0       0       0       0 /* Bypass */
103         1012500         0       0       0x40000 0       0 /* RBB optional */
104         1200000         0       0x4     0       0x40000 0 /* FBB optional */
105         1320000         1       0       0       0       0 /* FBB mandatory */
106         >;
107 };
108 
109 Example #3: Efuse bits contain ABB mode setting and LDO override capability
110 abb_z: regulator-abb-z {
111         compatible = "ti,abb-v2";
112         regulator-name = "abb_z";
113         #address-cells = <0>;
114         #size-cells = <0>;
115         reg = <0x4ae07ce4 0x8>, <0x4ae06010 0x4>,
116               <0x4a002194 0x8>, <0x4ae0C314 0x4>;
117         reg-names = "base-address", "int-address",
118                     "efuse-address", "ldo-address";
119         ti,tranxdone-status-mask = <0x8000000>;
120         /* LDOVBBMM_MUX_CTRL */
121         ti,ldovbb-override-mask = <0x400>;
122         /* LDOVBBMM_VSET_OUT */
123         ti,ldovbb-vset-mask = <0x1F>;
124         clocks = <&sysclk>;
125         ti,settling-time = <50>;
126         ti,clock-cycles = <16>;
127         ti,abb_info = <
128         /* uV   ABB     efuse   rbb_m   fbb_m   vset_m */
129         975000  0       0       0       0       0       /* Bypass */
130         1200000 0       0x4     0       0x40000 0x1f00  /* FBB optional, vset */
131         >;
132 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php