Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

spi: Tesla FSD support

Merge series from Alim Akhtar:

This series adds support for the SPI controller in the Tesla FSD SoC,
also pulling in:

git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git ib-mfd-spi-dt-v5.18

from the MFD tree which has dependencies for the DT bindings.

+1150 -431
+40
Documentation/devicetree/bindings/extcon/maxim,max77843.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/extcon/maxim,max77843.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Maxim MAX77843 MicroUSB and Companion Power Management IC Extcon 8 + 9 + maintainers: 10 + - Chanwoo Choi <cw00.choi@samsung.com> 11 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 12 + 13 + description: | 14 + This is a part of device tree bindings for Maxim MAX77843 MicroUSB 15 + Integrated Circuit (MUIC). 16 + 17 + See also Documentation/devicetree/bindings/mfd/maxim,max77843.yaml for 18 + additional information and example. 19 + 20 + properties: 21 + compatible: 22 + const: maxim,max77843-muic 23 + 24 + connector: 25 + $ref: /schemas/connector/usb-connector.yaml# 26 + 27 + ports: 28 + $ref: /schemas/graph.yaml#/properties/port 29 + description: 30 + Any connector to the data bus of this controller should be modelled using 31 + the OF graph bindings specified 32 + properties: 33 + port: 34 + $ref: /schemas/graph.yaml#/properties/port 35 + 36 + required: 37 + - compatible 38 + - connector 39 + 40 + additionalProperties: false
+17 -14
Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
··· 31 31 32 32 controller-data: 33 33 description: 34 - SPI controller data, see bindings/spi/spi-samsung.txt 34 + SPI controller data, see bindings/spi/samsung,spi-peripheral-props.yaml 35 35 type: object 36 36 37 37 google,cros-ec-spi-pre-delay: ··· 148 148 required: 149 149 - compatible 150 150 151 - if: 152 - properties: 153 - compatible: 154 - contains: 155 - enum: 156 - - google,cros-ec-i2c 157 - - google,cros-ec-rpmsg 158 - then: 159 - properties: 160 - google,cros-ec-spi-pre-delay: false 161 - google,cros-ec-spi-msg-delay: false 162 - spi-max-frequency: false 151 + allOf: 152 + - if: 153 + properties: 154 + compatible: 155 + contains: 156 + enum: 157 + - google,cros-ec-i2c 158 + - google,cros-ec-rpmsg 159 + then: 160 + properties: 161 + google,cros-ec-spi-pre-delay: false 162 + google,cros-ec-spi-msg-delay: false 163 + spi-max-frequency: false 164 + else: 165 + $ref: /schemas/spi/spi-peripheral-props.yaml 163 166 164 167 additionalProperties: false 165 168 ··· 203 200 spi-max-frequency = <5000000>; 204 201 205 202 proximity { 206 - compatible = "google,cros-ec-mkbp-proximity"; 203 + compatible = "google,cros-ec-mkbp-proximity"; 207 204 }; 208 205 209 206 cbas {
-147
Documentation/devicetree/bindings/mfd/max14577.txt
··· 1 - Maxim MAX14577/77836 Multi-Function Device 2 - 3 - MAX14577 is a Multi-Function Device with Micro-USB Interface Circuit, Li+ 4 - Battery Charger and SFOUT LDO output for powering USB devices. It is 5 - interfaced to host controller using I2C. 6 - 7 - MAX77836 additionally contains PMIC (with two LDO regulators) and Fuel Gauge. 8 - For the description of Fuel Gauge low SOC alert interrupt see: 9 - ../power/supply/max17040_battery.txt 10 - 11 - 12 - Required properties: 13 - - compatible : Must be "maxim,max14577" or "maxim,max77836". 14 - - reg : I2C slave address for the max14577 chip (0x25 for max14577/max77836) 15 - - interrupts : IRQ line for the chip. 16 - 17 - 18 - Required nodes: 19 - - charger : 20 - Node for configuring the charger driver. 21 - Required properties: 22 - - compatible : "maxim,max14577-charger" 23 - or "maxim,max77836-charger" 24 - - maxim,fast-charge-uamp : Current in uA for Fast Charge; 25 - Valid values: 26 - - for max14577: 90000 - 950000; 27 - - for max77836: 45000 - 475000; 28 - - maxim,eoc-uamp : Current in uA for End-Of-Charge mode; 29 - Valid values: 30 - - for max14577: 50000 - 200000; 31 - - for max77836: 5000 - 100000; 32 - - maxim,ovp-uvolt : OverVoltage Protection Threshold in uV; 33 - In an overvoltage condition, INT asserts and charging 34 - stops. Valid values: 35 - - 6000000, 6500000, 7000000, 7500000; 36 - - maxim,constant-uvolt : Battery Constant Voltage in uV; 37 - Valid values: 38 - - 4000000 - 4280000 (step by 20000); 39 - - 4350000; 40 - 41 - 42 - Optional nodes: 43 - - max14577-muic/max77836-muic : 44 - Node used only by extcon consumers. 45 - Required properties: 46 - - compatible : "maxim,max14577-muic" or "maxim,max77836-muic" 47 - 48 - - regulators : 49 - Required properties: 50 - - compatible : "maxim,max14577-regulator" 51 - or "maxim,max77836-regulator" 52 - 53 - May contain a sub-node per regulator from the list below. Each 54 - sub-node should contain the constraints and initialization information 55 - for that regulator. See regulator.txt for a description of standard 56 - properties for these sub-nodes. 57 - 58 - List of valid regulator names: 59 - - for max14577: CHARGER, SAFEOUT. 60 - - for max77836: CHARGER, SAFEOUT, LDO1, LDO2. 61 - 62 - The SAFEOUT is a fixed voltage regulator so there is no need to specify 63 - voltages for it. 64 - 65 - 66 - Example: 67 - 68 - #include <dt-bindings/interrupt-controller/irq.h> 69 - 70 - max14577@25 { 71 - compatible = "maxim,max14577"; 72 - reg = <0x25>; 73 - interrupt-parent = <&gpx1>; 74 - interrupts = <5 IRQ_TYPE_LEVEL_LOW>; 75 - 76 - muic: max14577-muic { 77 - compatible = "maxim,max14577-muic"; 78 - }; 79 - 80 - regulators { 81 - compatible = "maxim,max14577-regulator"; 82 - 83 - SAFEOUT { 84 - regulator-name = "SAFEOUT"; 85 - }; 86 - CHARGER { 87 - regulator-name = "CHARGER"; 88 - regulator-min-microamp = <90000>; 89 - regulator-max-microamp = <950000>; 90 - regulator-boot-on; 91 - }; 92 - }; 93 - 94 - charger { 95 - compatible = "maxim,max14577-charger"; 96 - 97 - maxim,constant-uvolt = <4350000>; 98 - maxim,fast-charge-uamp = <450000>; 99 - maxim,eoc-uamp = <50000>; 100 - maxim,ovp-uvolt = <6500000>; 101 - }; 102 - }; 103 - 104 - 105 - max77836@25 { 106 - compatible = "maxim,max77836"; 107 - reg = <0x25>; 108 - interrupt-parent = <&gpx1>; 109 - interrupts = <5 IRQ_TYPE_LEVEL_LOW>; 110 - 111 - muic: max77836-muic { 112 - compatible = "maxim,max77836-muic"; 113 - }; 114 - 115 - regulators { 116 - compatible = "maxim,max77836-regulator"; 117 - 118 - SAFEOUT { 119 - regulator-name = "SAFEOUT"; 120 - }; 121 - CHARGER { 122 - regulator-name = "CHARGER"; 123 - regulator-min-microamp = <90000>; 124 - regulator-max-microamp = <950000>; 125 - regulator-boot-on; 126 - }; 127 - LDO1 { 128 - regulator-name = "LDO1"; 129 - regulator-min-microvolt = <2700000>; 130 - regulator-max-microvolt = <2700000>; 131 - }; 132 - LDO2 { 133 - regulator-name = "LDO2"; 134 - regulator-min-microvolt = <800000>; 135 - regulator-max-microvolt = <3950000>; 136 - }; 137 - }; 138 - 139 - charger { 140 - compatible = "maxim,max77836-charger"; 141 - 142 - maxim,constant-uvolt = <4350000>; 143 - maxim,fast-charge-uamp = <225000>; 144 - maxim,eoc-uamp = <7500>; 145 - maxim,ovp-uvolt = <6500000>; 146 - }; 147 - };
-25
Documentation/devicetree/bindings/mfd/max77802.txt
··· 1 - Maxim MAX77802 multi-function device 2 - 3 - The Maxim MAX77802 is a Power Management IC (PMIC) that contains 10 high 4 - efficiency Buck regulators, 32 Low-DropOut (LDO) regulators used to power 5 - up application processors and peripherals, a 2-channel 32kHz clock outputs, 6 - a Real-Time-Clock (RTC) and a I2C interface to program the individual 7 - regulators, clocks outputs and the RTC. 8 - 9 - Bindings for the built-in 32k clock generator block and 10 - regulators are defined in ../clk/maxim,max77802.txt and 11 - ../regulator/max77802.txt respectively. 12 - 13 - Required properties: 14 - - compatible : Must be "maxim,max77802" 15 - - reg : Specifies the I2C slave address of PMIC block. 16 - - interrupts : I2C device IRQ line connected to the main SoC. 17 - 18 - Example: 19 - 20 - max77802: pmic@9 { 21 - compatible = "maxim,max77802"; 22 - interrupt-parent = <&intc>; 23 - interrupts = <26 IRQ_TYPE_NONE>; 24 - reg = <0x09>; 25 - };
+195
Documentation/devicetree/bindings/mfd/maxim,max14577.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mfd/maxim,max14577.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Maxim MAX14577/MAX77836 MicroUSB and Companion Power Management IC 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + 12 + description: | 13 + This is a part of device tree bindings for Maxim MAX14577/MAX77836 MicroUSB 14 + Integrated Circuit (MUIC). 15 + 16 + The Maxim MAX14577 is a MicroUSB and Companion Power Management IC which 17 + includes voltage safeout regulators, charger and MicroUSB management IC. 18 + 19 + The Maxim MAX77836 is a MicroUSB and Companion Power Management IC which 20 + includes voltage safeout and LDO regulators, charger, fuel-gauge and MicroUSB 21 + management IC. 22 + 23 + properties: 24 + compatible: 25 + enum: 26 + - maxim,max14577 27 + - maxim,max77836 28 + 29 + interrupts: 30 + maxItems: 1 31 + 32 + reg: 33 + maxItems: 1 34 + 35 + wakeup-source: true 36 + 37 + charger: 38 + $ref: /schemas/power/supply/maxim,max14577.yaml 39 + 40 + extcon: 41 + type: object 42 + properties: 43 + compatible: 44 + enum: 45 + - maxim,max14577-muic 46 + - maxim,max77836-muic 47 + 48 + required: 49 + - compatible 50 + 51 + regulators: 52 + $ref: /schemas/regulator/maxim,max14577.yaml 53 + 54 + required: 55 + - compatible 56 + - interrupts 57 + - reg 58 + - charger 59 + 60 + allOf: 61 + - if: 62 + properties: 63 + compatible: 64 + contains: 65 + const: maxim,max14577 66 + then: 67 + properties: 68 + charger: 69 + properties: 70 + compatible: 71 + const: maxim,max14577-charger 72 + extcon: 73 + properties: 74 + compatible: 75 + const: maxim,max14577-muic 76 + regulator: 77 + properties: 78 + compatible: 79 + const: maxim,max14577-regulator 80 + else: 81 + properties: 82 + charger: 83 + properties: 84 + compatible: 85 + const: maxim,max77836-charger 86 + extcon: 87 + properties: 88 + compatible: 89 + const: maxim,max77836-muic 90 + regulator: 91 + properties: 92 + compatible: 93 + const: maxim,max77836-regulator 94 + 95 + additionalProperties: false 96 + 97 + examples: 98 + - | 99 + #include <dt-bindings/interrupt-controller/irq.h> 100 + 101 + i2c { 102 + #address-cells = <1>; 103 + #size-cells = <0>; 104 + 105 + pmic@25 { 106 + compatible = "maxim,max14577"; 107 + reg = <0x25>; 108 + interrupt-parent = <&gpx1>; 109 + interrupts = <5 IRQ_TYPE_LEVEL_LOW>; 110 + 111 + extcon { 112 + compatible = "maxim,max14577-muic"; 113 + }; 114 + 115 + regulators { 116 + compatible = "maxim,max14577-regulator"; 117 + 118 + SAFEOUT { 119 + regulator-name = "SAFEOUT"; 120 + }; 121 + 122 + CHARGER { 123 + regulator-name = "CHARGER"; 124 + regulator-min-microamp = <90000>; 125 + regulator-max-microamp = <950000>; 126 + regulator-boot-on; 127 + }; 128 + }; 129 + 130 + charger { 131 + compatible = "maxim,max14577-charger"; 132 + 133 + maxim,constant-uvolt = <4350000>; 134 + maxim,fast-charge-uamp = <450000>; 135 + maxim,eoc-uamp = <50000>; 136 + maxim,ovp-uvolt = <6500000>; 137 + }; 138 + }; 139 + }; 140 + 141 + - | 142 + #include <dt-bindings/interrupt-controller/irq.h> 143 + 144 + i2c { 145 + #address-cells = <1>; 146 + #size-cells = <0>; 147 + 148 + pmic@25 { 149 + compatible = "maxim,max77836"; 150 + interrupt-parent = <&gpx1>; 151 + interrupts = <5 IRQ_TYPE_NONE>; 152 + reg = <0x25>; 153 + wakeup-source; 154 + 155 + extcon { 156 + compatible = "maxim,max77836-muic"; 157 + }; 158 + 159 + regulators { 160 + compatible = "maxim,max77836-regulator"; 161 + 162 + SAFEOUT { 163 + regulator-name = "SAFEOUT"; 164 + }; 165 + 166 + CHARGER { 167 + regulator-name = "CHARGER"; 168 + regulator-min-microamp = <45000>; 169 + regulator-max-microamp = <475000>; 170 + regulator-boot-on; 171 + }; 172 + 173 + LDO1 { 174 + regulator-name = "MOT_2.7V"; 175 + regulator-min-microvolt = <1100000>; 176 + regulator-max-microvolt = <2700000>; 177 + }; 178 + 179 + LDO2 { 180 + regulator-name = "UNUSED_LDO2"; 181 + regulator-min-microvolt = <800000>; 182 + regulator-max-microvolt = <3950000>; 183 + }; 184 + }; 185 + 186 + charger { 187 + compatible = "maxim,max77836-charger"; 188 + 189 + maxim,constant-uvolt = <4350000>; 190 + maxim,fast-charge-uamp = <225000>; 191 + maxim,eoc-uamp = <7500>; 192 + maxim,ovp-uvolt = <6500000>; 193 + }; 194 + }; 195 + };
+194
Documentation/devicetree/bindings/mfd/maxim,max77802.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mfd/maxim,max77802.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Maxim MAX77802 Power Management IC 8 + 9 + maintainers: 10 + - Javier Martinez Canillas <javier@dowhile0.org> 11 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 12 + 13 + description: | 14 + This is a part of device tree bindings for Maxim MAX77802 Power Management 15 + Integrated Circuit (PMIC). 16 + 17 + The Maxim MAX77802 is a Power Management IC which includes voltage and 18 + current regulators (10 high efficiency Buck regulators and 32 Low-DropOut 19 + (LDO)), RTC and clock outputs. 20 + 21 + The MAX77802 provides two 32.768khz clock outputs that can be controlled 22 + (gated/ungated) over I2C. The clock IDs are defined as preprocessor macros 23 + in dt-bindings/clock/maxim,max77802.h. 24 + 25 + properties: 26 + compatible: 27 + const: maxim,max77802 28 + 29 + '#clock-cells': 30 + const: 1 31 + 32 + interrupts: 33 + maxItems: 1 34 + 35 + reg: 36 + maxItems: 1 37 + 38 + regulators: 39 + $ref: /schemas/regulator/maxim,max77802.yaml 40 + description: 41 + List of child nodes that specify the regulators. 42 + 43 + inb1-supply: 44 + description: Power supply for buck1 45 + inb2-supply: 46 + description: Power supply for buck2 47 + inb3-supply: 48 + description: Power supply for buck3 49 + inb4-supply: 50 + description: Power supply for buck4 51 + inb5-supply: 52 + description: Power supply for buck5 53 + inb6-supply: 54 + description: Power supply for buck6 55 + inb7-supply: 56 + description: Power supply for buck7 57 + inb8-supply: 58 + description: Power supply for buck8 59 + inb9-supply: 60 + description: Power supply for buck9 61 + inb10-supply: 62 + description: Power supply for buck10 63 + 64 + inl1-supply: 65 + description: Power supply for LDO8, LDO15 66 + inl2-supply: 67 + description: Power supply for LDO17, LDO27, LDO30, LDO35 68 + inl3-supply: 69 + description: Power supply for LDO3, LDO5, LDO7, LDO7 70 + inl4-supply: 71 + description: Power supply for LDO10, LDO11, LDO13, LDO14 72 + inl5-supply: 73 + description: Power supply for LDO9, LDO19 74 + inl6-supply: 75 + description: Power supply for LDO4, LDO21, LDO24, LDO33 76 + inl7-supply: 77 + description: Power supply for LDO18, LDO20, LDO28, LDO29 78 + inl9-supply: 79 + description: Power supply for LDO12, LDO23, LDO25, LDO26, LDO32, LDO34 80 + inl10-supply: 81 + description: Power supply for LDO1, LDO2 82 + 83 + wakeup-source: true 84 + 85 + required: 86 + - compatible 87 + - '#clock-cells' 88 + - reg 89 + 90 + additionalProperties: false 91 + 92 + examples: 93 + - | 94 + #include <dt-bindings/interrupt-controller/irq.h> 95 + #include <dt-bindings/regulator/maxim,max77802.h> 96 + 97 + i2c { 98 + #address-cells = <1>; 99 + #size-cells = <0>; 100 + 101 + pmic@9 { 102 + compatible = "maxim,max77802"; 103 + interrupt-parent = <&gpx3>; 104 + interrupts = <1 IRQ_TYPE_NONE>; 105 + pinctrl-names = "default"; 106 + pinctrl-0 = <&max77802_irq>, <&pmic_selb>, 107 + <&pmic_dvs_1>, <&pmic_dvs_2>, <&pmic_dvs_3>; 108 + wakeup-source; 109 + reg = <0x9>; 110 + #clock-cells = <1>; 111 + 112 + inb1-supply = <&tps65090_dcdc2>; 113 + inb2-supply = <&tps65090_dcdc1>; 114 + inb3-supply = <&tps65090_dcdc2>; 115 + inb4-supply = <&tps65090_dcdc2>; 116 + inb5-supply = <&tps65090_dcdc1>; 117 + inb6-supply = <&tps65090_dcdc2>; 118 + inb7-supply = <&tps65090_dcdc1>; 119 + inb8-supply = <&tps65090_dcdc1>; 120 + inb9-supply = <&tps65090_dcdc1>; 121 + inb10-supply = <&tps65090_dcdc1>; 122 + 123 + inl1-supply = <&buck5_reg>; 124 + inl2-supply = <&buck7_reg>; 125 + inl3-supply = <&buck9_reg>; 126 + inl4-supply = <&buck9_reg>; 127 + inl5-supply = <&buck9_reg>; 128 + inl6-supply = <&tps65090_dcdc2>; 129 + inl7-supply = <&buck9_reg>; 130 + inl9-supply = <&tps65090_dcdc2>; 131 + inl10-supply = <&buck7_reg>; 132 + 133 + regulators { 134 + BUCK1 { 135 + regulator-name = "vdd_mif"; 136 + regulator-min-microvolt = <800000>; 137 + regulator-max-microvolt = <1300000>; 138 + regulator-always-on; 139 + regulator-boot-on; 140 + regulator-ramp-delay = <12500>; 141 + regulator-state-mem { 142 + regulator-off-in-suspend; 143 + }; 144 + }; 145 + 146 + BUCK2 { 147 + regulator-name = "vdd_arm"; 148 + regulator-min-microvolt = <800000>; 149 + regulator-max-microvolt = <1500000>; 150 + regulator-always-on; 151 + regulator-boot-on; 152 + regulator-ramp-delay = <12500>; 153 + regulator-coupled-with = <&buck3_reg>; 154 + regulator-coupled-max-spread = <300000>; 155 + regulator-state-mem { 156 + regulator-off-in-suspend; 157 + }; 158 + }; 159 + 160 + // ... 161 + 162 + BUCK10 { 163 + regulator-name = "vdd_1v8"; 164 + regulator-min-microvolt = <1800000>; 165 + regulator-max-microvolt = <1800000>; 166 + regulator-always-on; 167 + regulator-boot-on; 168 + regulator-state-mem { 169 + regulator-on-in-suspend; 170 + }; 171 + }; 172 + 173 + LDO1 { 174 + regulator-name = "vdd_1v0"; 175 + regulator-min-microvolt = <1000000>; 176 + regulator-max-microvolt = <1000000>; 177 + regulator-always-on; 178 + regulator-initial-mode = <MAX77802_OPMODE_NORMAL>; 179 + regulator-state-mem { 180 + regulator-on-in-suspend; 181 + regulator-mode = <MAX77802_OPMODE_LP>; 182 + }; 183 + }; 184 + 185 + // ... 186 + 187 + LDO35 { 188 + regulator-name = "ldo_35"; 189 + regulator-min-microvolt = <1200000>; 190 + regulator-max-microvolt = <1200000>; 191 + }; 192 + }; 193 + }; 194 + };
+144
Documentation/devicetree/bindings/mfd/maxim,max77843.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/mfd/maxim,max77843.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Maxim MAX77843 MicroUSB and Companion Power Management IC 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + 12 + description: | 13 + This is a part of device tree bindings for Maxim MAX77843 MicroUSB 14 + Integrated Circuit (MUIC). 15 + 16 + The Maxim MAX77843 is a MicroUSB and Companion Power Management IC which 17 + includes voltage current regulators, charger, fuel-gauge, haptic motor driver 18 + and MicroUSB management IC. 19 + 20 + properties: 21 + compatible: 22 + const: maxim,max77843 23 + 24 + interrupts: 25 + maxItems: 1 26 + 27 + reg: 28 + maxItems: 1 29 + 30 + extcon: 31 + $ref: /schemas/extcon/maxim,max77843.yaml 32 + 33 + motor-driver: 34 + type: object 35 + properties: 36 + compatible: 37 + const: maxim,max77843-haptic 38 + 39 + haptic-supply: 40 + description: Power supply to the haptic motor 41 + 42 + pwms: 43 + maxItems: 1 44 + 45 + required: 46 + - compatible 47 + - haptic-supply 48 + - pwms 49 + 50 + regulators: 51 + $ref: /schemas/regulator/maxim,max77843.yaml 52 + 53 + required: 54 + - compatible 55 + - interrupts 56 + - reg 57 + 58 + additionalProperties: false 59 + 60 + examples: 61 + - | 62 + #include <dt-bindings/interrupt-controller/irq.h> 63 + 64 + i2c { 65 + #address-cells = <1>; 66 + #size-cells = <0>; 67 + 68 + pmic@66 { 69 + compatible = "maxim,max77843"; 70 + interrupt-parent = <&gpa1>; 71 + interrupts = <5 IRQ_TYPE_EDGE_FALLING>; 72 + reg = <0x66>; 73 + 74 + extcon { 75 + compatible = "maxim,max77843-muic"; 76 + 77 + connector { 78 + compatible = "samsung,usb-connector-11pin", 79 + "usb-b-connector"; 80 + label = "micro-USB"; 81 + type = "micro"; 82 + 83 + ports { 84 + #address-cells = <1>; 85 + #size-cells = <0>; 86 + 87 + port@0 { 88 + /* 89 + * TODO: The DTS this is based on does not have 90 + * port@0 which is a required property. The ports 91 + * look incomplete and need fixing. 92 + * Add a disabled port just to satisfy dtschema. 93 + */ 94 + reg = <0>; 95 + status = "disabled"; 96 + }; 97 + 98 + port@3 { 99 + reg = <3>; 100 + endpoint { 101 + remote-endpoint = <&mhl_to_musb_con>; 102 + }; 103 + }; 104 + }; 105 + }; 106 + 107 + ports { 108 + port { 109 + endpoint { 110 + remote-endpoint = <&usb_to_muic>; 111 + }; 112 + }; 113 + }; 114 + }; 115 + 116 + regulators { 117 + compatible = "maxim,max77843-regulator"; 118 + 119 + SAFEOUT1 { 120 + regulator-name = "SAFEOUT1"; 121 + regulator-min-microvolt = <3300000>; 122 + regulator-max-microvolt = <4950000>; 123 + }; 124 + 125 + SAFEOUT2 { 126 + regulator-name = "SAFEOUT2"; 127 + regulator-min-microvolt = <3300000>; 128 + regulator-max-microvolt = <4950000>; 129 + }; 130 + 131 + CHARGER { 132 + regulator-name = "CHARGER"; 133 + regulator-min-microamp = <100000>; 134 + regulator-max-microamp = <3150000>; 135 + }; 136 + }; 137 + 138 + motor-driver { 139 + compatible = "maxim,max77843-haptic"; 140 + haptic-supply = <&ldo38_reg>; 141 + pwms = <&pwm 0 33670 0>; 142 + }; 143 + }; 144 + };
+84
Documentation/devicetree/bindings/power/supply/maxim,max14577.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/power/supply/maxim,max14577.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Maxim MAX14577/MAX77836 MicroUSB and Companion Power Management IC Charger 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + 12 + description: | 13 + This is a part of device tree bindings for Maxim MAX14577/MAX77836 MicroUSB 14 + Integrated Circuit (MUIC). 15 + 16 + See also Documentation/devicetree/bindings/mfd/maxim,max14577.yaml for 17 + additional information and example. 18 + 19 + properties: 20 + compatible: 21 + enum: 22 + - maxim,max14577-charger 23 + - maxim,max77836-charger 24 + 25 + maxim,constant-uvolt: 26 + description: 27 + Battery Constant Voltage in uV 28 + $ref: /schemas/types.yaml#/definitions/uint32 29 + minimum: 4000000 30 + maximum: 4350000 31 + 32 + maxim,eoc-uamp: 33 + description: | 34 + Current in uA for End-Of-Charge mode. 35 + MAX14577: 50000-20000 36 + MAX77836: 5000-100000 37 + $ref: /schemas/types.yaml#/definitions/uint32 38 + 39 + maxim,fast-charge-uamp: 40 + description: | 41 + Current in uA for Fast Charge 42 + MAX14577: 90000-950000 43 + MAX77836: 45000-475000 44 + $ref: /schemas/types.yaml#/definitions/uint32 45 + 46 + maxim,ovp-uvolt: 47 + description: 48 + OverVoltage Protection Threshold in uV; In an overvoltage condition, INT 49 + asserts and charging stops. 50 + $ref: /schemas/types.yaml#/definitions/uint32 51 + enum: [6000000, 6500000, 7000000, 7500000] 52 + 53 + required: 54 + - compatible 55 + - maxim,constant-uvolt 56 + - maxim,eoc-uamp 57 + - maxim,fast-charge-uamp 58 + - maxim,ovp-uvolt 59 + 60 + allOf: 61 + - if: 62 + properties: 63 + compatible: 64 + contains: 65 + const: maxim,max14577-charger 66 + then: 67 + properties: 68 + maxim,eoc-uamp: 69 + minimum: 50000 70 + maximum: 200000 71 + maxim,fast-charge-uamp: 72 + minimum: 90000 73 + maximum: 950000 74 + else: 75 + # max77836 76 + properties: 77 + maxim,eoc-uamp: 78 + minimum: 5000 79 + maximum: 100000 80 + maxim,fast-charge-uamp: 81 + minimum: 45000 82 + maximum: 475000 83 + 84 + additionalProperties: false
-111
Documentation/devicetree/bindings/regulator/max77802.txt
··· 1 - Binding for Maxim MAX77802 regulators 2 - 3 - This is a part of device tree bindings of MAX77802 multi-function device. 4 - More information can be found in bindings/mfd/max77802.txt file. 5 - 6 - The MAX77802 PMIC has 10 high-efficiency Buck and 32 Low-dropout (LDO) 7 - regulators that can be controlled over I2C. 8 - 9 - Following properties should be present in main device node of the MFD chip. 10 - 11 - Optional properties: 12 - - inb1-supply: The input supply for BUCK1 13 - - inb2-supply: The input supply for BUCK2 14 - - inb3-supply: The input supply for BUCK3 15 - - inb4-supply: The input supply for BUCK4 16 - - inb5-supply: The input supply for BUCK5 17 - - inb6-supply: The input supply for BUCK6 18 - - inb7-supply: The input supply for BUCK7 19 - - inb8-supply: The input supply for BUCK8 20 - - inb9-supply: The input supply for BUCK9 21 - - inb10-supply: The input supply for BUCK10 22 - - inl1-supply: The input supply for LDO8 and LDO15 23 - - inl2-supply: The input supply for LDO17, LDO27, LDO30 and LDO35 24 - - inl3-supply: The input supply for LDO3, LDO5, LDO6 and LDO7 25 - - inl4-supply: The input supply for LDO10, LDO11, LDO13 and LDO14 26 - - inl5-supply: The input supply for LDO9 and LDO19 27 - - inl6-supply: The input supply for LDO4, LDO21, LDO24 and LDO33 28 - - inl7-supply: The input supply for LDO18, LDO20, LDO28 and LDO29 29 - - inl9-supply: The input supply for LDO12, LDO23, LDO25, LDO26, LDO32 and LDO34 30 - - inl10-supply: The input supply for LDO1 and LDO2 31 - 32 - Optional nodes: 33 - - regulators : The regulators of max77802 have to be instantiated 34 - under subnode named "regulators" using the following format. 35 - 36 - regulator-name { 37 - standard regulator constraints.... 38 - }; 39 - refer Documentation/devicetree/bindings/regulator/regulator.txt 40 - 41 - The regulator node name should be initialized with a string to get matched 42 - with their hardware counterparts as follow. The valid names are: 43 - 44 - -LDOn : for LDOs, where n can lie in ranges 1-15, 17-21, 23-30 45 - and 32-35. 46 - example: LDO1, LDO2, LDO35. 47 - -BUCKn : for BUCKs, where n can lie in range 1 to 10. 48 - example: BUCK1, BUCK5, BUCK10. 49 - 50 - The max77802 regulator supports two different operating modes: Normal and Low 51 - Power Mode. Some regulators support the modes to be changed at startup or by 52 - the consumers during normal operation while others only support to change the 53 - mode during system suspend. The standard regulator suspend states binding can 54 - be used to configure the regulator operating mode. 55 - 56 - The regulators that support the standard "regulator-initial-mode" property, 57 - changing their mode during normal operation are: LDOs 1, 3, 20 and 21. 58 - 59 - The possible values for "regulator-initial-mode" and "regulator-mode" are: 60 - 1: Normal regulator voltage output mode. 61 - 3: Low Power which reduces the quiescent current down to only 1uA 62 - 63 - The valid modes list is defined in the dt-bindings/regulator/maxim,max77802.h 64 - header and can be included by device tree source files. 65 - 66 - The standard "regulator-mode" property can only be used for regulators that 67 - support changing their mode to Low Power Mode during suspend. These regulators 68 - are: BUCKs 2-4 and LDOs 1-35. Also, it only takes effect if the regulator has 69 - been enabled for the given suspend state using "regulator-on-in-suspend" and 70 - has not been disabled for that state using "regulator-off-in-suspend". 71 - 72 - Example: 73 - 74 - max77802@9 { 75 - compatible = "maxim,max77802"; 76 - interrupt-parent = <&wakeup_eint>; 77 - interrupts = <26 0>; 78 - reg = <0x09>; 79 - #address-cells = <1>; 80 - #size-cells = <0>; 81 - 82 - inb1-supply = <&parent_reg>; 83 - 84 - regulators { 85 - ldo1_reg: LDO1 { 86 - regulator-name = "vdd_1v0"; 87 - regulator-min-microvolt = <1000000>; 88 - regulator-max-microvolt = <1000000>; 89 - regulator-always-on; 90 - regulator-initial-mode = <MAX77802_OPMODE_LP>; 91 - }; 92 - 93 - ldo11_reg: LDO11 { 94 - regulator-name = "vdd_ldo11"; 95 - regulator-min-microvolt = <1900000>; 96 - regulator-max-microvolt = <1900000>; 97 - regulator-always-on; 98 - regulator-state-mem { 99 - regulator-on-in-suspend; 100 - regulator-mode = <MAX77802_OPMODE_LP>; 101 - }; 102 - }; 103 - 104 - buck1_reg: BUCK1 { 105 - regulator-name = "vdd_mif"; 106 - regulator-min-microvolt = <950000>; 107 - regulator-max-microvolt = <1300000>; 108 - regulator-always-on; 109 - regulator-boot-on; 110 - }; 111 - };
+78
Documentation/devicetree/bindings/regulator/maxim,max14577.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/regulator/maxim,max14577.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Maxim MAX14577/MAX77836 MicroUSB and Companion Power Management IC regulators 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + 12 + description: | 13 + This is a part of device tree bindings for Maxim MAX14577/MAX77836 MicroUSB 14 + Integrated Circuit (MUIC). 15 + 16 + See also Documentation/devicetree/bindings/mfd/maxim,max14577.yaml for 17 + additional information and example. 18 + 19 + properties: 20 + compatible: 21 + enum: 22 + - maxim,max14577-regulator 23 + - maxim,max77836-regulator 24 + 25 + CHARGER: 26 + type: object 27 + $ref: regulator.yaml# 28 + unevaluatedProperties: false 29 + description: | 30 + Current regulator. 31 + 32 + properties: 33 + regulator-min-microvolt: false 34 + regulator-max-microvolt: false 35 + 36 + SAFEOUT: 37 + type: object 38 + $ref: regulator.yaml# 39 + unevaluatedProperties: false 40 + description: | 41 + Safeout LDO regulator (fixed voltage). 42 + 43 + properties: 44 + regulator-min-microamp: false 45 + regulator-max-microamp: false 46 + regulator-min-microvolt: 47 + const: 4900000 48 + regulator-max-microvolt: 49 + const: 4900000 50 + 51 + patternProperties: 52 + "^LDO[12]$": 53 + type: object 54 + $ref: regulator.yaml# 55 + unevaluatedProperties: false 56 + description: | 57 + Current regulator. 58 + 59 + properties: 60 + regulator-min-microamp: false 61 + regulator-max-microamp: false 62 + regulator-min-microvolt: 63 + minimum: 800000 64 + regulator-max-microvolt: 65 + maximum: 3950000 66 + 67 + allOf: 68 + - if: 69 + properties: 70 + compatible: 71 + contains: 72 + const: maxim,max14577-regulator 73 + then: 74 + properties: 75 + LDO1: false 76 + LDO2: false 77 + 78 + additionalProperties: false
+85
Documentation/devicetree/bindings/regulator/maxim,max77802.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/regulator/maxim,max77802.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Maxim MAX77802 Power Management IC regulators 8 + 9 + maintainers: 10 + - Javier Martinez Canillas <javier@dowhile0.org> 11 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 12 + 13 + description: | 14 + This is a part of device tree bindings for Maxim MAX77802 Power Management 15 + Integrated Circuit (PMIC). 16 + 17 + The Maxim MAX77686 provides 10 high-efficiency Buck and 32 Low-DropOut (LDO) 18 + regulators. 19 + 20 + See also Documentation/devicetree/bindings/mfd/maxim,max77802.yaml for 21 + additional information and example. 22 + 23 + Certain regulators support "regulator-initial-mode" and "regulator-mode". 24 + The valid modes list is defined in the dt-bindings/regulator/maxim,max77802.h 25 + and their meaning is:: 26 + 1 - Normal regulator voltage output mode. 27 + 3 - Low Power which reduces the quiescent current down to only 1uA 28 + 29 + The standard "regulator-mode" property can only be used for regulators that 30 + support changing their mode to Low Power Mode during suspend. These 31 + regulators are:: bucks 2-4 and LDOs 1-35. Also, it only takes effect if the 32 + regulator has been enabled for the given suspend state using 33 + "regulator-on-in-suspend" and has not been disabled for that state using 34 + "regulator-off-in-suspend". 35 + 36 + patternProperties: 37 + # LDO1, LDO3, LDO20, LDO21 38 + "^LDO([13]|2[01])$": 39 + type: object 40 + $ref: regulator.yaml# 41 + unevaluatedProperties: false 42 + description: 43 + LDOs supporting the regulator-initial-mode property and changing their 44 + mode during normal operation. 45 + 46 + # LDO2, LDO4-15, LDO17-19, LDO23-30, LDO32-35 47 + "^LDO([24-9]|1[0-5789]|2[3-9]|3[02345])$": 48 + type: object 49 + $ref: regulator.yaml# 50 + unevaluatedProperties: false 51 + description: 52 + LDOs supporting the regulator-mode property (changing mode to Low Power 53 + Mode during suspend). 54 + 55 + properties: 56 + regulator-initial-mode: false 57 + 58 + # buck2-4 59 + "^BUCK[2-4]$": 60 + type: object 61 + $ref: regulator.yaml# 62 + unevaluatedProperties: false 63 + description: 64 + bucks supporting the regulator-mode property (changing mode to Low Power 65 + Mode during suspend). 66 + 67 + properties: 68 + regulator-initial-mode: false 69 + 70 + # buck1, buck5-10 71 + "^BUCK([15-9]|10)$": 72 + type: object 73 + $ref: regulator.yaml# 74 + unevaluatedProperties: false 75 + 76 + properties: 77 + regulator-initial-mode: false 78 + 79 + patternProperties: 80 + regulator-state-(standby|mem|disk): 81 + type: object 82 + properties: 83 + regulator-mode: false 84 + 85 + additionalProperties: false
+65
Documentation/devicetree/bindings/regulator/maxim,max77843.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/regulator/maxim,max77843.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Maxim MAX77843 MicroUSB and Companion Power Management IC regulators 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + 12 + description: | 13 + This is a part of device tree bindings for Maxim MAX77843 MicroUSB Integrated 14 + Circuit (MUIC). 15 + 16 + See also Documentation/devicetree/bindings/mfd/maxim,max77843.yaml for 17 + additional information and example. 18 + 19 + properties: 20 + compatible: 21 + const: maxim,max77843-regulator 22 + 23 + CHARGER: 24 + type: object 25 + $ref: regulator.yaml# 26 + additionalProperties: false 27 + description: | 28 + Current regulator. 29 + 30 + properties: 31 + regulator-name: true 32 + regulator-always-on: true 33 + regulator-boot-on: true 34 + regulator-min-microamp: 35 + minimum: 100000 36 + regulator-max-microamp: 37 + maximum: 3150000 38 + 39 + required: 40 + - regulator-name 41 + 42 + patternProperties: 43 + "^SAFEOUT[12]$": 44 + type: object 45 + $ref: regulator.yaml# 46 + additionalProperties: false 47 + description: | 48 + Safeout LDO regulator. 49 + 50 + properties: 51 + regulator-name: true 52 + regulator-always-on: true 53 + regulator-boot-on: true 54 + regulator-min-microvolt: 55 + minimum: 3300000 56 + regulator-max-microvolt: 57 + maximum: 4950000 58 + 59 + required: 60 + - regulator-name 61 + 62 + required: 63 + - compatible 64 + 65 + additionalProperties: false
+1 -1
Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml
··· 22 22 23 23 [1] Documentation/devicetree/bindings/serial/samsung_uart.yaml 24 24 [2] Documentation/devicetree/bindings/i2c/i2c-exynos5.txt 25 - [3] Documentation/devicetree/bindings/spi/spi-samsung.txt 25 + [3] Documentation/devicetree/bindings/spi/samsung,spi.yaml 26 26 27 27 properties: 28 28 $nodename:
+33
Documentation/devicetree/bindings/spi/samsung,spi-peripheral-props.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/spi/samsung,spi-peripheral-props.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Peripheral-specific properties for Samsung S3C/S5P/Exynos SoC SPI controller 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + 12 + description: 13 + See spi-peripheral-props.yaml for more info. 14 + 15 + properties: 16 + controller-data: 17 + type: object 18 + additionalProperties: false 19 + 20 + properties: 21 + samsung,spi-feedback-delay: 22 + description: | 23 + The sampling phase shift to be applied on the miso line (to account 24 + for any lag in the miso line). Valid values: 25 + - 0: No phase shift. 26 + - 1: 90 degree phase shift sampling. 27 + - 2: 180 degree phase shift sampling. 28 + - 3: 270 degree phase shift sampling. 29 + $ref: /schemas/types.yaml#/definitions/uint32 30 + enum: [0, 1, 2, 3] 31 + default: 0 32 + 33 + additionalProperties: true
+188
Documentation/devicetree/bindings/spi/samsung,spi.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/spi/samsung,spi.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Samsung S3C/S5P/Exynos SoC SPI controller 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11 + 12 + description: 13 + All the SPI controller nodes should be represented in the aliases node using 14 + the following format 'spi{n}' where n is a unique number for the alias. 15 + 16 + properties: 17 + compatible: 18 + oneOf: 19 + - enum: 20 + - samsung,s3c2443-spi # for S3C2443, S3C2416 and S3C2450 21 + - samsung,s3c6410-spi 22 + - samsung,s5pv210-spi # for S5PV210 and S5PC110 23 + - samsung,exynos5433-spi 24 + - tesla,fsd-spi 25 + - const: samsung,exynos7-spi 26 + deprecated: true 27 + 28 + clocks: 29 + minItems: 2 30 + maxItems: 3 31 + 32 + clock-names: 33 + minItems: 2 34 + maxItems: 3 35 + 36 + cs-gpios: true 37 + 38 + dmas: 39 + minItems: 2 40 + maxItems: 2 41 + 42 + dma-names: 43 + items: 44 + - const: tx 45 + - const: rx 46 + 47 + interrupts: 48 + maxItems: 1 49 + 50 + no-cs-readback: 51 + description: 52 + The CS line is disconnected, therefore the device should not operate 53 + based on CS signalling. 54 + type: boolean 55 + 56 + num-cs: 57 + minimum: 1 58 + maximum: 4 59 + default: 1 60 + 61 + samsung,spi-src-clk: 62 + description: 63 + If the spi controller includes a internal clock mux to select the clock 64 + source for the spi bus clock, this property can be used to indicate the 65 + clock to be used for driving the spi bus clock. If not specified, the 66 + clock number 0 is used as default. 67 + $ref: /schemas/types.yaml#/definitions/uint32 68 + default: 0 69 + 70 + reg: 71 + maxItems: 1 72 + 73 + required: 74 + - compatible 75 + - clocks 76 + - clock-names 77 + - dmas 78 + - dma-names 79 + - interrupts 80 + - reg 81 + 82 + allOf: 83 + - $ref: spi-controller.yaml# 84 + - if: 85 + properties: 86 + compatible: 87 + contains: 88 + const: samsung,exynos5433-spi 89 + then: 90 + properties: 91 + clocks: 92 + minItems: 3 93 + maxItems: 3 94 + clock-names: 95 + items: 96 + - const: spi 97 + - enum: 98 + - spi_busclk0 99 + - spi_busclk1 100 + - spi_busclk2 101 + - spi_busclk3 102 + - const: spi_ioclk 103 + else: 104 + properties: 105 + clocks: 106 + minItems: 2 107 + maxItems: 2 108 + clock-names: 109 + items: 110 + - const: spi 111 + - enum: 112 + - spi_busclk0 113 + - spi_busclk1 114 + - spi_busclk2 115 + - spi_busclk3 116 + 117 + unevaluatedProperties: false 118 + 119 + examples: 120 + - | 121 + #include <dt-bindings/clock/exynos5433.h> 122 + #include <dt-bindings/clock/samsung,s2mps11.h> 123 + #include <dt-bindings/interrupt-controller/arm-gic.h> 124 + #include <dt-bindings/gpio/gpio.h> 125 + 126 + spi@14d30000 { 127 + compatible = "samsung,exynos5433-spi"; 128 + reg = <0x14d30000 0x100>; 129 + interrupts = <GIC_SPI 433 IRQ_TYPE_LEVEL_HIGH>; 130 + dmas = <&pdma0 11>, <&pdma0 10>; 131 + dma-names = "tx", "rx"; 132 + #address-cells = <1>; 133 + #size-cells = <0>; 134 + clocks = <&cmu_peric CLK_PCLK_SPI1>, 135 + <&cmu_peric CLK_SCLK_SPI1>, 136 + <&cmu_peric CLK_SCLK_IOCLK_SPI1>; 137 + clock-names = "spi", 138 + "spi_busclk0", 139 + "spi_ioclk"; 140 + samsung,spi-src-clk = <0>; 141 + pinctrl-names = "default"; 142 + pinctrl-0 = <&spi1_bus>; 143 + num-cs = <1>; 144 + 145 + cs-gpios = <&gpd6 3 GPIO_ACTIVE_HIGH>; 146 + 147 + audio-codec@0 { 148 + compatible = "wlf,wm5110"; 149 + reg = <0x0>; 150 + spi-max-frequency = <20000000>; 151 + interrupt-parent = <&gpa0>; 152 + interrupts = <4 IRQ_TYPE_NONE>; 153 + clocks = <&pmu_system_controller 0>, 154 + <&s2mps13_osc S2MPS11_CLK_BT>; 155 + clock-names = "mclk1", "mclk2"; 156 + 157 + gpio-controller; 158 + #gpio-cells = <2>; 159 + interrupt-controller; 160 + #interrupt-cells = <2>; 161 + 162 + wlf,micd-detect-debounce = <300>; 163 + wlf,micd-bias-start-time = <0x1>; 164 + wlf,micd-rate = <0x7>; 165 + wlf,micd-dbtime = <0x2>; 166 + wlf,micd-force-micbias; 167 + wlf,micd-configs = <0x0 1 0>; 168 + wlf,hpdet-channel = <1>; 169 + wlf,gpsw = <0x1>; 170 + wlf,inmode = <2 0 2 0>; 171 + 172 + wlf,reset = <&gpc0 7 GPIO_ACTIVE_HIGH>; 173 + wlf,ldoena = <&gpf0 0 GPIO_ACTIVE_HIGH>; 174 + 175 + /* core supplies */ 176 + AVDD-supply = <&ldo18_reg>; 177 + DBVDD1-supply = <&ldo18_reg>; 178 + CPVDD-supply = <&ldo18_reg>; 179 + DBVDD2-supply = <&ldo18_reg>; 180 + DBVDD3-supply = <&ldo18_reg>; 181 + SPKVDDL-supply = <&ldo18_reg>; 182 + SPKVDDR-supply = <&ldo18_reg>; 183 + 184 + controller-data { 185 + samsung,spi-feedback-delay = <0>; 186 + }; 187 + }; 188 + };
+1
Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
··· 111 111 # The controller specific properties go here. 112 112 allOf: 113 113 - $ref: cdns,qspi-nor-peripheral-props.yaml# 114 + - $ref: samsung,spi-peripheral-props.yaml# 114 115 115 116 additionalProperties: true
-122
Documentation/devicetree/bindings/spi/spi-samsung.txt
··· 1 - * Samsung SPI Controller 2 - 3 - The Samsung SPI controller is used to interface with various devices such as flash 4 - and display controllers using the SPI communication interface. 5 - 6 - Required SoC Specific Properties: 7 - 8 - - compatible: should be one of the following. 9 - - samsung,s3c2443-spi: for s3c2443, s3c2416 and s3c2450 platforms 10 - - samsung,s3c6410-spi: for s3c6410 platforms 11 - - samsung,s5pv210-spi: for s5pv210 and s5pc110 platforms 12 - - samsung,exynos5433-spi: for exynos5433 compatible controllers 13 - - samsung,exynos7-spi: for exynos7 platforms <DEPRECATED> 14 - 15 - - reg: physical base address of the controller and length of memory mapped 16 - region. 17 - 18 - - interrupts: The interrupt number to the cpu. The interrupt specifier format 19 - depends on the interrupt controller. 20 - 21 - - dmas : Two or more DMA channel specifiers following the convention outlined 22 - in bindings/dma/dma.txt 23 - 24 - - dma-names: Names for the dma channels. There must be at least one channel 25 - named "tx" for transmit and named "rx" for receive. 26 - 27 - - clocks: specifies the clock IDs provided to the SPI controller; they are 28 - required for interacting with the controller itself, for synchronizing the bus 29 - and as I/O clock (the latter is required by exynos5433 and exynos7). 30 - 31 - - clock-names: string names of the clocks in the 'clocks' property; for all the 32 - the devices the names must be "spi", "spi_busclkN" (where N is determined by 33 - "samsung,spi-src-clk"), while Exynos5433 should specify a third clock 34 - "spi_ioclk" for the I/O clock. 35 - 36 - Required Board Specific Properties: 37 - 38 - - #address-cells: should be 1. 39 - - #size-cells: should be 0. 40 - 41 - Optional Board Specific Properties: 42 - 43 - - samsung,spi-src-clk: If the spi controller includes a internal clock mux to 44 - select the clock source for the spi bus clock, this property can be used to 45 - indicate the clock to be used for driving the spi bus clock. If not specified, 46 - the clock number 0 is used as default. 47 - 48 - - num-cs: Specifies the number of chip select lines supported. If 49 - not specified, the default number of chip select lines is set to 1. 50 - 51 - - cs-gpios: should specify GPIOs used for chipselects (see spi-bus.txt) 52 - 53 - - no-cs-readback: the CS line is disconnected, therefore the device should not 54 - operate based on CS signalling. 55 - 56 - SPI Controller specific data in SPI slave nodes: 57 - 58 - - The spi slave nodes should provide the following information which is required 59 - by the spi controller. 60 - 61 - - samsung,spi-feedback-delay: The sampling phase shift to be applied on the 62 - miso line (to account for any lag in the miso line). The following are the 63 - valid values. 64 - 65 - - 0: No phase shift. 66 - - 1: 90 degree phase shift sampling. 67 - - 2: 180 degree phase shift sampling. 68 - - 3: 270 degree phase shift sampling. 69 - 70 - Aliases: 71 - 72 - - All the SPI controller nodes should be represented in the aliases node using 73 - the following format 'spi{n}' where n is a unique number for the alias. 74 - 75 - 76 - Example: 77 - 78 - - SoC Specific Portion: 79 - 80 - spi_0: spi@12d20000 { 81 - compatible = "samsung,exynos4210-spi"; 82 - reg = <0x12d20000 0x100>; 83 - interrupts = <0 66 0>; 84 - dmas = <&pdma0 5 85 - &pdma0 4>; 86 - dma-names = "tx", "rx"; 87 - #address-cells = <1>; 88 - #size-cells = <0>; 89 - }; 90 - 91 - - Board Specific Portion: 92 - 93 - spi_0: spi@12d20000 { 94 - #address-cells = <1>; 95 - #size-cells = <0>; 96 - pinctrl-names = "default"; 97 - pinctrl-0 = <&spi0_bus>; 98 - cs-gpios = <&gpa2 5 0>; 99 - 100 - w25q80bw@0 { 101 - #address-cells = <1>; 102 - #size-cells = <1>; 103 - compatible = "w25x80"; 104 - reg = <0>; 105 - spi-max-frequency = <10000>; 106 - 107 - controller-data { 108 - samsung,spi-feedback-delay = <0>; 109 - }; 110 - 111 - partition@0 { 112 - label = "U-Boot"; 113 - reg = <0x0 0x40000>; 114 - read-only; 115 - }; 116 - 117 - partition@40000 { 118 - label = "Kernel"; 119 - reg = <0x40000 0xc0000>; 120 - }; 121 - }; 122 - };
+6 -3
MAINTAINERS
··· 11699 11699 M: Javier Martinez Canillas <javier@dowhile0.org> 11700 11700 L: linux-kernel@vger.kernel.org 11701 11701 S: Supported 11702 - F: Documentation/devicetree/bindings/*/*max77802.txt 11702 + F: Documentation/devicetree/bindings/*/*max77802.yaml 11703 11703 F: drivers/regulator/max77802-regulator.c 11704 11704 F: include/dt-bindings/*/*max77802.h 11705 11705 ··· 11714 11714 M: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> 11715 11715 L: linux-pm@vger.kernel.org 11716 11716 S: Supported 11717 + F: Documentation/devicetree/bindings/power/supply/maxim,max14577.yaml 11717 11718 F: drivers/power/supply/max14577_charger.c 11718 11719 F: drivers/power/supply/max77693_charger.c 11719 11720 ··· 11724 11723 M: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> 11725 11724 L: linux-kernel@vger.kernel.org 11726 11725 S: Supported 11726 + F: Documentation/devicetree/bindings/*/maxim,max14577.yaml 11727 11727 F: Documentation/devicetree/bindings/*/maxim,max77686.yaml 11728 + F: Documentation/devicetree/bindings/*/maxim,max77843.yaml 11728 11729 F: Documentation/devicetree/bindings/clock/maxim,max77686.txt 11729 - F: Documentation/devicetree/bindings/mfd/max14577.txt 11730 11730 F: Documentation/devicetree/bindings/mfd/max77693.txt 11731 + F: drivers/*/*max77843.c 11731 11732 F: drivers/*/max14577*.c 11732 11733 F: drivers/*/max77686*.c 11733 11734 F: drivers/*/max77693*.c ··· 17098 17095 L: linux-spi@vger.kernel.org 17099 17096 L: linux-samsung-soc@vger.kernel.org 17100 17097 S: Maintained 17101 - F: Documentation/devicetree/bindings/spi/spi-samsung.txt 17098 + F: Documentation/devicetree/bindings/spi/samsung,spi*.yaml 17102 17099 F: drivers/spi/spi-s3c* 17103 17100 F: include/linux/platform_data/spi-s3c64xx.h 17104 17101 F: include/linux/spi/s3c24xx-fiq.h
+19 -8
drivers/spi/spi-s3c64xx.c
··· 798 798 return ERR_PTR(-EINVAL); 799 799 } 800 800 801 + cs = kzalloc(sizeof(*cs), GFP_KERNEL); 802 + if (!cs) 803 + return ERR_PTR(-ENOMEM); 804 + 801 805 data_np = of_get_child_by_name(slave_np, "controller-data"); 802 806 if (!data_np) { 803 - dev_err(&spi->dev, "child node 'controller-data' not found\n"); 804 - return ERR_PTR(-EINVAL); 805 - } 806 - 807 - cs = kzalloc(sizeof(*cs), GFP_KERNEL); 808 - if (!cs) { 809 - of_node_put(data_np); 810 - return ERR_PTR(-ENOMEM); 807 + dev_info(&spi->dev, "feedback delay set to default (0)\n"); 808 + return cs; 811 809 } 812 810 813 811 of_property_read_u32(data_np, "samsung,spi-feedback-delay", &fb_delay); ··· 1413 1415 .quirks = S3C64XX_SPI_QUIRK_CS_AUTO, 1414 1416 }; 1415 1417 1418 + static struct s3c64xx_spi_port_config fsd_spi_port_config = { 1419 + .fifo_lvl_mask = { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f}, 1420 + .rx_lvl_offset = 15, 1421 + .tx_st_done = 25, 1422 + .high_speed = true, 1423 + .clk_from_cmu = true, 1424 + .clk_ioclk = false, 1425 + .quirks = S3C64XX_SPI_QUIRK_CS_AUTO, 1426 + }; 1427 + 1416 1428 static const struct platform_device_id s3c64xx_spi_driver_ids[] = { 1417 1429 { 1418 1430 .name = "s3c2443-spi", ··· 1452 1444 }, 1453 1445 { .compatible = "samsung,exynos5433-spi", 1454 1446 .data = (void *)&exynos5433_spi_port_config, 1447 + }, 1448 + { .compatible = "tesla,fsd-spi", 1449 + .data = (void *)&fsd_spi_port_config, 1455 1450 }, 1456 1451 { }, 1457 1452 };