.. | .. |
---|
37 | 37 | { "AXG", 0x25 }, |
---|
38 | 38 | { "GXLX", 0x26 }, |
---|
39 | 39 | { "TXHD", 0x27 }, |
---|
| 40 | + { "G12A", 0x28 }, |
---|
| 41 | + { "G12B", 0x29 }, |
---|
| 42 | + { "SM1", 0x2b }, |
---|
| 43 | + { "A1", 0x2c }, |
---|
40 | 44 | }; |
---|
41 | 45 | |
---|
42 | 46 | static const struct meson_gx_package_id { |
---|
.. | .. |
---|
53 | 57 | { "S905W", 0x21, 0xa0, 0xf0 }, |
---|
54 | 58 | { "S905L", 0x21, 0xc0, 0xf0 }, |
---|
55 | 59 | { "S905M2", 0x21, 0xe0, 0xf0 }, |
---|
| 60 | + { "S805X", 0x21, 0x30, 0xf0 }, |
---|
| 61 | + { "S805Y", 0x21, 0xb0, 0xf0 }, |
---|
56 | 62 | { "S912", 0x22, 0, 0x0 }, /* Only S912 is known for GXM */ |
---|
57 | 63 | { "962X", 0x24, 0x10, 0xf0 }, |
---|
58 | 64 | { "962E", 0x24, 0x20, 0xf0 }, |
---|
59 | 65 | { "A113X", 0x25, 0x37, 0xff }, |
---|
60 | 66 | { "A113D", 0x25, 0x22, 0xff }, |
---|
| 67 | + { "S905D2", 0x28, 0x10, 0xf0 }, |
---|
| 68 | + { "S905X2", 0x28, 0x40, 0xf0 }, |
---|
| 69 | + { "A311D", 0x29, 0x10, 0xf0 }, |
---|
| 70 | + { "S922X", 0x29, 0x40, 0xf0 }, |
---|
| 71 | + { "S905D3", 0x2b, 0x4, 0xf5 }, |
---|
| 72 | + { "S905X3", 0x2b, 0x5, 0xf5 }, |
---|
| 73 | + { "S905X3", 0x2b, 0x10, 0x3f }, |
---|
| 74 | + { "S905D3", 0x2b, 0x30, 0x3f }, |
---|
| 75 | + { "A113L", 0x2c, 0x0, 0xf8 }, |
---|
61 | 76 | }; |
---|
62 | 77 | |
---|
63 | 78 | static inline unsigned int socinfo_to_major(u32 socinfo) |
---|
.. | .. |
---|
125 | 140 | return -ENODEV; |
---|
126 | 141 | |
---|
127 | 142 | /* check if interface is enabled */ |
---|
128 | | - if (!of_device_is_available(np)) |
---|
| 143 | + if (!of_device_is_available(np)) { |
---|
| 144 | + of_node_put(np); |
---|
129 | 145 | return -ENODEV; |
---|
| 146 | + } |
---|
130 | 147 | |
---|
131 | 148 | /* check if chip-id is available */ |
---|
132 | | - if (!of_property_read_bool(np, "amlogic,has-chip-id")) |
---|
| 149 | + if (!of_property_read_bool(np, "amlogic,has-chip-id")) { |
---|
| 150 | + of_node_put(np); |
---|
133 | 151 | return -ENODEV; |
---|
| 152 | + } |
---|
134 | 153 | |
---|
135 | 154 | /* node should be a syscon */ |
---|
136 | 155 | regmap = syscon_node_to_regmap(np); |
---|