1/* 2 * Google Gru-Gru Rev 0+ board device tree source 3 * 4 * Copyright 2016 Google, Inc 5 * 6 * This file is dual-licensed: you can use it either under the terms 7 * of the GPL or the X11 license, at your option. Note that this dual 8 * licensing only applies to this file, and not this project as a 9 * whole. 10 * 11 * a) This file is free software; you can redistribute it and/or 12 * modify it under the terms of the GNU General Public License as 13 * published by the Free Software Foundation; either version 2 of the 14 * License, or (at your option) any later version. 15 * 16 * This file is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * Or, alternatively, 22 * 23 * b) Permission is hereby granted, free of charge, to any person 24 * obtaining a copy of this software and associated documentation 25 * files (the "Software"), to deal in the Software without 26 * restriction, including without limitation the rights to use, 27 * copy, modify, merge, publish, distribute, sublicense, and/or 28 * sell copies of the Software, and to permit persons to whom the 29 * Software is furnished to do so, subject to the following 30 * conditions: 31 * 32 * The above copyright notice and this permission notice shall be 33 * included in all copies or substantial portions of the Software. 34 * 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 * OTHER DEALINGS IN THE SOFTWARE. 43 */ 44 45/dts-v1/; 46#include "rk3399-gru.dtsi" 47 48/ { 49 model = "Google Gru"; 50 compatible = "google,gru-rev15", "google,gru-rev14", 51 "google,gru-rev13", "google,gru-rev12", 52 "google,gru-rev11", "google,gru-rev10", 53 "google,gru-rev9", "google,gru-rev8", 54 "google,gru-rev7", "google,gru-rev6", 55 "google,gru-rev5", "google,gru-rev4", 56 "google,gru-rev3", "google,gru-rev2", 57 "google,gru-rev1", "google,gru-rev0", 58 "google,gru", "rockchip,rk3399"; 59 60 // TODO: Model: 61 // - pp1200_mipi_cam 62 // - pp1800_mipi_cam 63 // - pp2800_mipi_cam 64 65 /* pp1800 children */ 66 67 pp1800_fp: pp1800-fp { 68 compatible = "regulator-fixed"; 69 regulator-name = "pp1800_fp"; 70 pinctrl-names = "default"; 71 pinctrl-0 = <&fp_en>; 72 73 enable-active-high; 74 gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>; 75 76 regulator-always-on; // For bringup??? 77 regulator-boot-on; // For bringup??? 78 79 vin-supply = <&pp1800>; 80 }; 81 82 /* pp3300 children */ 83 84 pp3300_fp: pp3300-fp { 85 compatible = "regulator-fixed"; 86 regulator-name = "pp3300_fp"; 87 /* NOTE: fp_en pinctrl in pp1800_fp */ 88 89 enable-active-high; 90 gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>; 91 92 regulator-always-on; // For bringup??? 93 regulator-boot-on; // For bringup??? 94 95 vin-supply = <&pp3300>; 96 }; 97}; 98 99ap_i2c_dvs: &i2c0 { 100 status = "okay"; 101 102 // TODO: bus speed 103 // ...with no speed, it should just use 100kHz 104 // TODO: rise / fall times? 105 106 /* LP8556 */ 107 backlight@2c { 108 compatible = "ti,lp8556"; 109 reg = <0x2c>; 110 111 // TODO: Where do we specify AP_BL_EN??? 112 113 bl-name = "lcd-bl"; 114 dev-ctrl = /bits/ 8 <0x85>; // TODO: It depends on the device. 115 init-brt = /bits/ 8 <0x10>; // TODO: What should it be? 116 117 power-supply = <&pp3300_disp>; 118 }; 119}; 120 121ap_i2c_cam: &i2c2 { 122 status = "okay"; 123 124 // TODO: bus speed 125 // ...with no speed, it should just use 100kHz 126 // TODO: rise / fall times? 127 128 // TODO: I belive this is for the MIPI camera. 129}; 130 131ap_i2c_nfc: &i2c7 { 132 status = "okay"; 133 134 // TODO: bus speed 135 // ...with no speed, it should just use 100kHz 136 // TODO: rise / fall times? 137 138 // TODO: Add the proper NFC reference... 139}; 140 141&spi4 { 142 status = "okay"; 143 144 // TODO: more properly. Hacky spidev for now??? 145 fingerprint@0 { 146 compatible = "spidev"; 147 spi-max-frequency = <10000000>; 148 reg = <0>; 149 }; 150}; 151 152/* PINCTRL: always below everything else */ 153 154&pinctrl { 155 discrete-regulators { 156 fp_en: fp-en { 157 rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO 158 &pcfg_pull_none>; 159 }; 160 }; 161}; 162 163/* DON'T PUT ANYTHING BELOW HERE. PUT IT ABOVE PINCTRL */ 164/* DON'T PUT ANYTHING BELOW HERE. PUT IT ABOVE PINCTRL */ 165/* DON'T PUT ANYTHING BELOW HERE. PUT IT ABOVE PINCTRL */ 166